1.5.12  30-12-2005
    - Really fix a potential exploit against the Win32 server when running as
      an NT service (user data was being used as a format string in some cases).

1.5.11  30-12-2005
    - Add example configuration file to the documentation.
    - Fixed various typos in the German translation (thanks to Jens Seidel
      and Francois Marier).
    - Fix a remote exploit against the Win32 server (thanks to KF).
    - High score file on Windows is now written into local application data
      directory if available, to work more efficiently on multi-user systems.

1.5.10  24-10-2004
    - High score file is now installed in ${localstatedir} rather than
      ${datadir}, to allow proper Filesystem Hierarchy Standard compliance
    - Fix for a curses client crash if the D key is pressed during attacks
      by the cops
    - Some problems with the curses client missing screen resize events fixed
    - Logging to a file should now work properly again
    - Minimum and maximum limits on all relevant integer configuration
      file variables are now imposed for sanity
    - Quique's Spanish translation is now available both in standard Spanish
      (es.po) and es_ES.po, which uses drugs slang from Spain
    - Fix for a trivial DOS of the server
    - Windows installer no longer hardcodes 'C:\Program Files' so should
      work with non-English versions of Windows

1.5.9   07-06-2003
    - The messages window in the curses client can now be scrolled with the
      + and - keys
    - The curses client now makes better use of space with screen sizes
      larger than 80x24
    - Fix for a crash encountered if you drop drugs and then encounter
      the cops
    - Addition of -P, --player command line option to set the player name
      to use (thanks to Michael Mitton)

1.5.8   21-10-2002
    - Options dialog now allows sounds for all supported game events to be set
    - BindAddress config variable added, to allow the server to be bound to
      a non-default IP address
    - BankInterest and DebtInterest variables added, to allow the
      configuration of interest rates (with thanks to Matt)
    - New "UTF8" ability added; if client and server share this ability, then
      all network messages will be sent in UTF-8 (Unicode) encoding (without
      the ability, all messages are assumed to be in your locale's default
      codeset, which may cause problems on non-US ASCII systems)
    - Names.Month and Names.Year have been replaced with StartDate.Day,
      StartDate.Month, StartDate.Year and Names.Date; these can be used to
      handle the date display properly after the turn number exceeds 31
    - encoding and include config directives added, to allow the config file's
      encoding (usually taken from the locale) to be overridden, and to allow
      the inclusion of other config files
    - Spanish translation added by Quique
    - The Windows build of dopewars should now use Unicode throughout, on
      platforms with Unicode support (i.e. NT/2000/XP)
    - Under Windows XP, the "pretty" new common controls are now used
    - Sounds provided by Robin Kohli of www.19.5degs.com

1.5.7   25-06-2002
    - Sound support; Windows multimedia, ESD and SDL outputs are supported;
      the individual modules can be statically linked in, or built as true
      "plugins"
    - Version mismatches between client and server are now treated more
      sensibly (it's all done server-side, and spurious warnings are now
      removed - only an old client connecting to a new server will
      trigger them)
    - Bug fix: when the buttons in the Fight dialog are not visible to a
      mouse user, previously you were able to access them via the keyboard
      shortcuts; now fixed.
    - configure should now work properly if GLib 2.0 is installed but
      GTK2.0 is not
    - Norwegian Nynorsk translation added by Åsmund
    - If dopewars is run setuid/setgid, it will now only use this privilege
      to open the default (hard-coded) high score file; it will not open
      a user-specified high score file with privilege
    - It is no longer necessary to run "dopewars -C" on a zero-byte high
      score file; it will be converted automatically
    - A new server command "save" can be used to save the current configuration
      to a named config file

1.5.6   29-04-2002
    - Bug fix: the server will only let you pay back loans or deal with the
      bank when you are at the correct location, and you can no longer
      "pay back" negative amounts of cash to the loan shark
    - Minor improvements to fighting code
    - The GTK+2 client should now run properly in non-UTF8 locales, and
      handle configuration files in both UTF8 and non-UTF8 locales
    - Unsafe list iteration in serverside code (which could possibly cause
      memory corruption) fixed
    - Another dumb PPC bug fixed
    - Incorrect LIBS generated by configure script in some circumstances
      (due to a GTK+/Glib bug) - now fixed
    - Everything should now build with autoconf-2.53 (if desired)

