@node curses Xconq, , Top, Top

@chapter curses Xconq

@i{cconq} is a version of @i{Xconq} that requires only an ASCII terminal
and a @i{curses} library for cursor movement and screen management.  As
a result, it will run almost anywhere.

@c including DOS - should try to build it under go32 or some such

However, in exchange for this higher degree of portability, you lose a
lot in display power, and games may become much more difficult to play.
For instance, roads and rivers cannot be represented directly, and you
will have to rely on the textual displays to see which directions have
them.

(Incidentally, this curses interface is the oldest one in Xconq,
predating even the X10 interface that was part of version 1's release in
1987.)

@menu
* Installing curses Xconq::
* Playing the Introductory Game with curses Xconq::  
* Playing curses Xconq::
* Troubleshooting curses Xconq::
@end menu

@node Installing curses Xconq, Playing the Introductory Game with curses Xconq, curses Xconq, curses Xconq

@section Installing curses Xconq

The usual @samp{make} and @samp{make install} will generate and install
the executable and library into @file{usr/games/bin} and
@file{usr/games/lib/xconq}, respectively.  (See the file @file{INSTALL}
in the main source directory for more detailed instructions.)

The name of the executable is @file{cconq}.

@node Playing the Introductory Game with curses Xconq, , Installing curses Xconq, curses Xconq

@section Playing the Introductory Game with curses Xconq

To begin an introductory game, give the command @samp{cconq -g intro}.

@node Playing curses Xconq, Troubleshooting curses Xconq, curses Xconq, curses Xconq

@section Playing curses Xconq

@menu
* curses Xconq Command Line Options::
* curses Xconq Screen::
* curses Xconq Commands::
@end menu

@node curses Xconq Command Line Options, curses Xconq Screen, Playing curses Xconq, Playing curses Xconq

@subsection curses Xconq Command Line Options

The command options are as for X11 Xconq (see @xref{Xconq Command Options}),
except that the X-specific options will not be recognized.

@node curses Xconq Screen, curses Xconq Commands, curses Xconq Command Line Options, Playing curses Xconq

@subsection curses Xconq Screen

When @file{cconq} starts up, it takes over the whole screen,
in the usual fashion of curses programs.

The layout is generally similar to the appearance of the X11
map window.  Some changes were dictated by the need to fit
everything into the standard 24x80 terminal screen
(@file{cconq} can use a bigger or smaller screen
if necessary though).

@example
Your town Drumheller will build 99 armor                     Turn   1

your town Drumheller  HP 20  ACP 0/1       |1*  83%/6   Brazilians (term)
In desert(Elev 1825) road/NE at 12,12      |2  100%     Japanese ()
Occ 1 a                                    |-Sides------------------------
fuel 500/500  ammo 200/200                 | *1 Hooker             1w
                                           | *1 Joe Batt's Arm     1w
   ?   ?   ?   ? ++++....  ?   ?   ?   ?   | *1 East Missoula      1w
                ^#+#......                 |**1 Drumheller           
 ?   ?   ?   ? ^#+#+#......  ?   ?   ?   ? | *1 Nirmal             1w
              ^^^^*1@@1......               | @@1 Wonthaggi          1w
   ?   ?   ?   ^^^^*1==....?   ?   ?   ?   |
                ^^^^+#*1....               |
     ?   ?   ?   ^^^^*1+#*1..?   ?   ?   ? |
                  ^#^^~~+#++..             |
       ?   ?   ?   ^#~~~~++++  ?   ?   ?   |
                                           |
         ?   ?   ?   ?   ?   ?   ?   ?   ? |
                                           |
           ?   ?   ?   ?   ?   ?   ?   ?   |
                                           |
             ?   ?   ?   ?   ?   ?   ?   ? |
                                           |
--Map--Survey----(units)-------------------|-Units--ALL---by side---------
@end example

The main display is the map, which is in the lower left.  It uses game-defined
characters to represent units and terrain - in the above example, @code{'..'},
@code{'++'}, etc represent sea, land, and so forth respectively.  Units appear
as a character for the type (@code{'*'} is a town) followed by a decimal digit
indicating the side.  Unknown terrain is a combination of blanks and question
marks, while the presence of borders and connections is flagged by a @code{'#'}.

Above the map is a textual description of the currently selected unit and its
current location.

At the top is a couple of lines for notices of events and feedback from
commands.

The turn or date appears in the top right corner, while below it is a
list of the sides, their numbers as appearing on the map, and their
progress in the turn.  Also, the side being displayed has the display
@code{term}.

Below that is a list area, which you can use to display a list of actual
units, or a summary of the numbers of each type that you have.

Interaction and display modes appear on the bottom line of each major
subwindow.  The map window indicates survey/move modes, as well as the
kinds of optional data being displayed, while the list window indicates
units/types, selectivity (all or only some units), and sorting of the
list.

@node curses Xconq Commands,  , curses Xconq Screen,  Playing curses Xconq

@subsection curses Xconq Commands

curses @i{Xconq} accepts all of generic commands.

The @samp{map} command understands the following curses-specific arguments:

@table @code

@item _
Set number of lines in info window.
This command sets the number of lines used by the unit info
window above the map.  The default is 4, which is insufficient
to display the plan's tasks, or all of the supplies in games
with many kinds of materials.  The prefix argument is the
number of lines.

@item v
Set list view.

@item >
Grow the map.  This increases the amount of screen used by the map and
decreases the amount used by the lists.  The prefix argument is the
number of columns to change; its default value is 5.

@item <
Shrink the map.  This decreases the amount of screen used by the map and
increases the amount used by the lists.  The prefix argument is the
number of columns to change; its default value is 5.

@item @code{terrain}, @code{t}
Display or blank out the terrain.
You may prefix with @code{!} or @code{no} to achieve the opposite of the
effect.

@item @code{unit}, @code{u}
Display or blank out the units.
You may prefix with @code{!} or @code{no} to achieve the opposite of the
effect.

@item @code{name}, @code{n}
Display or blank out the names of features and units.
You may prefix with @code{!} or @code{no} to achieve the opposite of the
effect.

@item @code{people}, @code{p}
Display or blank out people.
You may prefix with @code{!} or @code{no} to achieve the opposite of the
effect.

@item @code{one}, @code{1}, @code{two}, @code{2}
Display the terrain character in one or two character positions of each
displayed cell.

@end table

@node Troubleshooting curses Xconq, , Playing curses Xconq, curses Xconq

@section Troubleshooting curses Xconq

Screen gets messed up on Sun4, for reasons I don't understand.
