
2002 May 06: version 1.0

* Added "(paused)" message when game is paused.
* Minor bugfix in behavior when the creature count maxes out (Lynx).
* Added intro-ms.dat and intro-lynx.dat.
* Fleshed out the README file.
* First official release to the general public.

2002 Apr 06: version 0.10.6

* Fixed off-by-one timing bug (MS logic) when last move of a level is
  involuntary (discovered by Anders Kaseorg).
* Changed pause button to work as a toggle (i.e., no other keys will exit
  pause mode), as requested by Hallgeir Flø.

2002 Feb 25: version 0.10.5

* Amended the Lynx ruleset to follow the button-wiring lists in the dat
  file, instead of using the original Lynx method of implicit wiring.
* Fixed uninitialized variable in password-entry function (reported by
  Ruben Spaans).
* Fixed moving-block behavior so that they will always enter a square that
  Chip occupies, regardless of what Chip is standing on (MS).
* Fixed force-floor behavior so that Chip gets to make a voluntary move
  immediately after stepping on a force floor if his forced move failed.
  (Hopefully this is an accurate coverage of the case that TW was getting
  wrong, and only of that.)

2002 Feb 04: version 0.10.4

* Separated out the two kinds of splashes.
* Fixed changing level by password (broken in 0.10.3; reported by Hallgeir
  Flø).
* Fixed a couple of bugs in handling invalid levels under Lynx (reported by
  Chuck Sommerville).
* Fixed several minor bugs (including several reported by Anders Kaseorg).
* Began a final code cleanup pass. Improved the comments in most of the
  source.
* More documentation changes, including a new README.

2002 Jan 28: version 0.10.3

* Added "Melinda" feature.
* Reformatted documentation, so man and html versions come from a single
  source.

2002 Jan 20: version 0.10.2

* Auto-deprecate saved games that are broken.
* Added some more protection against Ctrl-Ms in text files.
* Fix for die-if-no-soundcard bug (reported by Bill Darrah).
* Added resources entries for changing the color scheme.
* Added hackish "fixlynx" keyword.
* New: first draft of some real documentation.

2002 Jan 13: version 0.10.1

* Fixed the bug in the lynx emulation where Chip survived when he
  shouldn't, using a gross little hack. I hate it. But I've been sitting on
  this bug for over a month now. It's time to give up and put it out of its
  misery.
* Fixed the Lynx clock (it was off by one).
* Added a simple end-screen to display when the player finishes the last
  level of a set.
* Added a little more error-checking in the map decoding.
* Added some basic documentation.

2002 Jan 03: version 0.10.0

* Vastly improved the Lynx emulation of "diagonal" moves. Had to change the
  save file format (again!!) so that diagonal moves could be properly
  stored.
* Added a volume control.
* Fixed bug in Lynx logic that prevented Chip from standing still on the
  very first frame when starting on a force floor.
* Fixes for a few other random things.

2002 Jan 01: version 0.9.3

* Added a proper Chip-dies sequence to the Lynx emulation. Also removed
  redundant "dirt splash" sequence.
* A rough attempt at handling "diagonal" moves in Lynx emulation has been
  put in place.

2001 Dec 27: version 0.9.2

* A couple more memory leaks fixed (these inside of SDL).
* New tile bitmap format, which permits the use of animated tiles.
* A couple of stupid crashes that slipped into the previous version have
  been repaired.
* Miscellaneous other tweaks.

2001 Dec 07: version 0.9.1

* Added the ability to return to the initial file display. At last!
* Full-scale assault on the code to weed out memory leaks. (In my defense,
  the majority of them technically weren't leaks before the prior change
  was implemented.)
* Added -t option (unfortunately it's not as useful as I'd hoped it would
  be).
* Fixed segfault when trying to play back solution on an unsolved level.
* Improved the onomatopoeia display.
* Reorganized the online help.

2001 Dec 03: version 0.9.0

* Found and fixed the obscure slide delay bug that was causing the
  discrepancy in Eric Schmidt's level 29 ("PARAMECIA")!
* Threw out all the text-drawing code and replaced it with routines that
  deal in proportional fonts. Which naturally necessitated rewriting a
  bunch of the code that displayed text. Lots of changes. Created an
  abstract table "object", so that my tables could be realized either on
  the text console or in a proportional font equally well.
* Implemented sound! Spent an entire weekend making 25 wave files -- and
  they still sound ridiculous. (But the fact that the game finally has
  sound is nice.) Onomatopoeia is still available via a cmdline switch.
* Added password-checking code, plus functions to allow the user to jump to
  a level by entering a password.
* Changed the save file format (again!) to store password information, and
  to be a little smaller.
* Added the configuration file feature, with a few configuration options.
  This necessitated adding yet another directory, and once again moving the
  old one.
* Various bug fixes that I've forgotten about while working on all the
  other things.

2001 Nov 14: version 0.8.4

