+Changes to Empire 4.3.13 - Tue Apr 15 19:03:11 UTC 2008
+ * Work around strptime() lossage on some systems. Fixes the parsing
+ of the schedule file there.
+ * New selector maxnoc for xdump version.
+ * Fix initialization of realms in newcap. Broken in 4.3.12.
+ * Fix add for status arguments active, god, delete. Broken in
+ 4.3.12.
+ * Info file, manual page and documentation fixes.
+
+Changes to Empire 4.3.12 - Wed Apr 2 05:35:06 UTC 2008
+ * Fix rounding error in update that could result in more babies than
+ food permits, and negative food.
+ * Fix a bug that could lead to unfair thread scheduling under
+ Windows.
+ * Fix ship and land unit missile interdiction and ballistic missile
+ interception to require a proper base. Before, missiles could
+ launch from anywhere for that.
+ * Launch bug fixes:
+ - Don't allow launching from unowned sectors.
+ - Don't destroy missiles stuck on foreign ships.
+ - Use up the supplies required for launching an asat only when it
+ actually launches.
+ - Don't ignore satellites' fuel use.
+ * Deity command newcap now requires its second argument (sanctuary
+ coordinates). Before, it tried to pick a suitable location when
+ none was given. The code implementing this feature had problems,
+ and it's not worth fixing: it is obscure, and rarely (if ever)
+ used: no conscientious deity would use it for a real game, and for
+ blitzes fairland does a better job.
+ * Keep track of flying planes properly. This fixes a number of bugs:
+ - While the bomb command awaited pin-bombing target input from the
+ player, other players could interact with the pin-bombers and
+ escorts as if they were sitting in their bases: spy them, damage,
+ capture, load, unload, or upgrade them, even get intercepted by
+ them. But any changes to those planes were wiped out when they
+ landed. Abusable.
+ - The bomb command could bomb its own escorts, directly (pin-bomb
+ planes) or through collateral damage, strategic sector damage,
+ collapsing bridges or nuke damage. The damage to the escorts was
+ wiped out when they landed.
+ - If you asked for a plane to fly both in the primary mission and
+ escort, you got charged fuel for two sorties instead of one.
+ * Plug memory leaks in plane interception.
+ * Fix trade not to let the buyer teleport satellites (not in orbit)
+ and asats to an arbitrary sector. Abusable, because abms
+ intercepted from anywhere, and satellites could be launched from
+ unowned sectors.
+ * The PRNG seed is now logged in the journal.
+ * Fix nightly build for Windows.
+ * Fix crash bug that bit when custom tables contained columns names
+ that existed, but weren't supposed to be in the custom table.
+ * New timestamp selector for commodity, country, game, loan, nation,
+ news, realm, trade, treaty to support incremental xdump.
+ * Deity commands newcap and add wipe the nation more thoroughly. add
+ no longer touches relations and flags for status active and god.
+ * New utility program empdump to export and import game state as
+ plain text. Check its manual for details, including limitations.
+ * Plane, ship and land unit stats are no longer stored as game state,
+ but recomputed from tech and base stats as needed.
+ * xdump ver is no longer a special case. Syntax "xdump ver" is now
+ deprecated. Use "xdump version *".
+ * Fire and torpedo cleanup and bug hunt:
+ - Plug memory leak in fire command.
+ - Fix ammunition use when returning fire: resupply could lose
+ shells when returning fire to multiple targets, and land units
+ were charged per target instead of just once.
+ - torpedo and fire no longer resupply shells automatically. The
+ latter used to resupply land units only.
+ - Land units no longer have to be in supply to fire actively, for
+ consistency with other ways to fire.
+ - Submarines with zero mobility can no longer interdict, for
+ consistency with other ways to torpedo.
+ - Fix bugs that let submarines without capability torp use
+ torpedoes to return fire and interdict.
+ - Fix torpedo command not to require a line of sight for return
+ fire and depth charges, and to use torpedo range instead of
+ firing range for return torpedoes.
+ - Active fire and interdiction didn't work for ships with zero
+ firing range, even though return fire and support did. No such
+ ships exist in the stock game.
+ - Let land units with zero firing range and non-zero firing damage
+ fire, for consistency with ships. No such units exist in the
+ stock game.
+ - Ships required different numbers of military to operate their
+ guns for the various kinds of fire. Unify to require 2*N-1
+ military to fire N guns.
+ - Ship ammunition use differed for the various kinds of fire.
+ Unify to use one shell per two guns.
+ - Forts could fire support even when there were not enough mil.
+ - Fix automatic shell resupply in several places to supply exactly
+ the shells actually fired, no more, no less.
+ * Change depth charges back to how they are documented and worked
+ before 4.0.6, mostly: require no guns, one military, do damage like
+ shell fire from three guns (before 4.0.6: two guns), use two
+ shells. In 4.0.6's model, they worked exactly like shell fire
+ (require guns and gun crew, non-zero firing range, damage and
+ ammunition use scales with available guns), except for missions,
+ which was a bug. Note that depth charge damage for all ships is
+ now like fire from three guns for two shells. No change for dd; af
+ did two gun damage for one shell before, and nas did four gun
+ damage for two shells.
+ * The edit command keys deprecated in 4.3.3 are now gone.
+ * Fix build not to screw up automatic dependencies on certain compile
+ errors.
+ * Fix a bug that could prevent repeated news from properly
+ aggregating into one news item.
+ * Properly initialize all bits in game state files, even those that
+ aren't used.
+ * Fix explore's test for stopping on a splashed bridge. The bug made
+ explore print to a bogus message.
+ * Fix spelling of symbol airburst in table plane-flags. This could
+ affect clients.
+ * Change designate not to check total cost before executing the
+ redesignation. The code implementing that was buggy and too ugly
+ to live. Designate doesn't cost anything in the stock game.
+ * Always charge land units at least as much mobility for assaulting
+ from non-landing ships as from landing ships. Before, marines lost
+ all mobility when assaulting from a non-landing ship, which could
+ be less than what the same assault costs from a landing ship (half
+ an update's worth).
+ * Fix LWP's stack initialization for -s. It caused crashes on some
+ systems.
+ * Fix confused and buggy bridge splashing code:
+ - Flying planes could be reported drowned.
+ - Pin-bombing a bridge head failed to collapse bridge spans for
+ lack of support, unless the pin-bombing caused collateral damage.
+ - Corrupt sector file could lead to infinite recursion.
+ * Relative names now work for econfig keys data and info.
+ * Fix utility programs to abort on internal errors. They used to
+ print a message and attempt to recover.
+ * Fix off-by-one in fairland that ate the last expansion island.
+ * Switch from CVS to git.
+ * Code refactoring and cleanup.
+ * Portability fixes.
+ * Info file, manual page and documentation fixes and updates.
+
+Changes to Empire 4.3.11 - Tue Jan 1 18:57:38 UTC 2008
+ * New sector selector elev. It's set by fairland, but has no effect
+ on the game. It can be useful for deities to customize a world
+ created by fairland.
+ * The client now copes with ids greater than 15. The Empire
+ protocol currently uses 14 ids.
+ * Rewrite the client's code to read server output during login. The
+ old code could write one byte beyond the end of the buffer
+ (theoretically a remote hole), got confused by long lines, and
+ lines that didn't arrive in one piece.
+ * Long country name, password or user name crashed the client.
+ * Fix xdump not to deny access to game state tables when maximum
+ minutes per day are exceeded.
+ * The server considers a country bankrupt when its treasury is
+ negative. Except when it doesn't. Fix that:
+ - report misreported countries with $0 as broke.
+ - If a command spent a few cents more than you had, commands requiring
+ money became unavailable even when rounding brought you back to
+ $0. But logging out and back in then bankrupted you.
+ - If your treasury rose to exactly $0, commands requiring money
+ remained unavailable.
+ - If you had $0, sectors didn't build and sectors and ships didn't
+ produce at the update.
+ * Fix a bug in trade that made your money evaporate when a trade fell
+ through because you couldn't fully pay. This bug was there since
+ the introduction of the market in 4.0.0. It got aggravated by the
+ removal of forced loans in 4.3.0.
+ * Fix printing of the new group in army, fleet and wing. Broken in
+ 4.3.5.
+ * Fix flash not to screw up the message when the first argument
+ contains white-space.
+ * Don't let planes intercept when they are stuck in foreign bases, on
+ inefficient ships or land units, or on land units loaded on ships
+ or land units.
+ * Fix a bug that made interception require petrol to be present even
+ for planes that don't use fuel (SAMs). Broken in 4.3.3. Air
+ defense missions weren't affected.
+ * fairland and setsector now limit fertility to 100 instead of 120,
+ like the other resources.
+ * Generalize the autonav hack for fishing boats so it covers oil
+ derricks as well.
+ * Fix bug in path command that made it swallow every other step.
+ Broken in 4.2.22.
+ * The execute command no longer supports redirections and execute in
+ batch files. Flaws in the Empire protocol make it next to
+ impossible for clients to implement that correctly. See
+ doc/clients-howto for an explanation.
+ * Rewrite much of the client's code for sending commands and
+ receiving server output:
+ - No longer blocks on sending commands. which could deadlock the
+ session.
+ - Fix race condition that could cause server output to be discarded
+ on EOF on standard input.
+ - Don't discard server output when reading standard input fails.
+ - Fix error handling for execute and other, more obscure cases.
+ - More rigorous error checking for redirections and execute.
+ Clearer error messages, too.
+ - Fix execute redirected to file or pipe. Believed to be broken in
+ 4.2.0.
+ - The client now creates files for redirections with the same
+ permissions whether the redirection is in a pipe or not. Before,
+ redirections without a pipe created files with no permissions for
+ group and others. This change may make your redirected output
+ visible to other users on your system. Use the usual controls,
+ like umask, to restrict permissions to your liking.
+ - Reject unexpected redirections (violating the protocol). Before,
+ they silently replaced the current one, and in the case of pipes
+ leaked file descriptors and memory.
+ - Redirections in batch files are not implemented. They didn't
+ quite work before, and could leak memory and file descriptors. A
+ flaw in the Empire protocol makes them next to impossible to
+ implement correctly.
+ - The execute command in batch files is not implemented. A flaw in
+ the Empire protocol makes this practically useless anyway.
+ - Old code leaked memory in various places.
+ - Unfortunate incompatibility with older servers: if you type the
+ EOF character (normally ^D) at an argument prompt, the session
+ hangs. Use the interrupt character (normally ^C) to get out.
+ * The client now supports options -h and -v.
+ * The client no longer zaps its command line in a lame attempt at
+ protecting users who foolishly specify passwords on the command
+ line. Zapping annoys system administrators and creates a false
+ sense of security.
+ * Journal entries are now flushed to disk right away when the server
+ is running in debug mode.
+ * Fix bugs in load that could make loading operations fail noisily
+ instead of silently on some systems.
+ * Server now reliably shuts down session when it receives an
+ end-of-file condition from the client. Before, it merely failed
+ the current command when it got it at an argument prompt.
+ * Fix bug in execute that could crash the server on some systems when
+ it prompts for the argument.
+ * Fix bug that let you check whether a non-allied carrier is
+ efficient enough for takeoff when one of your planes got stuck
+ there somehow.
+ * Fix bug that let you attempt to escort a one-way mission to a
+ carrier with non-light, non-interceptor escorts. Such planes don't
+ fit on carriers, and the command then failed with a bogus error
+ message. Before 4.2.17, the planes flew, and the escorts were
+ teleported home.
+ * Change the rules for fitting planes on ships slightly, so that the
+ order of loading no longer matters. Choppers and x-lights can now
+ use plane slots even when not light. X-light choppers, which don't
+ exist in the stock game, can no longer use x-light slots.
+ * The server now keeps its log file open, just like the journal.
+ * New server option -R to set the PRNG seed. This is for
+ reproducible tests. Change the Windows-only service uninstall
+ options from -r/-R to -u/-U.
+ * Supply a real PRNG for Windows instead of the leaky water-pistol
+ Windows provides.
+ * Threads sleeping until a specified time could return early under
+ Windows. This could cause missed updates. Broken in 4.3.10.
+ * Fix missing newline in show updates.
+ * Power report didn't factor tech into power correctly. Broken in
+ 4.3.3.
+ * Code refactoring and cleanup.
+ * Info file and documentation fixes and updates.
+
+Changes to Empire 4.3.10 - Thu Sep 6 17:59:53 UTC 2007
+ * Bridge spans now cost $1000 instead of $2000, and bridge towers
+ $3000 instead of $7500.
+ * The Windows port now supports IPv6, but it still needs to be
+ enabled manually at compile-time.
+ * The custom table reader detects more errors.
+ * Do not leak world creation time in files and fairland, because
+ that facilitates attacks against the PRNG. This misfeature crept
+ into 4.3.0.
+ * Remove the ancient, crufty non-UCONTEXT system-dependent LWP code.
+ Using it required manual hackery since 4.3.0.
+ * Plug file descriptor leak in add command.
+ * Don't kill player connections violently when their thread appears
+ to be hung. Threads being aborted by update or shutdown could be
+ misidentified as hung, and the violence could lead to resource
+ leaks, locked out updates, and corrupted game state.
+ * Fix LWP to reliably wake up threads sleeping for a time. Before,
+ players with a sufficiently fast connection could starve out system
+ threads, including the update.
+ * Fix a class of bugs that made commands behave differently while the
+ update is attempting to take control:
+ - No MOB_ACCESS mobility was gained.
+ - Telegrams were miscounted.
+ - Bulletins got misfiled as production reports.
+ - The navigate command ignored sail paths.
+ - The declare command was more quiet, and declarations of war
+ failed silently when SLOW_WAR was enabled.
+ - Many messages got misdirected to bulletins.
+ Some of these bugs go back all the way to Empire 2, ca 1995.
+ * New deity command reload, effect similar to SIGHUP.
+ * Not voting for a demand update no longer lets you veto further
+ demand updates. This feature was flawed (it encourages players to
+ vote late so that they can tactically vote no and thus build up
+ veto rights), virtually unused, and buggy. The edit command still
+ accepts and ignores the country key 'U' for compatibility, but it
+ is deprecated.
+ * Fix zdone not to claim to have triggered an update when they're
+ disabled.
+ * New update scheduler and ETU clock:
+ - New schedule file. See doc/schedule for how to use it. Replaces
+ econfig keys update_policy, adj_update, update_times, hourslop,
+ blitz_time. A change of schedule does not require a server
+ restart.
+ - The force command can no longer force updates in the future.
+ Edit the schedule file for that.
+ - New command show updates to show the update schedule. Obsoletes
+ the update command.
+ - New xdump game and xdump updates.
+ - New utility program empsched to help test update schedules.
+ - Replace option DEMANDUPDATE and econfig key update_demandpolicy
+ by econfig key update_demand.
+ - econfig key update_demandtimes no longer applies to scheduled
+ demand updates.
+ - You now receive new BTUs at the update in addition to login.
+ - You now always gain the same BTUs and MOB_ACCESS mobility per
+ turn, even when the update schedule changes, updates get missed,
+ or unscheduled demand updates run.
+ - Remove the mobupdate command, because porting it to the new ETU
+ clock is not worth it.
+ * Redesign of synchronization between commands, update and shutdown,
+ and how updates are triggered:
+ - Simplify update to a single thread waiting for the trigger.
+ Before, three update threads had to perform a carefully
+ choreographed dance to make updates happen. The dance relied on
+ thread priorities for correctness, which are only implemented by
+ LWP. With pthreads and under Windows, demand updates were prone
+ to two update threads starting up concurrently. Even with LWP,
+ forced and demand updates could lead to double updates.
+ - Use a lock for synchronization: commands take it shared, update
+ and shutdown take it exclusive. This makes update and shutdown
+ block until all aborted commands terminated and gave up their
+ lock. Before, they proceeded blindly after waiting two or one
+ seconds respectively, which was cheesy and unsafe.
+ - New commands no longer fail while the update is pending, they are
+ delayed until after the update.
+ - New commands can no longer start during shutdown. Before, they
+ could, but risked getting killed violently, possibly corrupting
+ game state.
+ - Fix command execution so that commands blocked in writing
+ redirections are abortable. The bug allowed players to delay
+ update and shutdown indefinitely.
+ - Fix shutdown not to let player threads block on output. This
+ let players delay shutdown indefinitely.
+ - Fix reading of player input not to block again after update or
+ shutdown aborted it. The bug allowed players to delay update and
+ shutdown indefinitely.
+ * Thread priorities are only implemented by LWP and no longer used.
+ With LWP, they let players with a sufficiently fast connection
+ starve out the threads that clean the lost file and kill idle
+ connections. Drop them.
+ * Show nuke rounded required research incorrectly.
+ * Log unprintable characters as octal escapes rather than question
+ marks in the journal file.
+ * The files program no longer changes permissions of existing files.
+ * The files program now creates all files with permissions ug=rw and
+ all directories ug=rwx, modified by umask.
+ * Fix a bug that could make arm, disarm and nuke detonation work with
+ a used-up nuke instead of the armed one. This could be abused to
+ detonate nukes multiple times. Broken in 4.3.3.
+ * Fix nuke detonation output for zero blast radius.
+ * Plug memory leaks in thread code.
+ * Fix a bug that made LWP I/O wakeup unreliable.
+ * New march sub-command v for view.
+ * Journal was initialized before threads were, which was wrong.
+ * Fix server not to create a journal on SIGHUP when it is disabled.
+ * shutdown 0 now requests immediate shutdown instead of cancellation
+ of a pending shutdown. shutdown -1 now cancels.
+ * flash and wall no longer split long message lines.
+ * Fix a bug in collect that screwed up a fully collected loan instead
+ of deleting it. The screwed up loan could not be sharked or
+ collected, but it could be repaid.
+ * Remove the wait command, it's been broken and restricted to deity
+ since Empire 2, ca. 1995.
+ * Budget failed to take sector production into account for predicting
+ unit repairs. Before 4.3.6, this bug bit only when you fooled
+ around with budget priorities.
+ * When unit repairs are limited by materials, the efficiency gain is
+ now rounded down.
+ * Ship repairs outside harbors and plane repairs by carriers used to
+ consume commodities when and as far as available. Now, they
+ consume the same fraction of the real cost of each commodity,
+ i.e. commodity use is limited by the most scarce commodity.
+ Neither old nor new behavior make much sense, but the new code is
+ simpler.
+ * Code refactoring and cleanup, in particular to make the Windows
+ port less ugly.
+ * Portability fixes.
+ * Info file and manual page updates. All manual pages are now
+ installed in section 6.
+
+Changes to Empire 4.3.9 - Sat Jan 6 12:42:19 UTC 2007
+ * Fix declare to prevent the deity from changing relations for a
+ player to self. Allow the deity to set the relations of a player
+ towards the deity.
+ * Fix arm not to put the same nuke on multiple planes (broken in
+ 4.3.3).
+ * New option AUTO_POWER.
+ * Sectors now repair allied land units.
+ * Sectors now repair only own and allied planes.
+ * Fix repair of planes on foreign carriers: repair allied planes,
+ ignore the others. Before 4.3.3, carriers destroyed rather than
+ repaired foreign planes. Since 4.3.3, foreign planes were treated
+ as recoverable error.
+ * Fix automatic fortification of land units to use all excess
+ mobility even when mobility delta exceeds mobility maximum.
+ * Disable automatic fortification of land units when MOB_ACCESS is
+ on, because it is prohibitively slow then (broken in 4.2.13).
+ * Budget now shows level production (tech, education, research and
+ happiness) rounded instead of randomly rounded.
+ * Fix update not to randomly flush small level production to zero.
+ * Fix overly restrictive game file locking under Windows (broken in
+ 4.3.8).
+ * Fix navigate to charge mobility for sweeping mines without moving
+ (broken in 4.3.6).
+ * Code cleanup.
+
+Changes to Empire 4.3.8 - Fri Oct 20 18:30:28 UTC 2006
+ * Ships no longer produce stuff when the government is broke.
+ * Fix land unit casualties in revolts.
+ * Fix security units not to raid friendly che.
+ * Fix update sequence to ensure stopped sectors don't work on the
+ ships, planes and land units in the sector. Before 4.3.6, this bug
+ bit only when you fooled around with budget priorities.
+ * Fix canal loading (was broken in 4.3.0).
+ * Fix tend not to tend land units that could not be loaded.
+ * Make xdump command available before break, but deny access to game
+ state.
+ * Lock game files to prevent concurrent access by multiple programs.
+ fairland does not yet obey the lock.
+ * Fix production to consider sector item limit.
+ * Fix swapsector to update coastal flag correctly (broken in 4.3.0).
+ * Enhanced mapping sub-commands in move, test, explore and transport.
+ * Code cleanup.
+ * Info file fixes.
+
+Changes to Empire 4.3.7 - Fri Jul 14 23:05:19 UTC 2006
+ * Sanctuaries are again fully populated with civilians (4.3.6 changed
+ the limit, but not the population). Food is now spread evenly
+ among them.
+ * Fix path finder to find shortest naval and aerial paths again
+ (broken in 4.3.4).
+ * transport's map sub-command now does the right thing for a unit
+ number argument.
+ * Fix bug in map sub-command of move, explore and transport that
+ passed junk to map command. Could theoretically crash.
+ * Food need reported by starvation was one short for sectors without
+ food.
+ * Change land unit ammunition use back to what it was before 4.2.3.
+ This lets deities customize ammunition use independent of damage.
+ It also substantially reduces ammunition consumption at high tech.
+ * navigation and march enhancements:
+ - Sub-command 'f' now takes an optional ship / land unit number.
+ - Mapping sub-commands now take an optional ship / land unit
+ number.
+ - New sub-command 'd' to drop mines.
+ * Let minesweepers retreat at their full speed (missed in 4.3.6).
+ * SUPER_BARS cannot be harmed, so don't interdict them.
+ * Don't let trains and non-trains march together for now, because the
+ march code isn't prepared for that.
+ * New mapping flag 'n' to show nukes.
+ * Mapping flag '*' now shows nukes as well.
+ * New command nbmap to bmap around a nuke. Overload command nmap to
+ map around a nuke when given a nuke argument.
+ * Fix an inconsistency that gave tactical bombers a small bonus
+ vs. flak when pin-bombing.
+ * Fix production to show the designation that actually produces, not
+ the designation as it is now (broken in 4.3.6).
+ * Fix accidental whitespace change in output of sdump, pdump and
+ ldump that crept into 4.3.5.
+ * Support user-defined sector types and products in custom tables,
+ not just customization of existing ones.
+ * Fix off-by-one bug in budget that used to be masked by budget
+ priorities until their demise in 4.3.6. The bug could crash the
+ game on certain systems.
+ * Code cleanup.
+ * Info file fixes.
+
+Changes to Empire 4.3.6 - Tue Jun 20 18:46:18 UTC 2006
+ * The shutdown command now terminates the server process correctly
+ even with LinuxThreads pthreads under Linux 2.4 and earlier.
+ * Cope with old versions of groff (broken in 4.3.0).
+ * You can now arm allied planes with nukes.
+ * Taking a nuke off a plane gives it to the sector owner again.
+ Feature was accidentally dropped in 4.3.3. Recipient must be
+ allied.
+ * Naval path went bananas for impassable end sectors (broken in
+ 4.3.1).
+ * New econfig key disabled_commands.
+ * New territory selector dterr, restricted to deities. The territory
+ command defaults to it for deities.
+ * Let land units attack as long as they have positive mobility,
+ except for high-mobility terrain (mountains), where the rules
+ remain as they were: land units need to have all the mobility
+ charged for the attack, not counting combat and moving in to
+ occupy. Rationale: Making sure your land units reach attack
+ positions with enough mobility left is a pain in the neck.
+ Requiring only positive mobility is friendlier, but allowed rushing
+ of mountains, so we make an exception there.
+ * Can typeset info pages as PostScript. Result isn't exactly pretty.
+ * Support disabling of infrastructure in infra custom table. Remove
+ redundant option DEFENSE_INFRA. show command now shows only enabled
+ infrastructure.
+ * Fix crash on empty argument in bmap, lbmap, lmap, map, nmap, pbmap,
+ pmap sbmap, smap (broken in 4.3.1).
+ * New, simpler sector mobility cost formula:
+ - The basic cost is still a linear function of sector efficiency,
+ with customizable cost at 0% and at 100%. The latter used to be
+ derived from the former. The show command shows both parameters
+ now.
+ - Mountains are no longer a special case.
+ - Tweak costs: mountains now range from 2.4 to 1.2 instead of 2.174
+ to 1.304, highway, bridge head, bridge span and bridge tower
+ range from 0.4 to 0.001 instead of 0.2 to 0.001, and wilderness
+ is 0.4 flat instead of 0.6 to 0.4. All sector types mortal
+ players can designate now cost the same at 0%. That's a feature.
+ - Road infrastructure now reduces cost up to 90%, linear in road
+ efficiency (used to be close to that, but non-linear). Same for
+ rail infrastructure, but 99%. Adapted from Ice World V.
+ - Double land unit minimum cost to 0.02, to slow them down on
+ highways.
+ - Change land unit cost penalty in newly taken land to an extra 0.2
+ instead of a minimum of 0.2, to reduce penetration depth.
+ * Reduce bridge head defense and collect value to match highway's.
+ * sinfrastructure displayed bogus rail mobility costs when there was
+ no rail.
+ * Retreating engineers took full landmine damage instead of half.
+ * Fix socket creation code not to print a null pointer.
+ * Fix login option code not to search beyond end of table (broken in
+ 4.2.21).
+ * Spy planes and satellites can no longer spot landspies.
+ * Spy planes can now spot surface ships at sea. They can no longer
+ spot land units loaded on ships or land units.
+ * Fix train retreat mobility cost, and don't permit retreat off rail.
+ * Change maximum population to 100 for plains (was 49), mountains
+ (was 99), bridge spans and bridge towers (was 999), and to 1000 for
+ the other habitable sector types (was 999).
+ * Let minesweepers navigate at the speed their stats indicate by
+ letting them sweep on the move at no extra mobility charge.
+ * Reduce chance for planes to abort from 100-eff (if eff<80) to
+ 80-eff. This should make it easier to punch through air defense,
+ flak in particular, and increase the risk of getting shot down.
+ * Ship and land unit flak intensity is now proportional to efficiency.
+ * Ship and land unit flak intensity is no longer scaled by the tech
+ of the owner of the last thing firing. It's still scaled by each
+ thing's tech.
+ * All ships and land units firing flak now spot the plane and are
+ spotted by the plane. Previously, spotting stopped as soon as flak
+ maxed out.
+ * Inefficient land units were overcharged mobility when reacting.
+ Broken when Empire3 changed land unit mobility use not to depend on
+ efficiency, except for supply units.
+ * New journal file to log complete player input plus selected
+ important events. Controlled by new econfig key keep_journal, off
+ by default.
+ * Fix unsafe shutdown on SIGINT and SIGTERM.
+ * Fix land unit path finding: paths weren't always cheapest (broken
+ in 4.0.2), and trains could be sent down paths without rail (never
+ worked). Also fixes unit reaction path cost.
+ * The custom table reader can now deal with sector, item, product and
+ infra tables more comfortably.
+ * Remove option BIG_CITY. Deities can customize the sect table to
+ get the same effect.
+ * Many more selectors can now be compared with names, not just
+ numbers. This includes nations, e.g. census ?old=Mirkwood. Does
+ not fully work for queer names like &&&.
+ * Let land units on missions support, just like ships.
+ * Don't let units loaded on a train react.
+ * Change update sequence to repair ships, planes and land units after
+ sectors produce. This makes repairs use new avail instead of old.
+ * Let players stop and start units.
+ * Remove budget priorities.
+ * Make plane report easier to understand.
+ * Change land report to show carriers in the same format as plane and
+ nuke report do.
+ * Code cleanup.
+ * Info file and manual page fixes.
+
+Changes to Empire 4.3.5 - Sun May 28 07:49:54 UTC 2006
+ * In conditionals, ~ compared to a string selector now stands for an
+ empty string.
+ * Change encoding of `not in any group' from " " to "". This makes
+ fleet=~ work. It also affects xdump.
+ * Fix plane capture code to clear wing.
+ * People now eat and starve exactly the same in sectors, ships and
+ land units. There used to be small differences, and civilians and
+ uw loaded on land units didn't eat at all. The starvation command
+ has been updated accordingly.
+ * Fix bug that makes it impossible to assault or board with land
+ units (broken in 4.3.4).
+ * Code cleanup.
+
+Changes to Empire 4.3.4 - Thu May 25 05:46:10 UTC 2006
+ * Don't use non-portable groff features (broken in 4.3.0).
+ * Work around potential crash bugs in command argument access.
+ * Plug major information leak through nation selectors (broken in
+ 4.2.21). The fix unfortunately exchanges the meaning of xdump
+ nation and xdump country. Sorry about that.
+ * Minimize redundancy between (mortal's) xdump nation and xdump
+ country.
+ * New nation selector rejects.
+ * xdump nation now shows foreign relations and no longer discloses
+ hidden relations.
+ * Fix crash bug in edit.
+ * Fix number of planes building in budget command (broken in 4.3.3).
+ * Selectors group, fleet, wing and army are now strings, and obvious
+ syntax like fleet#a works. xdump also shows the strings now.
+ Units not assigned to a group currently have group string " ", but
+ that may still change.
+ * Don't fold conditionals to lower case, because it breaks valid
+ conditionals like fleet#A.
+ * Mobility cost of a plane sortie is no longer limited to current
+ mobility + 32.
+ * Various formulas no longer truncate or round intermediate results.
+ * Interdiction mission charged twice the normal mobility cost for
+ torpedoes.
+ * Fix sail not to interpret negative x-coordinates as unsail
+ argument.
+ * Improved configure script.
+ * Code cleanup.
+
+Changes to Empire 4.3.3 - Tue May 16 21:35:47 UTC 2006
+ * power c can now show powerless countries. power c * works.
+ * Fortresses now require 5% efficiency to return fire and interdict.
+ * Range of ship return fire and support fire no longer depends on
+ efficiency.
+ * Fix heap smash in login command client. Remote hole!
+ * Properly destroy nukes on collapsing bridges. Before, you could
+ rescue them by building a new bridge or arming them on naval
+ planes.
+ * Nukes are now numbered like other units:
+ - New selector type replaces selectors number and types.
+ - New selector plane points to plane armed with this nuke.
+ - New selectors effic, mobil, tech, group, opx, opy, mission,
+ radius. Provided because all units have them; values are
+ currently not interesting.
+ - nuke command output redesigned.
+ - ndump output changed subtly: nukes are no longer sorted by
+ location, nukes in the same location no longer share id, and
+ nukes on planes are shown.
+ - transport nuke now works like transport plane.
+ * arm and disarm now accept the common plane syntax, not just plane
+ numbers.
+ * Fix arm to let you change an armed plane's air-burst/ground-burst
+ (broken in 4.2.6).
+ * territory no longer re-prompts when supplied with a bad argument,
+ it just fails.
+ * edit lets you edit stuff that is actually computed from other
+ state, like sector's coastal flag. This makes no sense and is now
+ deprecated. Stuff deprecated since 4.2.15 is now gone.
+ * Code cleanup.
+
+Changes to Empire 4.3.2 - Thu Apr 27 17:59:58 UTC 2006
+ * Fix security units' raid at the update (broken in 4.0.0, fixed only
+ for 100% units in 4.2.7). Back out 4.2.7's 2.5x deadliness
+ increase. Make sure empty units don't kill anyone.
+ * Fix bug in player_init(), which was most likely fatal on 64 bit
+ hosts. Broken in 4.3.0.
+ * Fix xdump not to disclose other countries' realms (new in 4.3.0).
+ * The order in which sectors were visited for `*' arguments disclosed
+ the real origin, fix. Mapping commands used to work around this
+ bug, until 4.3.1 exposed it there as well.
+ * Code didn't compile on some systems.
+ * Fix edit plane not to truncate large values for keys 'a' and 'd'.
+
+Changes to Empire 4.3.1 - Sat Apr 15 11:40:47 UTC 2006
+ * Fix check of game state on server startup (new in 4.3.0).
+ * sail now accepts a destination sector.
+ * Tend could send bogus bulletins (broken in 4.3.0).
+ * Plug memory leaks in mission command.
+ * Close loophole in navigate that allowed players to find all sectors
+ that are unfriendly or inefficient harbors or bridges.
+ * Server didn't start when default econfig was missing and user
+ didn't supply one with -e (broken in 4.3.0).
+ * Retreat condition 'h' (helpless) never worked, fix.
+ * Fix retreating mine sweepers to use mobility for sweeping.
+ * Fix retreating land units to hit mines with the same probability
+ and to take the same damage as in normal movement. Before,
+ hit probability was higher, and damage was lower.
+ * Ships could retreat into sectors owned by whoever made them
+ retreat, but not in their owner's sectors.
+ * Fix 'm' at the movement prompt of transport and test.
+ * Fix march and test not to apply conditionals to sectors mapped,
+ which led to spurious error messages.
+ * Fix break not to respect conditionals. The bug let players keep
+ sanctuaries.
+ * Fix retreat code not to respect conditionals. Attackers could
+ abuse this to suppress fleet and army retreat orders.
+ * Fix retreat and edit to zero-terminate retreat paths.
+ Theoretically abusable for gaining information.
+ * Fix format string crash bugs in load, spy and bomb.
+ * Fix the telegram editor: empty telegrams were broken in 4.2.21, and
+ ~p before the first line of text never worked.
+ * Fix ancient bridge building race condition that could break the
+ test whether the player can afford the bridge.
+ * Fix trade lot change detection in set command. Probably abusable.
+ * The pthread code now compiles under Solaris.
+ * navigate and march now permit any whitespace between route and
+ optional argument for radar, lookout, sonar, not just spaces.
+ * Fix canal navigation (was broken in 4.3.0).
+ * Info file fixes.
+
+Changes to Empire 4.3.0 - Sun Mar 19 08:13:10 UTC 2006
+ * version no longer pretends option SHIPNAMES still exists.
+ * Remove files auth and ban. They could be used to restrict client
+ address and user. Restricting user is useless, because players can
+ send whatever they want. Banning IPs is better done with a packet
+ filter. That leaves restricting deity IPs. Provide new econfig
+ key privip for that. Apply it to session kill as well as login.
+ * xdump escapes GUINEA_PIGS status:
+ - xdump is now enabled unconditionally.
+ - xdump sect now dumps selector coastal, because it can't be
+ reliably computed from other xdump information.
+ - New xdump realm and country. Realm information is now stored in
+ a separate file, with appropriate selectors.
+ - Reviewed for completeness and information leaks. See info xdump
+ for remaining issues. New treaty selector uid, nat selectors
+ relations, contacts. Removed useless selectors: news and lost
+ uid, nat dayno.
+ - Command syntax changed.
+ - xdump opt is no more, option information is now in xdump ver.
+ - xdump can now dump meta-data.
+ - Header and footer changed to be more compact. You now need
+ meta-data to identify fields.
+ - Bug fixes.
+ - Documentation in doc/xdump.
+ * New econfig key builtindir.
+ * New econfig key custom_tables lets you customize configuration
+ tables without recompiling. Customizing tables other than unit
+ tables is not recommended for now. See doc/econfig for
+ instructions.
+ * Check configuration and game state are sane on server startup.
+ * Remove option NONUKES and NEUTRON. Deities can load a suitable
+ nuke table to get the same effect.
+ * Remove option DRNUKE. Use econfig key drnuke_const to control
+ whether nukes need research.
+ * Disqualify land units from performing missions while loaded on
+ ships or trains.
+ * Fix dump for strings without terminating zero.
+ * Fix login command option not to send an extra prompt.
+ * zdone now displays information about demand update vetoing.
+ * The Windows port now requires Winsock version 2.
+ * Remove econfig key powe_cost.
+ * version report now shows all the configurable settings of interest
+ to players.
+ * carg and lcarg now display people as well.
+ * ldump now dumps civ and uw as well.
+ * Fix dangling pointer dereference in dogfighting code.
+ * Tell sector owner when partisans take over. But don't disclose che
+ casualties then.
+ * emp_server, files, fairland now support options -h and -v.
+ * Simplify baroque version numbering to a single version number.
+ This affects output of version.
+ * New show item and show news.
+ * New build process:
+ - Follow the usual steps: configure; make; make install. The
+ latter is optional. The only file deities still have to edit is
+ econfig.
+ - Use GNU Autoconf for system configuration.
+ - Use GNU Make for portability and features.
+ - Support separate build trees.
+ - Remake out-of-date dependencies automatically.
+ - Remake out-of-date info files automatically.
+ - Flatten info directory.
+ - Formatted info files are no longer distributed in source tarball.
+ - Use LWP only with UCONTEXT. Autoconfiguring the other LWP
+ low-level options doesn't seem to be worth the effort, as
+ UCONTEXT should be pretty portable.
+ * Fix use of freed memory in sail.
+ * sail could let large ships enter big cities.
+ * Fix reject and accept not to require contact.
+ * Fix sharebmap and telegram to prompt for a missing first argument.
+ * Fix report to align column research correctly for deities.
+ * When the optional newspaper argument doesn't work because HIDDEN is
+ enabled, complain instead of ignoring it silently.
+ * When BLITZ is enabled, fairland no longer permutes country numbers
+ in newcap_script so that start islands are ordered from top left to
+ bottom right.
+ * Minimize output format differences between options:
+ - census shows column fall regardless of FALLOUT.
+ - show nuke now shows column res regardless of DRNUKE.
+ - report no longer suppress column status when HIDDEN is enabled.
+ HIDDEN limits status information like for the country command.
+ - relations column width differed depending on option SLOW_WAR.
+ Always use the wider format.
+ * Fix a bug in edit that suppressed the player notification telex on
+ military reserve change.
+ * Fix command dispatch not to let deities use commands that are
+ declared not to be available to them. The only command affected is
+ break.
+ * Fix the list command for visitor.
+ * econfig key m_m_p_d no longer applies to deities.
+ * Fix the origin command for country #0. Allow moving origin to
+ another country's origin. Allow deities to reset origin to
+ absolute 0,0. This turns origin into a superset of the offset
+ command. Remove offset command.
+ * Fix a bug that caused unpredictable flak damage when it should have
+ been maximum damage (was broken in 4.2.19).
+ * Don't store initial capital location, remove the associated nat
+ selectors xstart, ystart.
+ * Fix production command to consider resource depletion.
+ * Fix justification of coordinate output in cutoff and mission.
+ * Option UPDATESCHED is no longer optional. Disabling it didn't
+ work anyway.
+ * Support IPv6.
+ * Turn options into ordinary econfig keys.
+ * New econfig key start_cash.
+ * BTU regeneration now depends on the capital's work percentage.
+ * nation now supports an optional argument that lets deities ask for
+ somebody else's nation report.
+ * Fix nation to display SANCTUARY instead of VISITOR for countries in
+ sanctuary.
+ * Fix capital to let you use a regained sacked capital without
+ activating another one in between.
+ * Don't move capital when it is sacked.
+ * New ship capability canal, replacing obscure formula based on build
+ materials.
+ * You now need a capital to request a demand update.
+ * power now ignores landspies.
+ * Fix LWP stack checking.
+ * Clean up LWP, drop dead machine-specific code, fix portability bugs
+ in UCONTEXT code.
+ * census now shows the old owner instead of `*'. dump is unchanged
+ to avoid breaking clients.
+ * peek no longer prints the old owner.
+ * When a bombed land unit retreated, collateral damage was applied to
+ the wrong sector.
+ * paradrop, drop and fly can no longer abandon the base sector.
+ * Tending foreign ships now sends a bulletin to the owner.
+ * Fix bug that permitted login for inactive countries, including ""
+ * Fix tend for spies.
+ * Change launch to fire all missiles selected at the same target.
+ Previously, it prompted for a new target after each missile.
+ * add, consider, build, launch and fire no longer re-prompt when
+ supplied with a bad argument, they just fail. Consequently, the
+ build command no longer lets you list types you can build. It
+ points to the show command instead.
+ * Fix add not to truncate country number.
+ * Fix selector coastal to be accurate at all times.
+ * Fix obscure bug in fairland: the sector added last to an island
+ wasn't considered coastal. Affected resource computation.
+ * Fix sector wiping in add command.
+ * Remove options NO_LCMS, NO_HCMS, NO_OIL. They were broken in many
+ ways. Custom configuration tables should become a serviceable
+ replacement eventually.
+ * Client no longer freezes on long lines of server output.
+ * Fix uninitialized signal mask bugs.
+ * Fix Windows service code's treatment of -e.
+ * Sub interdiction disclosed sub owner through news' actor selector.
+ * country reports on all countries, but carefully limits information
+ disclosed to mortals. Output format changed.
+ * Market no longer forces sellers to grant loans.
+ * Fix potential crash bug in set command. Friendlier prompt and
+ diagnostics.
+ * Substantial code cleanup and portability fixes.
+ * Extend empfile abstraction to cover game configuration.
+ * Overhaul of game state storage.
+ * The above includes major contributions from Ron Koenderink. Many
+ thanks!
+
+Changes to Empire 4.2.23 - Sun Oct 23 09:28:26 UTC 2005
+ * Make version pretend option SHIPNAMES still exists, for the benefit
+ of clients that still depend on it.
+ * The change to conv in 4.2.22 could crash or compute incorrect
+ maximum population.
+ * Info updates missing in 4.2.22.
+ * A few code cleanups.
+
+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.
+ * Remove option GRAB_THINGS.
+ * Utility program files takes new option -f.
+ * Remove utility programs land, ore and perfect, which don't compile
+ since 4.2.0 (Oct '98).
+ * fairland no longer warns when it added resources, but when it
+ didn't.
+ * Fallout code could claim destruction of more items than actually
+ existed.
+ * Fix recursive resupply (resupply from supply land unit triggering a
+ resupply of the land unit) when just testing for how much can be
+ resupplied. The bug could have led to insufficient resupply.
+ * Fix recursive resupply not to consume all fuel in supply units. No
+ supply units consuming fuel exist in the stock game.
+ * Limit delivery and distribution thresholds to ITEM_MAX (9999).
+ Distribution threshold were previously limited to 10000, and
+ delivery thresholds to 65528.
+ * Limit items in sectors to ITEM_MAX (9999). Commands give and buy
+ used to limit to 9990. Market transactions and commands explore,
+ move, drop and fly to 32767. Limiting in autonav code (order
+ command) didn't work. Item delivery used to stop at 9990,
+ distribution at 9999. Food growing and sector production used to
+ stop at 9999. Grind, assault lunchboxes, demobilization, mine
+ sweeping and che liberating uw could theoretically attempt to
+ increase items beyond 65535, which would have been ignored
+ (destroying the increase).
+ * Properly saturate fallout at FALLOUT_MAX (9999). Previously,
+ fallout increases behaved inconsistently. Increases beyond 65535
+ could get ignored, or fallout could saturate at 9999, or it could
+ overflow at 65536 (that would take quite some nuking, though).
+ * Properly saturate mines at MINES_MAX (65535). Previously, a mining
+ operation that would have gone beyond 65535 was ignored.
+ * Fix `are we loading or unloading' tests for load, unload, lload and
+ lunload.
+ * Fix editing of land unit attack and defense values. Implement
+ editing of ship defense values. Contributed by Ron Koenderink.
+ * edit now edits che number and target separately.
+ * Fix edit to properly extend unit files. Contributed by Ron
+ Koenderink.
+ * Major internal reorganisation: Sectors need space for items,
+ deliveries and distribution thresholds. To save space, the
+ ancients invented `variables': a collection of key-value pairs,
+ missing means zero value, space for `enough' keys. This
+ complicates the code, as assigning to a `variable' can fail for
+ lack of space. Over time, `enough' increased, and for quite some
+ time now `variables' have been *wasting* space. Replace them,
+ except in unit characteristics, where they are read-only, and will
+ be replaced later. This also removes misfeatures like plague
+ outbreaks silently deleting deliveries.
+ * Remove disabled commands dissolve and mult. Remove configuration
+ parameters minmult and maxmult.
+ * trade command indexed an array out of bounds when attempting to
+ display the plague as commodity. Fix.
+ * New make goal interix. Contributed by Ron Koenderink.
+ * The type selector now prefers an exact match to a partial match.
+ ?type=sb now selects sb, not sbc, even when sbc happens to be found
+ first.
+ * Value of selector sell was always zero, remove it.
+ * Clean up selector code.
+ * satellite now displays all sectors owned by other players, and none
+ else. It used to display all but sea, mountains, sanctuaries,
+ wasteland and wilderness.
+ * map commands now display wilderness and plains owned by other
+ players as '?'. Radar commands now display all wilderness and
+ plains as '?'.
+ * Fix power timestamp for Windows. Contributed by Ron Koenderink.
+ * Make client abort the current command on ^C under Windows, as
+ everywhere else. Contributed by Ron Koenderink.
+ * Command line parser interpreted trailing whitespace as an another
+ (empty) argument. Ignore it instead.
+ * Properly declare stuff in headers, include proper system headers.
+ Remove all nested external declarations. Source code is now fully
+ prototyped. Enable appropriate gcc warnings.
+ * Fix several type errors. Some may have been show-stoppers on big
+ endian machines where sizeof(long) != sizeof(int).
+ * Remove pre-ISO C compatibility cruft (hey, it's been only fifteen
+ years).
+ * Various portability fixes. Some bugs may have been show-stoppers
+ when sizeof(long) != sizeof(int). With help from Marc Olzheim and
+ Ron Koenderink.
+ * Move some code to more logical places. Remove some unused code,
+ some of which was hard to port.
+ * The files program could print error messages to a log file in some
+ circumstances. Make it print to stderr.
+ * deliver can now change direction without changing the threshold.
+ * deliver now provides appropriate context when prompting for
+ thresholds.
+ * Login command play no longer ignores up to two arguments if there
+ isn't a third one.
+ * Fix payoff (was broken in 4.2.13).
+ * Capability fish didn't work together with capability oil.
+ * Fix and clarify plague outbreak chance in info Plague.
+ * Fix RES_POP maximum population in info Research.
+ * Fix info telegram and info announce on ~ escapes.
+ * Update info Selector to match code.
+ * Document all undocumented unit capabilities and stats.
+ * Document submarines' ability to carry landspies.
+ * Fix info shoot on security units.
+ * Various small info file fixes.
+ * Many fixes in the troff macro package for info files.
+ * Many fixes for translating info files to HTML.
+ * Many info file markup fixes.
+
Changes to Empire 4.2.13 - Fri Feb 13 22:12:36 UTC 2004
* Source code reindented and cleaned up somewhat.
- * Various info file fixes.
+ * Various small info file fixes.
* Fixed change requiring 254 BTUs even when not charging any
(BLITZ).
* Fixed tactical non-marine missile crash.
* Fixed spy unit detection chance for eff<100.
* Fixed output of sorder.
- * edit can now work non-interactively.
+ * `edit' can now work non-interactively. Contributed by Ron
+ Koenderink.
* Fixed and extended edit for sectors.
* Fixed use of errno.
* Minor security fix: doconfig now writes example auth entry as
* Removed bestdistpath. bestpath yields the same results.
* Renamed lstats to lstat for consistency and to match info page.
* Fixed non-portable fd_set * arguments of select().
- * New `map' flag `h' to highlight own sectors.
+ * New `map' flag `h' to highlight own sectors. Contributed by Marc
+ Olzheim.
* Fixed `sabo' reporting damage to player in deity coordinates.
- * New option ROLLOVER_AVAIL.
+ * New option ROLLOVER_AVAIL. Contributed by Drake Diedrich.
* Fix Windows server shutdown on reading "quit" from stdin.
- * Land units now fortify automatically at the update using excess
- mobility.
+ * Land units now fortify automatically when mobility plus growth
+ exceeds the maximum. With code from Marc Olzheim.
* Wandering che are less predictable.
* Land units no longer regenerate mobility faster while it is
negative.
* Fixed bug with scuttling a ship with units on it not scuttling the units
too.
-Changes to Empire 4.0.0 - Initial release
+Changes to Empire 4.0.0 - Wed Aug 21 1996
* Initial Wolfpack release - Long live the Wolfpack!!!!
* Cleaned up the build environment. Now all that is needed is to edit the
build.conf file, answer the questions there and type "make <arch>" to
* 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.
-