
===============================================================================
====                         Xpilot Change Log                             ====
===============================================================================

This is a summary of changes of release 3.1.2 compared to release 3.1.1:

Fixed bug for unitialised killer variable in player-hits-mine situations.

Added improved security checks for owner-only commands based
upon IP address.  Owners of a server now can only issue owner-only
commands from the same host as the server is running on.  This is
done, because we got reports from server owners complaining about
users abusing the current simple scheme.  Homo homini lupus.

The name of the server owner (the person who started the server) is no
longer listed in status reports to improve security and privacy.

Extended the way sockets are made non-blocking by trying three different
possibilities depending upon which system include file constants are defined.
Now fcntl(O_NDELAY), fcntl(FNDELAY) and ioctl(FIONBIO) are all tried until
one of them succeeds.

Fix for kicking players and broken connections.  This used to terminate
the server.  Hopefully not anymore.

Everything regarding X windows is now not used if the display is set to NO_X.

Kicking players still terminated the server.  Now a real fix... ;/

Revision of the timer stuff.  Cleaned up sony_news hack and made system
calls restart on a SIGALRM signal by setting the flags to SA_RESTART.

Fixed a missing installation of the alarm catcher.  This could have caused
premature termination of the server if it couldn't resolve meta addresses.

Fix for the -playerMinimumStartFuel server option.  Some old leftover code
prevented this option from working correctly.

There was a BIG bad bug in Tank_handle_detach().  It copied one player
structure onto another thereby blurring the dynamic memory allocation.
This is likely the cause of the cloak bugs which have been reported for
a long time now.

Initial tanks caused players to get too much fuel.

The number of initial tanks is now properly range checked.

Fix for players unpausing in limited lives mode.

===============================================================================

This is a summary of changes of release 3.1.1 compared to release 3.1.0:

Fixed bug for audioServer which tested for address of array instead
of testing for first byte of array.  Thanks to Shawn L. Baird (Scarrow).

Fixed bugs for ERASE mode for erasing weapon modifiers and mine names.
Reported by Jay Schmidgall.

Fixed bug for modifier banks which allowed players to use clusters even
if -allowClusters was False.  Thanks to Russ Glaeser.

Added some missing X resources for keys.  Like keyRepair and keyToggleImplosion.
Thanks to notification by Eric Matsui.

Fixed bug for ECMs destroying lasers.  They always destroyed everything.
Reported by Harvey Thompson.

Fixed bug for ECMs affecting mines.  Reported by Harvey Thompson.

Added a 'T' command to the character interface to set (or change) the team.
This is handy in case a user finds out with the Status command that his
current team is full (or contains only weak players ;).

Applied patch from Patrick Kenny to make the number of missiles per pack
a constant instead of an ordinary number.

The directed message feature was extended to print where the message
was directed to.  Partly based on a patch by Patrick Kenny.

Bugfix patch for TkXpInterface from Yves-Henri BERNE and Ramdane FERHATI.

===============================================================================

This is a summary of changes of release 3.1.0 compared to release 3.0.7:

This release features lots of first class new features by Harvey Thompson
from SCO London.  He provided us with the biggest patch ever.  Not that we
like to merge big patches, but we do like first class new features :-).

A long time wish has been fulfilled with the addition of fullfeatured
wall bouncing.  Several new options control how and if players, shots,
items, debris bounce or not.

Due to the many and radical changes this version is not able to
communicate with older versions.  This was a difficult decision to take,
but it would have taken lots of extra work and much more code bloat
to do otherwise.

Now there is a new ChangeLog file which contains changes summaries
since release 3.0.4.

Support for DEC AudioFile sound format provided by Tom de Pauw.

Updated sounds file in the lib directory.  Many new sound events have
been added by Harvey Thompson.  Mark Boyns added more different sounds.
If you want to use sound with XPilot you must use this updated file.

Fix to not unpause paused players when their last target is destroyed
in targetKillTeam mode.  Bug reported by Ramdane Ferhati.

Server output is now always linebuffered, even over pipes or remote shells.

The preprocessor symbol _SONYNEWS_SOURCE has been changed into sony_news.

New server option -reportToMetaServer.  To specify if you want the server
to keep the meta server informed about your game.
Contributed by MAKOTO "Mark'n" Matsushita.

