Comment polishing.
[open-adventure.git] / notes.adoc
index 1c06c809b8990fb3dae6cd31d65e952dcdc23c39..c41a5b645c69683b7a54133e32602d629e38d336 100644 (file)
@@ -9,7 +9,9 @@ separate link:history.html[history] describing how it came to us.
 
 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 game; Jason signed on early in the process to help. The assistance
+of Peje Nilson in restructuring some particularly grotty gotos is
+gratefully acknowledged.
 
 == Nomenclature ==
 
@@ -81,7 +83,7 @@ against a comprehesive test suite that we built first and verified with
 coverage tools. This is what you are running when you do "make check".
 
 This move entailed some structural changes.  The most important was
-the refactoring of 354 gotos into if/loop/break structures.  We
+the refactoring of over 350 gotos into if/loop/break structures.  We
 also abolished almost all shared globals; the main one left is a
 struct holding the game's saveable/restorable state.
 
@@ -108,10 +110,10 @@ ways:
   and the choice to refrain will make forward translation into future
   languages easier.
 
-* There are 20 gotos left that resist restructuring; all but one of
-  these are in the principal command interpreter function implementing
-  its state machine.  A 21st, a two-level loop breakout, is not reducible
-  even in principle.
+* There are some gotos left that resist restructuring; all of these
+  are in the principal command interpreter function implementing its
+  state machine.  One other left in the player-movement code, a two-level
+  loop breakout, is not reducible even in principle.
 
 * Linked lists (for objects at a location) are implemented using an array
   of link indices. This is a surviving FORTRANism that is quite unlike
@@ -122,4 +124,8 @@ ways:
 * The code still has an unfortunately high density of magic numbers - in
   particular, numeric object and room IDs.
 
+* The code is still mostly typeless, slinging around machine longs
+  like a FORTRAN or BCPL program.  Some (incomplete) effort has been made
+  to introduce semantic types.
+
 // end