Here is Dialog version 0k/03 (library 0.40).
Notable changes
-
When expanding a complex action (e.g. due to “TAKE ALL”), the library now prints the name of each object in turn, instead of spelling out the entire action.
-
“DOWN”, “UP”, and “OUT” (with some variations) are now understood as ambiguously referring to
[leave $]
and[go $]
when the player is on a supporter, in or on a seat, or in a container, respectively. A rationale is in this post. Thanks @Karona!
Bugfixes
-
Debugger: When updating a running program, the debugger needs to match the
(select)
statements in the old and new versions of the code using a diff-like algorithm, in order to preserve as much of the game state as possible. The code for this has been reimplemented from scratch in a cleaner way. The old version had a bug that would sometimes result in the debugger reporting an “internal inconsistency in select”. Hopefully that bug is no longer present. -
Debugger: No longer crashes when encountering output boxes while collecting words.
-
Library: Updating the environment around the player (the cache variables) before drawing the status line. Reported by @Karona.
-
Library: Allowing
(from $ go $ to room $)
to be invoked with just the first parameter bound, to backtrack over all exits. -
Library:
(perform [leave $])
now uses(move player to $ $)
instead of setting the location of the player object directly. -
Library:
(them $)
can now deal with a list argument.
Also, minor improvements to the optimizer.