X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=notes.adoc;h=6ee80a5a463cc51799207b2295d0f92c671f98f4;hp=538de28a347624f318044db3112df091b311de7a;hb=039c06882ea0631ca918424b66473bc545b60a99;hpb=7bb2cda986e7357547ffff85268c765b53257111 diff --git a/notes.adoc b/notes.adoc index 538de28..6ee80a5 100644 --- a/notes.adoc +++ b/notes.adoc @@ -13,7 +13,7 @@ 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 and code cleanups. Aaron Traas did a lot of painstaking work to improve -test coverage. +test coverage, and factored out the last handful of gotos. == Nomenclature == @@ -58,6 +58,10 @@ Bug fixes: incorrect most places it appeared and has been replaced by "A crystal bridge spans the fissure." (timeless present). +* A few minor typos have been corrected: absence of capitalization on + "Swiss" and "Persian", inconsistent selling of "imbedded" vs. "embedded", + "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). @@ -76,14 +80,14 @@ 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) will be reproducible. +A "version" command has beem 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 file path argument) each command entered will be logged to the specified file. Additionally, a generated "seed" command will be put @@ -131,7 +135,7 @@ The original code was greatly complicated by a kind of bit-packing that was performed because the FORTRAN it was written in had no string type. Text from the adventure.text file was compiled into sequences of sixbit code points in a restricted character set, packed 5 to a -32-bit word (it seems clear from the code that words were originally +32-bit word (and it seems clear from the code that words were originally *6* chars each packed into a PDP-10 36-bit word). A command noun or verb was one of these words, and what would be string operations in a more recent language were all done on sequences of these words. @@ -155,10 +159,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 @@ -169,7 +169,7 @@ ways: 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 +* The code is still mostly typeless, slinging around machine ints like a FORTRAN or BCPL program. Some (incomplete) effort has been made to introduce semantic types.