+2014-12-13
+ * fixed loading custom PCX image files with default artwork file names
+ (like "RocksDoor.pcx") which are not redefined in artwork config file
+ (this is a special fix for Zelda 2 and probably some other existing
+ level sets which use new graphics which are not defined in the file
+ "graphicsinfo.conf", but use a file name of one of default graphics
+ (like "RocksScreen.pcx"); this did not work anymore for PCX files
+ since the default graphics files have been changed to PNG files, so
+ different file names are checked now (like "RocksScreen.png"), so if
+ the PNG files cannot be found, the old PCX files are also checked)
+
+2014-12-03
+ * added some more graphics customization options for the level editor:
+ - editor.button.prev_level (position)
+ - editor.button.next_level (position)
+ - editor.input.level_number (position)
+ - editor.palette.tile_size (tile size for palette elements)
+ - editor.palette.element_left.tile_size (draw element tile size)
+ - editor.palette.element_middle.tile_size (draw element tile size)
+ - editor.palette.element_right.tile_size (draw element tile size)
+ - editor.input.gfx.level_number (current level number input field)
+
+2014-11-22
+ * fixed menu display bugs caused by drawing outside menu area (again)
+
+2014-11-19
+ * fixed broken door animations when switching between custom graphics
+
+2014-11-06
+ * fixed layout for "level set info" to support custom playfield size
+ * fixed changing from title to info screen with custom playfield size
+
+2014-11-02
+ * fixed bug with not updating default bitmap pointer for scaled images
+ * fixed redraw/fade bugs when redefining the playfield size or position
+
+2014-10-27
+ * fixed some smaller issues with loading custom artwork
+
+2014-10-22
+ * added warnings when using undefined element and graphic names in
+ custom artwork definitions (like ".crumbled_like" or ".clone_from")
+ * added setting default filenames for all cloned graphics in static
+ graphics configuration on startup (to be able to fall back later)
+
+2014-10-20
+ * fixed using buttons on main screen with size other than 32x32 pixels
+ * fixed some initialization bugs for scrollbars and main screen buttons
+ * fixed bug when drawing non-element graphics (without separate in-game
+ graphic/bitmap defined) while non-standard game tile size is defined
+
+2014-10-17
+ * removed some remaining unused X11 stuff
+ * fixed bug with potentially suppressed exit error message on startup
+
+2014-10-16
+ * fixed bug not loading tape when selecting level from level selection
+ screen (thanks to filbo for finding this bug and supplying a patch)
+
+2014-10-15
+ * fixed menu display bugs (drawing outside menu area with draw offset)
+ * fixed menu key navigation bugs (when using smaller menu list size)
+
+2014-10-14
+ * added support for animated door parts during opening/closing movement
+
+2014-10-13
+ * added automatic detection of normal/steel character elements in level
+ editor when drawing text (depending on currently selected element)
+
+2014-10-13
+ * eliminated historical ISO-8859-1 characters from source code files
+ (but still using them internally for special character encodings)
+ * changed output of special character for level sketch brushes to UTF-8
+
+2014-10-08
+ * added handling of unselectable selectbox options and option headlines
+
+2014-10-07
+ * fixed bug when changing between graphic sets with different tile size
+ * cleanup of handling the various graphic sizes for different purposes
+ (like 32x32, 16x16 etc.); this change was needed for the bugfix above
+
+2014-10-02
+ * added virtual keyboard on Android port when entering player name
+
+2014-10-01
+ * fixed "quick menu doors" and sounds for door and envelope requests
+
+2014-09-29
+ * fixed display bugs with certain custom menu definitions regarding the
+ hall of fame (high scores) and setup screens that require scrolling
+ (these display bugs showed up with custom menu graphics of R'n'D jue)
+
+2014-09-28
+ * fixed bug with animation frames per line with non-standard tile size
+ (relevant for example for 64x64 sized frames continued on next row)
+
+2014-09-22
+ * removed checking of file identifier tokens for configuration files
+
+2014-09-19
+ * fixed bug where player actions were only mapped in team mode
+ (this broke four tapes in automatic game engine unit test where
+ old levels contained a non-yellow player, like rnd_abby_king, 011)
+
+2014-09-15
+ * removed large parts of the preprocessor hell of old and unused code
+
+2014-09-14
+ * updated source file headers (mainly author contact information)
+
+2014-09-11
+ * added key shortcuts for window scaling and toggling fullscreen mode:
+ - Ctrl-'+', Ctrl-'-' and Ctrl-'0' for up/downscaling and normal size
+ - "F11" key for toggling fullscreen mode (in addition to Alt-Enter)
+
+2014-09-10
+ * fixed some drawing bugs when scaling graphics due to "game.tile_size"
+ * added some performance improvements when handling SDL surface scaling
+
+2014-09-04
+ * added custom graphics property "game.tile_size" to define in-game tile
+ size (this defines the tile size actually displayed on the playfield);
+ tile graphics will either be scaled to the defined game tile size or
+ have to be specified with the same image size (using ".tile_size")
+
+2014-09-01
+ * added custom graphics property ".tile_size" to define tile image size
+ for game element graphics (like "custom_1.tile_size"); non-standard
+ sized images will then be scaled accordingly to standard tile size
+
+2014-08-30
+ * fixed music still being played in Android version when in background
+
+2014-08-30
+ * added Android "menu" button to be treated as "yes" requester button
+ (while the Android "back" button was already treated as "no" button)
+
+2014-08-28
+ * added command line options "--version" / "-V" to show program version
+ (also shows SDL library versions when prefixed with "--debug" option)
+
+2014-08-27
+ * error file set to unbuffered to prevent truncation in case of crashes
+
+2014-08-19
+ * fixed bug causing wrong screen updates while playing (whole screen
+ update from backbuffer instead of playfield buffer if REDRAW_ALL set)
+ * fixed nasty (typo) bug in native EM engine causing broken player
+ graphics when using different (redefined) playfield size
+
+2014-08-18
+ * fixed bug causing EM/EMC graphics sets containing original 16x16 tiles
+ to be displayed incorrectly (with broken scaling) when switching
+ between small and normal game graphics (thanks a lot to filbo for
+ analyzing and describing how to exactly reproduce this bug)
+
+2014-05-15
+ * removed MS-DOS support
+ * removed native X11 support (X11 now only supported via SDL/SDL2)
+
+2014-05-14
+ * cleanup of functions RedrawPlayfield() and BlitScreenToBitmap()
+
+2014-05-13
+ * fixed level redraw after quick-loading tape with small tile graphics
+
+2014-03-03
+ * added compatibility code for existing request door animation settings
+
+2014-03-01
+ * added ultra-generic, ultra-flexible request door animation handling
+
+2014-02-18
+ * fixed major bugs in handling single-player and multi-player tapes
+ (for details, see http://www.artsoft.org/forum/viewtopic.php?t=2086)
+
+2014-02-13
+ * fixed various problems with playfield and requester/tape/editor doors
+ defined to be at non-standard screen positions in artwork config file
+
+2014-01-28
+ * added envelope style requester dialog (alternative to door requester)
+
+2014-01-27
+ * fixed problems with window scaling and updating related setup value
+ * added setup option to select anti-aliasing quality of scaled windows
+
+2014-01-17
+ * improved speed of displaying progress when loading levels and artwork
+ * changed fullscreen and window scaling changes in setup menu to have
+ immediate effect (instead of being effective after leaving setup menu)
+
+2014-01-15
+ * fixed toons stopping on continuous touch events on Mac OS X
+
+2014-01-14
+ * fixed bug when displaying game envelope with even sized playfield
+ * added graphic configuration options for request (dialog) buttons
+
+2014-01-13
+ * fixed some redraw bugs with window scaling under Mac OS X
+
+2014-01-10
+ * fixed problems with window scaling and updating related setup value
+
+2014-01-07
+ * fixed problems related to fullscreen switching and window scaling
+
+2014-01-06
+ * fixed inconsistent custom artwork constants numbering in src/main.h,
+ src/screen.c and src/conf_gfx.c (this really should be cleaned up)
+ (this bug caused custom artwork definition to set wrong variable)
+
+2014-01-05
+ * fixed using fullscreen mode on Android instead of pseudo-window mode
+ * fixed keeping desktop fullscreen mode when changing viewport size
+
+2014-01-04
+ * fixed remaining text input problems for non-ASCII keys with modifier
+ * added window scaling options to graphics setup menu
+
+2014-01-03
+ * fixed key code problems with certain keys for SDL2
+ (keypad keys not being in numerical order; number of function keys)
+ * fixed text input problems for text characters using modifier keys
+
+2014-01-02
+ * fixed fullscreen option for SDL2 (using only desktop fullscreen now)
+
+2013-12-28
+ * fixed graphical bugs when using renderer/texture based graphics
+
+2013-12-23
+ * fixed playing certain sounds (menu navigation sound and counting
+ score sound after solving a level) when "normal sounds" are disabled
+
+2013-12-16
+ * continued porting Rocks'n'Diamonds to Android (levels now playable)
+
+2013-12-12
+ * added SDL2 renderer/texture based graphics frame handling to allow for
+ "desktop" style fullscreen mode and scaling of game screen/window
+
+2013-12-11
+ * removed limitation of artwork files to selected file types (this means
+ that every file type supported by SDL_image and SDL_mixer can be used)
+ * changed default graphics from PCX to PNG (needed for Android version
+ to prevent painfully slow image loading, although not compressing PCX
+ files in the assets directory of the APK package might also work fine)
+ * fixed bug with SDL_BlitSurface creating garbage when source and target
+ surface are the same (this bug also existed in versions of SDL 1.2.x)
+
+2013-12-07
+ * started porting Rocks'n'Diamonds to Android (already shows main menu)
+
+2013-12-03
+ * ported Rocks'n'Diamonds to SDL2 (first simple version that works)
+
+2013-12-01
+ * version number set to 3.3.1.3
+
+2013-11-24
+ * version 3.3.1.2 released
+
+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 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)
* fixed bug with not resetting push delay under certain circumstances
2004-04-27
- * added option "handicap" for "levelinfo.conf" (thanks to Niko Böhm)
- * added network multiplayer code for Windows (thanks to Niko Böhm)
+ * added option "handicap" for "levelinfo.conf" (thanks to Niko Böhm)
+ * added network multiplayer code for Windows (thanks to Niko Böhm)
2004-04-25
* added option "reachable despite gravity" for gravity movement
(reported by Simon Forsberg)
* fixed bug which could cause an array overflow in RelocatePlayer()
- (reported by Niko Böhm)
+ (reported by Niko Böhm)
* changed Emerald Mine style "passable / over" elements to "protected"
(fixing unsolvable level 10 of "Bondmine 9" with bug beside gate)
2002-12-31
* pre-release version 2.2.0rc1 released
+2002-08-25 src/libgame/setup.c, src/libgame/sound.c
+ * Level series artwork now configurable via level series config file.
+ "levelinfo.conf" may now contain directives "graphics_set",
+ "sounds_set" and "music_set" to select artwork sets which are
+ globally defined or which are included into other level series.
+
2002-08-25
* version number set to 2.1.2
2002-08-13
* version 2.1.1 released
+2002-08-10 src/libgame/system.h
+ * Default "snap" and "bomb" keys for Mac OS X set to left control key
+ and keypad enter key -- Macs seem not to distinguish between left
+ and right modifier keys (both generate scan code for left key). :-(
+
+2002-08-10 src/libgame/sound.c
+ * Fixed small NetBSD compilation bug.
+ Thanks to Adam Ciarcinski for the bug report.
+
+2002-08-10 src/libgame/sound.c
+ * Added support for audio device "/dev/sound/dsp" (devfs).
+ Thanks to Christoph Bauer for the corresponding report.
+
+2002-08-10 src/libgame/sound.c
+ * Bug fixed that caused regular crashes under SDL/Windows version.
+ Mixer_InsertSound(): Always stop music before playing new music,
+ else "mixer_active_channels" can get fucked up.
+ Thanks to Keith Peterston for the bug report.
+
2002-08-10
* version number set to 2.1.1
2002-08-05
* version 2.1.0 released
-
+
+2002-05-31 src/libgame/image.c
+ * Read_PCX_to_Pixmap(): Fixed bad memory leak by freeing "ximageinfo"
+ and "image" after converting loaded PCX image file to X11 Pixmap.
+ This really showed up when reloading custom artwork several times.
+
+2002-05-20 src/libgame/sound.c
+ * added support for 16 bit WAV sound files
+
2002-05-19
* version number set to 2.1.0
2002-04-03 to 2002-05-19 (various source files)
* graphics, sounds and music now fully configurable
* bug fixed that prevented walking through tubes when gravity on
+ * added support for TrueColor PCX graphics files
+ * enhanced sound system (especially regarding stereo and loop sounds)
2002-04-02 src/events.c, src/editor.c
* Make Escape key less aggressive when playing or when editing level.
automatically gets created by "src/Makefile" and contains an actual
compile-time timestamp to identify development versions of the game).
+2002-04-01 src/libgame/misc.c
+ * Added (currently incomplete) function "getKeyFromKeyName()" simply
+ for orthogonality. When really needed, this function must be
+ extended accordingly (analog to "getKeyFromX11KeyName()").
+
+2002-04-01 src/libgame/setup.c
+ * Changed setup "TYPE_KEY" (internal, X11 style key symbol name) to
+ "TYPE_KEY_X11" and added "TYPE_KEY" (human readable key symbol name).
+ (This was needed for custom key setup handling in "src/screens.c".)
+
2002-03-31 src/tape.c, src/events.c
* Added quick game/tape save/load functions to tape stuff which can be
invoked by a keyboard shortcut. Default: "F1" saves game/tape, "F2"
2002-03-30 src/cartoons.c
* Moved some stuff from cartoons.c to the new "src/libgame/toons.c".
+2002-03-30 src/libgame/toons.c
+ * New libgame source file "toons.c" for the program independant part
+ of the toon stuff.
+
2002-03-29 src/screen.c
* Changed setup screen stuff to be more generic (to make it easier
to add more setup screens).
+2002-03-29 src/libgame/setup.c
+ * Changed "LoadLevelInfoFromLevelDir()" so that not only directories
+ with level sub-directories are recognized, but also directories
+ that directly contain level files.
+
+2002-03-29 src/libgame/sound.c
+ * Changed "boolean stereo = TRUE;" to "static boolean stereo = TRUE;".
+ (This was a bug that showed up only when in mono audio mode.)
+
+2002-03-24 src/libgame/x11.c, src/libgame/sdl.c, src/libgame/image.c
+ * Changed image loading code to not exit on error, but set error by
+ using "SetError()" accordingly. Image loading errors must now be
+ catched by above layers (src/init.c for example).
+
+2002-03-24 src/libgame/misc.c
+ * New functions "SetError()" and "GetError()" to provide more
+ flexible error handling.
+
2002-03-23 src/main.c, src/main.h
* Various changes due to the introduction of the new libgame files
"setup.c" and "joystick.c".
* File "src/joystick.c" moved to libgame source tree, with
correspondig changes.
+2002-03-23 src/libgame/system.c, src/libgame/system.h
+ * Various changes due to the introduction of the new files "setup.c"
+ and "joystick.c".
+
+2002-03-23 src/libgame/setup.c
+ * New libgame source file "setup.c" that contains now most setup and
+ level directory stuff previously handled in "src/files.c".
+
+2002-03-23 src/libgame/joystick.c
+ * New libgame source file "joystick.c" that contains now all joystick
+ stuff previously handled in "src/joystick.c" of "Rocks'n'Diamonds".
+
2002-03-22 src/screens.c
* "HandleChooseLevel()": Another bug in level series navigation fixed.
(Wrong level series information displayed when entering main group.)
intuitive: When in "Element Properties" or "Level Info" mode,
return to "Drawing Mode" instead of leaving the level editor.
+2002-03-22 src/libgame/misc.c, src/libgame/sound.c
+ * Added command line option "-s" / "--sounds" and "-m" / "--music"
+ to specify alternative sound and music directories. (The former
+ shortcut "-s" for "--serveronly" has changed accordingly.)
+
+2002-03-22 src/libgame/gadgets.c
+ * Added new gadget events for displaying gadget info texts:
+ "GD_EVENT_INFO_ENTERING" and "GD_EVENT_INFO_LEAVING". Before,
+ the info text callback function was only called when entering
+ a gadget (implicit "GD_EVENT_INFO_ENTERING"). But the info text
+ was never erased. This can now be done by checking the event type
+ in the info callback function.
+
2002-03-21 src/game.c, src/editor.c, src/files.c
* 2.0.1 introduced the corrected "Emerald Mine" style behaviour of
gems (emeralds, diamonds, ...) slipping down from normal wall,
compiling the SDL version on some systems.
Thanks to the several people who pointed this out.
+2002-03-20 src/libgame/gadgets.c
+ * "va_arg(ap, boolean)" changed to "(boolean)va_arg(ap, int)";
+ this caused problems especially on PowerPC architecture (although
+ it is wrong on i386 and other architectures, too)
+
+2002-03-20 src/libgame/pcx.c, src/libgame/image.c
+ * Added support for loading and displaying true-color PCX files.
+
+2002-03-20 src/libgame/misc.c, src/libgame/x11.c
+ * Added command line option "-g" / "--graphics" to specify an
+ alternative graphics directory.
+
2002-03-19
* Version number set to 2.0.2.
2002-03-19
* Version 2.0.1 released.
+2002-03-19 src/libgame/system.c, src/libgame/sdl.c [src/tools.c]
+ * Moved function "GetPixel()" from src/tools.c ("Mirror Magic" code)
+ to libgame source files; needed for SDL fullscreen bug workaround
+ to work correctly.
+
2002-03-18 src/screens.c
* "HandleChooseLevel()": Small bug in level series navigation fixed.
score files) according to suggestions of Debian users and mantainers.
Thanks to Drew Parsons <dparsons@emerall.com> for the patch.
+2002-03-18 src/libgame/misc.c [src/files.c]
+ * Moved some common functions from src/files.c to src/libgame/misc.c.
+
+2002-03-18 src/libgame/misc.c [src/files.c]
+ * Changed permissions for new directories and saved files (especially
+ score files) according to suggestions of Debian users and mantainers.
+ Thanks to Drew Parsons <dparsons@emerall.com> for the patch.
+
2002-03-17 src/files.c
* Changed "{Load|Save}{Level|Tape}()" to IFF style file format:
Replaced "cookie" header string ("ROCKSNDIAMONDS_...\n") with
file, and "file version" is a version number to distinguish files
with different format, for example after adding new features).
+2002-03-17 src/libgame/sound.c
+ * Bug in "StopMusic()" fixed: SDL_mixer functions may be called
+ even when sound not available.
+ Thanks to Drew Parsons <dparsons@emerall.com> for the patch.
+
2002-03-15 src/screen.c
* "DrawHallOfFame()": "FadeSounds()" when entering the hall of fame.
(Before, you heard a mixture of the in-game music and the
hall-of-fame music.)
+2002-03-15 src/libgame/sound.c, src/libgame/platform.h
+ * Added /dev/dsp (streaming audio) support for NetBSD (instead of the
+ /dev/audio (ulaw) based Unix audio interface).
+ Thanks to Krister Walfridsson <cato@df.lth.se> for the patches.
+
+2002-03-15 src/libgame/sdl.c
+ * Workaround for fullscreen bug in WIN32 version of SDL (at least
+ in the currently actual version 1.2.3) by using "standard" screen
+ resolutions like 800x600 and mapping all input (mouse events) and
+ output (screen drawing) accordingly.
+
2002-03-14 src/events.c
* Function "DumpTape()" (files.c) now available by pressing 't' from
main menu (when in DEBUG mode).
* Fixed problem (introduced after 2.0.0 release) with penguins
not getting killed by enemies
+2002-02-28 src/libgame/sound.c
+ * Fixed small problem with new SDL_Mixer 1.2.1:
+ Mix_VolumeMusic() must be called _after_ Mix_PlayMusic(),
+ or it has no effect.
+
2002-02-24 src/game.c, src/main.h
* Added "player->is_moving"; now "player->last_move_dir" does
not contain any information if the player is just moving at