v1.8
Bug fix and new feature release (27 November 2020)
Changes in functinality:
- Added that Look will print what is in/on containers/supporters which have either scenery or concealed, if constant OPTIONAL_PRINT_SCENERY_CONTENTS is defined.
- Added constants STATUSLINE_TIME and STATUSLINE_SCORE, to include only the code needed for the type of statusline used in the game.
- Added extension ext_waittime.h
- The cheap scenery extension doesn't let through the Search action any more in its before rule, which allows the game author to give a custom response for that action instead in SceneryReply.
- The cheap scenery extension now allows for the SceneryReply routine to check which cheap scenery "object" was matched - it gets the two words specified for the "object" as two parameters. See example in ext_cheap_scenery.h
- Made TheDark object more flexible by adding properties before and after.
- Added howto/semidark.inf, a demonstration of how one can implement almost dark rooms.
- If a switchable object has a string for description, or a routine which returns true, "examine [object]" will no longer add a text saying whether the object is currently switched on or off.
- Added scoring notifications even on the final turn of the game, just before you win/die/lose.
- Moved all processing that happens at the end of a turn to a routine called EndTurnSequence(). This can be called by a WAIT command to simulate that turns happen, should anyone want to implement a WAIT command.
- Added checks so each_turn processing is stopped if an each_turn routine ends the game, or if a daemon or timer ends the game. Also, TimePasses() isn't called if a timer, daemon or each_turn has ended the game.
- Changed so turns / clock is advanced before timers, daemons, each_turn and TimePasses() at the end of the turn.
- Changed to use sys_statusline_flag to detect that it's a game with time on
the statusline.
Optimizations:
- Started using same message for MSG_INSERT_NOT_CONTAINER and MSG_EMPTY_CANT_CONTAIN.
Bugfixes:
- Fixed location test in GoSub for vehicle movements in the dark
- Fixed that 'a' (character) was used instead of 'a//' (dictionary word) when skipping articles to set noun and second to dictionary words for Ask etc.
- Fixed bad parser message for incomplete sentences in patterns that use routine filters
- Fixed bug in ScopeWithin
- Fixed bug in call to TT_PARSER_ROUTINE
- Improved _GrabIfNotHeld and related unit tests (issue 40)
- Fixed broken "restore failed" message when RestoreSub is called after game has ended.
- Removed extra space after "You have won/died"
- Fixed bug where "Score" or "Time" would not be printed on statusline if the room name was too long.
- Fixed bug where numbers and parse routines got a bad pattern score.
- Fixed bug where 12:xx AM was printed as 0:xx AM on statusline.
- Fixed bug which put location in scope in darkness.
- Fixed bug in centering menus on screen, in ext_menu.h. Issue #55.