PunyInform 6.3.1 Released

Fredrik Ramsberg has announced the immediate release of the latest version of the PunyInform library for retro adventure programming. PunyInform is a library written in Inform 6 which allows authors to create text adventure games / interactive fiction using the Z-machine virtual machine, to be played on 8-bit computers as well as newer platforms. It provides a parser, implementations of common verbs, as well as a framework for writing text adventures. According to the release notes, the following items are of note or have been changed:

Important to note when upgrading:

  • If you replace the message MSG_PARSER_DONT_UNDERSTAND_WORD, you should take a look at this message in messages.h now, and update your definition accordingly. (If oops_unfixed is non-zero, you may not call _PrintUnknownWord, but must provide a generic message, not mentioning the word that wasn’t understood. This only happens if the player has typed “oops “, so the player will know which word it’s about anyway.)

New/changed functionality:

  • Message MSG_PARSER_DONT_UNDERSTAND_WORD has been altered, as part of a fix for the issue that when the player types “oops xxx” and ‘xxx’ is another unrecognized word, the parser would repeat that the original non-recognized word wasn’t understood. (Issue #151)

Optimizations:

  • Made automatic assignment of reactive attribute faster, for games that don’t use custom common properties for a lot of objects.
  • Optimized _ParseNounPhrase and _IsSentenceDivider routines a little.

Bugfixes:

  • Fixed so a full stop and ‘then’ always separate commands (unlike comma and ‘and’ which can be used to separate commands OR objects in a list). (Issue #157)
  • Fixed: Debug verb ‘routines’ didn’t print anything in z5 when calling GamePreRoutine and GamePostRoutine.
  • Updated tests/runtests.rb to accept Frotz not always appending “.qzl” to save file names.
  • Changed format of routine names printed by debug verb ‘routines’ to match Inform 6 output (which is used for methods being called in z5 in PunyInform as well), e.g. from (small rock).before() to [ “small rock”.before() ].

You can download the latest version of the PunyInform library from the GitHub page at:
https://github.com/johanberntsson/PunyInform

Author: A.P.P.L.E.
The A.P.P.L.E. Website is run by the Apple Pugetsound Program Library Exchange Users Group and is open to all Apple and Macintosh fans and their friends.