* Rewrote a lot of the display code to avoid redundant drawing of areas of
  the screen. Didn't really make it faster, but I did make it more to my
  liking. Also rewrote all of the text display code.
* Removed gamestate data that was only needed by one of the logic modules
  and made it private to that module.
* Fixed bug found by Mike L. regarding the ordering of clones (MS).
* Fixed bug regarding Chip trying to move on random force floors (MS).
* Added code to indicate when Chip is pushing (Lynx).

2001 Nov 10: version 0.8.3

* MS logic bug fix (clone machine would get stuck if clone died while
  exiting).
* Mixed improvement of display code. (The really cool revamping of the
  display code wound out performing horribly on 24-bit displays, and so had
  to be tossed out.)

2001 Nov 08: version 0.8.2

* Found problem with teleports (MS): creatures provide their own teleport
  blockage! Fixed.
* Careful investigation revealed more timing bugs with buttons, teleports,
  and maybe beartraps as well (MS). Rewrote the endmovement() function
  until everything was being done in the right order.
* Added an "rc" file which can be edited to change the filenames of the
  external resources.
* Discovered and fixed a discrepancy in the slide delay (MS).
* The usual sundry tweaks.

2001 Oct 29: version 0.8.1

* Fixed bug introduced in 0.7.2, correctly this time.
* Fixed intermittent memory corruption caused by an uninitialized stack
  variable.

2001 Oct 28: version 0.8.0

* Fixed bug introduced in 0.7.2 which caused Chip to "come to rest" when he
  couldn't make a forced move (MS).
* Fixed buried beartrap behavior in MS game logic.
* Altered the solution file format (been wanting to do that for a long
  time).
* Gave the program an icon (a temporary one, until I can get someone to
  make me a real icon).

2001 Oct 23: version 0.7.2

* Fixed two bugs in MS game logic discovered by Anders Kaseorg (creatures
  entering random slide floors, and Chip causing slide delay).
* Rewrote the clone machine code to better match the internals of the MS
  game (thanks to recent discoveries). Also fixed the red-button logic so
  that clones do not block their own clone machines.

2001 Oct 22: version 0.7.1

* Fixed bug in MS game logic found by Anders Kaseorg (button not recognized
  when hit by a block being pushed by Chip while on the slip list).

2001 Oct 21: version 0.7.0

* Altered handling of the slip list in the MS game logic. Creatures on the
  slip list now have their slip direction stored separately from their
  pointed direction, and the former is determined at the time they enter a
  tile, instead of just before moving off of it.
* My first serious attempt at implementing slide delay!
* Many little tweaks to the MS logic. I think it's getting close....
* The tile images are no longer compiled into the binary; instead they are
  loaded out of an external bitmap file. The rendering code was changed to
  use 32-bit images internally instead of 8-bit images, so that all types
  of bitmaps can be accepted.
* Added a new shared subdirectory for holding the data files; the main
  shared directory is now used to hold images.
* Altered the onomatopoeia code to ease future introduction of sound.
* Fixed the Lynx bug regarding the bequeathing of a slide token, or rather
  the lack thereof, when Chip is at a force-floor dead end.

2001 Oct 05: version 0.6.0

* Rewrote several fundamentals of the MS game logic, in order to bring it
  more in line with MS's layered map, as well as its treatment of blocks as
  non-creatures.
* Made some general changes to the game internals in order to accommodate
  the above changes.
* Many tweaks and improvements to the MS game logic.
* Added the Ctrl-X feature to permit replacement of saved games --
  something I should have added a long time ago.

2001 Aug 27: version 0.5.1

* Made some changes in the game-saving code to avoid an infinite loop that
  was sometimes happening under Windows.
* Fixed two bugs in MS game logic identified by Anders Kaseorg. (1. Chip
  can only attempt to move once per tick -- a failed move still counts. 2.
  Creatures moving onto the slide list make their first slide move in the
  same tick.)

2001 Aug 19: version 0.5

* First alpha version.
* The SVGAlib layer has been replaced with a much more complete layer for
  SDL. The program can now be compiled for either X or MS Windows. (All
  hail SDL and gcc's cross-compiling capabilities!) SDL also works under
  SVGAlib, but it looks terrible on my hardware.
* A version of the game logic implementing the MS ruleset (with lots of
  bugs) has been added. The program can now switch between the two
  rulesets.
* I ripped the entire code base apart and put it back together again
  (except for the parts that were thrown out). The code is somewhat better
  organized now.
* Code was added to select data files, display scores, and lots of little
  things all over the place.
* Comments! They're still pretty skeletal, but they're better than what was
  there before.

2001 Jul 15: version 0.1

* The previous game logic has been replaced with a complete game logic
  module for the Lynx ruleset.
* The SVGAlib layer has been heavily rewritten to do raw keyboard polling
  and smooth-scrolling.
* Lots of other changes and bug fixes.

2001 May 19: version 0.0

* First limited public release.
* Most of the basic infrastructure is in place, including a working draft
  of a game logic module.
