• Corrected scope handling so that locations are not always in scope.
  • Made CANCEL accept expressions.
  • Fixed a problem with multi-parameter syntaxes which allowed multiple parameters in positions which where not the last.
  • RESTART did not clear the buffer so continued command could be executed as the first after a restart.
  • Alpha interpreters will now warn if attempting to run games produced with beta or release compilers.
  • Made WinArun set window title to game name even if the game was opened from the game open dialog.
  • Fixed a problem with items in an opaque container being possible to manipulate using ALL.
  • Fixed a problem with inherited reference attributes affecting proposed door class implementation. Now works as specified.
  • Fixed position calculation with -ide (for use with AlanIDE) to be platform independent.
  • Unified the automatic display of objects and actors so that they now both are listed in indefinite form. Actors are still listed separately since they might carry things and have script descriptions.
  • Moved the special actor handling of automatic display to the library.
  • Changed the message identifiers SEE_OBJ_xxxx to SEE_xxxx.
  • Removed the message identifier SEE_ACTOR.
  • Adjusted default listing of containers without a description so that it always occurs unless the container is opaque.
  • Added analysis of parameter references embedded in strings.
  • Allowed expression in Step After (previously only allowed integer).
  • Fixed a problem where you could not refer to the script of an actor, if the actor was a loop variable.
  • Fixed inheritance of Initialize clause.
  • Printing of pronouns.
  • SET statement can now set a literal set value: Set x Of l To {}.
  • SET statement can now set a set to the value of another set; Set set1 Of i1 To set2 Of i1.
  • IN can now test set membership in set literal: If int Of i In {1,3,5,7} Then...
  • Saving did not handle sets and strings correctly, could cause crashes, fixed.
  • Initialization of a set attribute to an empty set is allowed and possible in two ways:
    1. The attribute is inherited so the member type and class is known.
    2. A single class identifier is given instead of members.
  • Integer loops: For Each i Between 1 And limit Of bridge Do ...
  • Loops over Sets and Containers: For Each i In friends Of hero Do ...
  • Aggregation over Sets and Containers: Count In friends Of hero
  • Reference attributes can be initialized with a class instead of an instance if declared in a class. In this case all instances must give the attribute a value.
  • Fixed WinArun startup so that it now prompts for a game name if the program is activated instead of activating a game.
  • Fixed the renaming feature of the interpreter which was broken (if renamed the interpreter will look for game files with the corresponding name).
  • Finally fixed the about box in WinArun to work in Win2000 and WinXP.
  • Debugger now knows on which lines it is possible to set breakpoints.
  • Added NEGATIVE ARTICLE/FORM for "Can't see any xyzzy here.", including a corresponding Say form and embedded printing symbol.
  • Fixed a bug where a single trailing $ caused spurious output, now correctly outputs a single $.
  • Removed M_???_ARTICLE and M_PRONOUN messages since they are equivalent to the corresponding clause in the class 'entity' which now sets them as default. You can override them by adding the clauses with an Add statement instead of using MESSAGE.
  • Fixed numerous bugs in the UNDO handling:
    • Now saves only states when player changes anything.
    • Now handles strings and sets correctly.
    • Now responds with "'<command>' undone." which is a new customizable message.
  • Added more separators (characters that automatically inhibit space and force capitalization).


What They Say

"I think it's the best IF language I've ever seen - and I *am* a programmer."

Andrew Heale