1.5.5   13-04-2002
    - On fight termination the player is now allowed to close the "Fight"
      dialog before any new dialogs pop up
    - Bug caused by a "fight" interrupting a "deal" fixed
    - dopewars no longer crashes if you set e.g. NumGun = 0
    - Incorrect handling of WM_CLOSE under Win32 fixed
    - Unix server now fails "gracefully" if it cannot create the Unix domain
      socket for admin connections
    - New ServerMOTD variable to welcome players to a server (with thanks
      to Mike Robinson)
    - GTK+ client should now work with GTK+2.0

1.5.4   03-03-2002
    - Basic configuration file editor added to GTK+ client
    - Annoying flashing on closure of modal windows in Win32 fixed
    - Win32 client now uses "proper" dialog boxes (i.e. without a window menu)
    - Icon added for GTK+ client
    - Bug with withdrawing cash from the bank fixed
    - URL in GTK+ client "About" box is now clickable
    - Crash bugs when running on PPC systems fixed (with thanks to Zeke
      and Brian Campbell)

1.5.3   04-02-2002
    - Text-mode server is now non-interactive by default (server admin can
      connect later with the -A option)
    - Windows server can now be run as an NT Service
    - Fatal bug when visiting the bank (under Win2000/XP) fixed
    - Windows installer should now upgrade old versions properly
    - Currency can now be configured with Currency.Symbol and Currency.Prefix
    - Windows client windows cannot now be made unreadably small
    - Bank/loan shark dialog now warns on entering negative prices
    - Default configuration is restored properly at the start of each game
    - Translations should now work with the Windows client
    - Documentation on the client-server protocol added
    - Windows graphical server can be minimized to the System Tray
    - Keyboard shortcuts for menu items in Windows client
    - Default buttons (ENTER -> "OK") for Windows client
    - RPM build/make install can now be run as non-superuser
    - Win32 install for current user/all users
    - Code cleanups

1.5.2   16-10-2001
    - Slightly easier-to-use "run from fight" Jet dialog (avoids the crazy
      "windows pop up faster than you can close them" syndrome)
    - Support for HTTP proxies and authentication
    - SOCKS4 and SOCKS5 (user/password) support
    - French translation added by leonard
    - Boolean configuration variables (TRUE/FALSE) now supported
    - Many code cleanups
    - High score files now have a "proper" header, so that file(1) can
      identify them, and so the -f option cannot be used to force setgid-games
      dopewars to overwrite random files writeable by group "games" - use
      the -C option to convert old high score files to the new format
    - GNU long command line options now accepted on platforms with getopt_long
    - Simple installer now in place for Win32 systems

1.5.1   19-06-2001
    - Improved logging in server via LogLevel and LogTimestamp variables
    - Metaserver (both client and server) moved to SourceForge
    - Icons (courtesy of Ocelot Mantis) and GNOME desktop entry added

1.5.0   13-05-2001
    - Fixes for spurious tipoffs
    - High scores should now be written properly on Win32 systems
    - Various minor usability fixes on Win32 systems

1.5.0beta2 29-04-2001
    - Various fixes for installation on BSD systems and Mac OS X
    - Multiplayer menus (spy on player, etc.) are now greyed out in GTK+ client
      when in single-player mode
    - Manpage (courtesy of Leon Breedt) added in doc/
    - Fix for missing "bgetch" when configured with --disable-curses-client
    - Broken "trenchcoat" message fixed
    - Value of bought drugs now displayed in curses client
    - AI players now are at least partially functional
    - Fix for server segfault on invalid short network messages
    - dopewars no longer runs GTK+ setgid
    - "make install" installs dopewars as group "wheel" if "games" is
      unavailable