New item called EmergencyThrust.  Gives you 4 seconds of maxwarp speed.
You will need it badly to escape those modified full nuclear cluster mini
smart missiles chasing you at high speed :-).
Contributed by Harvey Thompson.

New item called AutoPilot.  Computer controlled stationary hanging in
the air everywhere you like, most likely near fuelstations :).
Contributed by Harvey Thompson.

New item called TractorPressorBeam.  To push or pull opponents towards
you or from you.  Robots also know how to use it :-)
Contributed by Harvey Thompson.

You can now specify the size of shots as they are drawn on your display.
When teammode is on then teamshots can be drawn in a different size for
easy recognition on monochrome displays.  Contributed by Harvey Thompson.

Players now have several options to change the behavior of weapon systems.
This is done with so called weapon modifiers.
The following weapon modifiers are available:

    N - To turn on nuclear mode on mines and missiles.
        So you can place a nuclear mine or throw a nuclear bomb.
        Or fire a nuclear smart missile, heat shot or torpedo.
        Nuclear mode takes 4 mines to make one nuclear mine
        and 7 missiles to make one nuclear missile.
        Full nuclear mode takes all the mines you have for one
        full nuclear mine with a minimum of 4 and all the missiles
        you have for one full nuclear missile with a minimum of 7.
        Contributed by Harvey Thompson.

    C - To toggle cluster mode on mines and missiles.
        Cluster explosions consist of shots instead of debris.
        Not for children.  Contributed by Harvey Thompson.

    I - Toggle implosion mode.  Explosions generated by mines and missiles
        implode when this modifier is active.  That is, players are pulled
        towards the centre of the explosion instead of being pushed away
        from it.  The great psychological effect is that opponents don't
        know anymore what they can expect from an approaching mine and
        therefore have much more difficulty to handle it.
        Inspired by a discussion in alt.games.xpilot.

    X - Set mini mode.  Firing a missile or mine results in a few mini
        missiles and mines.  Four mini levels are provided.  The first
        is the default non-mini mode.  Mini mode 2, 3 and 4 generate
        split weapons.  The mini projectile generates correspondingly less
        damage when it hits a player, but it has some other advantages.
        Contributed by Harvey Thompson.

    Z - Set spread angle.  When you drop, throw, launce some mini
        projectiles then the direction of the mini projectiles is
        influenced by this modifier.  It also influences wide angle
        shots and rear shots.  Four different spread levels are available.
        Contributed by Harvey Thompson.

    V - Set speed mode.  It decreases the speed of cluster shots
        in favor of increasing the life of the cluster shots.
        Four different speed levels are available.
        Contributed by Harvey Thompson.

    B - Set power mode.  Results in faster missiles which do
        correspondingly less damage.  Four power levels are available.
        Contributed by Harvey Thompson.

    L - Set laser mode.  Three choices are standard damage lasers, laser
	which acts as a stun gun (as outdated option laserIsStunGun did)
	or causes temporary blindness akin to ECMs.

New server option -allowClusters.  To allow or deny the cluster modifier.
Clusters are a bit heavy and not suitable for all playing styles.
Contributed by Harvey Thompson.

New server option -allowModifiers.  To allow or deny above modifiers,
except for cluster and nuke modifiers which are controlled by
their own -allow options.  The default value is Off.
Contributed by Harvey Thompson.

New server option -allowLaserModifiers.  To allow or deny laser modifiers.
Contributed by Harvey Thompson.

New client options to control how and when and if you want to
have all of your items displayed on your HUD.  For instance, you could
set to only display a particular item when the number of that item
changes.  Contributed by Harvey Thompson.

New client option to control whether you want to see any
messages or not.  Some slow displays could benefit from this.
Contributed by Harvey Thompson.

New server option -dump.  To print out a list of all of the server
options with their default values.  Handy if you want to make a new
lib/defaults file.  It also prints the values for some compile time
definitions like LIBDIR, MAPDIR etc.

New server option -minesOnRadar.  To specify if you want mines displayed
on the radar or not.  Contributed by Harvey Thompson.

New server option -nukesOnRadar.  To specify if you want nukes displayed
on the radar or not.  Nukes (including nuclear mines) can be displayed
in a particular pulsating way on the radar to distinguish them from
non-nuke projectiles.  Contributed by Harvey Thompson.

The server option maxMissilesPerNuke has been removed (temporarily?)
as it didn't fit with the new patches easily.  Maybe it is desirable
to have it back.

