PunyInform 5.6 Released

PunyInform 5.6 Released

PunyInform, the adventure game programming library by Fredrik Ramsberg has been updated. PunyInform 5.6 allows users to create Z-Machine compatible programs, allowing them to be easily ported to multiple platforms. This latest release of Puny Inform includes a slew of updates, fixes, and new functionality included in the release. Information lated to the latest version includes the following:

Repository: johanberntsson/PunyInform · Tag: v5_6 · Commit: 7edfd4a · Released by: fredrikr

Important to note when upgrading:

The actions ##Remove, ##Transfer and ##Empty will now cause before-routines and after-routines to run with action set to ##Take. This is a bug fix, as the player could previously circumvent rules blocking a Take action. If the player needs to use any of these actions in your game, test the game to see that they still work as expected.

action_to_be used to be set to the basic action the player caused, all through the move, even if implicit actions were fired etc. Now, action_to_be is set to -1 once it fires the action. Instead, there is a new set of variables holding the action the player caused: input_action, input_noun, input_second and input_direction. You may want to read up on these in the manual.

Changes in functionality:

New public routines: DoorDir(door_object) and DoorTo(door_object), returning the effective values of these properties, even for simple doors.

New globals to say what the action input by the player was: input_action, input_noun, input_second, input_direction.

Changed so action_to_be is set to NULL (-1) before action is performed.

New library message: MSG_EMPTY_NOT_CONTAINER, e.g. “The ball can’t contain things.”

Rearranged and cleaned up parts of the manual.

The text “(which is open)” is no longer displayed in tall inventory for permanently open, non-empty containers (e.g. a bucket). (Issue #127)

The text “(which is empty)” in an inventory listing has been changed to “(which is open but empty)”, and is now only displayed for openable containers.

New test file for input_action.

Optimizations:

Removed superfluous code in DropSub.

Bugfixes:

Dropping an item in darkness now forces a scope update, so the item isn’t still in scope.

Changed TryToTakeNoun routine to fire before and after routines for Take action, unless called from TakeSub. (Issue #128)

Changed TransferSub to add before and after stage for ##Take when applicable, and fire after stage for ##Transfer when action managed to move the noun to second.

The library and full source code is available for this release. You can visit the release page to download the latest release of the PunyInform library.

Author: