Revision history for Perl extension Games::ScottAdams.

0.05  Sat Jan 10 17:23:53 GMT 2026
	- Nearly 20 years after the last release, I have to make a new
	  one because new versions of Perl idiotically changed the
	  language by making it illegal to use GOTO to jump into code
	  controlled by an IF. You may argue that this is bad style,
	  but to "fix" it by breaking a program that has been running
	  for 20 years is, to say the least, extraordinarily
	  impolite. See https://www.cpantesters.org/cpan/report/7e3e9642-df43-11f0-ba4c-94b2d3ebcae0
	  The new release changes the code to avoid this perfectly
	  harmless construct.
	- At some point during these 20 years, the order of playing
	  out the keys of a hash became random rather than merely
	  unspecified. As a result, we were no longer getting
	  consistent builds of a game. So I have modified the
	  code-generator to sort the vocabularies -- not because I
	  want them sorted, but because I need them consistent in
	  order for the code-generation tests to pass.
	- Include the generated file lib/Games/ScottAdams/Tutorial.pod
	  (created by make in in ./tutorial) in version control.

0.04  Sat Nov  4 11:32:08 GMT 2006
	- Add bin/sad, the Scott Adams decompiler.
	- Fix an important bug: messages above #50 were compiled into
	  slots one lower than they should have been, yielding very
	  confusing gameplay.  (I discovered this while playing a
	  version of _Adventureland_ decompiled with "sad" and then
	  recompiled with "sac".  Sample diagloue: KILL DRAGON / It
	  doesn't seem to bother him at all.  TIMBER!)
	- Correct the sac URL in the _Crystal of Chaos_ welcome
	  message.
	- Minor documentation improvements.

0.03  Thu Nov  2 00:30:45 GMT 2006
	- Revised directory layout to match that produced by h2xs
	  version 1.23 with flags:
		-X --name=Games::ScottAdams --compat-version=5.8.0 --omit-constant --skip-exporter --skip-ppport
	- Fix occasional bug in %nalias: the first of the equivalent
	  nouns to appear in the vocabulary list is now always the one
	  that is used as the %getdrop, so that it is recognised by
	  scottfree.
	- Finish Games::ScottAdams::Manual
	- Remove extraneous warning emitted when %AT places an object
	  that already had a location.
	- The compiler is not now so fussy about leading whitespace.
	  In general, all indentation is now ignored except when it's
	  part of a location description.
	- Move the sac executable down into new bin directory.
	- Use ".sao" (Scott Adams Object) instead of the uninformative
	  ".dat" throughout as the suffix for compiled files.
	- Tweaks in crystal.sac
	- Fix crystal/Makefile to use installed components.

0.02  Mon Jun  7 12:49:50 2004
	- First release.

0.01  Tue Apr 17 13:42:46 2001
	- original version; created by h2xs 1.19

--

### Still to do
	- Update the web-page.
	- Make the decompiler.
	- Allow room/item descriptions on %whatever line.
	- Naming and reusing of messages.
	- Handle multi-line messages.
	- Add meta-conditions such as "dark" that are implemented in
	  terms of primitive flags.
	- Mechanism for setting and testing flags by name.
	  (flag 15 always indicates if light has run out.)
	- Register current line-numbers with rooms, actions, etc. so
	  that compile-phase errors can be reported better.
	- Add discussion of %ident, %version, %wordlen, %maxload,
	  %lighttime and %include, and flags, counters and location
	  stores, to the tutorial.
	- Test all the action conditions and results.
	- Write decompiler; regression-test against compiler.
	- Figure out the MakeMaker magic to have
	  lib/Games/ScottAdams/Tuturial.pod automatically built.

It's possible to write perfectly good games (e.g. to clone Scott
Adams's own _Adventureland_) without any of these refinements.