New server option nuclearClusterDamage.  This specifies how much damage
nuclear cluster debris does and reduces the number of debris by the same
amount.  Making this larger than 1.0 causes significant server improvement
when using nuclear cluster weapons; the most often used.  In order that
players can differentiate between normal shots/cluster and nuclear cluster
debris the latter flashes and changes size.  Contributed by Harvey Thompson.

New server option -playerMinimumStartFuel.  To specify if the minimum amount
of fuel a player gets when he restarts at his homebase after a fatal action.
Contributed by Harvey Thompson.

New server option -teamAssign.  To assign a player to a team if he hasn't
specified his team.  Contributed by Harvey Thompson.

New server option -teamImmunity.  It specifies whether team members are
immune to shots from team members or not.  Contributed by Harvey Thompson.

New end of game rules for team play with treasures.  When all playing
teams treasures apart from one are destroyed the game ends and balls
are reset.  Contributed by Harvey Thompson.

New server option -targetTeamCollision.  When this option is turned on
players belonging to the same team as the target can pass through
the target as if it was space.  This is a very nice idea I think.
There is a new map provided called teamfuzz4 to illustrate this idea.
Option and map are both contributed by Harvey Thompson.

New server option -treasureKillTeam.  Similar to targetKillTeam.
Contributed by Harvey Thompson.

New server option -treasureCollisionDestroys.  Specifies whether balls
are destroyed when a player hits it.  Contributed by Harvey Thompson.

New server option -treasureCollisionMayKill.  Specifies whether balls
kill unshielded players.  Contributed by Harvey Thompson.

New server option -shotsWallBounce.  Specifies whether shots bounce
from walls or not.  Can be fun, but be prepared to be shot by your
own bullets.  Together with clusters this may be nice too :-)

New server option -ballsWallBounce.  Specifies whether balls bounce
from walls or not.  Can be fun with balls because when a player looses
his connection with a ball the ball can be hard to find back.

New server option -minesWallBounce.  Specifies whether mines bounce
from walls or not.  Not sure if this is a nice option.

New server option -itemsWallBounce.  Specifies whether items bounce
from walls or not.  Great fun to chase that wide angle item you need
so badly, or that fuel item when you don't have fuel anymore, etc.

New server option -missilesWallBounce.  Specifies whether missiles bounce
from walls or not.  Makes missiles live almost forever.

New server option -sparksWallBounce.  Specifies whether sparks from
thrusting and bounce off walls or not.  Turning on this option causes
thrust to be "reactive", that is something like ground effect in real
physics.  Useful to slow you down even more before hitting a wall.
Contributed by Harvey Thompson.

New server option -debrisWallBounce.  Specifies whether debris from
explosions bounce off walls or not. Watch out for the combination of
this option and nuke exposions.  Too many fast moving and bouncing
objects can slow down the server for a long time.  You can tune this
with the -maxObjectWallBounceSpeed option.  Otherwise it is great fun.

New server option -maxObjectWallBounceSpeed.  Specifies the maximum
allowed speed for objects to bounce off walls.  Setting this below 50 is
recommended to avoid slowdowns of the server in case of big explosions.

New server option -maxShieldedWallBounceSpeed.  Specifies the maximum
allowed speed for shielded players to bounce off walls.

New server option -maxUnshieldedWallBounceSpeed.  Specifies the maximum
allowed speed for unshielded players to bounce off walls.  Nice to set
it high in tournament style maps.

New server option -maxShieldedWallBounceAngle.  Specifies the maximum
allowed angle for shielded players to land on walls.

New server option -maxUnshieldedWallBounceAngle.  Specifies the maximum
allowed angle for unshielded players to land on walls.  Nice to set
it high in tournament style maps.

New server option -playerWallBounceBrakeFactor.
Factor to slow down players when they hit the wall (between 0 and 1).
For instance, setting it to zero causes walls to immediately absorb
all speed of a player that touches it.  Setting it to one causes
players to keep all of their speed when they bounce.

New server option -objectWallBounceBrakeFactor.
Factor to slow down objects when they hit the wall (between 0 and 1).

New server option -objectWallBounceLifeFactor.
Factor to reduce the life of objects after bouncing (between 0 and 1).
This option allows you to reduce the life of bouncing objects if you
think that too many objects slow down the server.

