v4.4
Important to note when upgrading:
- If you're using the flags extension, using flag 0 is now deprecated. Use flag 1 and up.
Changes in functionality:
- Functions in flags extension can now take up to three flags in a call, e.g. if(FlagIsSet(F_BOB, F_STEVE, F_LINDA)) returns true if all three flags are set. To make this work, flag number 0 has been deprecated. Old code using flag 0 will still work, but will produce a warning in debug mode.
- New optional feature OPTIONAL_MANUAL_SCOPE_BOOST, speeding up turns for games with manual scope updates, where the player will often have many non-reactive objects in scope. More info in the manual.
- Default value of MAX_SCOPE is changed from 32 to 50.
- Game author's guide has been updated and content reordered. Every author should read chapter 1-3.
- Extended howto/talk_menu.inf to demostrate how to customize the messages printed by the talk_menu extension.
Optimizations:
- Replaced some veneer routines with shorter versions (optimized and not printing error messages) when building a game without DEBUG or Strict mode, and with RUNTIME_ERRORS set to 0.
- Optimized DrawStatusline, making it 9% faster and a few bytes smaller.
- Minor optimization in parser, making it a little faster and smaller.
- Made the dashes array in talk_menu static.
- Optimized code to run react_before, react_after and each_turn, making it 100+ bytes smaller.
Bugfixes:
- Fixed serious bug in talk menu extension - if you specified a routine to be run if a certain option was selected, and the story file was larger than half the maximum story file size for the Z-code version, it would result in runtime errors.
- Fixed a bug in _PrintPatternSyntax to handle patterns with routine calls
- Fixed a bug where a wide list would print "which contains is ..." for a container placed on a supporter.