1.5.0beta1 08-04-2001
    - Completely rewritten fighting code
    - Internationalization (i18n) support
    - Tense and case-sensitive translated strings handled via dpg_ analogues
      to glib's g_ string handling functions %P = price,
      %Txx or %txx = tense-sensitive string, %/.../ = comment (ignored)
    - Networking revamped - now uses nonblocking sockets to improve server
      responsiveness and to remove deadlocks (previously, any client could
      halt server by sending an unterminated message); "abilities" added to
      allow backwards-compatible protocol extensions; player IDs used rather
      than player names to save bandwidth, with newer client+server
    - Drug values now stored by server (e.g. "you have 5 Weed @ $600); sent
      only if DrugValue config. variable is set, and only to new clients
      (based on a patch by Pierre F)
    - Spying fixed (cannot now spy on a player until they accept your bitch)
    - Longer T>alk and P>age messages allowed in curses client
    - Minor bug fixes to configure options
    - configure script tweaked to fix networking under Solaris (and friends)
      (with thanks to Caolan McNamara)
    - Client-side code moved out of clientside.c and dopewars.c;
      client-specific code now placed in <xxx>_client.c, while generic code is
      in message.c
    - GTK+ client added
    - Native "pointy-clicky" Win32 graphical client added (via GTK+ emulation)
    - GLib dependency introduced; string and list handling is taken care of
      now by GLib routines
    - Configuration files now handled by GLib's GScanner; "string lists"
      (of the format { "string1", "string2", "string3" } ) are now supported
      for configuration of subway sayings, "stopped to" and overheard songs
    - Timeouts bug fixed
    - MaxClients bug fixed

1.4.8   09-07-2000
    - Several fixes to Win32 networking code
    - IdleTimeout and ConnectTimeout variables added, to allow the server to
      break connections that have been idle for too long, or take too long
      to (dis)connect, respectively
    - Servers now use UDP packets to communicate with metaserver, for 
      a faster response to changing game conditions; the client, and older
      versions of the server, still use the "old" CGI script interface;
      MetaServer.Port variable split into .HttpPort and .UdpPort
    - MetaServer.Password can now be used with a blank MetaServer.LocalName
      (with the new metaserver interface only) in order to identify servers
      whose IPs are dynamic (but are otherwise the "same" server); this password
      must, again, be acquired from the metaserver maintainer
    - Metaserver now records current & maximum numbers of players, high
      scores, and last update time and uptime, for each server
    - Servers now re-register with metaserver when players join or leave,
      on receipt of a SIGUSR1 signal, and periodically
    - Metaserver list in client now lists uptime, and current/maximum
      numbers of players
    - Pid file maintained while in server mode (-r command line switch)
    - Names of the gun shop, pub, bank and loan shark can now be customised
      (GunShopName, RoughPubName, BankName and LoanSharkName)
    - When a player tries to run from a fight, running to the current location
      now takes them back to the fighting screen

1.4.7   14-01-2000
    - Minor fixes to Win32 code
    - dopewars now uses autoconf to (hopefully) build properly on odd sytems
      such as HP-UX, and also to build "out of the box" under Cygwin (win32)
    - long long datatype used for all prices on platforms that support it
    - fixes to strtoprice and pricetostr code; replacement of code which
      uses printf("%ld") for prices with pricetostr calls (with thanks to
      Coolio)
    - "Leave" option added to Bank
    - Messages window is now only displayed for network games
    - Binary can be compiled without TCP/IP networking support (e.g. for use
      on standalone systems) by configuring with --disable-networking
    - Minor modification to config. file handling to allow variables to be set
      to null strings (use "Variable=")
    - Option to allow the "local" server name to be specified when registering
      with the metaserver - MetaServer.LocalName variable. Useful when the
      metaserver refuses to resolve your IP address to your "preferred" domain
      name or when connecting via an enforced web proxy. Email the metaserver
      maintainer, for an authentication password (MetaServer.Password) linked to
      your chosen domain name, to use this option successfully.

1.4.6   12-11-1999
    - Bug fix for message window and "sew you up" prompt
    - Bug fix for server hanging in LoseBitch function
    - If player opts to play again, server selection method used last time
      is used again
    - Terminal resizing now handled properly
    - Port to Win32 (Windows 95,98,NT) console mode

1.4.5   21-10-1999
    - Limited support now for terminals at sizes other than 80x24; but response
      to a resize during the program run doesn't work properly yet...
    - Minor improvements to AI players
    - Corrected website address displayed by client on connecting to a
      server of a different version
    - If player opts to play again, defaults to the name they used last time
    - Server now disconnects clients when their game ends (rather than
      waiting for them to politely disconnect) - this gets around the problem
      of particularly unresponsive clients getting killed and then sitting
      around in an "undead" state, able to be repeatedly killed by other
      players
    - Armed players cannot now "stand and take it" (why would you want to
      anyway?) in multiplayer fights
    - Client now offers to obtain the list of available servers from the
      metaserver, to select one to connect to
    - "Special" values (MetaServer), (Prompt) and (Single) (including the
      brackets) now accepted for the "Server" variable, which instruct the
      client to list the servers, prompt the user for a server, or play
      in single-player mode, rather than connecting immediately to a server
    - "MetaServer.Port" variable added to facilitate connection to the
      metaserver via a proxy server (with thanks to Tony Brown)
    - Signal handling cleaned up
    - Buffer overflow problem with ExtractWord() fixed (hopefully) (with thanks
      to Lamagra)
    - Command line option -S for running a "private" server (do not contact
      the metaserver)
    - Prices for spies and tipoffs can be customised; this information is not
      communicated properly between 1.4.5 and earlier versions, of course.
      In such a case, the game will still work properly, although the client
      may report erroneous spy and tipoff prices
    - Fixed dodgy "pricetostr" function
    - Bug fix for "Drop" command in single-player mode
    - Command line option -g for specifying a supplementary configuration file
    - FightTimeout variable fixed - it now actually does something...
    - GunShop, LoanShark, RoughPub and Bank variables corrected so that they
      take actual location numbers now - not (location-1). WARNING: this
      breaks old configuration files!
    - Full HTML documentation now provided
    - Prices of bitches for hire can now be configured - Bitch.MinPrice and
      Bitch.MaxPrice
    - Removed description of non-existent "die" command in server
    - Minor fixes in antique mode
    - Fix of NumDrug and NumGun processing (now allows more than the default
      number of drugs and guns) (with thanks to Matt Higgins)
    - "ConfigVerbose" option added to display extra feedback during config
      file processing (with thanks to Matt Higgins)

1.4.4   16-09-1999
    - Full compatibility with 1.4.3 servers and clients maintained
      (although a warning is displayed to upgrade as soon as possible)
    - dopewars client now properly redraws the screen when Ctrl-L is pressed
    - Server output is now line-buffered by default for more sensible output
      of log files
    - L>ist bug in single player mode fixed
    - Number of game turns can now be configured with the "NumTurns"
      variable, or the game can be left to go on forever if it's set to zero
    - The shortcuts "k" and "m" are now supported in any input of numbers
      (e.g. money to put in the bank). So, for instance, typing 1.5m would
      be short for typing 1500000  (m=million, k=thousand)
    - Server now automatically contacts the dopewars metaserver (actually
      a CGI script), at bellatrix.pcl.ox.ac.uk, whenever it is brought up or
      down, to keep the list of servers on the dopewars webpage up to date.
      Aspects of the server's communication with the metaserver can be
      configured with the MetaServer.xxx variables
    - Names of the two police officers which chase you (originally
      Hardass and Bob) can now be configured with the variables
      "Names.Officer" and "Names.ReserveOfficer" respectively
      (provided by: Mike Meyer)
    - Several uses of the  string constant "bitches" rather than
      the variable "Names.Bitches" have been spotted, and corrected
      (provided by: Mike Meyer)
    - "Sanitized" variable - if nonzero, removes drug references
      (random events, the cops, etc.) - obviously drug names need to also
      be changed in the config. file to complement this. Turns dopewars into
      a simple trading game
      (provided by: Mike Meyer)
    - Minor formatting cleanups to accommodate longer drug names on the
      screen neatly
      (provided by: Mike Meyer)

1.4.3   23-06-1999
    - Bug with random offer of weed/paraquat fixed
    - L>ist command now offers list of logged-on players or high scores
    - "Out of time" message to explain why the game stops suddenly after
      31 days
    - Bank is now a little more user-friendly
    - Messages announcing players leaving or joining the game now appear in
      the central "messages" window, rather than the main, bottom window
    - Clients should now behave properly after the server crashes (or they
      are pushed off the server) - i.e. they should revert to a single-player
      mode game
    - price_t type used for all prices
    - Server interactive interface is now greatly improved, complete with
      help screen
    - SO_REUSEADDR set so that server can be restarted immediately if it crashes
    - Facility to drop unwanted drugs, with the accompanying chance that you
      are caught by Officer Hardass and shot at
    - Fighting interface greatly improved:-
      - All player-player fighting now occurs in a specialised window. Players
        can switch between the standard "deal drugs" window and the fighting
        window with the D and F keys
      - Number of keystrokes required to shoot and acknowledge all the
        relevant messages now greatly reduced
      - Some indication is now given of the other player's status (number of
        bitches and guns)
      - Server now imposes timeouts on fights, so if an opponent does not
        return fire within a set time, a repeat attack is allowed
      - A bounty is paid out for killing an enemy bitch, and any guns/drugs
        they're carrying are passed on to the victor (if he/she is able to
        carry them)
      - A dead player's cash is appropriated by the victor of a fight
    - Handling of configuration files now greatly improved; the same options
      that are set here can also be set within the server as long as no
      players are connected. A large number of dopewars settings can be
      changed and customised from here. Customised settings will be used
      in single-player mode, and if dopewars is used as a server the settings
      will be propagated to any clients (of version 1.4.3 or higher) that
      connect. Not everything can be customised, but any remaining changes
      should be server-side only (and thus require no alteration to the 
      clients). Options include:-
      - MaxClients option to limit the maximum number of players connected
        to the server
      - FightTimeout option to alter the length of the fight timeout
      - StartCash and StartDebt to change the default starting cash and debt
        of every player
      - Probabilities and toughness of Officer Hardass and his deputies can
        be "tweaked"
      - Numbers and names of locations, drugs and guns can be altered
      - The words used to denote "bitches", "guns" and "drugs" can be 
        customised
      - Drugs can now be sorted by name or by price, in forwards or reverse
        order, with the DrugSortMethod option (can take values 1-4)