New server option -wallBounceFuelDrainMult.
Multiplication factor for player wall bounce fuel cost.

New server option -wallBounceDestroyItemProb.
Factor probability of loosing one or more items from each set when a
player bounces of a wall.  Higher probabilities give greater chance
of loosing objects.  Contributed by Harvey Thompson.

Objects are now warped through wormholes if the wormhole has ever warped
a player before.  The object is warped to the same place as the player
has been warped to.

Being hit by debris from explosions now costs a little fuel depending upon
the speed and mass of the debris.  Being hit by fast and heavy debris
costs more fuel than being hit by slow and light debris.  If a player is in
the middle of a nuke explosion and sparksWallBounce is on then this could
cost him quite some fuel.  Not having enough fuel is fatal.

New key called keyLockNextClose.  To lock on the next closest player.
Default key is the down arrow.  Contributed by Harvey Thompson.

New key called keyToggleNuclear.  To toggle the nuclear weapon modifier.
Default key is 'n'.  Contributed by Harvey Thompson.

New key called keyToggleCluster.  To toggle the cluster weapon modifier.
Default key is 'c'.  Contributed by Harvey Thompson.

New key called keyToggleImplosion.  To toggle the cluster weapon modifier.
Default key is the 'i' (the ID default key is now 'u').

New key called keyToggleVelocity.  To toggle the velocity weapon modifier.
Default key is the 'v'.  Contributed by Harvey Thompson.

New key called keyToggleMini.  To toggle the mini weapon modifier.
Default key is the 'x'.  Contributed by Harvey Thompson.

New key called keyToggleSpread.  To toggle the spread weapon modifier.
Default key is the 'z'.  Contributed by Harvey Thompson.

New key called keyTogglePower.  To toggle the power weapon modifier.
Default key is the 'b'.  Contributed by Harvey Thompson.

