+2013-11-20
+ * improved error handling: display error message on screen (not only in
+ the error file or on the console), and display path of the error file
+
+2013-11-13
+ * fixed problem with R'n'D restarting with same level set that may have
+ caused a problem (and therefore failing again and again); after an
+ error, the last level set is now deactivated in file "levelsetup.conf"
+ to restart with default level set (which should work without error)
+
+2013-11-07
+ * fixed determining main game data directory on Mac OS X "Mavericks"
+
+2013-11-04
+ * version number set to 3.3.1.2
+
+2013-11-04
+ * version 3.3.1.1 released
+
+2013-11-03
+ * added scripts directory to distribution package to enable building
+ element definitions after editing artwork config source code files
+
+2013-10-26
+ * added volume controls for sounds, loops and music to sound setup
+
+2013-10-24
+ * version number set to 3.3.1.1
+
+2013-10-23
+ * version 3.3.1.0 released
+
+2013-10-21
+ * version number set to 3.3.1.0
+
+2012-10-13
+ * fixed display of level time switching from ascending to descending
+ when making use of the "time orb bug" (see element setting in editor)
+ (see level 053 of set "rnd_equinox_tetrachloride_ii" for an example)
+ * fixed graphics performance problems (especially on Mac OS X) by using
+ whole-playfield redraw on SDL target, while still using the previous
+ single-tile redraw method on X11 target (using redraw tiles threshold)
+
+2011-10-07
+ * fixed code (esp. random/tape handling) when compiled on 64-bit systems
+ (by replacing all "long" types by "int" types)
+
+2010-11-19
+ * fixed nasty bug (affecting crumbled graphics) after adding new special
+ graphics suffix ".TAPE" (and messing some things up in src/main.c)
+
+2010-08-04
+ * fixed wrong argument order in DrawTextBuffer() in gadgets.c
+ (this caused fonts in envelope config in level editor being invisible)
+
+2010-07-19
+ * fixed some problems with half tile size and even tile sized playfields
+
+2010-07-12
+ * added level selection screen (when clicking on main menu level number)
+ * added level tracing (played, solved) for use in level selection screen
+ (to display already played or solved levels in different font color)
+
+2010-06-24
+ * added alternative game mode for playing with half size playfield tiles
+ * fixed another memory violation bug in the native Supaplex game engine
+ (this potential memory bug was also in the original Megaplex code, but
+ apparently only occured under rare conditions triggered by using the
+ additional added preceding playfield memory area to make a few strange
+ levels using dirty off-playfield tricks (bugs) like "12s033.sp" also
+ solvable (this all worked fine in the classic DOS version, of course))
+
+2010-06-23
+ * added graphics performance optimization to native Supaplex game engine
+ * fixed bug with accidentally removing preceding buffer in SP engine
+ * moved some editor graphics from "RocksDoor.pcx" to "RocksMore.pcx"
+ (to prevent compatibility mapping of these newer graphics to older
+ (custom) versions of "RocksDoor.pcx" which did not contain them yet)
+
+2010-06-18
+ * added separately configurable game panel background to graphics config
+ * fixed displaying Supaplex time (now based on 35 fps instead of 50 fps)
+
+2010-06-16
+ * added tape panel graphics and screen positions to graphics config
+
+2010-06-15
+ * added compatibility stuff for redefined "global.door" (which affects
+ all parts of that image that have their own graphics definition now)
+
+2010-06-14
+ * added sound button graphics to graphics config
+
+2010-06-13
+ * added tape button graphics and screen positions to graphics config
+
+2010-06-09
+ * improved single step mode in R'n'D, EM and SP engines
+
+2010-06-08
+ * version number set to 3.3.0.2
+
+2010-06-08
+ * version 3.3.0.1 released
+
+2010-06-08
+ * added configurable key shortcuts for snap+direction player actions
+ (probably most useful for recording tool-assisted speedrun (TAS)
+ tapes using the single-step mode of the tape recorder)
+
+2010-05-28
+ * version number set to 3.3.0.1
+
+2010-05-25
+ * version 3.3.0.0 released
+
+2010-05-22
+ * fixed missing memory allocation in SP engine when saving engine data
+ for non-SP game engine snapshots (which also stores SP engine part)
+
+2010-05-21
+ * fixed problem with scrolling in native EM engine in multi-user mode
+ (this bug was just introduced with the experimental viewport stuff)
+ * fixed animation of splashing acid in EM engine with classic artwork
+ * fixed animation of cracking nut in EM engine with classic artwork
+ * fixed (implemented) single step mode in native EM and SP engines
+ * fixed "latest_engine" flag in classic levels (moved to single sets)
+ * updated SDL library DLLs for Windows to the latest release versions
+ (this fixed some mysterious crashes of the game on Windows systems)
+ * replaced EM and SP set in classic level set with native level files
+ * finally added a newly written "CREDITS" file to the game package
+ * removed sampled music loops from classic music set
+
+2010-04-20
+ * changed native Emerald Mine engine to support different viewport sizes
+
+2010-04-19
+ * changed native Supaplex engine to support different viewport sizes
+
+2010-04-07
+ * added initial, experimental support for different viewport properties
+ (with "viewports" being menu/playfield area and doors; currently the
+ size of the menu/playfield area and door positions can be redefined)
+
+2010-04-02
+ * added initial, experimental support for different window sizes
+
+2010-03-27
+ * added support for native Sokoban solution files in pure 'udlrUDLR'
+ format with extension ".sln" instead of ".tape" for solution tapes
+
+2010-03-26
+ * added image config suffix ".class" to be able to define classes of
+ crumbled elements which are then separated against each others when
+ drawing crumbled borders (class names can freely be defined)
+ (Example: "sand.CRUMBLED.class: sand" and "emc_grass.CRUMBLED.class:
+ emc_grass" results in sand and emc_grass being crumbled separately,
+ even if directly adjacent on the playfield.)
+ * added image config suffix ".style" to use two new features for
+ crumbled graphics:
+ - "accurate_borders": try to draw correctly crumbled corners (which
+ means that a row of crumbled elements does not have two crumbled
+ corners for each element in the row, but only at the "real" corners
+ at the start and the end of the row of elements)
+ - "inner_corners": also draw inner corners in concave constructions
+ of several crumbled elements -- this is currently a big kludge: the
+ number of frames for crumbled graphic must be "2", with the first
+ frame as usual (crumbled graphic), while the second frame contains
+ the graphic with inner (crumbled) corners for the crumbled graphic
+ (These two features are mainly intended for bevelled walls, not for
+ diggable elements like sand; "inner_corners" only works reliably for
+ static walls, not for in-game dynamically changing walls using CEs.)
+
+2010-03-16
+ * finished code cleanup of native Supaplex game engine
+
+2010-03-14
+ * started code cleanup of native Supaplex game engine
+
+2010-03-13
+ * integrated playing sound effects into native Supaplex game engine
+
+2010-03-10
+ * added configurable key shortcuts for the tape recorder buttons
+
+2010-03-09
+ * added (hidden) function to save native Supaplex levels with tape as
+ native *.sp file containing level with demo (saved with a file name
+ similar to native R'n'D levels, but with ".sp" extension instead of
+ ".level"); to use this functionality, enter ":save-native-level" or
+ ":snl" from the main menu with the native Supaplex level loaded and
+ the appropriate tape loaded to the tape recorder
+ * fixed potential crash bug caused by illegal array access in engine
+ snapshot loading and saving code
+ * changed setting permissions of score files to be world-writable if
+ the program is not installed and running setgid to allow the program
+ to modify existing score files when run as a different user (which
+ allows cheating, of course, as the score files are not protected
+ against modification in this case)
+ * added (commented out) suggestions for RO_GAME_DIR and RW_GAME_DIR to
+ the top level Makefile for Debian / Ubuntu installations
+ * added saving read-only levels from editor into personal level set
+ (thanks to Bela Lubkin for the above four patches)
+
+2010-03-03
+ * added updating of game values on the panel to Supaplex game engine
+
+2010-02-23
+ * finished integrating R'n'D graphics engine into Supaplex game engine
+ (although some animations do not support full customizability yet)
+
+2010-02-22
+ * done integrating R'n'D graphics engine into file "Infotron.c"
+ * done integrating R'n'D graphics engine into file "OrangeDisk.c"
+
+2010-02-19
+ * integrated engine snapshot functionality into Supaplex game engine
+
+2010-02-16
+ * fixed bug in native Supaplex engine that broke several demo solutions
+ * fixed bug with re-initializing already existing elements in function
+ RelocatePlayer() in src/game.c (causing problems with Sokoban fields
+ counted a second time, making the currently playing level unsolvable)
+ * done integrating R'n'D graphics engine into file "SnikSnaks.c"
+ * done integrating R'n'D graphics engine into file "Electrons.c"
+ * done integrating R'n'D graphics engine into file "Zonk.c"
+
+2010-02-14
+ * done integrating R'n'D graphics engine into file "Murphy.c"
+ * done integrating R'n'D graphics engine into file "BugsTerminals.c"
+
+2010-02-07
+ * started integrating R'n'D graphics engine into Supaplex game engine
+
+2010-02-02
+ * added small kludge that allows transparent pushing animation over
+ non-black background (by using "game.use_masked_pushing: true")
+ * added editor flag to Sokoban field/object elements to automatically
+ finish solved Sokoban style levels (even if they contain non-Sokoban
+ elements, which prevents auto-enabling this feature for such levels)
+
+2010-01-10
+ * added new element "from_level_template" which is replaced by element
+ from level template at same playfield position when loaded (currently
+ not accessible from level editor, but only used for special Sokoban
+ level conversion when using "special_flags: load_xsb_to_ces")
+ * added special behaviour for "special_flags: load_xsb_to_ces": global
+ settings of individual level files are overwritten by template level
+ (except playfield size, level name, level author and template flag)
+
+2010-01-07
+ * added handling of gravity ports when converting Supaplex style R'n'D
+ levels to native Supaplex levels for playing with Supaplex engine
+
+2010-01-06
+ * fixed bug in Supaplex engine regarding initial screen scroll position
+
+2009-12-17
+ * fixed EMC style pushing animations in the R'n'D graphics engine (when
+ using ".2nd_movement_tile" for animations having start and end tile)
+ * for this to work (look) properly for two-tile pushing animations with
+ non-black (i.e. opaque) background, the pushing graphics drawing order
+ was changed to first draw the pushed element, then the player (maybe
+ this should be controlled by an ".anim_mode" flag yet to be added)
+ * two-tile animations for moving or pushing should have 7 frames for
+ normal speed, 15 frames for half speed etc. to display correct frames
+ * two-tile animations are also displayed correctly with different speed
+ settings for the player (for pushing animations) or moving elements
+
+2009-12-16
+ * added searching for template level (file "template.level") not only
+ inside the level set directory, but also in above level directories;
+ this makes is possible to use the same single template level file
+ (placed in a level group directory) for many level sub-directories
+
+2009-12-10
+ * fixed bug with steel exit being destructible during opening phase
+ * added token "special_flags" to "levelinfo.conf" (currently with the
+ only recognized value "load_xsb_to_ces", doing the same as the flag
+ "-Dload_xsb_to_ces" on the command line, but as a permanent flag for
+ converting all elements in native (XSB) Sokoban level files to CEs)
+
+2009-12-08
+ * fixed some problems with Supaplex engine when compiling for Windows
+
+2009-12-05
+ * added special mode to convert elements of Sokoban XSB levels to CEs
+ by adding "-Dload_xsb_to_ces" to the command line starting the game
+ (also adding a dependency to a template level file "template.level")
+
+2009-12-01
+ * added reading native Sokoban levels and level packages (XSB files)
+
+2009-11-25
+ * fixed bugs in (auto)scrolling behaviour when passing ports or when
+ wrapping around the playfield through "holes" in the playfield border
+
+2009-11-24
+ * changed internal playfield bitmap handling from playfield sized bitmap
+ to screen sized bitmap (visible scrolling area), therefore speeding up
+ graphics operations (by eliminating bitmap updates in invisible areas)
+ and removing playfield size limitations due to increasing bitmap size
+ for larger playfield sizes (while the new implementation always uses
+ a fixed playfield bitmap size for arbitrary internal playfield sizes)
+
+2009-11-12
+ * fixed bug with single step mode (there were some cases where the game
+ did not automatically return to pause mode, e.g. when trying to push
+ things that cannot be pushed or when trying to run against a wall)
+
+2009-11-01
+ * added support for loading Supaplex levels in MPX level file format
+
+2009-10-31
+ * fixed SP engine to set "game over" not before lead out counter done
+
+2009-10-30
+ * fixed (potential) compile error when using GCC option "-std=gnu99"
+ (thanks to Tom "spot" Callaway)
+
+2009-10-28
+ * fixed array allocation in native Supaplex engine to correctly handle
+ preceding scratch buffers (needed because of missing border checking)
+ * fixed playfield initialization to correctly add raw header bytes as
+ subsequent scratch buffer (needed because of missing border checking)
+
+2009-10-24
+ * most important parts of native Supaplex engine integration working:
+ - native Supaplex levels can be played in native Supaplex engine
+ - native Supaplex level/demo files ("*.sp" files) can be re-played
+ - all 111 classic original Supaplex levels automatically solvable
+ - native Supaplex engine can be selected and used from level editor
+ - logic of re-playing Supaplex demos migrated to R'n'D tape logic
+
+2009-09-25
+ * fixed another translation problem from VisualBasic to C (where "int"
+ should be "short") causing unsolvable demos with bugs and terminals
+ ("bugs" being related to the Supaplex "buggy base" element here ;-) )
+
+2009-09-23
+ * fixed bug when reading Supaplex single level files (preventing loader
+ from seeking to level position like in Supaplex level package files)
+
+2009-08-01
+ * first classic Supaplex level running and solved by solution/demo tape
+
+2009-06-20
+ * started with integration of native Supaplex engine, using source code
+ of Megaplex from Frank Schindler, based on original Supaplex engine
+
+2009-06-16
+ * version number set to 3.2.6.2
+
+2009-06-15
+ * version 3.2.6.1 released
+
+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-30
+ * deactivated blit-to-same-surface workaround again (see 2009-03-24)
+ and using self-compiled, patched SDL.dll that solves this problem
+ (interim solution until release of SDL 1.2.14 that should fix this)
+
+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 leave steel wall instead of normal wall
+ * 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