Remove comments that are obsolete now that the code is goto-less.
[open-adventure.git] / notes.adoc
index 9981a127fe61998a915a16094378fc92e408c1b0..8838393054e37fdadbda049dee027b7b1cc62bb9 100644 (file)
@@ -11,8 +11,9 @@ The principal maintainers of this code are Eric S. Raymond and Jason
 Ninneman.  Eric received Don Woods's encouragement to update and ship
 the game; Jason signed on early in the process to help. The assistance
 of Peje Nilsson in restructuring some particularly grotty gotos is
-gratefully acknowledged. Petr Voropaev contributed fuzz testing. Aaron
-Traas did a lot of painstaking work to improve test coverage.
+gratefully acknowledged. Petr Voropaev contributed fuzz testing and
+code cleanups. Aaron Traas did a lot of painstaking work to improve
+test coverage, and factored out the last handful of gotos.
 
 == Nomenclature ==
 
@@ -48,18 +49,18 @@ Bug fixes:
 
 * 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.
+  the room ("...can't you read?"). The new message is "Well, that was
+  remarkably pointless."
  
 * Attempting to extinguish an unlit urn caused it to lose its oil.
 
-* Unrecognized words are no longer truncated to 5 characters and
-  uppercased when they are echoed. (This behavior is restored by the
-  oldstyle switch.)
-
 * "A crystal bridge now spans the fissure." (progressive present) was
   incorrect most places it appeared and has been replaced by "A crystal 
   bridge spans the fissure." (timeless present).
 
+* Under odd circumstances (dropping rug or vase outdoors) the game could
+  say "floor" when it should say "ground" (or "dirt", or something).
+
 By default, advent issues "> " as a command prompt.  This feature
 became common in many variants after the original 350-point version,
 but was never backported into Crowther & Woods's main line before now.
@@ -71,6 +72,13 @@ for a turn, 'i' for 'inventory', 'g' for 'get', and 'd' for 'drop'.  The 'd'
 alias collides with 'd' for 'down', but the others have been implemented.
 The "-o" (oldstyle) option disables them.
 
+Unrecognized words are no longer truncated to 5 characters and
+uppercased when they are echoed. The "-o" (oldstyle) option restores
+this behavior.
+
+Typing a numeric literal to the command prompt no longer triggers a
+fatal error. This change is reverted by the oldstyle option. 
+
 A "seed" command has been added.  This is not intended for human use
 but as a way for game logs to set the PRNG (pseudorandom-number generator) so
 that random events (dwarf & pirate appearances, the bird's magic word)
@@ -99,8 +107,8 @@ 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.
 
-A -r command-line been added. When it is given (with a file path
-argument) it is functionally equivalent to a RESTORE command.
+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.
 
 == Translation ==
 
@@ -111,8 +119,7 @@ ugly and quite unreadable.
 Jason Ninneman and I have moved it to what is almost, but not quite,
 idiomatic modern C.  We refactored the right way, checking correctness
 against a comprehensive test suite that we built first and verified
-with coverage tools (we have over 95% coverage, with the remaining
-confined to exception cases that are very difficult to reach). This is
+with coverage tools (there is effectively 100% code coverage). This is
 what you are running when you do "make check".
 
 The move to modern C entailed some structural changes.  The most
@@ -148,10 +155,6 @@ ways:
   and the choice to refrain will make forward translation into future
   languages easier.
 
-* There are a few gotos left that resist restructuring; all are in the
-  principal command interpreter function implementing its state
-  machine.
-
 * Linked lists (for objects at a location) are implemented using an array
   of link indices. This is a surviving FORTRANism that is quite unlike
   normal practice in C or any more modern language.  We have not tried
@@ -170,6 +173,6 @@ We have made exactly one minor architectural change.  In addition to the
 old code's per-object state-description messages, we now have a per-object
 message series for state *changes*.  This makes it possible to pull a fair
 amount of text out of the arbitrary-messages list and associate those
-mesages with the objects that conceptually own them.
+messages with the objects that conceptually own them.
 
 // end