removed unnecessary screen redraws when waiting for events to continue
[rocksndiamonds.git] / ChangeLog
index 7ad0fba1081c58af55edd629506c74db6c0bea03..00eea69a1ae883fa8e7ecefff57d0bdfd740a8a3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,744 @@
+2015-06-21
+       * extended automatic tape playing modes:
+         - "autotest" to automatically test tapes (this was "autoplay" before)
+         - "autoplay" to automatically play tapes (visibly)
+         - "autoffwd" to automatically play tapes (visibly, with maximum speed)
+
+2015-06-16
+       * fixed and enhanced screen fading and background/border handling
+
+2015-05-31
+       * added setup option to enable/disable (now optional) snapshot buttons
+
+2015-04-22
+       * added lag prevention to door/request/envelope animations
+
+2015-04-15
+       * added option "program_icon_file" to run-time "special edition" support
+
+2015-04-14
+       * added run-time "special edition" support;
+         this change is especially targeted to the "R'n'D jue" special edition
+         of R'n'D, which changed some defaults at compile-time in previous
+         versions, like:
+         - using a different default artwork set (with fallback artwork for
+           classic artwork not existing in the special edition),
+         - using a different default level set,
+         - using a different program name and user data directory,
+         - starting with different default setup values and
+         - using custom artwork even at a very early stage of startup
+           (like initial fonts and initial loading/busy animation);
+         these changes can now all be accomplished at run-time by using a new
+         program-specific configuration file in the same location and with the
+         same name as the game binary (minus a potential binary file extension
+         ".exe", plus a configuration file extension ".conf", so a binary file
+         "rnd_jue.exe" would be complemented by a new file "rnd_jue.conf" in
+         the same directory);
+         this config file can contain all options found in "setup.conf" plus
+         the following new, internal "special edition" default settings:
+         - program_title (like "R'n'D jue")
+         - program_author (like "Juergen Bonhagen")
+         - program_email (like "jue@artsoft.org")
+         - program_website (like "http://jue.artsoft.org/")
+         - program_copyright (like "(c) 2015 by jue")
+         - program_company (like "A game by jue")
+         - default_graphics_set (like "jue0")
+         - default_sounds_set (like "jue0")
+         - default_music_set (like "jue0")
+         - fallback_graphics_file (like "fallback.png")
+         - fallback_sounds_file (like "fallback.wav")
+         - fallback_music_file (like "fallback.wav")
+         - default_level_series (like "jue_start")
+         - choose_from_top_leveldir ("true" or "false")
+         where the "default" artwork set definitions are used to specify new
+         default artwork that replaces the "classic" artwork sets, while the
+         "fallback" settings specify artwork files used for all artwork files
+         that would exist in the classic artwork sets, but are not defined or
+         cannot be found in the new default artwork set; the program title is
+         used for things like window title, title screens and user data folder
+         name, and the entry point for choosing a level set can be changed
+         from the current level set location to the topmost level tree node
+
+2015-04-07
+       * added sound definitions for pressing and releasing main menu buttons
+
+2015-03-31
+       * fixed slow tape quick-loading due to unneeded tape area update
+
+2015-03-30
+       * replaced stop/play buttons in game panel with save/load buttons
+
+2015-03-24
+       * added step-based engine snapshots to undo/redo single steps in game
+
+2015-03-19
+       * fixed (swapped) editor zoom directions for '-' and '+' (keypad) keys
+
+2015-03-18
+       * added dynamically configurable graphics and layout of editor gadgets
+
+2015-03-11
+       * fixed (swapped) editor zoom directions for left and right mouse button
+
+2015-03-10
+       * added main menu backlink to level set selection screen
+
+2015-03-07
+       * added support for gadget-like pressable menu buttons on main screen
+
+2015-03-02
+       * added classic graphics, sounds and music to git repository
+       * added classic level sets to git repository
+       * added element description files to git repository
+       * changed mouse cursor on title screens not being always invisible
+       * added manually edited non-preset audio volume values to select list
+         (if sound, loops or music volume was manually edited in "setup.conf")
+
+2015-02-27
+       * fixed using "background.TOOLBOX", which was simply ignored before
+
+2015-02-23
+       * added key pad '-', '+' and '0' keys to zoom function in level editor
+       * changed editor key shortcut for undo/redo to 'u' and 'Shift-u'
+       * fixed using 'PageUp' and 'PageDown' keys for element list in editor
+
+2015-02-21
+       * added 1%, 2% and 5% to volume controls for sound and music settings
+
+2015-02-14
+       * fixed bug with editor border element not adjusted after resizing level
+       * changed unused playfield from "default" to "empty" after loading level
+       * increased number of undo/redo steps in level editor from 10 to 64
+
+2015-02-13
+       * added zoom functionality for playfield drawing area to level editor
+         (use left, right and middle mouse buttons on new "zoom" toolbox button
+         or use keys '-', '+' and '0' to zoom out, in or reset to default size)
+
+2015-02-11
+       * fixed bug not updating game panel values in visible warp forward mode
+
+2015-02-10
+       * changed position of CE/GE use/save template gadgets to be visually
+         separated from other CE/GE gadgets (to prevent accidental use)
+       * fixed bug in editor when using undo after rotating level repeatedly
+       * added 'redo' functionality to editor (by pressing 'undo' with right
+         mouse button or by using key shortcut "Shift-R")
+
+2015-02-04
+       * added configurability of editor control buttons (toolbox buttons)
+
+2015-02-03
+       * finished configurability of tape date and time display positions
+       * fixed bug with game buttons in tape area not properly redrawn
+       * fixed small graphical bug with default tape time display position
+       * added optionally configurable game frame counter to tape display
+
+2015-02-02
+       * fixed configurability of editor element palette (for columns != 4)
+
+2015-01-29
+       * improved configurability of tape date and time display positions
+       * added configurability of element properties button in editor
+       * added build dependency for auto-conf files
+
+2015-01-27
+       * added looking for editor element descriptions in level set directory
+         (for example, in file "<my-level-folder>/docs/elements/custom_1.txt")
+
+2015-01-25
+       * moved "element properties" button in editor from toolbox to palette
+       * added "zoom level tile size" button in editor to toolbox (currently
+         no function behind it; will be used to zoom level editor playfield)
+       * added key shortcuts '1' to '3' to view properties of drawing elements
+       * fixed gadget display bug in editor (door 1 area) after test playing
+       * fixed bugs when changing drawing area gadgets (like group elements)
+
+2015-01-19
+       * re-enabled editor palette element options in setup configuration file
+
+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)
        * 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