v3.1
Important to note when upgrading:
- If your code calls
ObjectIsInvisible(obj)
, change it to~~TestScope(obj)
Changes in functionality:
- Added a PunyInform Quick Reference document.
- Implemented the grammar property as described in DM4.
- Added support for ParseNoun, at a small cost if you use it, and no cost if you don't. Note: This is called before parse_name, unlike the standard library.
- Remove duplicates from match list when player specifies same object twice for a multi token.
- Removed ObjectIsInvisible routine which is not needed. Use TestScope instead.
- Added UNDO to end of game message.
- Changed so library doesn't check if header says it's a timed game before updating time, if STATUSLINE_TIME has been defined.
- Added documentation on ParseToken to manual
- Added more debugging tips to Game Authot's Guide
Optimizations:
- Optimized _CheckNoun to save 70 bytes.
- Optimized disambiguation code to save ~70 bytes.
- Optimized code order to let virtual memory systems shift out parts of the library for long times, for speed.
Bugfixes:
- Fixed two incorrect direction names in howto/custom_directions.inf.
- Fixed noun/second setup for Consult, Answer and Ask action.
- Fixed so we don't risk duplicates in scope when InScope is used.
- OPTIONAL_GUESS_MISSING_NOUN function would sometimes reveal a concealed object.
- When parse_name returned -1 wn was not reset.
- Fixed error reporting from ParseToken with TT_SCOPE parameter.
- Fixed that actions sometimes didn't print a message in large games.
- Fixed compile-time error if SACK_OBJECT and OPTIONAL_NO_DARKNESS were defined.
- Fixed a bad noun flag test in _CheckNoun.
- Fixed bad num_words value after disambiguation question.
- Fixed error reporting from general parse routines.
- Fixed bug in scope routines that match multiple nouns.
- Fixed that a direction instead of a disambiguation reply didn't work.
- Fixed so that setting
parser_action = ##PluralFound
in parse_name works as it should.