+Changes to Empire 4.2.22 - Tue Oct 11 20:23:51 UTC 2005
+ * Log player login, logout and session kill.
+ * Close loophole in assembly point rules that allowed players to find
+ all unowned sectors. The assembly point must now be owned by you
+ or an ally, or you or an ally must have a ship there.
+ * Don't let embarked land units fire flak.
+ * Fix display of the last connection's host when the host name was
+ not resolved.
+ * Fix change command to accept full length representative (password),
+ currently 19 characters. It used to chop off after eight
+ characters.
+ * Non-recon missions no longer establish contact to owners of
+ overflown sectors, because those missions do not identify the
+ owner. This matches info Hidden.
+ * The following events now establish contact:
+ - Catching a spy
+ - Sighting a ship when toggle coastwatch is off
+ - Spotting overflying planes
+ - satellite spotting land units
+ - lookout and llookout spotting ships, planes and land units
+ - Any relations change
+ * The country command's `temporary' state of disorder ended after
+ ten years.
+ * Telegram notifications could get lost in exotic circumstances,
+ e.g. while a second client attempted to connect. Abusable.
+ * Remove option SNEAK_ATTACK.
+ * Fix lboard not to let you board dead land units.
+ * Fix stack smash in bomb, drop, fly, paradrop, recon and sail.
+ Remote hole!
+ * bomb, drop, fly, paradrop, recon and sail now deal with EOF
+ correctly.
+ * Fix fly to let the player abort the command at the last prompt.
+ * Client no longer reads execute scripts in binary mode under
+ Windows.
+ * New econfig key listen_address.
+ * econfig key port can now be a service name. Service empire no
+ longer takes precedence over econfig.
+ * Client falls back to compiled-in host only if environment doesn't
+ supply one, not if it can't be resolved. Same for port.
+ * Oil derrick could extract slightly more oil than was in the ground.
+ * test command checked start sector for space and some other things
+ instead of end sector.
+ * convert now silently limits conversions to avoid exceeding maximum
+ population.
+ * shoot no longer limits you to 999 victims.
+ * 4.2.19 broke pin bombing commodities on some platforms.
+ * Don't block on output while update is pending. This is required to
+ ensure the update can abort commands.
+ * Commands submitted while the update is waiting for commands to
+ abort now fail.
+ * The force command no longer waits for the specified time. It
+ starts a scheduling thread instead, just like shutdown.
+ * Correct grammar and punctuation in output of version.
+ * Option SHIPNAMES is no longer optional.
+ * Fix output of qorder and sorder for ships with sail path.
+ * Don't change capital to agribusiness on retake. From Pat Loney.
+ * bdes prompt for new designation was messed up for empty bmaps.
+ * Client now supports pipes under Windows.
+ * Care for subtle Windows socket incompatibilities.
+ * Fix strength command not to lie about units reacting into
+ mountains.
+ * strength now yields the processor periodically, to keep the game
+ responsive.
+ * Schedule commands more fairly. Previously, a sufficiently fast
+ player could starve out the others.
+ * launch assumed plane maximum mobility 127 for calculating when
+ satellites will be ready to use.
+ * Drop support for for DCE threads.
+ * Drop support for pthread implementations lacking pthread_kill().
+ This includes ancient versions of OS X.
+ * Code cleanups.
+ * Minor info file fixes.
+ * The above includes major contributions from Ron Koenderink. Many
+ thanks!
+
+Changes to Empire 4.2.21 - Sat Jul 16 17:51:01 UTC 2005
+ * Don't let threads block on output to another player thread's
+ socket. Such blocking violates basic design assumptions and can
+ cause all kinds of grief. In particular, it causes player session
+ hangs under Windows with 4.2.20. Broken since the introduction of
+ flash and asynchronous telegram notification many years ago.
+ * Threads sleeping until a specified time could return early under
+ Windows. This could cause double-updates.
+ * Fix fallout damage (was broken in 4.2.19).
+ * Fix show sector s (was broken in 4.2.19).
+ * Fix deliver not to deliver friendly civilians into occupied
+ sectors.
+ * Fix mil duplication in board (was broken in 4.2.14).
+ * Fix stack smash in lrange, shoot and execute. Remote holes, and
+ the last one doesn't even require authentication.
+ * Fix crash bug in emp_config parsing.
+ * Fix buffer overruns in turn and shutdown.
+ * Fix second argument of shutdown.
+ * tele and turn now abort on EOF.
+ * Fix display of MOTD and game down message of maximum size.
+ * Correctly support telnet line termination on input. Previously,
+ carriage returns could slip into ship names and such.
+ * Fix flash not to lie about recipients that are just logging in.
+ * Remove obscure login command list.
+ * Convert client from obsolete termcap to terminfo, and clean up
+ terminal handling.
+ * New fairland option -h to print usage information. Improved
+ command line syntax diagnostics. Exit unsuccessfully on unknown
+ options.
+ * fleet and army now copy retreat orders of the fleet's or army's
+ first member with group retreat orders in the same sector.
+ Previously, they used the retreat orders of the first fleet or army
+ member, which is less than useful, and failed to take ownership
+ into account, which is an abusable bug.
+ * New xdump nation.
+ * Fix xdump not to disclose other countries' losses.
+ * Fix exit status of files program when it can't create files.
+ * Support UTF-8 encoded Unicode in human-human communications. This
+ affects MOTD, game down message, telexes, announcements and flash
+ messages. See new doc/unicode for technical details.
+ * New login command `options' for client/server option negotiation.
+ See new doc/clients-howto for technical details. The only option
+ so far is UTF-8.
+ * emp_client -u now requests UTF-8. This requires a terminal that
+ understands UTF-8.
+ * Fix news for land unit defensive support.
+ * Properly mark sea mines hit by retreating ships. Unmark mines
+ cleared by bridges.
+ * Fix diagnostics for unknown selector names in conditionals (was
+ broken in 4.2.20).
+ * Fix selector name clashes: rename ship selector mobquota to mquota,
+ land selector for reaction range limit from rad to rmax.
+ * Fix Windows services for relative file names on command line or in
+ econfig (was broken in 4.2.20).
+ * econfig keys ship_grow_scale, plane_grow_scale and land_grow_scale
+ are now float. This gives deities finer control over maximum
+ efficiency gain.
+ * Fix production command for sectors with 60% efficiency.
+ * Improve syntax of read for deities.
+ * Code cleanups.
+ * Some info topic names differed only in case, which loses on
+ case-insensitive file systems, and is a bad user interface even
+ when it works. Change those names. Rename deity command hidden to
+ peek because its info topic clashed with that of option HIDDEN.
+ * Thanks to Doug Wescott sheep are finally covered properly in info.
+ * Documentation fixes.
+ * Much of the above was contributed by Ron Koenderink. Many thanks!
+
+Changes to Empire 4.2.20 - Tue Mar 22 21:07:18 UTC 2005
+ * When units in different sectors marched, only units in the sector
+ with the highest-numbered unit were interdicted. A marching
+ non-spy made all marching spies visible to interdiction regardless
+ of location.
+ * Fix crash when interdiction sinks second ship in a sector. Broken
+ in 4.0.10.
+ * Fix an ancient bug in simulation of level production that clobbered
+ stack and could lead to low predictions, typically zero, which
+ screwed up budget. The bug had no effect until 4.2.19.
+ * When a sector revolts, and there wasn't enough space to liberate
+ all uw, the number of remaining uw got the wrong sign. Broken in
+ 4.2.14.
+ * Log and abort when LWP stack check detects stack smash. Server
+ option -s no longer implies -p.
+ * The native Windows build now supports -p and -s.
+ * The native Windows build now properly deals with ^C when running in
+ the foreground. It no longer prompts for a quit command on the
+ terminal.
+ * The meaning of server option -D in presence of -e is unclear.
+ Other programs only support -e. Remove option -D. Use -e
+ DIR/econfig instead of -D DIR.
+ * New server option -v shows version information.
+ * Fix the server's exit status with -h. Broken in 4.2.19.
+ * The linux-pthreads build failed to shut down on signals.
+ * Fix threading bugs in the native Windows build that made shutdown
+ unsafe and screwed up update aborting commands.
+ * New econfig key pre_update_hook to allow automatic, safe backup
+ right before the update. See scripts/backup for an example.
+ * The server now prints log messages to stderr as well when running
+ in the foreground.
+ * Fix potential buffer overflows in logerror() and lwpStatus().
+ * Server now requires POSIX signals. It no longer catches SIGUSR1.
+ * Remove support for ancient versions of HP-UX.
+ * Fix seeding of PRNG broken in 4.2.19.
+ * Don't reseed the PRNG in commands, it hurts randomness and could be
+ abused by crafty players.
+ * The server now makes the data directory its working directory.
+ This also gets rid of a bug that changed the file name of the
+ sector, power, nation and lostitems file unless econfig could not
+ be read.
+ * The server now writes a pid file. Thanks to Daniel O'Connor.
+ * More user friendly server startup: more errors are detected while
+ the server still runs in the foreground, which makes it possible to
+ complain to stderr and to exit unsuccessfully.
+ * Early log messages went to the log file in the default data
+ directory, even though econfig specifies another data directory.
+ * Specifying an econfig file on the command line that can't be read
+ is now fatal.
+ * Errors in econfig are now fatal.
+ * The server now refuses to start when it can't open data files.
+ * News are now sorted and expire sanely.
+ * Conditionals can now compare strings as well.
+ * Corrupted down and motd files could cause buffer overflows.
+ * Fix recon to let player abort at the flight path prompt.
+ * power no longer rounds worldwide numbers for deities.
+ * power command failed to recognize deities with non-zero country
+ number.
+ * Change output of production command so that columns are aligned
+ even for large values. Replace column wkfc by more useful column
+ avail.
+ * neweff and production miscalculated work when mil exceeded
+ population limit.
+ * neweff miscalculated work when the population limit exceeded 999.
+ * Fix capping of avail when a big city is torn down.
+ * Fix a bug in fire that allowed players to find all submarine uids.
+ * Maximum sector population is no longer hardcoded, and now covered
+ by xdump. Option RES_POP now affects mountains and plains as
+ well. From Ray Hyatt.
+ * Fix fina and news not to ignore errors in conditions.
+ * The native Windows build now requires Windows Sockets 2.
+ * The native Windows build now supports multiple instances of the
+ service. The ability to supply additional startup parameters to
+ the service has been removed.
+ * Implement fairland command line parsing under Windows.
+ * Improved fairland and emp_server usage message.
+ * Code cleanups.
+ * Minor info file and documentation fixes.
+ * Much of the above was contributed by Ron Koenderink. Many thanks!
+
+Changes to Empire 4.2.19 - Thu Dec 23 20:24:24 UTC 2004
+ * Fix order not to unload into full sectors.
+ * Fix scrap not to dump stuff into full sectors. Excess stuff is now
+ destroyed.
+ * Fix distribute not to conjure up a civilian when importing
+ civilians from a dist center that doesn't have any.
+ * Fix flak to resupply no more shells than actually needed.
+ * Fix rounding error in shoot that could result in more people shot
+ than actually there.
+ * Fix info and apro error handling. In particular, do not leak
+ potentially sensitive information on the server to players.
+ * info no longer shows a random matching page when the topic argument
+ is ambiguous. Instead, it lists all matching topics.
+ * Embarked land units and overflying planes no longer spot each
+ other.
+ * Fix show command to show only sectors that players can designate
+ (was broken in 4.2.18).
+ * Fix a rounding error in production command column `max'.
+ * Fix production command for overpopulated mountains and plains.
+ * Fix tradeship ally cut to match documentation.
+ * Fix plague, which was was broken in 4.2.14: it got stuck in stage I.
+ * Fix a bug in aerial sonar where ships could mask submarines with
+ the same number modulo 256.
+ * Don't allow bombing of subs that were not detected.
+ * MOTD and the game down message are now entirely separate: use `turn
+ motd' for the MOTD, and `turn on' and `turn off' for the game down
+ message. `turn on' no longer lets you edit the MOTD.
+ * Remove option NUKEFAILDETONATE.
+ * Option ORBIT is no longer optional.
+ * New option GUINEA_PIGS to control experimental stuff not ready for
+ prime time. If your deity enables this in a serious game, run!
+ * Many xdump fixes. xdump is now enabled by option GUINEA_PIGS.
+ * New ship and land selectors rflags, rpath.
+ * New ship selectors for order: xstart. xend, ystart, yend,
+ cargostart, cargend, amtstart, amtend
+ * New ship selectors for sail: mobquota, path, follow.
+ * New news selector uid.
+ * Implement command line parsing under Windows where it was missing.
+ * emp_server and and files print a usage message on command line
+ syntax errors.
+ * Fix how emp_server exits after being panicked by a signal. It can
+ now dump core when this happens.
+ * Fix bug in client that could crash it when a line of input starts
+ with '?'.
+ * Client now gets user name from environment variable LOGNAME if set,
+ else from system.
+ * The native Windows build can now run as a service.
+ * Redirecting client input now works under Windows.
+ * Code cleanups.
+ * Don't confuse work with loyalty in info Citizens.
+ * Minor info file and manual page fixes.
+ * Much of the above was contributed by Ron Koenderink and Marc
+ Olzheim. Many thanks!
+
+Changes to Empire 4.2.18 - Tue Sep 7 14:08:59 UTC 2004
+ * Fix info to accept abbreviated arguments under Windows. From Ron
+ Koenderink.
+ * Buying planes or land units loaded on something didn't work when
+ that something moved.
+ * Fix a bug that could produce update cascades with update policy
+ UDP_TIMES.
+ * Fix delivery and distribution to grant packing bonus only to
+ efficient sectors, just like move. Previously, delivery ignored
+ efficiency, and distribution behaved as if it were an efficient
+ sector without special bonuses.
+ * New sector selectors loyal, access; ship selectors radius, access,
+ xbuilt, ybuilt, builder, name; plane selectors radius, access,
+ theta; land unit selectors radius, react, nland, access; lost
+ selector id.
+ * Fix sector selectors che, che_target; plane selectors att, def;
+ nuke selector types; treaty selector exp; news selector time;
+ commodity selectors type, xbuy, ybuy.
+ * Option PLANENAMES is no longer optional.
+ * Ensure config parameter variables and their description in
+ configkeys[] are consistent. Inconsistencies there caused bugs in
+ the past. From Marc Olzheim.
+ * Complain if econfig file can't be read.
+ * Better messages for errors in econfig file.
+ * Remove unused econfig keys hard_tech and last_demand_update.
+ * New econfig key news_keep_days to configure news expiry.
+ * New econfig key anno_keep_days to configure announcement expiry.
+ * Fix announcement expiry. It leaked file descriptors and memory,
+ and could corrupt the anno file. From Ron Koenderink.
+ * New command xdump: experimental extended dump. Disabled for now.
+ * Bankers no longer round down debts, and they collect interest for
+ the time debtors are idling at sub-prompts.
+ * Loan interest calculation was broken at the due date and after a
+ last payment made at the due date. With luck, debtors could abuse
+ this to repay loans cheap (they couldn't gain cash, though), sharks
+ to purchase loans cheap, and creditors to collect excessively.
+ * Fix major bug in transport that allowed two cooperating countries
+ to duplicate items.
+ * Don't report interdiction damage twice when transporting planes.
+ * Fix message for attempting to transport a plane in a sector not
+ owned by the player.
+ * Fix confusing diagnostics when refusing to improve defense because
+ option DEFENSE_INFRA is off.
+ * Simplify confusing code in budget.
+ * Fix spacing in output of budget and show.
+ * Change one-way plane sorties to match ordinary sorties: offer
+ carriers regardless of the sector they're in, require carriers to
+ be efficient.
+ * Allow `realm #'.
+ * Don't print owner of incoming missile twice when intercepting it.
+ * Simplify constituent storage in product characteristics.
+ * Replace remaining `variables' leftovers; mainly in unit
+ characteristics.
+ * Remove leading spaces in deity unit dumps.
+ * Replace inappropriate uses of compile time constant ETUS by 60.
+ Deities don't change ETUS, they change etu_per_update by editing
+ econfig. This nonsense dates back at least to chainsaw 3.31.
+ * Change ship production (fishing and drilling for oil) to match
+ sector production. Ship efficiency and tech are now relevant, and
+ all people on board work. From Ron Koenderink.
+ * Code cleanups.
+ * Minor info file fixes.
+
+Changes to Empire 4.2.17 - Mon Aug 16 16:21:53 UTC 2004
+ * Fix seeding of PRNG under Windows. The bug made updates occur at
+ a predictable time in the update window. From Ron Koenderink.
+ * Close major loophole in drop that allowed players to determine
+ whether an arbitrary sector is sea, allied land, or other land.
+ * fly could fly civilians into occupied sectors. For consistency
+ with other means to move around stuff, this is no longer possible.
+ * Don't allow flying to a carrier that doesn't have space for the
+ planes. Previously, planes that did this were teleported home,
+ which could be abused.
+ * Close loophole in bomb that allowed players to find all
+ sanctuaries.
+ * Fix move and explore not to crash when moving civilians to a sector
+ without civilians, and interdiction destroys them all. Found and
+ debugged by Jeff Cotter.
+ * Fix printing of messages entered with turn command. '%' characters
+ could cause havoc, even crashes.
+ * Use sector's actual maximum population to compute chance of plague
+ outbreak. Previously, code used 9999 for big cities and 999 for
+ other sectors, and info Plague said 999. This makes all crowded
+ sectors equally vulnerable, even mountains, plains, and inefficient
+ big cities.
+ * Oil derricks no longer drill and deplete more oil than they can
+ hold. From Ron Koenderink.
+ * Version 4.2.15's coordinate and list parsing fixes reject trailing
+ junk. That's too strict. Silently ignore trailing junk as long as
+ it starts with whitespace.
+ * Version 4.2.15's selector rewrite broke some type literals,
+ e.g. `?des=n' was interpreted as `?des=newdes'. Change to prefer
+ type literals to selectors.
+ * Nightly build patches game to get repeatable PRNG results. From
+ Marc Olzheim.
+
+Changes to Empire 4.2.16 - Wed Jun 16 18:56:16 UTC 2004
+ * Previous version broke sector production when part of the work is
+ used for sector construction. Fix courtesy Jeff Cotter.
+ * Add rudimentary tests to nightly build. From Marc Olzheim.
+
+Changes to Empire 4.2.15 - Wed May 26 17:55:58 UTC 2004
+ * test command no longer asks whether to abandon the sector.
+ * explore command could generate a bogus `lost' record when it
+ regains an abandoned start sector.
+ * edit command now properly updates stats when editing tech level of
+ ships, planes or land units. A few of these stats can be edited
+ separately, which doesn't make much sense, and is now deprecated.
+ * edit command no longer accepts efficiency values that would destroy
+ the edited unit. Deities can still delete units by setting the
+ owner to zero.
+ * upgrade command used to charge an amount of avail that didn't match
+ info upgrade. Neither the implemented nor the documented amount
+ made much sense. Change it to 15% of the full build cost. Rewrite
+ info upgrade.
+ * Commands upgrade and build could be off by one when reporting
+ required avail.
+ * upgrade command reported rounded cost but charged unrounded
+ cost. Round cost of upgrade down to match behavior of build.
+ * Upgrading planes now preserves range when it is less than the
+ maximum range. It used to set it to the new maximum range.
+ * show bridge and show tower no longer claim bridge building requires
+ `workers' (whatever that is), since it doesn't.
+ * Replace option ROLLOVER_AVAIL by econfig parameter
+ rollover_avail_max, which is the maximum amount of avail that rolls
+ over. Previously, avail was limited after rollover, and even when
+ ROLLOVER_AVAIL was off. Fix that.
+ * Ships weren't always charged mobility for firing with option
+ NOMOBCOST off.
+ * Fix shell use of return torpedoes.
+ * designate no longer complains twice about deity only designations.
+ * Ensure designate zaps efficiency only when sector type really
+ changes.
+ * Fix strength to always report mines to deities.
+ * Remove option SHIP_DECAY.
+ * Fix bug in sonar that could crash or yield unpredictable results
+ near the true origin.
+ * Fix buffer overflow in flash and wall.
+ * Fix wall not to strip out first word of message.
+ * Change market and order to use item types instead of mnemo
+ characters internally.
+ * Market now reports sales with full item names instead of single
+ letter codes.
+ * buy now requires first argument to be an item name, as documented.
+ * production command handled production backlog incorrectly, failed
+ to limit production for production efficiency greater than one,
+ e.g. agribusiness, and incorrectly limited raw material
+ consumption. Also fix a rounding error. With help from Ron
+ Koenderink.
+ * Sector work was accidentally truncated to even.
+ * Fix coordinate parsing for large numbers when WORLD_X or WORLD_Y
+ don't divide SHRT_MAX+1.
+ * Properly diagnose over-long unit lists.
+ * Rewrite selector code. Old code let players smash the stack by
+ supplying too many conditions. New code properly rejects ambiguous
+ abbreviations and prefers exact matches. Selectors with names that
+ collide with types, like land units' rad and spy, now work. Selectors with
+ non-integral values, like land units' att, now work.
+ * survey used to display hundreds for everything but variables. Now
+ it displays hundreds only for values that can be large.
+ * Rewrite info survey. Document ability to survey properties other
+ than items and resources.
+ * Rewrite info build, since it was inaccurate and poorly structured.
+ * Fix info fire on required military. From Marc Olzheim.
+ * New fairland argument -R to set the PRNG seed. Print the seed.
+ This allows you to recreate the same world again.
+ * New facilities to deal with internal errors. These crash when the
+ server is started with -d, which is appropriate for debugging, and
+ potentially disastrous for running a real game.
+ * Automated nightly builds.
+ * Code cleanups.
+
Changes to Empire 4.2.14 - Mon Mar 22 09:04:12 UTC 2004
* Options NEWPOWER, NEW_STARVE and NEW_WORK are no longer optional.
* Gripe about unknown options in econfig.
* Added sstat command to list the statistics of your ships.
* Added nmap command to show a map of your sectors after their new
designations have taken place.
-