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.
+gratefully acknowledged. Petr Voropaev contributed fuzz testing. Aaron
+Traas did a lot of painstaking work to improve test coverage.
== Nomenclature ==
In the process we found and fixed a few minor bugs. Most notably, reading
the relocated Witt's End sign in the endgame didn't work. Behavior when
saying the giant's magic words outside his room wasn't quite right either.
+Attempt to extinguish dark urn would have cause it do lose oil.
The move to modern C entailed some structural changes. The most
important was the refactoring of over 350 gotos into if/loop/break
to fix it because doing so would (a) be quite difficult, and (b)
compromise forward-portability to other languages.
-* Muxh of the code still assumes one-origin array indexing. Thus,
+* Much of 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.
like a FORTRAN or BCPL program. Some (incomplete) effort has been made
to introduce semantic types.
+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 test out of the arbitrary-messages list and associate those
+mesages with the objects that conceptually own them.
+
// end