* Oyster was readable after first gotten even when not carried.
+* Response to an attempt to unlock the oyster while carrying it was incorrect.
+
* Behavior when saying the giant's magic words outside his room wasn't
quite correct - the game responded as though the player were in
the room ("...can't you read?"). The new message is "Nothing happens."
+ The -o option reverts this change.
* Attempting to extinguish an unlit urn caused it to lose its oil.
* A few minor typos have been corrected: absence of capitalization on
"Swiss" and "Persian", inconsistent spelling of "imbedded" vs. "embedded",
- "eying" for "eyeing". "thresholds" for "threshholds".
+ "eying" for "eyeing", "thresholds" for "threshholds".
* Under odd circumstances (dropping rug or vase outdoors) the game could
- say "floor" when it should say "ground" (or "dirt", or something).
-
-Bugs (accidental changes that don't seem worth the effort to fix):
-
-* Commands that are not moves (e.g. "look" and "inven") can be used
- during fee fie fo foo without breaking recognition of the sequence.
-
-* Bird starts uncaged in the endgame.
+ formerly say "floor" when it should say "ground" (or "dirt", or something).
Enhancements:
will be reproducible.
A "version" command has been added. This has no effect on gameplay.
+
The text displayed by the "news" command has been updated.
A -l command-line option has been added. When this is given (with a
functions; without C's fread(3)/fwrite() and structs it was
necessarily pretty ugly by modern standards. Encryption and
checksumming have been discarded - it's pointless to try
-tamper-proofing saves when everyone has the source code.
+tamper-proofing saves when everyone has the source code. However
+the game still integrity-checks savefiles on resume.
+
+Save and resume filenames are stripped of leading and trailing
+whitespace before processing.
A -r command-line option has been added. When it is given (with a file
path argument) it is functionally equivalent to a RESTORE command.
+An -a command-line option has been added (comditionally on
+ADVENT_AUTOSAVE) for use in BBS door systems. When this option is
+given, the game roads from the specified filename argument on startup
+and saves to it on quit or a received signal. There is a new nmessage
+to inform the user about this.
+
+The game can be built in a mode that entirely disables save/resume
+(-DADVENT_NOSAVE). If the game had been built this way, a diagnostic is
+emitted if you try to save or resume.
+
== Translation ==
The 2.5 code was a mechanical C translation of a FORTRAN original.
our new code (which occasionally uses malloc(3)), but none as yet
in Don's old code (which didn't).
+After version 1.11, correctness was carefully checked against the
+behavior of a binary from before the big refactoring.
+
The code falls short of being fully modern C in the following
ways:
We consider this project finished. All issues and TODOs have been
cleared, behavior has been carefully checked against original ADVENT,
no future demand for new features is expected, and the test suite has
-100% code coverage. If the toolchain bit-rots out from under it,
-we will fix that.
+100% code coverage. If new bugs appear the toolchain bit-rots out
+from under underneath, we will fix those problems.
// end