+Changes to Empire 4.3.30 - Tue May 22 18:34:52 UTC 2012
+ * Disable damage to base sector or ship when missile explodes on
+ launch for now, because damage done to other missiles there can be
+ wiped out in some cases. Broken in Empire 2.
+ * Fix navigate and march not to wipe out concurrent updates.
+ Abusable, but probably not worthwhile.
+ * Fix some buffer overruns in fairland. Has always been broken.
+ * Fix arm to require nuke and plane to be in the same sector. A
+ remote nuke got teleported to its plane when the plane moved.
+ Broken in 4.3.3.
+ * Change login command kill (used by client option -k) to kill less
+ ruthlessly: send a flash message and try to flush output, exactly
+ like a server shutdown does.
+ * Fix server shutdown to wait for player threads to reach a safe
+ state. Before, player threads raced with shutdown, and failed to
+ update the treasury, record play time, and write log entries when
+ they lost. Bug goes back to Empire 2. Patched partially or
+ unsuccessfully in 4.2.10, 4.2.12, 4.2.20, 4.3.6, 4.3.10 and 4.3.23.
+ The race was hard to lose in practice, until an unrelated
+ "simplification" in 4.3.23 could get player threads stuck sending
+ output after shutdown aborted a command.
+ * Idle timeout changes:
+ - The grace period for clients to complete login and logout is now
+ separate from the idle timeout. Configurable with new econfig
+ key login_grace_time, default is 120 seconds.
+ - The idle timeout for visitors is now separate from the one for
+ players. Configurable with new econfig key max_idle_visitor,
+ default is five minutes.
+ - Fix the idle timeout when the connection gets stuck sending
+ output. Broken in 4.3.20.
+ - Idle timeout during execute now terminates the connection, not
+ just the execute command.
+ * Fix stack smash in build. Remote hole! Broken when Empire 2 added
+ the confirmation prompt.
+ * Fix stack smash in scrap and scuttle. Remote hole! Broken when
+ Chainsaw added the confirmation prompt. Additionally, the
+ confirmation prompt is misleading when the player supplies
+ conditionals. Redesign the flawed prompt.
+ * Fix execute's echo of the command. Broken in 4.3.28.
+ * The mobility cost of retreating a defending land unit was
+ calculated for an uninitialized sector. This could charge
+ incorrect mobility, prevent retreat, or, if the stars align just
+ right, crash the server. Broken in 4.3.6.
+ * Commands cutoff, headlines, land, lstat, motd, neweff, payoff,
+ qorder, sorder, and wall now behave like the other information
+ query commands when the player's connection can't take more output:
+ they pause to let other code run.
+ * Revised command permissions:
+ - arm and disarm no longer require money, for consistency with the
+ other commands to move stuff around.
+ - satellite no longer requires money, for consistency with lookout,
+ radar, sonar and skywatch.
+ - qorder, sorder, survey and test no longer require a capital, for
+ consistency with the other commands that report on stuff the
+ player owns.
+ - start and stop no longer require a capital, for consistency with
+ the other commands to control production.
+ - fortify now requires a capital, for consistency with mission,
+ morale and range.
+ - Anybody may now use country, echo and financial.
+ - Visitors can no longer use census, commodity, map, nmap,
+ sinfrastructure (useless without sectors), read (visitors don't
+ get any telegrams), and change (always failed).
+ - Players can no longer use map and nmap before break. This is
+ consistent with all the other commands to examine the
+ environment. It also prevents people from trying multiple
+ unbroken countries in a blitz to find the one with the nicest
+ vicinity.
+ - Players can now use resource before break, just like census.
+ * read could swallow the first telegram header when showing the
+ telegrams that arrived while waiting for the player to confirm
+ deletion. Broken in 4.3.29.
+ * Fix 'm' in path argument of explore, move, transport:
+ - Don't moan about deprecated argument syntax ('m' without a space
+ before its argument) even when there's no argument.
+ - Recognize the flags argument again.
+ Broken in 4.3.27.
+ * Market fixes:
+ - Command market is no longer available to visitors, because it
+ triggers execution of trades that have become ready.
+ - Fix a race condition that could cause commodity trades to be
+ executed multiple times. Abusing this to duplicate commodities
+ seems tricky, but possible. Broken in Empire 3.
+ - Don't expropriate sellers of units. POGO got the the money, the
+ telegrams and made the news, the seller got nothing. Broken in
+ 4.3.17.
+ * Login command quit and server shutdown could lose player output.
+ 4.3.23 tried to fix the shutdown case, but the fix was incomplete.
+ * Fix login command quit to really quit. It sometimes just swallowed
+ buffered input, at least on some systems.
+ * 4.2.22's fairer command scheduling failed to cover the execute
+ command. Fix that.
+ * When a client shuts down input transmission to log out, output
+ could get lost. Our client never does that.
+ * Don't skip post command treasury update and status notification on
+ EOF from player, after quit command, and when command is aborted by
+ server shutdown. An unluckily timed EOF or shutdown can deprive a
+ player of money gained from scuttling tradeships or sacking a
+ capital. Can be abused to build bridges and infrastructure free of
+ charge. Can also be abused to designate sectors for free, but the
+ stock game's sector types are all free anyway. Has always been
+ broken.
+ * Fix client not to send an empty line on player interrupt (normally
+ ^C) before the first command. This was missed in 4.3.26.
+ * Code and info page cleanup.
+ * Documentation fixes.
+
+Changes to Empire 4.3.29 - Fri Jan 20 19:20:20 UTC 2012
+ * drop and fly from carrier could fail to load last civilian or
+ military.
+ * Telegram and announcement changes:
+ - wire no longer loops to show announcements that arrived while
+ waiting for the player to confirm deletion.
+ - At most five seconds worth of messages are now squashed together
+ into one. Before, only the time between adjacent telegrams was
+ limited, not the total time.
+ - When telegrams arrived while read was waiting for the player to
+ confirm deletion, and we then showed them, we nevertheless
+ claimed "you have new telegrams" before the next command prompt.
+ Only with toggle inform off. Known bug since Empire 2.
+ - Fix read not to clobber asynchronous notification of telegrams
+ arriving while waiting for the player to confirm deletion.
+ - Fix wire not to reset number of pending telegrams with toggle
+ inform on. Broken when Empire 2 introduced toggle inform.
+ - The number of pending announcements was off when announcements
+ were squashed together.
+ - More careful error handling and logging.
+ * Ensure all of an update's output goes into a single production
+ report:
+ - Avoid splitting it up when the update is slow. Empire 2 already
+ did that for the number of pending telegrams, but not for read.
+ - Don't turn parts of it into BULLETINs. Autonav and sail could do
+ that since Empire 2.
+ * files now creates POGO with user interface flags beep, coastwatch,
+ sonar and techlists set, for consistency with add.
+ * Change newcap back to not wiping the country (it wiped since
+ 4.3.12). Additionally, leave levels and telegrams alone.
+ * Changes to deity command add:
+ - Require confirmation for unadvisable actions.
+ - Refuse to touch a country while it's being played.
+ - Don't crash on negative country number.
+ - Create deities with money, just like files creates POGO.
+ - Always reset the country completely, not just when adding a
+ player or a visitor.
+ - Rename argument "new" to "player". Keep recognizing "new" for
+ now, but deprecate it.
+ - Drop argument "active". If you really want to create a player
+ country without a capital, add the player country normally, then
+ activate it with edit instead of newcap.
+ - Drop the obscure sector check and wipe option. If you really
+ need to wipe out a country, there's much more to wipe than just
+ sectors.
+ - Drop the undocumented land unit destruction feature.
+ * Permit no-op country name change again. Accidentally outlawed in
+ 4.3.20.
+ * Plug a few minor memory and file descriptor leaks.
+ * Fix use-after-free when plane gets shot down or aborted in
+ dogfight. Broken in 4.3.27.
+ * Code cleanup.
+ * Info page and manual page fixes.
+
+Changes to Empire 4.3.28 - Sat Jul 16 11:30:53 UTC 2011
+ * Don't let POGO (#0) navigate dead ships, and march dead land units.
+ The ghosts even got sighted and interdicted, and could hit mines.
+ Has always been that way.
+ * llook can't see land units and planes loaded on land units anymore.
+ * Fix board to ignore land units loaded on land units when testing
+ whether a sector can board. Broken in 4.0.17.
+ * Fix transport to reject planes loaded on land units. The plane
+ remained on its carrier. When the land unit moved, the plane was
+ teleported right back to it. Broken since Chainsaw 3 added land
+ units.
+ * Fix lradar not to let land units loaded on land units use radar.
+ Broken since 4.0.0 added trains.
+ * Fix strength to ignore land units loaded on land units. Broken in
+ 4.2.0.
+ * Fix navigate and march to find paths longer than a few sectors
+ again (7 for 64 bit hosts, 3 for 32 bit hosts). Broken in 4.3.27.
+ * march sub-command 'i' now shows number of military and land units
+ loaded.
+ * New server option -F to force start even when state looks bad.
+ Risks crashes and further corruption, but gives deities a chance to
+ fix up a bad game state with edit commands and such.
+ * empdump -x no longer refuses to export game state that looks bad.
+ Gives deities another tool to fix up a bad game state.
+ * Land units loaded on land units fight che again, as they used to
+ before 4.3.26.
+ * When a land unit dies fighting che, land units loaded on it get
+ unloaded, and planes loaded on it die. Before, the update left
+ them stuck on their dead carrier. Impact like the next item.
+ Abusable. Broken since Chainsaw 3 added land units.
+ * The update no longer destroys ships, planes and land units for lack
+ of maintenance. Before, it left any embarked planes, land units
+ and nukes on their dead carrier. In this state, units behaved as
+ if their carrier was still alive, with additional protection from
+ the fact that a dead carrier can't be damaged or boarded. If
+ another unit with the same number got built, it picked up the stuck
+ cargo. The cargo got teleported to its new carrier when the
+ carrier moved. Abusable, but it involves going broke, so it's
+ rarely practical. Slightly more practical before 4.3.6 removed
+ budget priorities. Broken for ships and land units when Empire 2
+ added their maintenance cost, and for planes when 4.3.3 replaced
+ nuclear stockpiles by nuke units.
+ * Fix bogus internal error triggered by navigate and march
+ sub-commands 'r', 'l' and 's'. Broken in 4.3.27.
+ * Fix client not to reject redirections and execute containing
+ non-ASCII characters with a bogus scary warning when using UTF-8.
+ * Fix execute not to mangle non-ASCII characters in the argument when
+ prompting for it while login option utf-8 is on.
+ * Fix handling of non-ASCII and control characters in batch files.
+ * Conversion from UTF-8 to ASCII ate the character following a
+ replaced non-ASCII character. Buffer overrun possible if the
+ terminating zero gets eaten. Could happen in players, read, flash,
+ wall, and execute.
+ * Fix handling of empty commands:
+ - Time used was not updated.
+ - Mortal player wasn't logged off for game hours, game down, and
+ time limit.
+ - Notifications were delayed: going broke, becoming solvent, new
+ telegrams (toggle inform off only), new announcements, capital
+ lost.
+ * Minor tweaks to nightly build.
+ * Server's and empdump's sanity checking of configuration and game
+ state is now more rigorous.
+ * Deity xdump no longer dumps unused countries' realms.
+ * Remove option LANDSPIES. Deities can customize the land table to
+ disable spy units.
+ * Remove option TRADESHIPS. Deities can customize the ship table to
+ enable trade ships.
+ * Configuration table changes (builtin and custom):
+ - Rows must be in ascending uid order.
+ - Omitting rows in tables item, sect-chr and infrastructure is no
+ longer permitted.
+ - Custom tables now replace the builtin table completely. Before,
+ omitted rows defaulted to the builtin version, except at the end
+ of a table. Commenting out unwanted stuff just works now.
+ - Permit custom table product having fewer than 14 entries.
+ - Reject custom tables where customization has no effect (updates,
+ table, meta, all symbol tables) or where it's unsafe (news-chr).
+ - Input is checked more rigorously.
+ * empdump -i fixes:
+ - Don't touch plane file when import fails.
+ - Refuse import of incorrectly sized table instead of silently
+ creating one the server will reject.
+ - Replace old state completely. Before, omitted rows in the dump
+ defaulted to the old state, except at the end of a table.
+ - Input is checked more rigorously.
+ * Fix xdump updates not to dump bogus extra updates.
+ * Fix use-after-free when a plane got shot down or aborted by flak.
+ Broken in 4.3.27.
+ * Friendlier diagnostics in the build command.
+ * Fix build to set nuke's tech exactly like for ships, planes and
+ land units. It's not currently used for anything.
+ * Research required for nukes was slightly off sometimes due to
+ incorrect rounding.
+ * Bridge building required 0.005 tech less than advertised, fix.
+ * "show nuke" now obeys toggle techlists.
+ * Fix "show land s" to show columns xpl and lnd again. Broken in
+ 4.3.15.
+ * Code refactoring and cleanup.
+ * Documentation on custom tables and xdump updated.
+ * Info file fixes.
+
+Changes to Empire 4.3.27 - Sun Apr 17 11:36:29 UTC 2011
+ * License upgrade to GPL version 3 or later.
+ * Fix buy not to wipe out concurrent updates. Can be abused to
+ duplicate commodities.
+ * Don't let fighters, SAMs and ABMs intercept while on trading block.
+ * Don't let missiles interdict ships or land units while on trading
+ block.
+ * Fix client to log long input lines untruncated.
+ * Fix client crash for long input lines.
+ * info subject pages now mark unusually long pages with a !.
+ * The edit command keys deprecated in 4.3.15, 4.3.17 and 4.3.20 are
+ now gone.
+ * Fix give, setsector and setres not to wipe out concurrent updates.
+ * Fix explore, move, test, transport not to ignore spaces in path
+ arguments. Broken in 4.3.7. Deprecate use of 'm' without space
+ before its argument.
+ * Improvements to map drawing commands:
+ - Don't fail silently when asked to draw a map around an invalid
+ unit, explain the problem.
+ - Deprecate bmap flag "r". Use (a prefix of) "revert" instead.
+ - bmap flags following "t" are no longer ignored. However, info
+ pages previously documented an argument "true" in addition to
+ flag "t". To keep that working, keep ignoring flags following
+ "t" when they're bad. But deprecate that usage.
+ - Reverting the bmap no longer draws a map.
+ - Bad conditionals could make the commands misinterpret their first
+ argument.
+ - The commands now fail when they reject their second argument.
+ * The xdump syntax deprecated in 4.3.12 is now gone.
+ * Fix satellite to fail on bad conditionals instead of ignoring them.
+ * Journal improvements:
+ - Optional logging of output.
+ - Long lines are no longer truncated.
+ - Login phase input is now logged, too.
+ - Commands are now logged. Allows making sense of input without
+ context.
+ * Option BRIDGETOWERS is now disabled by default.
+ * Bridge towers now take 300 hcms to build, down from 400.
+ * Fix stop orders to expire even when the country is broke. Broken
+ in 4.3.8.
+ * Fix march and navigate not to advise on "legal directions" when
+ path finding fails.
+ * New path finder:
+ - Much faster, especially for distribution, i.e. where it matters
+ most. Speedups in excess of 30x have been observed for updates
+ taken from real games.
+ - Old land path finder leaked memory occasionally.
+ - Old land path finder overran buffers for very long paths. A
+ malicious player can arrange sufficiently long paths, but it
+ takes a lot of land. Distribution, the distribute command, land
+ unit reaction, and automatic supply now handle arbitrary long
+ paths. Commands explore, move, test, transport, march, navigate
+ and path now handle paths up to 1023 characters. Command
+ bestpath shows paths longer than 1023 characters with the tail
+ replaced by "...".
+ - Old sea and air path finder treated destinations as unreachable
+ when the best path was longer than 99 characters. Command sorder
+ now handles arbitrary long paths. Commands bomb, drop, fly,
+ paradrop, recon, sweep and sail now handle paths up to 1023
+ characters. Autonav considers up to 1023 characters at the
+ update. Planes can fly missions up to 1023 sectors from their
+ base.
+ * Automatic supply charged mobility for the path back to the source
+ instead forward to the sink.
+ * Make bestpath work for deities in foreign land.
+ * More robust savecore example script.
+ * Fix buffer overruns in the lookout, spy, map and nmap commands when
+ WORLD_X * WORLD_Y is not a multiple of 16.
+ * The path command's maps weren't always fitted to the path
+ correctly. Broken in 4.3.17.
+ * Land units no longer hit allied mines.
+ * Change sharebmap with yourself to do nothing instead of telling you
+ you're not friendly to yourself.
+ * You can now flash yourself. Enjoy!
+ * A race condition could make the flash command claim an ally was not
+ logged on when he was. Hard to trigger outside the lab.
+ * The flash command no longer prints "Flash sent" for deities. It's
+ annoying. It never did that for mortals.
+ * Plug memory leaks in mission code on a number of conditions:
+ - Submarines moving where own planes would interdict hostile
+ submarines
+ - Ground combat where countries hostile to one of the parties would
+ support if relations were right (allied to one party, at war with
+ the other)
+ - Ships or land units moving within hostile missile mission op
+ areas
+ - Any player action within marine missile mission op areas that
+ could trigger the missile owners' missions.
+ * Attack fixes:
+ - When you ordered a sector to attack with military, but lost the
+ sector before the attack was executed, and the new owner was
+ allied to you, the server got confused: it let the military
+ attack even though they were already dead, but not occupy.
+ - When you ordered a land unit to attack from an allied sector, and
+ the sector got lost before the attack was executed, the server
+ reported things as if you had owned the sector yourself. The
+ land unit still attacked when the new owner was also allied to
+ you. No more.
+ - When a land unit attacked out of an allied sector, its mobility
+ cost was computed as if the ally owned the land unit. Attacking
+ sectors old-owned by that ally was too cheap, and taking back
+ one's own was too expensive.
+ * Fix trade ships to pay off in own harbor. Broken in 4.3.17.
+ * Remove option SLOW_WAR. It hasn't been enabled in a public game
+ for years, and the code implementing it was buggy.
+ * Fix a bug in sail that limited the sail path to 27 instead of the
+ intended 28 characters.
+ * Fix race condition in transmission of flash and telegram
+ information messages that could double output and possibly crash
+ the server.
+ * Planes get to sweep and sonar only after flak and interception.
+ * Don't limit the radar command's range to fit its output into a
+ world map without clipping. The limiting goes back to Chainsaw 2.
+ * Make flak vs. pinpoint bombing consistent with ordinary flak:
+ - 4.3.6 reduced the plane abort chance on damage, but missed the
+ additional flak vs. pinpoint bombing. Fix that.
+ - Fix to charge mobility appropriate for damage.
+ * Prettier flak damage reporting.
+ * Fix bugs that could cause bmap updates from recon and satellite to
+ be lost.
+ * Fix lookout to properly report sector ownership to deities.
+ * Suppress bogus messages deities with non-zero country number got
+ when attempting to navigate foreign ships or march foreign land
+ units. Such deity use hasn't worked since Empire 2.
+ * Deities can no longer fly foreign planes. It didn't fully work
+ since Chainsaw 3, and can trigger internal errors since 4.3.11.
+ * Don't split lines over several bulletins. The read command
+ normally merges these bulletins, but if they are more than five
+ seconds apart (clock jumped somehow), we get a bulletin header in
+ the middle of a line. Broken since Empire 2.
+ * Don't beep when plane, land unit or nuke die on a collapsing
+ bridge. Not nice, because it could beep many times, and could put
+ beeps in bulletins. Beeping was added in 4.0.18.
+ * Minor improvements to nuclear damage reporting.
+ * When a deity dropped a foreign nuke, parts of the output went to
+ the owner of the nuke instead of the deity.
+ * When a player triggered a foreign missile launch (mission or
+ interception), and the missile exploded on launch, part of the
+ report went to the player instead of the missile owner. This
+ disclosed the missile owner's origin. Broken in Empire 2.
+ * When autonav reported to a ship owner that it can't load or unload
+ foreign civilians, it used the sector owner's coordinate system.
+ This disclosed the sector owner's origin. Abusable.
+ * When nuclear damage bounced off a sanctuary, the bulletin to the
+ sanctuary owner used the attacker's coordinate system. This
+ disclosed the attacker's origin.
+ * When a deity used sweep, lmine, sail or sabotage with a foreign
+ plane, land unit or ship, its location was reported in the foreign
+ coordinate system.
+ * When a deity asked for a foreign nation report, the capital
+ location was reported in the foreign coordinate system.
+ * Code refactoring and cleanup.
+ * Info file improvements.
+
+Changes to Empire 4.3.26 - Mon May 24 16:37:40 UTC 2010
+ * Land units loaded on ships or land units can no longer fight che.
+ * When foreign land units were present, a che revolt could damage
+ them instead of the defending land units. This could let defenders
+ survive the revolt. They were captured or blown up if che took
+ over the sector.
+ * Fix che revolt to damage only land units that actually fight
+ * Fix loading x-light missiles on ships without capability plane.
+ These ships could only use their x-light slots for x-light planes,
+ not their plane slots. Broken in 4.3.17.
+ * Update bmap when nuclear detonation makes wasteland.
+ * Fix fly and drop to report discarded cargo items correctly.
+ * New client option -s to specify server host and port.
+ * Hitting landmines could crash the server. When not, the damage
+ reduction for capability engineer was applied unpredictably.
+ Broken in 4.3.24.
+ * Fix retreat and lretreat condition 'c'. Broken in 4.3.16.
+ * coastwatch and skywatch could see too far. Up to one sector for
+ practical radar ranges.
+ * skywatch now reports satellite uids. The uid is required for
+ launching a-sats since 4.3.23.
+ * Fix client not to send an empty line of input before aborting the
+ command on player interrupt (normally ^C).
+ * Fix sabotage not to kill the spy every time. Broken in 4.3.17.
+ * Code cleanup.
+ * Info page fixes, manual page improvements.
+
+Changes to Empire 4.3.25 - Sun Mar 21 08:27:37 UTC 2010
+ * Hitting seamines could crash the server. When not, the damage
+ reduction for capability sweep was applied unpredictably. Broken
+ in 4.3.24.
+ * When an interdiction did damage other than collateral damage, the
+ planes that intercepted it from interdicted carriers used no
+ petrol. 4.3.24 fixed only the "no damage" case.
+ * Ship anti-missile defense failed to charge shells when the ship was
+ interdicted. The fix in 4.3.24 covered only launch.
+ * Fix a bug in navigate and march that let players lay mines free of
+ charge. Also fix them not to prompt for the number of mines.
+ * Missile exploding on launch could not damage its base if it was
+ armed with a nuke. Broken in 4.3.23.
+ * When a torpedo attack triggered a return torpedo, the news reported
+ it to be fired by the attacker instead of the defender.
+ * Interdiction attacked submarines with surface-only weapons. Broken
+ in 4.3.24.
+ * Fix a bug in lradar, path, radar, route, satellite, sect and survey
+ that could leak maps to other players. Broken in 4.2.0. Fixed in
+ 4.2.8 for bmap, lbmap, lmap, map, nmap, pbmap, pmap, sbmap and smap
+ only.
+ * files could clobber the game when reading confirmation fails.
+ * fairland no longer rejects small worlds without trying.
+
+Changes to Empire 4.3.24 - Tue Jan 26 21:29:14 UTC 2010
+ * The client sometimes hung under Windows when the server closed the
+ connection. Broken in 4.3.23.
+ * Fix navigate and march not to crash the server when a path argument
+ consists of a valid path plus whitespace. Broken in 4.3.7.
+ * When a client sent a blank line in the login phase, the server
+ crashed on some systems.
+ * Fix crash bug in bomb, drop, fly, paradrop, recon and sail. Broken
+ in 4.3.16.
+ * Fix bogus internal error on escort, recon, and satellite launch.
+ Mostly harmless, as error recovery worked fine. Broken in 4.3.23.
+ * Stop ship and land unit movement on interdiction even when it does
+ no damage.
+ * When an interdiction did no or only collateral damage, the planes
+ that intercepted it from interdicted carriers used no petrol, and
+ interdicted land units were immune to collateral damage.
+ * The limit for the number of sectors, ships, planes, land units,
+ nukes, and so forth is now large enough not to matter. It used to
+ be 32768 on common machines. The sector limit was introduced in
+ 4.3.12. World x- and y-size are still limited to 65536 on common
+ machines.
+ * News use much less space, and thus I/O. Space was wasted in
+ 4.3.12. Side effects of the change:
+ - Expiry of old news no longer updates news timestamps. Updating
+ timestamps was wrong, because it defeated incremental xdump news.
+ - The empdump utility can no longer update timestamps of imported
+ news. Unfortunate, as it breaks incremental xdump news.
+ * New news selector duration, the time span covered by this news item
+ in seconds.
+ * ABMs failed to charge supplies when their sector was the
+ intercepted missile's target. The stock game's ABMs use no
+ supplies.
+ * Ship anti-missile defense failed to charge shells when the ship was
+ the missile's target.
+ * Code refactoring and cleanup.
+
+Changes to Empire 4.3.23 - Sun Dec 13 16:34:49 UTC 2009
+ * Fix missile interception not to intercept tactical and marine
+ missiles attacking missiles or satellites. No such missiles exist
+ in the stock game. Interception of tactical ABMs could crash the
+ server. Broken in Empire 2.
+ * Missiles missing their target do collateral damage again. Was
+ disabled because of bugs in 4.0.18 for manual launch and in 4.3.16
+ for automatic launch.
+ * News reported victim as actor for sub-launched anti-sat and ABM.
+ * Defense value of missiles vs. ABMs and satellites vs. anti-sats
+ failed to improve with tech.
+ * Fix a bug that let missiles interdict ships outside their op area.
+ This could happen when a group navigating together was partly
+ inside the op area.
+ * Only bomb strategic and launch at sector can use nukes. Before,
+ they could also be used by missions, bomb pinpoint, and launch at
+ ships, but there were several bugs and inconsistencies, and the
+ code was messy. The arm command now rejects marine missiles in
+ addition to satellites, ABMs and SAMs, and clears the mission. The
+ mission command now rejects planes armed with nukes.
+ * Missiles exploding on launch pad no longer set off their nukes.
+ * The launch command now more accurately reports why a missile can't
+ be equipped. It no longer draws supplies automatically.
+ * Manually launched anti-sat now always kills when it hits, for
+ consistency with automatically launched ones.
+ * Don't permit nukes on satellites, ABMs and SAMs. Nukes on
+ satellites could be armed and disarmed even in orbit. Nukes on
+ ABMs and SAMs were lost without effect when their missile
+ intercepted. The stock game is not affected, because its
+ satellites, ABMs and SAMs all have zero load.
+ * Remove obsolete plane capabilities stealth and half-stealth. Not
+ used by the stock game.
+ * Penalize fighter combat value for any load, not just bombs. The
+ stock game's fighters can't carry anything but bombs.
+ * Make bomb work for non-tactical cargo bomber. No such planes exist
+ in the stock game.
+ * Revised cargo plane rules: a cargo flight can be either an airlift
+ or an airdrop now. Airlifts carry more cargo than airdrops. A
+ cargo drop or paradrop with a non-VTOL plane is an airdrop.
+ Anything else is an airlift. This makes paradrop loads consistent
+ with drop loads. Paradrop with VTOL transports now carries twice
+ the punch, and drop with non-VTOL transports hauls less than fly.
+ In particular, the stock game's tr can't drop guns anymore.
+ * Enforce plane selection rules more tightly:
+ - bomb command can select only planes with capability bomber or
+ tactical. Before, other planes with non-zero load flew along,
+ but their bombs were silently lost.
+ - sweep command can select only planes with capability sweep.
+ Before, other planes performed ordinary reconnaissance instead.
+ - drop command can select only planes with capability cargo.
+ Before, other planes flew along but dropped nothing.
+ * Fix paradrop to fail without destroying the paratroopers when the
+ player owns the target sector.
+ * Launching an anti-sat now takes the target plane as argument.
+ Before, it took a sector argument, and targeted the lowest-numbered
+ satellite there. Rather inconvenient when your own satellite masks
+ one of the enemy's.
+ * Remove option PINPOINTMISSILE. Deities can customize the plane
+ table to disable marine missiles.
+ * Ridiculously impotent nukes could do unpredictable interdiction
+ damage. No such nukes exist in the stock game.
+ * The production command could mispredict resource-depleting level
+ production. No such products exist in the stock game. In fact,
+ they'd be highly unusual.
+ * The update could crash or corrupt the game when a (misconfigured)
+ product depleted resource "none".
+ * Revamp the Windows port based on ideas stolen from Gnulib. Share
+ the code between server and client.
+ * Don't log out player when update aborts a command under Windows.
+ Broken in 4.3.20, and not fully fixed in 4.3.21.
+ * Fix accepting connections from hosts with "long" IPv6 address. The
+ internal buffer had insufficient space.
+ * Delay shutdown up to 3s to let player output buffers drain.
+ * Fix a race between main thread and player threads, which could
+ theoretically make the server crash on start.
+ * Clean up synchronization between commands, update and shutdown, and
+ when player threads sleep on I/O.
+ * Clean up the cruft that has accumulated in and behind the empio
+ interface, and, to a lesser degree, the empthread interface.
+ * Fix time difference underflows in pthread and Windows code. They
+ could potentially cause hangs, although none have been observed.
+ * Make budget's "Sector building" line look better.
+ * Make sector maintenance cost configurable. New sect-chr selector
+ maint. Capitals now pay maintenance regardless of efficiency.
+ * Overhaul show sect b.
+ * Fix mine production resource limit for sector peffic != 100. This
+ affects mountains in the stock game, but only with an impractically
+ large number of ETUs per update.
+ * Code refactoring and cleanup.
+ * Info file fixes and improvements.
+
+Changes to Empire 4.3.22 - Sat Apr 25 11:56:29 UTC 2009
+ * Fix a Windows client bug that could lead to hangs, at least with
+ some versions of the C run-time. Broken in 4.3.11.
+ * Allow building without curses terminfo. Highlighting in the client
+ doesn't work then.
+ * Really fix bomb not to wipe out plane updates made while it asked
+ for pinpoint targets. The fix in 4.3.21 didn't cover escorts.
+ * Fix tend land not to wipe out concurrent updates.
+ * Automatic supply fixes:
+ - Ships with just two shells could fire a torpedo to return fire or
+ interdict.
+ - Ships with just one shell could use their anti-missile defense.
+ - Land units were considered in supply even when they had not quite
+ enough supplies. Such land units could defend without penalty,
+ attack and react.
+ Broken in 4.3.20.
+ * Fix update to take dead units off carriers.
+ * Standalone client distribution built empire instead of empire.exe
+ for Windows. Broken in 4.3.0.
+ * Fix client to abort script execution on SIGINT.
+ * Fix Windows client not to hang on EOF on standard input when that
+ is a tty.
+ * Fix a client bug that could make it hang when EOF on standard input
+ follows an execute command closely.
+ * Seamines under bridge spans were disabled a long time ago, in
+ Empire 2. The drop command refuses to mine there. Change mine
+ command to do so as well.
+ * Seamines under bridge spans were mistaken for landmines by ground
+ combat, land units retreating from bombs, and non-land unit ground
+ movement.
+ * When a bridge tower collapsed, its landmines magically became
+ seamines.
+ * Don't log out player when he interrupts a command. Broken in
+ 4.3.19.
+ * Code cleanup and portability improvements.
+ * Info file and documentation fixes.
+
+Changes to Empire 4.3.21 - Mon Mar 9 21:34:52 UTC 2009
+ * Fix swapsector not to wipe out concurrent changes to the swapped
+ sectors.
+ * Fix a bug in crash dumping that could mess up the journal and, at
+ least in theory, mess up commands info, read, turn, and wire;
+ announcement expiry, and reading of econfig and schedule.
+ * Fix bomb not to wipe out plane updates made while it asked for
+ pinpoint targets.
+ * When bombing ships with a force containing both planes with and
+ without capability ASW, the bomb command could fail to report
+ presence of submarines, and could refuse to bomb ships when there
+ were only submarines.
+ * Leaving land units behind after a victorious attack could in some
+ cases wipe out changes made to them since the victory.
+ * The timestamp selectors added to commodity, load and trade in
+ 4.3.12 could lead to spurious command failures. None have been
+ observed in the wild.
+ * Don't log out player when update aborts a command. Broken in
+ 4.3.20.
+ * Code refactoring and cleanup.
+
+Changes to Empire 4.3.20 - Fri Feb 20 18:14:20 UTC 2009
+ * Option LOANS is now disabled by default.
+ * Option RAILWAYS is now enabled by default.
+ * Many fixes to automatic supply:
+ - Planes flying interception or support missions, abms intercepting
+ ballistic missiles, and the launch command for missiles and
+ anti-sats could all supply more shells than necessary, lose
+ shells, or conjure them up.
+ - Ships shooting down marine missiles could supply more shells than
+ necessary, or lose shells.
+ - Supply ships could conjure up shells when firing guns using
+ multiple shells, or launching torpedoes, or dropping depth
+ charges, or shooting down marine missiles. No supply ships
+ capable of doing that exist in the stock game.
+ - Supply engineers could conjure up shells when laying mines. They
+ don't exist in the stock game.
+ - load, lload and supply could supply land units with enough food
+ from the sector containing them to starve the sector.
+ - Sectors were charged too much mobility for moving supplies
+ sometimes.
+ - Land units serving as supply source no longer draw supplies
+ recursively, because the bugs there are too hard to fix to be
+ worth it.
+ - Defending and reacting units only checked whether they could draw
+ supplies, but didn't actually draw them.
+ - load, lload, supply, assault and board no longer supply land
+ units from ships carrying them. This feature, added in 4.0.14,
+ was inconsistent with other ways to supply.
+ - Don't use automatic supply to avoid starvation at the update. It
+ adds complexity to the update. How much good it does to players
+ is highly doubtful; certainly nobody can rely on it. It isn't
+ covered by the starvation command. Ships or land units could
+ steal enough food from their sector to make it starve.
+ - lmine could only fetch shells for engineers that use ammo. The
+ stock game's engineers all do.
+ The changes listed for load and lload are actually lies, because
+ supply has been disabled there since 4.3.17.
+ * Don't let an engineer lay mines while it is on a ship or land unit,
+ or in a foreign sector.
+ * Sectors and ships no longer need shells to fire flak.
+ * Use IPv4 and v6 only when suitable interfaces are configured.
+ * Fix turn off not to fail when the message is empty. Broken in
+ 4.2.20.
+ * Don't nag the deity about game hours restriction in force all the
+ time.
+ * Tell deity when the game is down, just like players. Also make the
+ information available in xdump, as game selector down.
+ * Corrupt mailboxes could crash the server.
+ * Fix reject accept. Broken in 4.3.4.
+ * If a player was at a prompt when the deity turned the game down, he
+ was allowed to enter one more command.
+ * Air defense is no longer separate from interception. Putting a
+ plane on air defense now merely changes where it intercepts.
+ Separate air defense added too much pointless complexity. Its
+ implementation violated design assumptions of the intercept code.
+ Because of that, the same plane could intercept both an air defense
+ mission and the planes that triggered it, and the damage it
+ received in the first interception was wiped out.
+ * Intercept the same all along the flight path. In each sector, any
+ country owning the sector, a surface ship or a land unit there gets
+ to intercept. Before, only the sector owner got to intercept,
+ except for the assembly point and the target sector. In the target
+ sector, any country owning surface ships or land units got to
+ intercept in addition to the sector owner. Thus, a sector owner
+ with surface ships or land units there got to intercept twice. The
+ sector owner did not get to intercept at the assembly point,
+ even when it was the target sector.
+ * Spotting rule changes:
+ - Ships and land units now spot overflying planes along all of the
+ flight path instead of just the target sector, and no longer
+ report allied planes.
+ - Planes now spot ships and land units only when flying recon or
+ sweep, and along all of their flight path instead of just the
+ target sector. It still takes a spy plane to identify ships and
+ land units.
+ - Planes now spot ships and land units in a sector even when all
+ planes abort there.
+ - Planes now spot all foreign ships and land units, not just
+ hostile ones.
+ * Fix SAM interception for intercepts other than the first.
+ * Fix air defense and flak over sectors allied to the planes. Air
+ defense was broken in Empire 2. Flak was broken in 4.2.8.
+ * Establishing contact by spotting planes from sectors didn't work.
+ * Fix reconnaissance patrols to use sonar when any capable plane is
+ present. Before, all planes had to be capable.
+ * Fix recon and sweep not to spy after all spy planes are gone.
+ * Fix a bug that made multiple clients running on the same Windows
+ machine interfere with each other. Broken in 4.3.11.
+ * Fix enforcing game hours for players already logged in. Broken in
+ 4.3.19.
+ * Fix distribution not to abandon a distribution center by exporting
+ the last military.
+ * Many fixes to load, unload, lload and lunload:
+ - Now usable for deities.
+ - Plug loopholes that let you steal foreign commodities by making
+ load/lload unload and unload/lunload load through use of negative
+ amount arguments.
+ - Fix not to let you give away civilians.
+ - You can't use lload in foreign sectors or lunload with foreign
+ land units anymore. Loading stuff in foreign sectors was
+ prohibited already for ships.
+ - lload and lunload now work on foreign land units only when
+ they're explicitly named by uid. This matches behavior of load
+ and unload.
+ - Fix to test relations of foreign object's owner to player instead
+ of the other way round.
+ * Make sure land units with maximum mobility can attack mountains.
+ * Fix land unit attack mobility cost. Broken in 4.3.6.
+ * Conditions comparing string-valued selectors like wing to unquoted
+ values are now interpreted more smartly. Before, unquoted strings
+ were prone to be interpreted as selector names even when that made
+ no sense. You still have to disambiguate truly ambiguous cases
+ like w=w for planes, e.g. as wing=w or w='w'.
+ * Fix reporting of shot spies in news. Broken in 4.3.16.
+ * Remove econfig key mission_mob_cost. Questionable feature, and
+ hasn't been used in a long time.
+ * Reserve and escort missions now have an op-area, like all the other
+ missions.
+ * Land units now react only when on a reserve mission. The lrange
+ command is gone. The edit command still accepts and ignores the
+ land unit key 'P' for compatibility, but it is deprecated.
+ * Fix a bug that could mess up mission op-area when the range of
+ ship, plane or land unit on the mission decreases, e.g. through the
+ range command.
+ * Reserve missions no longer give a bonus to reaction range.
+ * Info file fixes.
+ * Code refactoring and cleanup.
+
+Changes to Empire 4.3.19 - Sun Dec 7 23:15:34 UTC 2008
+ * LWP doesn't work with Darwin due to OS bugs, avoid it for now.
+ * Don't let ships double-retreat first on 'i' (injured) and then on
+ 'h' (helpless) when shelled.
+ * Fix a bug that suppressed the "sunk!" message. Broken in 4.3.17.
+ * Log out player when maximum time per day is exceeded. Before, he
+ could remain logged in with visitor privileges only, but once
+ logged out could not log back in.
+ * If a player was at a prompt when either game hours restriction
+ started or maximum time per day was exceeded, he was allowed to
+ enter one more command.
+ * Deitying a capital failed to charge money and report news. Broken
+ in 4.3.17.
+ * Overhaul accounting of play time, fixing minor inaccuracies.
+ * Fix parsing of 24:00 in econfig key game_hours and
+ update_demandtimes.
+ * New option RAILWAYS.
+ * Che ages just like military reserves (1% per 24 ETUs).
+ * Permit ships to assault the sector they're in.
+ * Sectors eating less than one unit of food don't make one unit of
+ food for free anymore. They still can't starve.
+ * New concept sector terrain. Deities can use it to make sectors
+ other than wilderness redesignatable. See sect.config for more
+ info.
+ * Represent play time in seconds rather than minutes. This affects
+ xdump: nat selector minused (counting minutes) is replaced by
+ timeused (counting seconds).
+ * Improved nightly build, with additional tests.
+
+Changes to Empire 4.3.18 - Sat Oct 18 18:39:17 UTC 2008
+ * Fix building of planes, land units and nukes with uids that have
+ never been used before. This could crash the server on some
+ systems in certain states. Broken in 4.3.17.
+ * Improved nightly build, with restructured and extended tests.
+
+Changes to Empire 4.3.17 - Sat Sep 20 16:07:44 UTC 2008
+ * Fix standalone client build for Windows. Broken in 4.3.11.
+ * Disable automatic supply of land units on load for now, it's
+ broken, and can be abused to duplicate supplies.
+ * Make trade show exactly what's on sale, remove option SHOWPLANE.
+ * Stop ships, planes, land units and nukes on violent takeover, just
+ like sectors.
+ * Wipe orders when ships, planes, land units and nukes are taken over
+ violently or given away peacefully. Fleet, wing, army and mission
+ were already cleared in many, but not all cases. Other orders were
+ never cleared: mission op-areas (visible in xdump), ship autonav
+ orders, ship sail path (including ship to follow and mobility
+ quota), land unit retreat orders, plane range limit, and land unit
+ retreat percentage.
+ * Fix takeover of stuff by attack, assault, board, lboard, paradrop
+ and pboard:
+ - Corrupt land unit file could lead to infinite recursion.
+ - Take over nuke armed on plane along with the plane. Broken in
+ 4.3.3.
+ - Taking over land units with negative mobility increased mobility
+ to zero. Ditto for planes embarked on ships or land units.
+ * Fix a bug that made set and xdump not recognize unused trade lots
+ as such.
+ * Fix giving away stuff by trading it:
+ - When an armed nuke is sold separately from its plane, take it off
+ the plane. You couldn't do that before 4.3.3.
+ - Give away nuke armed on sold plane along with the plane. Broken
+ in 4.3.3.
+ - Don't zero mobility of planes and land units on sold ships.
+ * Fix giving away stuff by unloading from its carrier: Give away any
+ nukes armed on planes (broken in 4.3.3) and land units loaded on
+ land units. The latter can't happen in the stock game.
+ * Fix giving away stuff by scrapping or scuttling its carrier:
+ - Fix up output.
+ - Disarm the nuke from a plane instead of destroying it.
+ - Give away any loaded land units and planes, too.
+ * Tradeship fixes:
+ - Fix scuttle to ask for confirmation when scuttling a tradeship in
+ an unsuitable sector even when the tradeship is pirated. Broken
+ in 4.2.13.
+ - Fix scuttle to require 2% harbor efficiency for a trade ship to
+ pay. Also require at least friendly relations.
+ - Make autonav refuse scuttle orders in unsuitable sectors.
+ * Clean up rules on where you can scrap stuff:
+ - Ships in own or friendly, efficient harbors (relations used not
+ to matter, contrary to info)
+ - Planes in own or allied, efficient airfields (friendly used to
+ work as well, contrary to info)
+ - Land units in any own or allied sector (relations used not to
+ matter, and you couldn't scrap them on ships)
+ Also tell player why something can't be scrapped instead of
+ ignoring it silently.
+ * Rewrite the broken code to move land units, planes and nukes along
+ with their carrier. The old code was a hack that didn't update
+ timestamps (so incremental dumps didn't pick up the movement), and
+ it didn't cover all uses. The update, in particular, was prone to
+ see cargo in old locations, which could screw up repairs.
+ * Expire lost items at the update instead of continuously.
+ * Replace econfig key lost_items_timeout by lost_keep_hours.
+ * Minor Windows threading fixes.
+ * Journal now uses human-readable names to identify threads.
+ * Ship and land unit load counters are no longer stored in game
+ state, because they duplicate information already there. Same for
+ the type of nuke loaded on a plane. Remove field nuketype from
+ xdump plane. Clients can simply find the plane's nuke instead.
+ The edit command still accepts and ignores the plane key 'n' for
+ compatibility, but it is deprecated.
+ * Ship and land unit load counts as displayed by ship, sdump, land,
+ ldump, ship selectors nplane, nxlight, nchoppers, nland, and land
+ selectors nxlight, nland are now reliable. They used to get out of
+ sync at times.
+ * Ship load counts now reflect what is loaded, not how it is stored.
+ For instance, if a light carrier, capable of carrying 4 x-lights
+ and 20 light planes carries nothing but 5 sams, we now have
+ nxlight=5, nplane=0 instead of nxlight=4, nplane=1.
+ * New cargo lists data structure to let code find loaded planes, land
+ units and nukes easily and efficiently.
+ * Revamped upkeep of lost file. It should be reliable now.
+ * Disable the ill-advised error recovery on sector access that swept
+ bugs under the carpet rather than recovering from them.
+ * Occupied sectors no longer revert to the old owner when all
+ military and land units go away. This feature was added in
+ Chainsaw 3. It wasn't integrated properly with the che code
+ (things went wrong when che killed all defenders, but couldn't
+ convert the sector due to its loyalty), and combat code (if an
+ attack killed off all local defenders and got defeated by reacting
+ units, the sector changed ownership anyway, silently).
+ * Include destination coordinates in interception and plane mission
+ messages.
+ * Client could misdiagnose redirections and executes as unauthorized,
+ or die outright. Broken in 4.3.11.
+ * Fix xdump realm to dump player instead of absolute coordinates.
+ Disclosed the true origin. Broken in 4.3.0.
+ * Fix spy to reliably avoid spying same sector more than once.
+ * The map drawing code could smash the heap when the world was
+ ridiculously small.
+ * When a satellite's launch trajectory was off, its coordinates could
+ get screwed up, which made it invisible in skywatch.
+ * Fix several bugs that made the path command screw up when the path
+ spans large areas.
+ * Fix the default size of the map shown by move, test and transport
+ sub-command M.
+ * Fix bugs that could make arguments in area or dist syntax miss
+ ships, planes, land units and nukes at the border of the selected
+ area, if that area spans the whole world. In sufficiently small
+ worlds, it could also make radar miss satellites and ships, sonar
+ miss ships, satellite miss ships and land units, nuclear
+ detonations miss ships, planes, land units and nukes, automatic
+ supply miss ship and land unit supply sources, ships and land units
+ fail to return fire, ships fail to fire support.
+ * Maps sometimes showed x-coordinates as three lines instead of two
+ unnecessarily.
+ * Improved nightly build, tests in particular.
+ * Code refactoring and cleanup.
+
+Changes to Empire 4.3.16 - Sat Aug 9 15:56:52 UTC 2008
+ * Production command incorrectly limited the number of graduates,
+ happy strollers, technological breakthroughs and medical
+ discoveries produced by a sector to 999. Broken in 4.2.15.
+ * Fix a bug in improve that could let you spend more money than you
+ have.
+ * Fix work command not to spend more mobility than requested, and to
+ round mobility use randomly instead of down.
+ * Commands demobilize, convert and work no longer let you spend more
+ money than you have. Commands demobilize and convert no longer ask
+ for confirmation before spending more than half your money. Saving
+ that feature would have been more work than it's worth.
+ * Remove undocumented key 'd' at bomb ship, plane and land unit
+ target prompts.
+ * Fix land unit flak when pin-bombed to match flak when overflown:
+ proportional to efficiency, and randomly rounded. Was missed in
+ 4.3.6.
+ * Don't permit bombing of embarked planes and land units.
+ * Fix capital maintenance to charge at 60% efficiency.
+ * launch command now requires only 40% plane efficiency, for
+ consistency with other ways to launch missiles.
+ * Disable collateral damage when automatically launched missiles miss
+ their target. Collateral damage was done even when the launch
+ failed or the missile got intercepted. It's been disabled for
+ manually launched missiles since 4.0.18, for the same reason.
+ * Fix a bug that corrupted the lostitems file. Broken in 4.3.12.
+ * Show command changes:
+ - Move product information from "show sect c" into new "show
+ product", and reformat it to be easier to understand.
+ - New column navigability in "show sect s".
+ - "show sect s" now shows the packing bonus type instead of
+ selected packing bonuses. "show item" shows the actual bonuses
+ for each type.
+ - "show sect b" now shows the usual values in addition to unusual
+ ones.
+ * Fix interdiction to obey op-area for missiles.
+ * Fix a bug that caused a stale sources.mk to be distributed in the
+ 4.3.14 an 4.3.15 tarballs. The latter does not build out of the
+ box because of that.
+ * Don't strip tab characters from quoted command arguments. Broken
+ in 4.2.21.
+ * shutdown commands now always take effect immediately. Before, they
+ could be delayed by up to a minute.
+ * shutdown could start multiple shutdown threads when you initiated a
+ shutdown shortly after cancelling one. This screwed up the timing
+ of the shutdown.
+ * Deity syntax of zdone changed, and is now documented in info.
+ * The threshold command could be tricked into accepting negative
+ thresholds.
+ * Fix designate to always write updated bmap to disk.
+ * Fix bomb to fail on empty <pin|strat> argument instead of flying
+ without bombs.
+ * Fix a bug in distribute that screwed up the current sector's
+ distribution center when the command got aborted.
+ * Commands arm, bomb, deliver, drop, fire, fly, paradrop, recon,
+ lmine, order, power, range, sail, shutdown, sweep and tend did not
+ honor command abortion at some prompts.
+ * Fix a bug in handling of EOF from client that could bite in the
+ following ways:
+ - EOF at target prompts for bombing commodities, ships, planes and
+ land units sent the server into an infinite loop that ate all
+ memory.
+ - EOF at sail's path prompt crashed the server.
+ - EOF at some prompts in deliver, designate, fly, morale, zdone,
+ attack and assault didn't abort the command.
+ Broken in 4.3.11.
+ * Selector terr is now the same as terr0 for mortal players, and
+ dterr for deities. This matches how the territory command works.
+ Unfortunately, this required us to rename xdump sect field terr to
+ terr0. Sorry about that.
+ * Fix bomb not to let you bomb dead ships and land units.
+ * Make the retreat command a bit more helpful on retreat conditions,
+ and make it fail on bad conditions.
+ * Fix the mapper scripts. Broken in 4.2.0.
+ * Fix flying commands not to let planes do double duty as escorts.
+ Broken in 4.3.12.
+ * When a minesweeper hit a mine after sweeping, the mine wasn't used
+ up. If it sank the minesweeper, the code accessed freed memory,
+ which could clobber the ship file or worse. Broken in 4.0.17.
+ * Don't let non-light units board ships that can't carry them.
+ * Capitals can now employ up to 1000 civilians instead of 999.
+ * Spy command changes:
+ - Spy now requires sector military. Before, presence of land units
+ was sufficient, but spies shot were only deduced from sector
+ military. If you lost more spies than you had sector military,
+ the rest came back from the dead.
+ - Spy no longer ignores non-sea sectors without civilians, military
+ and land units.
+ - Remove columns lnd, pln from spy report. The values didn't match
+ the reported land units and planes, and could leak the presence
+ of spy units.
+ - Establish contact when spy succeeds even though the spy was
+ caught.
+ * Fix news reporting and damage when land units interdict ships in
+ sectors other than sea.
+ * Fix land unit return fire damage to ships to take accuracy into
+ account, like the fire command and interdiction does.
+ * Remove the inconsistent shelling damage reduction for range. Fire
+ command got damage reduced by 10-20% with a chance depending on
+ range ("Wind deflects shells"). Ships interdicting got it reduced
+ by half. Other ways to shell did not get damage reduced for range.
+ * Fix ground combat to report defending land units. Broken in 4.3.4.
+ * Info file and documentation fixes and improvements.
+
+Changes to Empire 4.3.15 - Sun May 18 08:59:30 UTC 2008
+ * The edit command keys deprecated in 4.3.10 are now gone.
+ * fairland now obeys game file locks.
+ * Do not leak world creation time in files utility, because that
+ facilitates attacks against fairland's PRNG. Broken in 4.3.12.
+ * Fix starvation not to starve one more than it should. The last man
+ on a boat or land unit now can't starve anymore.
+ * Fix a crash bug in satellite. Broken in 4.2.7 and not fixed
+ correctly in 4.2.12.
+ * Fix a coordinate normalization bug that could theoretically lead to
+ buffer overruns and other unpleasantness. None have been
+ reproduced, though. Broken in 4.3.12.
+ * Remove option FUEL. The abstract idea of tying ships and land
+ units to a logistical tether is sound, the concrete implementation
+ as option FUEL is flawed. It adds too much busy-work to the game
+ to be enjoyable. It hasn't been enabled in a public game for
+ years. The code implementing it is ugly, repetitive, and a burden
+ to maintain. The edit command still accepts and ignores the fuel
+ keys for compatibility, but they are deprecated.
+ * Fix pin-bomb not to report subs when there are none.
+ * You now have to take a capital to capture the victim's money, loans
+ or market lots. Merely obliterating the capital doesn't cut it.
+ It still makes the victim lose money, though.
+ * Fix a bug that could theoretically allow sacking of non-existant
+ capitals of visitors, deities and such.
+ * You now gain BTUs and MOB_ACCESS mobility before the first update
+ again. You didn't since 4.3.10 introduced the ETU clock.
+ * Fix edit to detect when the edited object changes while it's being
+ edited.
+ * Fix xdump nat for relations: it got HIDDEN backwards. Broken in
+ 4.3.12.
+ * Fix origin command not to prompt twice for its argument. Broken in
+ 4.3.0.
+ * Info file improvements.
+
+Changes to Empire 4.3.14 - Mon May 5 04:57:03 UTC 2008
+ * Another round of fixes to the fire command:
+ - Don't disclose where the target retreated to.
+ - Charge the target shells for returning fire.
+ - Always use guns when the target is out of range, even if it's a
+ submarine. Before, the difference in shell use disclosed whether
+ the target is a submarine. Loophole opened in 4.3.12.
+ - Make depth charges again work with just one shell. Failing the
+ command in that case lets players find out whether the target is
+ a submarine. Loophole opened in 4.3.12.
+ - Detect when the firing sector, ship or land unit changes across
+ the target prompt. Can be abused to duplicate commodities, and
+ more.
+ * Fix parsing of anchor-relative time in update schedule. Broken in
+ 4.3.13.
+ * Fix logging of player input in the journal to include command
+ interruption and EOF.
+ * Fix oversights in 4.3.12's change to keep track of flying planes:
+ planes could be erroneously reported damaged by their own ground
+ strikes. Happened with missions and the launch command.
+ * Fix load not load hardened missiles.
+ * Fix harden not to harden missiles loaded on land units.
+ * New server option -E to choose what to do on recoverable internal
+ error. You can now make the server dump core and keep going (not
+ implemented for Windows). New econfig key post_crash_dump_hook to
+ run a program after crash-dumping. See scripts/savecore for an
+ example.
+ * Journal entries are now flushed to disk right away even when the
+ server is not running in debug mode.
+ * Don't let land units load trains.
+ * Allow deity to display power report for all types of countries,
+ with power c.
+ * Fix designate's check for disallowed sector types. Broken in
+ 4.3.12.
+ * Documentation fixes.
+
+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, because 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.
+ - Interdicting land units now resupply shells automatically, for
+ consistency with other ways to fire.
+ - 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 for reading 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.