X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=ChangeLog;h=945185889fcbf1d89ae14da6d22a205ba4cfc838;hp=971e771fbba7978227d31a5cd7df3659084c19dd;hb=e51177796149f37de339bda83558c3c49758be93;hpb=9973503db7520dec9ef97986c317ffeafb273cf2 diff --git a/ChangeLog b/ChangeLog index 971e771f..94518588 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,459 @@ +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 when explosion of ") + +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 " for custom elements + that behaves a bit like the existing "deadly when ", + 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 + - hitting + - explosion of + - move of + (the last two conditions already worked partially, but only for the + first player, and not for the "Murphy" player when using "move of") + +2008-01-20 + * fixed crash bug caused by accessing invalid element (with value -1) + in UpdateGameControlValues() + * fixed graphical bug when using two-tile movement animations with EMC + game engine without explicitly using native EMC graphics engine + +2007-10-31 + * fixed bug in new "can dig" feature (see below) so that an unsuccessful + try to push something (due to push delay) does not cause a dig action + +2007-10-29 + * fixed bug with reference elements used as trigger elements on custom + element change pages not being recognized + * fixed bug with reference elements not being removed from the playfield + * added engine functionality that allows custom elements that "can dig" + other elements not only to do so when moving by themselves, but also + when being pushed by the player (therefore adding the functionality to + push one element over another element, replacing it with the new one) + +2007-10-23 + * added command line function to write level sketch images to directory + +2007-10-20 + * merged override and auto-override options into new override options + with a new data type than can take the values "no", "yes" and "auto" + +2007-10-18 + * fixed growing steel wall to also leave behind steel wall instead of + normal, destructible wall + * fixed handling of rocks falling through stacks of quicksand with + different speed (before, the rocks just got stuck in the quicksand) + +2007-10-09 + * fixed nasty bug with auto-override and normal override not working on + program startup (especially when current level set has custom artwork) + +2007-10-05 + * version 3.2.5 released as special edition "R'n'D jue" + +2007-10-05 + * fixed X11 crash bug when blitting masked title screens over background + +2007-10-04 + * changed build system to support special editions (like "R'n'D jue") + * added (hardcoded) loading graphics for "R'n'D jue" special edition + * fixed X11 crash bug when scaling images with width/height less than 32 + +2007-09-27 + * added "background.PLAYING" (only visible as two-pixel border in game) + * added default level set for first start of special R'n'D version + * changed door animations for editor always behaving like "quick doors" + +2007-09-26 + * added new custom artwork setup option "auto-override non-CE sets" for + automatic artwork override that is only used for level sets without + custom element artwork (as it does not make much sense to override + any artwork that redefines custom element artwork for sets using CEs) + * fixed default artwork for "special" R'n'D versions always using the + "classic" artwork as the base if base artwork is not explicitly + defined in "levelinfo.conf", regardless of different default artwork + used by the special R'n'D version -- this is needed because any such + custom artwork is designed using the "classic" artwork definitions as + the base (including menu definitions and screen positions etc., which + would otherwise be taken from the different special default artwork) + +2007-09-17 + * fixed drawing of animated "quicksand.filling" and "quicksand.emptying" + for both EMC and R'n'D graphics engine (heavy workarounds needed due + to massively broken handling of quicksand in R'n'D game engine) + * fixed off-limits access to array in DrawLevelFieldCrumbledSandExt() + * fixed crash bug (hopefully) when scrolling with cursor keys in editor + +2007-09-16 + * fixed small bug in toon drawing (introduced when fixing the crash bug) + +2007-09-15 + * added graphics definition "game.panel.highscore" to display the + current levels current high score in the game panel + +2007-09-13 + * version number set to 3.2.5 + +2007-09-13 + * version 3.2.4 released + +2007-09-13 + * fixed crash bug in toon drawing functions for large step offset values + +2007-09-12 + * fixed some problems with displaying game panel when quick-loading tape + 2007-09-07 * fixed (experimental only) redrawing of every tile per frame (even if unneeded) for the extended (R'n'D based) EMC graphics engine + * added optimization to only calculate element count for panel display + if really needed (that is, if element count values defined on panel) + * fixed problem with special editor door redraw when entering main menu 2007-09-03 * fixed bug with displaying background for title messages on info screen