Merge branch 'master' into actions-arithmetic
[open-adventure.git] / notes.adoc
index 475ca94fa7aea635737685bbb3137f4349f203b7..fd3504a6f2ce68a4d62668690e3b4542f0cf070e 100644 (file)
@@ -11,7 +11,7 @@ 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
 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.
+gratefully acknowledged. Petr Voropaev contributed fuzz testing.
 
 == Nomenclature ==
 
 
 == Nomenclature ==
 
@@ -62,7 +62,9 @@ a "seed" command) will replay reliably, including random events.
 
 The adventure.text file is no longer required at runtime.  Instead, it
 is compiled at build time to a source module containing C structures,
 
 The adventure.text file is no longer required at runtime.  Instead, it
 is compiled at build time to a source module containing C structures,
-which is then linked to the advent binary.
+which is then linked to the advent binary. There is an adventure.yaml file
+as well; this is also compiled to C code, and will eventually replace
+adventure.text altogether.
 
 The game-save format has changed.  This was done to simplify the
 FORTRAN-derived code that formerly implemented the save/restore
 
 The game-save format has changed.  This was done to simplify the
 FORTRAN-derived code that formerly implemented the save/restore
@@ -111,6 +113,7 @@ ways:
   We don't need whatever minor performance gains this might collect,
   and the choice to refrain will make forward translation into future
   languages easier.
   We don't need whatever minor performance gains this might collect,
   and the choice to refrain will make forward translation into future
   languages easier.
+
 * There are a few gotos left that resist restructuring; all of these
   are in the principal command interpreter function implementing its
   state machine.
 * There are a few gotos left that resist restructuring; all of these
   are in the principal command interpreter function implementing its
   state machine.
@@ -122,10 +125,13 @@ ways:
   compromise forward-portability to other languages.
 
 * The code still has an unfortunately high density of magic numbers - in
   compromise forward-portability to other languages.
 
 * The code still has an unfortunately high density of magic numbers - in
-  particular, numeric object and room IDs.  There are plans to fix this.
+  particular, numeric object IDs.  There are plans to fix this.
 
 * Much of the code still uses FORTRAN-style uppercase names.
 
 
 * Much of the code still uses FORTRAN-style uppercase names.
 
+* The code still assumes one-origin array indexing.  Thus, arrays are
+  a cell larger than they strictly need to be and cell 0 is unused.
+
 * 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.
 * 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.