1.4.2   16-05-1999
    - AI player improvements
    - Message structure changed to use less bandwidth and neater code
    - Now easier to break out of buy/sell drug prompts etc. (by pressing an 
      'invalid' key or ENTER)
    - Cleanup of player list
    - Cleanup after a player leaves the server; i.e. remove any references to
      their spies or tipoffs with other players
    - Added highlight of most recent score (for systems without working 
      A_STANDOUT attribute)
    - Fixed bug which caused all street-bought (i.e. not at Dan's gun shop)
      guns to be Saturday Night Specials
    - Prevented badly-behaved clients from continuing to jet to new locations
      after their death 
    - Added code to remove whitespace from name=value data read from 
      configuration file, and defaulted from $HOME/.dopewars to /etc/dopewars
    - Added "helpful" messages when guns cannot be bought or sold in gun shop
    - Minor cleanups of player-player fighting messages

1.4.1b  28-04-1999
    - segfault bug in server fixed

1.4.1a  28-04-1999
    - Interim release before 1.4.2; a few bug fixes in antique mode

1.4.1   27-04-1999
    - Fix of bug where paying off your debt would actually _increase_ it!
      Dunno how that one slipped through... I blame my beta testers... ;)

1.4.0   27-04-1999
    - Fixed bug with server; server now detects if standard input has
      been closed properly (previously if its input was redirected from
      /dev/null it would keep trying to read from it, using 100% CPU. Oops.)
    - First release under GPL