New key called keyToggleLaser.  To toggle to laser type modifier.
Default key is the 'l' (the compass toggle default key is now `y').
Contributed by Harvey Thompson.

New key called keyToggleAutoPilot.  To toggle automatic pilot mode.
Default key is the 'h'.  Contributed by Harvey Thompson.

New key called keyEmergencyThrust.  To toggle emergency thrust mode.
Default key is the 'j'.  Contributed by Harvey Thompson.

New key called keyTractorBeam.  To activate the tractor beam in attract mode.
Default key is the ','.  Contributed by Harvey Thompson.

New key called keyPressorBeam.  To activate the tractor beam in repulse mode.
Default key is the '.'.  Contributed by Harvey Thompson.

New key called keyClearModifiers.  To clear all of the modifiers.
Default key is the 'k'.  Contributed by Harvey Thompson.

New keys called keyLoadModifiers1, keyLoadModifiers2, keyLoadModifiers3
and keyLoadModifiers4.  To load modifiers in bank 1, 2, 3 or 4.
Default keys are '1', '2', '3' and '4'.
Users can specify up to four modifier settings which affect all of
the modifiers available.  During active play these banks allow rapid
switching between different settings.
For advanced use you can combine this with another key like this:
         xpilot.keyLoadModifiers1:       1
         xpilot.modifierBank1:           NC V1 X4 Z2
         xpilot.keyDropMine:             Tab 1
to make the Tab key drop some modified mini nuclear cluster mines.
Many nice combinations using this technique are imaginable.
Contributed by Harvey Thompson.

New client resources xpilot.modifierBank1, xpilot.modifierBank2,
xpilot.modifierBank3 and xpilot.modifierBank4.  To specify what modifier
options the modifier banks should contain.  Contributed by Harvey Thompson.

New key called keyToggleOwnedItems.  To toggle display of owned items
on the HUD.  Contributed by Harvey Thompson.

New key called keyToggleMessages.  To toggle display of messages on
the screen.  Contributed by Harvey Thompson.

New client option -keyListFont.  To set the font to use in the key help
window.  This was needed because of the many keys which overflowed the
available screen space.  By setting this option to a small font this
problem is overcome to some extent.  What we really want is a multi-column
or multi-page key list.  Contributed by Harvey Thompson.

New client option -shieldDrawSolid.   Dunno what it does.
Contributed by Harvey Thompson.

There is now a new kind of pause mode called HoverPause.  You can pause
when you are in AutoPilot mode, but you don't get all of the immunity
of a normal paused player.  It is only meant as a temporary pause
to answer a phone or open a door for someone, etc.
Contributed by Harvey Thompson.

Shots are now transferred to the client much more efficiently.  They now
use the same compression algorithm as was used for debris.  This was
needed for the new cluster explosions and for players having dozens of
wide angle items.  Contributed by Harvey Thompson.

New client option -titleFlip.  To control if you want the titlebar
to flip between different titles.  Some window managers like twm seem
to have (performance?) problems with clients changing their titlebar.
Contributed by Harvey Thompson.

ECM works a little differently now.  Now it also affects mines.
Contributed by Harvey Thompson.

Talk messages can now be directed to a particular player or team.
To direct a message to a player prepend the player name and a
colon to the message.  To direct a message to a team prepend the
team number with a colon.  For instance, to talk to Smasher type
the following: "Smasher: Sharp move Smasher! :)".
You don't need to type the complete name and case is not important.
Note that this way of directing messages requires you to use
smilies with care as they contain a colon.
Contributed by Harvey Thompson.

Mines dropped by yourself or one of your teammembers are now
drawn with a hollow center to distinguish them from enemy mines.
Dunno if this is an improvement or not.
Contributed by Harvey Thompson.

Destroying targets from empty teams, or from teams whose members
are all in the game over state or paused, only gives as many points
as destroying a cannon would have given.

Thrusting now really costs a little fuel.

The client now tries better to contact servers on the local network
even if it can't get information about attached network interfaces.

The default value for the repair key has been changed from 'x' to 'f'.

The dollar sign is a new map symbol to force the direction of homebases.
Players starting on homebases that are adjacent to this symbol will
start with the front of their ship pointing to this dollar sign.
Except that the client does not draw it.

The shots of cannons are now moving at approximately the same speed
as player shots (they used to be much slower).  Cannons also fire
a little more often.  (Maybe this should be made optional?)

Smart missiles now try to avoid targets and treasures.

Servers now can have a motd which players can read while they are
connected to the server.  The client has a pager with scrollbars
for easy reading of the motd.  By default this server motd is displayed
as soon as the client has successfully joined a game.  This behavior
can be turned off by setting the -autoServerMotdPopup option to False.
Alternatively the client can ask for the server motd by selecting
the motd entry in the menu.
The default place to store the server motd is in LIBDIR/servermotd, but
this can be changed by the server option -motd.

The server now better handles games with more players and robots due
to improvements in the way player-object collisions are calculated.
However, due to the new wall collision routines which are slower
the server handles situations with lots of objects in the air slower.

A bugfix for initialCloaks thanks to Yves-Henri BERNE and Ramdane FERHATI.

Three new server options called initialAutopilots, initialEmergencyThrusts
and initialTractorBeams.

The number of initial items a player has when he starts on his homebase
can now be changed by the client, even when play already has begun.
This was done after effort by Kevin Pearcey and Ramdane FERHATI.

All of the server options with their current values can now be examined
by all clients.

A new server option called -distinguishMissiles.  If this option
is true (the default) then different types of missiles like smart,
heat or torpedo are drawn with different lengths.
Smart missiles have length 12, heat seakers have length 15 and
torpedoes have length 18.  Thanks to Tony Plate.
He also renamed "smarts" to "missiles" where applicable.



Users can now define their own ship shape with a few limitations.
The server has a new server option -allowShipShapes to enable
user-defined ship shapes (the default is to enable it).
The client has a new option called -shipShape <decription>.
Where description defines the edges of the ship.  When the ship
is drawn the edges are connected in the order they are listed
in the description, with lines connecting them.  The first and last
point are also connected.
For example, the following defines the default ship we all know so well:

    xpilot -shipShape '(3,1,2)(15,0)(-9,8)(-9,-8)'

Where the first parentheses surrounds a triple of numbers.
The first number of this triple denotes the number of points that
follow.  The second and third number of the triple define the two back
points of the ship, which are marked with the marking lights.
These two back points also determine where the thrust of the ship
originates, namely at the mean of these points.
All of the points follow, each one surrounded by parentheses.
The first point should be the top point of the ship as this is the
point where shots originate from (otherwise the ship will kill itself
by its own shots).
The ship shape is defined as if it was rotated 90 degrees to the right.
The definition should meet some requirements to enforce users to define
a ship which is not too small or too weird.  These restrictions are
arbitrary and open to discussion.  Currently they are as follows:
  1) each ship should have at least three different points and not more
     than sixteen points.
  2) at least one point should be eight or more pixels left from the origin.
  3) at least one point should be eight or more pixels right from the origin.
  4) at least one point should be eight or more pixels above the origin.
  5) at least one point should be eight or more pixels below the origin.
  6) at least three points should be eight or more pixels away from the origin.
  7) no point may be more than fifteen pixels away from the x- or y-axis.
Hopefully this is understandable, otherwise it is unusable :-)
Some example ship shapes made by Mark Boyns are:
##spike
xpilot.shipShape: (6,2,4)(15,0)(0,2)(-9,8)(-3,0)(-9,-8)(0,-2)
##mushroom
xpilot.shipShape: (11,5,6)(8,0)(5,8)(3,12)(0,15)(0,0)(-8,3)(-8,-3)(0,0)(0,-15)(3,-12)(5,-8)
##star
xpilot.shipShape: (8,3,5)(15,0)(2,2)(0,15)(-2,2)(-15,0)(-2,-2)(0,-15)(2,-2)
Stig Sther Bakken adds:
##Milennium Falcon
xpilot.shipShape: (16,5,6)(14,2)(14,4)(2,10)(-5,10)(-10,8)(-12,3)(-12,-3)(-10,-8)(-5,-10)(9,-11)(10,-8)(7,-8)(14,-4)(14,-2)(4,-2)(4,2)
Someone has to make a shipshape editor! :-)
(And we need an archive of nice ship shapes.)
Andy Skinner adds:
xpilot*shipShape: (4,1,3)(15,0)(-9,8)(0,0)(-9,-8)
## squatty
xpilot*shipShape: (6,1,5)(8,0)(-8,12)(-4,4)(-8,0)(-4,-4)(-8,-12)
##Y-wing
xpilot*shipShape: (16,5,11)(14,0)(5,5)(6,2)(0,2)(0,8)(-13,8)(-13,4)(-4,4)(-6,0)(-4,-4)(-13,-4)(-13,-8)(0,-8)(0,-2)(6,-2)(5,-5)
##side wings
xpilot*shipShape: (15,5,9)(15,0)(-4,-3)(-4,-6)(0,-6)(0,-8)(-12,-8)(-12,-6)(-5,-6)(-5,6)(-12,6)(-12,8)(0,8)(0,6)(-4,6)(-4,3)
##fishy
xpilot*shipShape: (8,2,6)(15,0)(8,4)(-15,-8)(-8,2)(-4,0)(-8,-2)(-15,8)(8,-4)

Enough examples I think :)

Most of the work on user definable ship shapes has been done
by Scott W. Adkins.



There is a new server option by Harvey Thompson called: -mineFuseTime.
It specifies the time after which mines also explode if the player
who dropped the mine approaches it.  The default is 0 seconds, which means
that this feature is not used.


A new server option -robotsTalk based on work by Greg Shebert.
We only need some more robot messages.


Changes to the way ECM and mines interact by Tony Plate:
(1) ECMs change mine ownership.  This is a pretty powerful trick, so
one ECM can only change the ownership of one mine (the closest one).
This option is controlled by the -emcsReprogramMines.
(2) Mine ownership is displayed on the screen, when you are close enough.
How close you need to be depends on how many sensors you have (with no
sensors, you have to be within 1.5 times the mine explode range, increases
by 0.5 for each sensor).  Whether or not the mines are displayed as a
hollow or filled circle depends on who originally laid the mine, not who
it is safe for.  Controlled by the server option -identifyMines.
(3) The client has a -showMineName option.


The maps2image package by Andrew Scherpbier has been added to
the contrib directory.  It takes a set of xpilot maps and builds a
single PBM image from them. Each image is labeled with the map's
name below it.  If you have a lot of xpilot maps, this is a simple way
to remind yourself of what the different maps are/look like.


New in 3.1.0 is the inclusion of TkXpInterface in the contrib directory.
TkXpInterface is made by Ramdane FERHATI, Yves-Henry Berne.
It is based on an early version of tkxpilot by Richard Oak.
It is a very nice and complete package presenting an easy to use
graphical user interface to configure an XPilot server.  It provides
handles to tune options, select and preview a map, and to startup
a server with this setup.  It also provides a nice interface to
the meta server and can startup a client connected to the server of
your choice.  It requires installation of the Tcl/Tk and maps2image.
See the accompagnied README in the contrib/TkXpInterface directory for details.
This is hot stuff!  Recommended.


Hmm, I'm not sure if I haven't overlooked some changes.  There are so many.


The manual page for the client has been updated somewhat by Harvey Thompson
and Tony Plate.


===============================================================================

Changes in 3.0.7 compared to 3.0.6:

1) New compile time option for Suns called SPARC_CMAP_HACK, which
   gives a very high speedup on some low quality graphics hardware.
   Faster display systems (e.g. those that do not have trouble
   displaying 12 or more frames per second) do not experience
   any benefit from this option.  This option needs the ERASE
   compile time option set to 1 (e.g. -DERASE=1).
   Be warned that this option needs further work and that it is
   currently not entirely riskfree in the sense that it should check
   if the display is local before trying to alter the colormap.
   We are hoping for some volunteer to improve this as we don't
   have Suns available to do it ourselves.
   Thanks to Steven Singer for providing extensive testing and analysis.
   His test report follows here:
    I've retimed the xpilot client response with various option setings -
    particularly to see the effect of my colourmap hack. I've also tried an
    alternate server we had on the system - Xsun - which doesn't include the
    NeWS support which our default server (xnews) does provide.
    I've tried to measure the maximum frame rate that can be obtained under
    the various settings. Note that I've increased the maximum frame rate as
    measured for ERASE on, my hack off to 23 fps (from 15 fps as I said
    previously). However, although it will cope some times at 23 fps, at
    other times it goes jerky. Anyway, here are the measurements:

    xpilots running on a remote machine - performace degrades badly if
    xpilots run on local machine.
    xpilot running locally on a SPARC 2 with a cg3 display card.
    xpilot 3.0.6 beta + my colourmap hacking.

    server	ERASE	My Hack	Max fps	Comments
    -------	------- ------- ------- -------------------------------
    xnews	Off	Off	~6	With fps>6 ~0.5 sec delay between
					key press and response.
    xnews	Off	On	~7	With fps>7 response lag as above.
    xnews	On	Off	23	Goes jerky if a lot of stuff (like
					landscape) on screen or for some other
					reason I haven't worked out
					(system load?). Generally on-on is
					smoother.
    xnews	On	On	>76	18 fps is smooth and playable but a
    					little flickery.
    Xsun	Off	Off	8-12	Difficult to say exactly as it copes
    					well when the server is going too fast.
    					Ie. there is no key lag, and the frame
    					update is fairly smooth
    Xsun	Off	On	????	As above, somewhere around 12 fps at a
    					guess.
    Xsun	On	Off	23	Similar to xnews response
    Xsun	On	On	76	Similar to xnews response

    Other notes
    -----------
    On the xnews server rotating dashes (shield and cloak) don't rotate.
    With ERASE On and the xnews server, the shield isn't erased properly.
    With ERASE On on either server the cloak isn't erased properly if your ship
    rotates.

    Glad he is our beta tester :-)

2) New server option called maxMissilesPerNuke, or maxNuke for short,
   which limits the number of missiles used per nuke and thusly allows
   players to fire more nukes at once if the player has enough missiles.
   Made by Stig Bakken.

3) New server options to set the initial number of items a player gets
   when he starts at his homebase.  Listed they are:
   initialFuel, initialTanks, initialECMs, initialMines, initialMissiles,
   initialCloaks, initialSensors, initialWideangles, initialRearshots,
   initialAfterburners, initialTransporters, initialLasers.
   Made by Stig Bakken.

4) Changes to the new server option targetKillTeam which kills all
   members of a team if their last target was destroyed.

5) Longer lasers as the current lasers were a bit weak.
   If this makes lasers too strong then we will shorten them again.
   Or better yet, make an option to set the laser length.

6) Targets can now be repaired if they are damaged.  The new target repair
   key is 'x' by default.  Made by Andy Skinner.

7) New features for talking made by Steve Davis.
   The mouse cursor is now warped to the talk window.
   The talk window now supports emacs-style line editing with
   CTRL-b, CTRL-f, CTRL-a and CTRL-k.
   A new user configurable fixed font for talking.
   Talk window editing has been cleaned up to make it easier to
   add more editing commands.

8) Changes to the player lock by Steve Davis.
   The arc is now red instead of blue.  This enhances visibility.
   The size is more visually appealing.
   Size is more linear to actual distance, and has a set maximum.
   Size scales with the map size.

9) New -motd option in the client thanks to Zack Evans.

10) -altTurnspeed and -altTurnresistance are now -altTurnSpeed and
    -altTurnResistance everywhere consistently.  Bugfix.

11) Important bugfix for dropping balls thanks to Gary O'Brien.

12) Very important bugfix for limited visibility maps like Tournament.
    Thanks to Geert Van der Plas from KU Leuven, Belgium.

13) Targets now also exist during non-teamplay as a form of destructable
    wall.

14) Bugfix for kicking a player.  Since 3.0.6 this also terminated
    the server.  This is in fact a more general bugfix.  In 3.0.6 if
    a players connection got corrupt then the server terminated.
    This is now also fixed.
    If I remember correctly this was reported first by Michael Eckardt.
    Not sure about the name, sorry.

15) Bugfix for nukes.  The nuke was counted as a shot on firing, but
    not when destroyed.  This caused serious problems in limted shots
    mode where players could not fire anymore after they had fired a couple
    of nukes.

16) Bugfix for tournament mode maps to correctly calculate when there
    is a draw.

17) Robots are now less handicapped by unusual directions of gravity.

18) Fix for NoQuit mode.  If NoQuit is set then the server does not quit
    even if no players show up ever.  Thanks to Dave Merrill.

19) Servers now report to the meta server whether they support sound or not.

20) Bugfix for calculating winner and loser teams in pizza mode thanks
    to Fred Hucht.

21) A new XPilot Map Transfer Protocol program by Andrew Scherpbier.
    It is in the contrib/xpmtp subdirectory and enables you to really
    conveniently upload, download, preview or generate maps to/from
    xpilot.sdsu.edu.  Check it out.

22) A new XPilot map generator program called wildmap.  It is in
    the contrib directory.  It generates nice maps and has a couple
    of options to tune the map characteristics like the map density,
    dimensions and so on.


===============================================================================

Changes in 3.0.6 compared to 3.0.5:

This patch contains only a few new features.  The majority of
the changes include a VMS port by Curt Hjorring, several bug
fixes and several speedups.  This is an incomplete summary:

* VMS port by Curt Hjorring.  See the VMS subdirectory.

* Configurable text message printing in client.

* New toggleShield option for the client.

* New clock option for the client.

* Speedups of the client drawing (e.g. modulus removed in Paint_world).

* Faster server response during login.

* Several fixes to prevent zombie players.

* A new (unfinished) client compile time option called ERASE which seems
  to noticably speedup the drawing of clients on some particular kind of
  slow display system (a SPARC with a cg3 card).  Faster systems don't
  experience any advantage of this option (even a slight decrease in
  performamce).  Thanks to Stephen Singer and Curt Hjorring for testing.

* Much faster gravity object processing during server startup thanks to
  two posts in alt.games.xpilot which I can't find anywhere anymore :(

* And a number of bug fixes and small tweaks.


===============================================================================

Changes in 3.0.5 compared to 3.0.4:

* XPilot will compile using G++ (tested on Linux and HPUX)
* Support for Thrusted Solaris CMW (thanks to Steve Marsden)
* Made it configurable if items can be picked up while shields are up
* Made it configurable if mines can be thrown while shields are up
* Added stun-gun option for laser
* Laser has been seriously weakened to balance the game
* Laser is no longer immediate (it is pulsed)
* New sounds for laser (thanks to Mark Boyns)
* Made robots less good at using lasers
* Bouncing against items while shields up now moves the item
* Right alignment of messages
* Messages are written character by character
* Default values for graphics (window size, num. colors) is
  reverted to 3.0.3 defaults
* Throwing/detaching mines now costs fuel
  (thanks to Fred & Michael from Duisburg)
* Might have fixed cloak bug (Charles, let us know if it works, ok? :)
* Bug fix for bouncing against objects in general (might have caused crash)
* Fix for drawing targets (which were drawn ugly and wrong)
* Fix for stealing a base from someone having game over (limited lives)
* Hopefully removed the bug that hung the server when a tank was released
* Several other small bug fixes

===============================================================================

