Skip to content

v4.4

Compare
Choose a tag to compare
@fredrikr fredrikr released this 18 Mar 00:50
· 355 commits to master since this release

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.