1.3.8   26-04-1999
    - Message structure changed; separator changed from : to ^ and extra
      field added to identify messages to AI players
    - Shorthand routines added for "printmessage" and "question" messages;
      SendPrintMessage and SendQuestion repectively
    - Display of status of fight with Officer Hardass cleaned up
    - All servers are now interactive; to run in background simply attach
      standard input and output to /dev/null
    - AI Player can now connect to server and perform simple actions
    - Bank and Loan Shark display cleaned up
    - Drug busts etc. now displayed all at once rather than singly
    - High scores now maintained by server
    - print_price replaced with FormatPrice
    - LOGF macro now used for all server log messages
    - Read in location of score files, server, port from ~/.dopewars
    - Fixed bugs in player-player fighting code

1.3.7   28-03-1999
    - Proper support for tipoffs and spies
    - Discovered spies cannot now be shot if you don't have a gun...
    - Option added for computer players (non-functional however)

1.3.6   14-03-1999
    - BreakoffCombat routine added to terminate fights cleanly when one
      player runs away from a fight (under 1.3.5 defending player would
      just hang when this was done...)

1.3.5   27-02-1999
    - Basic support for meeting other players; E_MEETOTHER event added
    - Simple player-player fights allowed with the use of E_WAITFIGHT,
      E_DEFEND and E_ATTACK events 
    - Two players with same name bug fixed
    - "question" message extended; server now passes a list of allowed
      responses in the first "word" of message data

