v5.6
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.