[rec.games.programmer] Preparing new xconq

fisher@paul.rutgers.edu (Greg Fisher) (09/28/90)

I am preparing to release xconq 5.4.  It is a version of Xconq built
on Xconq 5.1 with some changes from Xconq 5.3.  Let me know of any
features that I should really include or any bugs that need to be
fixed.   A current version of xconq 5.4 can be retrieved from
paul.rutgers.edu via anonymous ftp.  It is in /pub/xconq/xconq5.4.tar.

Below is a mostly complete list of additions and changes to the
program.  Only the changes visible to the user are detailed here.
In addition, a number of bug fixes have been made which are
only noticeable in that the program fails to crash as often.   The
machine players have also been modified in a number of ways, which
tends to improve there play.  

All of these changes are relative to Xconq 5.1.  


Playing changes 
---------------

Center is changed so that no units can be forgotten because of your,
or another player doing a center command.

Units wake up if an enemy appears next to them.  The wakeup is
immediate.  They also remember why they were woken up even if the unit
waking them has gone away.

Changed name display so that only first part of host name displayed.

Provided a second font for the help window.  The default will be small
enough that the whole standard help window will fit on the screen. 

Print a message at the start of each turn.  Beep if active units are
in play and time > start beep time has elapsed since the players last
turn.  This can be set with the option command.

Fix display routine so that it does not make pieces disappear on small
screens.

Added clock to tell amount of time taken by each player.  It displays
if countdown clocks are not in use.  Theses counts as well as the
chess clock values are saved to the savefile.

Added messages for segmentation faults and bus errors localizing the
errors.   This has expanded to a complete stack trace of some subset
of the procedures called.

Fixed standing orders so that they can be created and saved without
crashing the program.

The supply allocation has been changed so that units will not dump all
of their supplies to a base.  It should now try to do reasonable
things for tying to make sure everyone has at least some supplies.

Changed the save files so that saved games restart exactly where the
game was left, rather than at the beginning of the next turn.  This
avoids any the loss of moves for units which come after the one active
when the game was saved.  The order of the units is changed, since the
restore routine needs the units to be sorted.

Added a recenter command, installed under '.'.  This command places
the current hex in the middle of the display.

Added follow action mode, installed as a toggle command on ^F.  In
follow action mode, any changes to your view are shown to you.  If the
current display does not have the changed location, it will be put in
the center of the display.

Changed viewing routine so that previously unseen hexes with invisible
units in them appear as empty rather than as unseen.

Changed unit allocation and garbage collection so that the number of
units can grow past the initial limit.

Added an optional argument to the redraw command so that it will erase
any views older than the argument.  This is particularly useful after
a briefing.  Only non-moving units views will be erased.  ^R defaults
to erasing the views of moving units we haven't seen in 10 turns.  ^L
defaults to never erasing views unless an explicit argument is given.

Changed briefings so that all old views of the side doing the briefing
are erased first.  (ie., briefings say where units are not as well as
where they are.)

Implemented a cheat mode under -C.  This just lets the machine see
everything. 

Captured units cancel all standing orders.

Made wakeup 'w' wake up the unit being surveyed as well as the top
unit.

All moves or attacks use at least one point of movement.  This prevents
units who are in a transport on terrain they can not move on (movement
value is -1 for these places) from having an infinite number of
attacks.  This also means that units entering a base will not gain an
extra point of movement.

# command has been added.  This prints the distance between the
current location and another point.

T and ^T commands have been added to find units.  These commands are
identical, except that T prompts for a unit type, while ^T uses the
type of the current unit.  These commands find a unit of the given
type.  ^T repeated will give the next unit of the given type.  This
allows a player to look at all of the units of some type.  Useful when
some units are in transports (and possibly out of supplies).  An
argument to either command looks for the unit with that number.

Changing product to the current product no longer resets the schedule.

Added a command (^P) to set the product using the machines strategy.

Write in savefile views using run length encoding.

Occupants are sorted in decreasing order of their speed.

Fixed survey mode for no-movers so that they can look at units that
are occupants of other units.

Added machine control of selected units (^A).  The machine will make
all decisions until the unit is woken by the users.  Standing orders
to use automatic control are added to rather than replacing previous
standing orders.  This allows the user to give standing orders to move
to some location and then let the machine take over.

Embark (e) has been changed so that is will take an argument.  The
unit will wait around that many turns trying to embark on some
transport before waking up.  This command can be given as a standing
order, allowing much more complete automation of the movement of
units. 

Provided an escape from robot mode.  Typing escape while a robot in a
multiplayer game will change a robot into a human.  This will work
either during a human player turn, or at the end of the turn if there
are no human players in the game.

Expanded the help pages so that the commands don't go off the bottom
of the page.

Added find dead unit (^D) which cycles through units that died in the
last turn.

Prevented the automatic return to move mode when the current unit is
given an order.

Added scrolling to the notice buffer.  Click on the top or bottom to
scroll the messages.

Changes Imported from Xconq 5.3
-------------------------------

- All play is simultaneous.

- Removed menu of maps and scenarios.

- Removed bar graph display of unit hit points, fuel and ammo.

- Units are stored in a circular doubly-linked list.

Period options added 
--------------------

Provided a flag to prohibit production by occupants who are not also
makers.  The default is that only makers can produce inside of other
units.

Provided a flag to indicate whether or not captured units can
immediately be moved.  Thus, all units will behave the same when
captured, regardless of the ordering of the new and former owners in
the turn sequence. 

Provided a flag to allow occupants to not consume supplies.  Useful
for planes on the ground.

Standard period changes.
-----------------------

(Troop transports have 3 hp.)

(Submarines have only 2 ph.)

Infantry and armor defend the cities and bases they are in.  

Aircraft carriers can hold 240 fuel instead of 200.

The out-length of all units that are not transports have been set to
-1, prohibiting them from giving up their fuel at bases except by
order from a player.

Troop transports can carry any type of ship.  This is not meant as a
means of transporting ships, but rather as a way of docking as sea to
transfer supplies.  Troop transports move at half speed if they are
docked with another ship.

Gave capital cities a viewing range of 3 hexes instead of the one for
all other units.

Aircraft do not consume supplies while on the ground.

Changed the out-length of all units other than fighters and infantry
to 0.  This allows them to transfer fuel automatically.

The enter-time of ships has been set to 0, correcting for the loss of
movement incurred when minimum movement of 1 point was incurred.
Ships are allowed to enter and leave bases with no cost to movement.

Bases repair units at a rate of one point every three turns.  Infantry
repair bases at one point per turn and towns or cities at one point
per ten turns.