+2009-05-31
+ * fixed bug with element_info[e].gfx_element not being initialized in
+ early game stage, causing native graphics in EMC level sets to be
+ mapped completely to EL_EMPTY (causing a blank screen when playing)
+ (this only happened when starting the program with an EMC set with
+ native graphics, but not when switching to such a set at runtime)
+
+2009-03-26
+ * extended backwards compatibility mode to allow already fixed bug with
+ change actions (see "2008-02-05") for existing levels (especially the
+ Zelda and Zelda II levels and other cool stuff by Alan Bond like FMV)
+
+2009-03-24
+ * reactivated workaround to prevent program crashes due to blitting to
+ the same SDL surface that apparently only occurs on Windows systems
+ (this is no final solution; this problem needs further investigation)
+
+2008-11-05
+ * version number set to 3.2.6.1
+
+2008-11-04
+ * version 3.2.6.0 released
+
+2008-10-11
+ * fixed behaviour of player option "no centering when relocating" which
+ was incorrect when disabled and relocation target inside visible area
+ and "no scrolling when relocating" enabled at the same time
+
+2008-10-06
+ * fixed problems with re-mapping players on playfield to input devices:
+ previously, players found on the level playfield were changed to the
+ players connected to input devices (for example, player 3 in the level
+ was changed to player 1 (using artwork of player 3, to be able to use
+ a player with a different color)); this had the disadvantage that CE
+ conditions using player elements did not work (because the players in
+ the level definition are different to those effectively used in-game);
+ the new system uses the same player elements as defined in the level
+ playfield and re-maps the input devices of connected players to the
+ corresponding player elements when playing the level (in the above
+ example, player 3 now really exists in the game and is moved using the
+ events from input device 1); level tapes still store the events from
+ input devices 1 to 4, which are then re-mapped to players accordingly
+ when re-playing the tape (just as it is done when playing the level)
+
+2008-09-29
+ * fixed bug with player relocation while the player switches an element
+
+2008-09-24
+ * fixed bug with EM/DC style exit and EM/DC style steel exit which was
+ not walkable (and did not let the player enter) when in process of
+ opening, but not fully open yet (which can cause the player not being
+ able to enter the exit in EM/DC style levels in time)
+
+2008-08-02
+ * fixed some bugs regarding the new level/CE random seed reset options
+
+2008-07-14
+ * moved "level settings" and "editor settings" to two tabbed screens in
+ level editor to gain space for additional level property settings
+ * added level setting to start a level with always the same random seed
+ * added CE action "set random seed" to re-initialize random seed in game
+ (this is the only CE action that gets executed before the CE changes,
+ which is needed to use the newly set random seed during the CE change)
+
+2008-06-16
+ * fixed redraw problem of special editor door when playing from editor
+
+2008-06-16
+ * fixed initialization of gfx_element for level sketch image creation
+
+2008-06-15
+ * added switch for EM style dynamite "[ ] explodes with chain reaction"
+ (with default set to "on" for existing levels, but "off" for all new
+ levels), as EM style dynamite does not chain-explode in original EM
+
+2008-02-05
+ * added optional initial inventory for players (pre-collected elements)
+ * added change page actions "set player inventory" and "set CE artwork"
+ * added recognition of "player" parameter on change pages when player
+ actions are defined, but no trigger player in corresponding condition
+ (this resulted in actions that only affected the first player before)
+ * fixed bug with change actions being executed for newly created custom
+ elements resulting from custom element changes, when the intention was
+ only to check for change actions for the previous custom element
+
+2008-02-03
+ * changed design and size of element drawing area in level editor
+ * added "element used as action parameter" to element change actions
+
+2008-01-27
+ * added possibility to reanimate player immediately after his death
+ (for example, by "change to <player> when explosion of <player>")
+
+2008-01-25
+ * fixed bug with "gray" white door not being uncovered by magnifier
+ * added score for collecting (any) key to the white key config page
+
+2008-01-22
+ * added condition "deadly when <getting hit by>" for custom elements
+ that behaves a bit like the existing "deadly when <colliding with>",
+ but with the following differences:
+ - it only kills players or friends when it was moving before it hits
+ - it does not kill players or friends that try to run into it
+
+2008-01-21
+ * fixed the following change conditions where a player element is used
+ as the "element that is triggering the custom element change":
+ - touching <element>
+ - hitting <element>
+ - explosion of <element>
+ - move of <element>
+ (the last two conditions already worked partially, but only for the
+ first player, and not for the "Murphy" player when using "move of")
+
+2008-01-20
+ * fixed crash bug caused by accessing invalid element (with value -1)
+ in UpdateGameControlValues()
+ * fixed graphical bug when using two-tile movement animations with EMC
+ game engine without explicitly using native EMC graphics engine
+
+2007-10-31
+ * fixed bug in new "can dig" feature (see below) so that an unsuccessful
+ try to push something (due to push delay) does not cause a dig action
+
+2007-10-29
+ * fixed bug with reference elements used as trigger elements on custom
+ element change pages not being recognized
+ * fixed bug with reference elements not being removed from the playfield
+ * added engine functionality that allows custom elements that "can dig"
+ other elements not only to do so when moving by themselves, but also
+ when being pushed by the player (therefore adding the functionality to
+ push one element over another element, replacing it with the new one)
+
+2007-10-23
+ * added command line function to write level sketch images to directory
+
+2007-10-20
+ * merged override and auto-override options into new override options
+ with a new data type than can take the values "no", "yes" and "auto"
+
+2007-10-18
+ * fixed growing steel wall to also leave behind steel wall instead of
+ normal, destructible wall
+ * fixed handling of rocks falling through stacks of quicksand with
+ different speed (before, the rocks just got stuck in the quicksand)
+
+2007-10-09
+ * fixed nasty bug with auto-override and normal override not working on
+ program startup (especially when current level set has custom artwork)
+
+2007-10-05
+ * version 3.2.5 released as special edition "R'n'D jue"
+
+2007-10-05
+ * fixed X11 crash bug when blitting masked title screens over background
+
+2007-10-04
+ * changed build system to support special editions (like "R'n'D jue")
+ * added (hardcoded) loading graphics for "R'n'D jue" special edition
+ * fixed X11 crash bug when scaling images with width/height less than 32
+
+2007-09-27
+ * added "background.PLAYING" (only visible as two-pixel border in game)
+ * added default level set for first start of special R'n'D version
+ * changed door animations for editor always behaving like "quick doors"
+
+2007-09-26
+ * added new custom artwork setup option "auto-override non-CE sets" for
+ automatic artwork override that is only used for level sets without
+ custom element artwork (as it does not make much sense to override
+ any artwork that redefines custom element artwork for sets using CEs)
+ * fixed default artwork for "special" R'n'D versions always using the
+ "classic" artwork as the base if base artwork is not explicitly
+ defined in "levelinfo.conf", regardless of different default artwork
+ used by the special R'n'D version -- this is needed because any such
+ custom artwork is designed using the "classic" artwork definitions as
+ the base (including menu definitions and screen positions etc., which
+ would otherwise be taken from the different special default artwork)
+
+2007-09-17
+ * fixed drawing of animated "quicksand.filling" and "quicksand.emptying"
+ for both EMC and R'n'D graphics engine (heavy workarounds needed due
+ to massively broken handling of quicksand in R'n'D game engine)
+ * fixed off-limits access to array in DrawLevelFieldCrumbledSandExt()
+ * fixed crash bug (hopefully) when scrolling with cursor keys in editor
+
+2007-09-16
+ * fixed small bug in toon drawing (introduced when fixing the crash bug)
+
+2007-09-15
+ * added graphics definition "game.panel.highscore" to display the
+ current levels current high score in the game panel
+
+2007-09-13
+ * version number set to 3.2.5
+
+2007-09-13
+ * version 3.2.4 released
+
+2007-09-13
+ * fixed crash bug in toon drawing functions for large step offset values
+
+2007-09-12
+ * fixed some problems with displaying game panel when quick-loading tape
+
+2007-09-07
+ * fixed (experimental only) redrawing of every tile per frame (even if
+ unneeded) for the extended (R'n'D based) EMC graphics engine
+ * added optimization to only calculate element count for panel display
+ if really needed (that is, if element count values defined on panel)
+ * fixed problem with special editor door redraw when entering main menu
+
+2007-09-03
+ * fixed bug with displaying background for title messages on info screen
+ * some code cleanup for the extended (R'n'D based) EMC graphics engine
+
+2007-09-01
+ * fixed bug with CE action "move player" always resulting in player 4
+ if there was a CE action with no trigger player (because the player
+ element was calculated by using log_2() from trigger player bits with
+ the value PLAYER_BITS_ANY) -- this is now fixed by also storing the
+ triggering player bit mask and handling all players in "move player"
+ * fixed bug when defined artwork cannot be found for artwork that has
+ default artwork cloned from other artwork (without default filename)
+ * added several fixes to the extended (R'n'D based) EMC graphics engine
+
+2007-08-26
+ * fixed broken editor copy and paste for custom elements between levels
+
+2007-08-25
+ * title messages are now also searched in graphics artwork directory;
+ those found in graphics directory have precendence over those found
+ in level directory -- this handles title messages stored in graphics
+ directories as part of the artwork set, just like title images; this
+ makes sense, as corresponding special font definitions for messages
+ are usually defined in the same graphics artwork directory, and also
+ because title images and title messages that are combined in a level
+ set introduction should usually not be separated when the level set
+ is used with a different artwork set (e.g. using "override graphics")
+ * fixed problem with door borders on main screen by first drawing doors
+ and then the corresponding border masks, but not vice versa
+ * fixed problem with artwork config entries using the value "[DEFAULT]";
+ this does not what one might expect, but sets the value to an invalid
+ value -- solution: simply ignore such entries, which results in this
+ value keeping its previous (real) default value (in general, entries
+ that should use their default value should just not be defined here)
+ * fixed problem with wrong fading area size from main menu to setup menu
+
+2007-08-22
+ * fixed problem with broken crumbled graphics after level set changes
+ when using R'n'D custom artwork with level sets using the EMC engine
+
+2007-05-07
+ * fixed invisible "joysticks deactivated ..." text on setup input screen
+
+2007-04-27
+ * added use of hashes created from static lists (element tokens, image
+ config, font tokens) to speed up lookup of configuration parameters
+ * fixed bug where element and graphic config token lookup was mixed up
+
+2007-04-26
+ * added "busy" animation when initializing program and loading artwork
+ * added initialization profiling for program startup (debugging only)
+
+2007-04-25
+ * fixed(?) very strange bug apparently triggered by memset() when code
+ was cross-compiled with MinGW cross-compiler for Windows XP platform
+ (this only happened when using SDL.dll also self-compiled with MinGW)
+
+2007-04-19
+ * added graphics engine directive "border.draw_masked_when_fading" that
+ enables/disables drawing of border mask over screen that is just faded
+
+2007-04-18
+ * fixed small problem with separate fading definition for game screen
+
+2007-04-14
+ * added additional configuration directives for setup screen draw offset
+ menu.draw_xoffset.SETUP[XXX] and menu.draw_yoffset.SETUP[XXX] with XXX
+ in GAME, EDITOR, GRAPHICS, SOUND, ARTWORK, INPUT, SHORTCUTS_1,
+ SHORTCUTS_2, CHOOSE_ARTWORK, CHOOSE_OTHER (where "CHOOSE_ARTWORK" is
+ used to define draw offset on custom artwork selection screens and
+ "CHOOSE_OTHER" is used on all other list style selection screens, like
+ choosing game speed or screen mode for fullscreen mode)
+ * added additional configuration directives to define main menu buttons:
+ - menu.button_name and menu.button_name.active
+ - menu.button_levels and menu.button_levels.active
+ - menu.button_scores and menu.button_scores.active
+ - menu.button_editor and menu.button_editor.active
+ - menu.button_info and menu.button_info.active
+ - menu.button_game and menu.button_game.active
+ - menu.button_setup and menu.button_setup.active
+ - menu.button_quit and menu.button_quit.active
+ * added eight pure decoration graphic definitions for the game panel
+
+2007-04-08
+ * added support for accessing native Diamond Caves II level packages
+ * fixed displaying of game panel values for Emerald Mine game engine
+ * fixed displaying end-of-level time and score values on new game panel
+
+2007-04-07
+ * added game panel control to display arbitrary elements on game panel
+ * added game panel control to display custom element score (globally
+ unique for identical custom elements) either as value or as element
+ * added ".draw_masked" and ".draw_order" to game panel control drawing
+
+2007-04-05
+ * fixed some general bugs with handling of ".active" elements and fonts
+
+2007-04-04
+ * cleanup of game panel elements (some elements were not really needed)
+ * added displaying of gravity state (on/off) as new game panel control
+ * added animation for game panel elements (similar to game elements)
+
+2007-04-03
+ * added new pseudo game mode "PANEL" to define panel fonts and graphics
+ - panel fonts now use ".PANEL" suffix instead of ".PLAYING" suffix
+ - panel graphics now use ".PANEL" suffix instead of ".DOOR" suffix
+ (else graphics would have to use ".PLAYING", which would be confusing)
+ * fixed bug when fading out to game screen with border mask defined
+
+2007-04-02
+ * added attribute ".tile_size" for element style game panel controls
+
+2007-04-01
+ * added <space> key as additional valid key to use for confirm requester
+
+2007-03-31
+ * improved menu fading, adding separate fading definitions for entering
+ and leaving a "content" screen (in general), and optional definitions
+ for the special "content" screens SCORES, EDITOR, INFO and PLAYING
+
+2007-03-30
+ * added (currently invisible) setup option to define scroll delay value
+ * fixed small bug in priority handling when auto-detecting level start
+ position in levels without player element (but player from CE etc.)
+ * added option "game.forced_scroll_delay_value" to override user choice
+ of scroll delay value for certain level sets with "graphicsinfo.conf"
+ * replaced setup option "scroll delay: on/off" by new setup option that
+ directly allows selecting the desired scroll delay value from 0 to 8
+
+2007-03-28
+ * added displaying of most game panel control elements (not animated)
+
+2007-03-26
+ * added new configuration directives to display additional game engine
+ values on the game control panel, like the following examples:
+ - game.panel.time_hh/time_mm/time_ss - level time in HH/MM/SS format
+ - game.panel.penguins - number of penguins to rescue
+ - game.panel.level_name - level name of current level
+
+2007-03-24
+ * added support for preview tile sizes "1" and "2" (1x1 and 2x2 pixels)
+
+2007-03-23
+ * added new player option "no centering when relocating" for "invisible"
+ teleportations to level areas that look exactly the same, giving the
+ illusion that the player did not relocate at all (this was the default
+ since 3.2.3, but caused visual problems with room creation in "Zelda")
+ * added new menu fading effect "melt", shamelessly stolen from "DOOM"
+
+2007-03-21
+ * improved menu fading, adding separate fading definitions for entering
+ and leaving a menu and for fading between menu and "content" screens
+ * fixed small bug with recognizing also ".font_xyz" style definitions
+
+2007-03-20
+ * improved menu fading, adding separate fading definitions for fading
+ between menu screens and fading between menu and "destination" screens
+
+2007-03-19
+ * titlemessage_initial_x and titlemessage_x set to "[DEFAULT]" in static
+ configuration (set from "[titlemessage_initial]" and "[titlemessage]")
+ * fading settings of "[titlemessage_initial]" and "[titlemessage]" set
+ to "[DEFAULT]" in static configuration (set from "[title_initial]" and
+ "[title]")
+ * improved title fading, allowing fading animation types "none", "fade"
+ and "crossfade" (including cross-fading of last title to main menu)
+
+2007-03-18
+ * added configurability of graphics, sounds and music for title screens,
+ which are separated into initial title screens (only shown once at
+ program startup) and title screens shown for a given level set; these
+ title screens can be composed of up to five title images and up to
+ five title text messages (each drawn using an optional background
+ image), also using background music and/or sounds; aspects like
+ background images, sounds and music of title screens can either be
+ defined generally (valid for all title screens) or specifically (and
+ therefore differently for each title screen) using these directives:
+
+ to define a background image, sound or music file for all screens:
+ - background.TITLE_INITIAL (for all title screens for game startup)
+ - background.TITLE (for all title screens for level sets)
+
+ to define a background image, sound or music file for a single screen:
+ - background.titlescreen_initial_x (with x in 1,2,3,4,5)
+ - background.titlescreen_x (with x in 1,2,3,4,5)
+ - background.titlemessage_initial_x (with x in 1,2,3,4,5)
+ - background.titlemessage_x (with x in 1,2,3,4,5)
+
+ to define the title screen images:
+ - titlescreen_initial_x (with x in 1,2,3,4,5)
+ - titlescreen_x (with x in 1,2,3,4,5)
+
+ to define the title text messages, place text files into the level set
+ directory that have the following file names:
+ - titlemessage_initial_x.txt (with x in 1,2,3,4,5)
+ - titlemessage_x.txt (with x in 1,2,3,4,5)
+
+ to define the properties of the text messages, either use directives
+ that affect all text messages:
+ - [titlemessage_initial].<suffix>
+ - [titlemessage].<suffix>
+ or use directives that affect single text messages:
+ - titlemessage_initial_x.<suffix> (with x in 1,2,3,4,5)
+ - titlemessage_x.<suffix> (with x in 1,2,3,4,5)
+
+ valid values for <suffix> are the same as for readme.<suffix> below;
+ use ".sort_priority" (default: 0) to define an arbitrary order for
+ title images and title messages (which can therefore be mixed)
+
+2007-03-14
+ * added full configurability of "readme.txt" screen appearance:
+ - readme.x: <left position used with alignment>
+ - readme.y: <top position>
+ - readme.width: <maximim text width in pixels>
+ - readme.height: <maximum text height in pixels>
+ - readme.chars: <maximum number of chars per line>
+ - readme.lines: <maximum number of lines displayed>
+ - readme.align: left,center,right (default: center)
+ - readme.top: top,middle,bottom (default: top)
+ - readme.font: font name
+ - readme.autowrap: true,false (default: true)
+ - readme.centered: true,false (default: false)
+ - readme.parse_comments: true,false (default: true)
+ - readme.sort_priority: (not used here, but only for title screens)
+ when "readme.chars" and/or "readme.lines" is set to "-1" (this is the
+ default), they are automatically determined from "readme.width" and
+ "readme.height" accordingly; when they are not "-1", they have
+ precedence over "readme.width" and "readme.height"
+ * added internal ad-hoc config settings for displaying text files like
+ title messages or "readme.txt" style level set info files:
+ - .font: font name (default: readme.font)
+ - .autowrap: true,false (default: readme.autowrap)
+ - .centered: true,false (default: readme.centered)
+ - .parse_comments: true,false (default: readme.parse_comments)
+ (the leading '.' and the separating ':' are mandatory here); to use
+ these ad-hoc settings, they have to be written inside a comment, like
+ "# .autowrap: false" or "# .centered: true"; these settings then
+ override the above global settings (they can even be used more than
+ once, like "# .centered: true", then some text that should be drawn
+ centered, then "# .centered: false" to go back to non-centered text;
+ important note: after using "# .parse_comments: false", or when using
+ "readme.parse_comments: false", detecting and parsing comments inside
+ the file is disabled and comments are just printed like normal text;
+ also be aware that all automatic text size calculations are done with
+ the font defined in "readme.font", while using different fonts using
+ "# .font: <font>" inside the text file may cause unexpected results
+
+2007-03-08
+ * changed some numerical limits in the level editor from 255 to 999
+
+2007-03-07
+ * added option "system.sdl_videodriver" to select SDL video driver
+ * added output of SDL video and audio driver to "version info" page
+
+2007-03-06
+ * added group element drawing to IntelliDraw drawing functions
+ * fixed animation resetting problem again (last try broke Snake Bite)
+ * fixed diagonal scrolling in screen scrolling (last try broke Pac Man)
+
+2007-03-01
+ * added new (special) "include: <filename>" directive that works in all
+ configuration files (like "graphicsinfo.conf") and that has the same
+ effect as if that directive would be replaced with the content of the
+ specified file (this can be useful to split large configuration files
+ into several smaller ones and include them from one main file, or to
+ store configuration settings that always stay the same into a separate
+ file, while including it and only add those parts that really change)
+
+2007-02-24
+ * fixed minor bug (screen redraw of player tiles) in EMC graphics engine
+
+2007-02-23
+ * fixed bug in "InitMovingField()" where treating an integer array as
+ boolean caused wrong resetting of animations while elements are moving
+ * fixed problem with resetting animations when starting element change
+
+2007-02-08
+ * added sort priority for order of title screens and title messages
+
+2007-02-07
+ * changed end of game again: do not wait for the user to press a key
+ anymore, but directly ask/confirm tape saving and go to hall of fame
+ * re-enabled quitting of lost game by pressing space or return again
+ * added blanking of mouse pointer when displaying title screens
+ * added remaining menu draw offset definitions for info sub-screens
+
+2007-02-05
+ * added setup option to select game speed (from very slow to very fast)
+ * improved handling of title text messages (initial and for level set)
+
+2007-02-03
+ * added new options "auto-wrap" and "centered" for DC2 style envelopes
+
2007-01-31
* fixed displaying and typing of player name when it is centered
* added special characters to be allowed for player name (not only A-Z)