1.3.4   25-02-1999
    - Client and virtual server now maintain completely separate lists of
      players
    - GunShop now works properly; user can actually see what's going on!

1.3.3   23-02-1999
    - Complete implementation of fighting with Officer Hardass
    - E_DOCTOR event added to handle question "do you want a doctor to
      sew you up?" after killing Hardass
    - Clients now handle list and endlist messages properly to display
      lists of current players on starting a game
    - Minor bugfix to ensure game actually ends after the 31st
    - Client now wipes price list on each jet to stop old prices
      flashing up between messages from the server

1.3.2   22-02-1999
    - "subwayflash" message added
    - OfferObject/RandomOffer split into separate event from OfficerHardass
    - "smoke paraquat" also given separate event (E_WEED) and implemented
    - Bank/LoanShark bugfixes
    - Bugfix for drug price generation code
    - Partial implementation of fighting with Officer Hardass

1.3.1   21-02-1999
    - Drugs can now be bought and sold
    - RandomOffer and OfferObject routines added to handle server-based
      random events ("a friend gives you..." etc.) and object offers ("do
      you want to buy a..." etc.) although "smoke paraquat?" doesn't
      work properly
    - GunShop / LoanShark / Bank / Pub all handled by the server now
    - Some networking bugfixes 

1.3.0   20-02-1999
    - Development series (moving decision-making from client to server to
      improve multi-player games and cut down on cheating, in preparation
      for an OpenSource release)
    - Simple implementation of a "virtual server" to handle the server-side
      stuff within a single-player game
    - Splitting up of Dopewars into dopewars.c (init. code and utils)
                                    message.c (message-handling code)
                                    serverside.c (server-side code)
                                    clientside.c (client-side code)
    - Drug prices now generated by server, not client - so synchronisation
      of turns (and drug prices) should be easy to implement in the future
    - Minimal functionality - networking backbone only...

1.2.0   13-02-1999
    - Stable release; some bugs in fighting code cleaned up

1.1.26  13-02-1999
    - "PolicePresence" member is now read - when a fight is started, there
      is a finite chance (varies from location to location) that the
      perpetrator will get attacked by the police
    - MinDrug and MaxDrug members added to Location struct - some locations
      may have a smaller range of drugs on offer than others

1.1.25  11-02-1999
    - Added an "Inventory" struct to keep track of players' belongings
      and anything dropped during a fight; winner of a fight now gets
      whatever the other player dropped (guns and/or drugs)

1.1.24  9-02-1999
    - Put in code to "finish" fights properly when one player escapes
    - Attacking player is now told whether they hit the other player or
      not when in a fight

1.1.23  3-02-1999
    - "Jet" command replaced with "Run" when in a fight
    - "PolicePresence" member added to Location struct
    - GunShop bug fixed (guns were taking up no space) 

1.1.22  30-01-1999
    - Implemented very simple "shoot at another dealers" code; players, on
      arriving at a location where another dealer already is, can choose
      to attack (if they have any guns). The attacked player can then
      choose to return fire or run for it...

1.1.21  29-01-1999
    - Added support for the "spy on another dealer" bitch errand

1.1.20  29-01-1999
    - Added support for the "tip off another dealer to the cops" bitch
      errand
