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.