rocksndiamonds-3.0.6
authorHolger Schemel <info@artsoft.org>
Sun, 5 Oct 2003 23:35:30 +0000 (01:35 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:44:06 +0000 (10:44 +0200)
CHANGES
ChangeLog [deleted file]
src/Makefile
src/conftime.h
src/game.c
src/screens.c

diff --git a/CHANGES b/CHANGES
index 8b5497edd24bf0af2e86f6256a1d08227e006d1e..e8a75019597d01315ac6de8dd9d250790933d2fe 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,15 @@
-Release Version 3.0.6 [?? ??? ????]
+Release Version 3.0.6 [06 OCT 2003]
 -----------------------------------
+       - fixed bug when initializing font graphic structure
+       - fixed bug with animation mode "pingpong" when using only 1 frame
+       - fixed bug with extended change target introduced in 3.0.5
+       - fixed bug where passing over moving element doubles player speed
+       - fixed bug with elements continuing to move into push direction
+       - fixed bug with duplicated player when dropping bomb with shield on
+       - fixed switching bug (resetting flag when not switching but not idle)
+       - fixed element tokens for certain file elements with ".active" etc.
+       - added "switching" event for custom elements ("pressing" only once)
+       - added support for MP3 music for SDL version through SMPEG library
 
 Release Version 3.0.5 [29 SEP 2003]
 -----------------------------------
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index 8f53fa1..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,384 +0,0 @@
-2003-10-03
-       * fixed bug when initializing font graphic structure
-       * fixed bug with animation mode "pingpong" when using only 1 frame
-       * fixed bug with extended change target introduced in 3.0.5
-       * fixed bug where passing over moving element doubles player speed
-       * fixed bug with elements continuing to move into push direction
-       * fixed bug with duplicated player when dropping bomb with shield on
-       * added "switching" event for custom elements ("pressing" only once)
-       * fixed switching bug (resetting flag when not switching but not idle)
-
-2003-09-29
-       * fixed element tokens for certain file elements with ".active" etc.
-
-2003-09-29
-       * Version number set to 3.0.6.
-
-2003-09-29
-       * Version 3.0.5 released.
-
-2003-09-28
-       * now four envelope elements available
-       * font, background, animation and sound for envelope now configurable
-       * main menu doors opening/closing animation type now configurable
-
-2003-09-27
-       * active/inactive sides configurable for custom element changes
-       * new movement type "move when pushed" available for custom elements
-
-2003-09-20
-       * fixed bug in multiple config pages loader code that caused crashes
-
-2003-09-13
-       * enhanced (remaining low-resolution) Supaplex graphics
-
-2003-09-13
-       * Version number set to 3.0.5.
-
-2003-09-13
-       * Version 3.0.4 released.
-
-2003-09-12     src/tools.c
-       * fixed bug in custom definition of crumbled element graphics
-
-2003-09-11     src/files.c
-       * fixed bug in multiple config pages code that caused crashes
-
-2003-09-08
-       * Version number set to 3.0.4.
-
-2003-09-08
-       * Version 3.0.3 released.
-
-2003-09-07
-       * added music to Supaplex classic level set
-
-2003-09-07     src/libgame/misc.c
-       * added support for loading various music formats through SDL_mixer
-
-2003-09-06     (various source files)
-       * fixed several nasty bugs that may have caused crashes on some systems
-       * added envelope content which gets displayed when collecting envelope
-       * added multiple change event pages for custom elements
-
-2003-08-24     src/game.c
-       * fixed problem with player animation when snapping and moving
-
-2003-08-23     src/screens.c, src/cartoons.c, src/libgame/toons.c
-       * fixed problem with flickering when drawing toon animations
-
-2003-08-23     src/libgame/sdl.c
-       * fixed problem with setting mouse cursor in SDL version in fullscreen
-
-2003-08-23     src/game.c
-       * fixed bug (missing array boundary check) which could crash the game
-
-2003-08-23
-       * Version number set to 3.0.3.
-
-2003-08-22
-       * Version 3.0.2 released.
-
-2003-08-21     src/game.c
-       * fixed bug with creating inaccessible elements at player position
-
-2003-08-20     src/init.c
-       * fixed bug with not finding current level artwork directory
-
-2003-08-20     src/files.c
-       * fixed bug with choosing wrong engine version when playing tapes
-       * fixed bug with messing up custom element properties in 3.0.0 levels
-
-2003-08-18
-       * Version number set to 3.0.2.
-
-2003-08-18
-       * Version 3.0.1 released.
-
-2003-08-17     (no source files affected)
-       * changed all "classic" PCX image files with 16 colors or less to
-         256 color (8 bit) storage format, because the Allegro game library
-         cannot handle PCX files with less than 256 colors (contributed
-         graphics are not affected and might look wrong in the DOS version)
-
-2003-08-16     src/init.c
-       * fixed bug which (for example) crashed the level editor when defining
-         "dynamite.EDITOR:  [NONE]", because graphics may not be undefined
-         (only set to default) -- invalid graphics now set to default graphic
-
-2003-08-16     src/init.c
-       * fixed graphical bug of player digging/collecting/snapping element
-         when no corresponding graphic/animation is defined for this action,
-         resulting in player being drawn as EL_EMPTY (which should only be
-         done to elements being collected, but not to the player)
-
-2003-08-16     src/game.c
-       * fixed small graphical bug of player not totally moving into exit
-
-2003-08-16     src/libgame/setup.c
-       * fixed bug with wrong MS-DOS 8.3 filename conversion
-
-2003-08-16     src/tools.c
-       * fixed bug with invisible mouse cursor when pressing ESC while playing
-
-2003-08-16     (various source files)
-       * added another 128 custom elements (disabled in editor by default)
-
-2003-08-16     src/editor.c
-       * fixed NULL string bug causing Solaris to crash in sprintf()
-
-2003-08-16     src/screen.c
-       * fixed drawing over scrollbar on level selection with custom fonts
-
-2003-08-15     src/game.c
-       * cleanup of simple sounds / loop sounds / music settings
-
-2003-08-08     (various source files)
-       * added custom element property for dropping collected elements
-
-2003-08-08     src/conf_gfx.c
-       * fixed bug with missing graphic for active red disk bomb
-
-2003-08-07     src/files.c, src/editor.c src/game.c, src/main.h
-       * Extended variable "level.gravity" to "level.initial_gravity" and
-         "game.current_gravity" to prevent level setting from being changed
-         by playing the level (keeping the runtime value after playing).
-
-       * Fixed graphics bug when digging element that has 'crumbled' graphic
-         definition, but not 'diggable' graphic definition.
-
-2003-08-06
-       * Version number set to 3.0.1.
-
-2003-08-05
-       * Version 3.0.0 released.
-
-2003-08-05
-       * various bug fixes; among others:
-         - fixed bug with pushing spring over empty space
-         - fixed bug with leaving tube while placing dynamite
-         - fixed bug with explosion of smashed penguins
-         - allow Murphy player graphic in levels with non-Supaplex elements
-
-2003-04-07
-       * Various changes.
-       * I have forgotten to document changes for some time.
-
-2002-12-31
-       * Pre-Release Version 2.2.0rc1 released.
-
-2002-08-25
-       * Version number set to 2.1.2.
-
-2002-08-13
-       * Version 2.1.1 released.
-
-2002-08-10
-       * Version number set to 2.1.1.
-
-2002-08-05
-       * Version 2.1.0 released.
-       
-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
-
-2002-04-02     src/events.c, src/editor.c
-       * Make Escape key less aggressive when playing or when editing level.
-         This can be configured as an option in the setup menu. (Default is
-         "less aggressive" which means "ask user if something can be lost"
-         when pressing the Escape key.)
-
-2002-04-02     src/screen.c
-       * Added "graphics setup" screen.
-
-2002-04-01     src/screen.c
-       * Changed "choose level" setup screen stuff to be more generic (to
-         make it easier to add more "choose from generic tree" setup screens).
-
-2002-04-01     src/config.c, src/timestamp.h
-       * Added source files "src/config.[ch]" and "src/timestamp.h" (which
-         automatically gets created by "src/Makefile" and contains an actual
-         compile-time timestamp to identify development versions of the game).
-
-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"
-         loads previously recorded tape and directly goes into recording mode
-         from the end of the tape (therefore appending to the tape).
-
-2002-03-31     src/tape.c
-       * Added "index mark" function to tape recorder. When playing or
-         recording, "eject" button changes to "index" button. Setting index
-         mark is not yet implemented, but pressing index button when playing
-         allows very quick advancing to end of tape (when normal playing),
-         very fast forward mode (when playing with normal fast forward) or
-         very fast reaching of "pause before end of tape" (when playing with
-         "pause before end" playing mode).
-
-2002-03-30     src/cartoons.c
-       * Moved some stuff from cartoons.c to the new "src/libgame/toons.c".
-
-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-23     src/main.c, src/main.h
-       * Various changes due to the introduction of the new libgame files
-         "setup.c" and "joystick.c".
-
-2002-03-23     src/files.c
-       * Generic parts of "src/files.c" (mainly setup and level directory
-         stuff) moved to new libgame file "src/libgame/setup.c".
-
-2002-03-23     src/joystick.c
-       * File "src/joystick.c" moved to libgame source tree, with
-         correspondig changes.
-
-2002-03-22     src/screens.c
-       * "HandleChooseLevel()": Another bug in level series navigation fixed.
-         (Wrong level series information displayed when entering main group.)
-
-2002-03-22     src/editor.c
-       * Slight change to support new gadget event "GD_EVENT_INFO_LEAVING".
-
-2002-03-22     src/editor.c
-       * Changed behaviour of "Escape" key in level editor to be more
-         intuitive: When in "Element Properties" or "Level Info" mode,
-         return to "Drawing Mode" instead of leaving the level editor.
-
-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,
-         steel wall and growing wall (as in E.M.C. style levels). Although
-         the behaviour of contributed and private levels wasn't changed (due
-         to the use of "level.game_version"; see previous entry), editing
-         those levels will (of course) change the behaviour accordingly.
-
-         This change seems a bit too hard after thinking about it, because
-         the EM style behaviour is not the "expected" behaviour (gems would
-         normally only slip down from "rounded" walls). Therefore this was
-         now changed to an element property for gem style elements, with the
-         default setting "off" (which means: no special EM style behaviour).
-         To fix older converted levels, this flag is set to "on" for pre-2.0
-         levels that are neither contributed nor private levels.
-
-2002-03-20     src/files.h
-       * Corrected settings for "level.game_version" depending of level type.
-         (Contributed and private levels always get played with game engine
-         version they were created with, while converted levels always get
-         played with the most recent version of the game engine, to let new
-         corrections of the emulation behaviour take effect.)
-
-2002-03-20     src/main.h
-       * Added "#include <time.h>". This seems to be needed by "tape.c" for
-         compiling the SDL version on some systems.
-         Thanks to the several people who pointed this out.
-
-2002-03-19
-       * Version number set to 2.0.2.
-
-2002-03-19
-       * Version 2.0.1 released.
-
-2002-03-18     src/screens.c
-       * "HandleChooseLevel()": Small bug in level series navigation fixed.
-
-2002-03-18     src/files.c [src/libgame/misc.c]
-       * Moved some common functions from src/files.c to src/libgame/misc.c.
-
-2002-03-18     src/files.c [src/libgame/misc.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
-         real IFF style header "RND1....XXXX" (where "XXXX" is "CAVE"
-         for levels and "TAPE" for tapes). Old "cookie" style format is
-         still supported for reading. New level and tape files are written
-         in new format.
-
-       * New IFF chunk "VERS" contains version numbers for file and game
-         (where "game version" is the version of the program that wrote the
-         file, and "file version" is a version number to distinguish files
-         with different format, for example after adding new features).
-
-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-14     src/events.c
-       * Function "DumpTape()" (files.c) now available by pressing 't' from
-         main menu (when in DEBUG mode).
-
-2002-03-14     src/game.c
-       * "GameWon()": When game was won playing a tape, now there is no delay
-         raising the score and no corresponding sound is played.
-
-2002-03-14     src/files.c
-       * Changed "LoadTape()" for real chunk support and also adjusted
-         "SaveTape()" accordingly.
-
-2002-03-14     src/game.c, src/tape.c, src/files.c
-       * Important changes to tape format: The old tape format stored all
-         actions with a real effect with a corresponding delay between the
-         stored actions. This had some major disadvantages (for example,
-         push delays had to be ignored, pressing a button for some seconds
-         mutated to several single button presses because of the non-action
-         delays between two action frames etc.). The new tape format just
-         stupidly records all device actions and replays them later. I really
-         don't know why I haven't solved it that way before?! Old-style tapes
-         (with tape file version less than 2.0) get converted to the new
-         format on-the-fly when loading and can therefore still be played;
-         only some minor parts of the old-style tape handling code was needed.
-         (A perfect conversion is not possible, because there is information
-         missing about the device actions between two action frames.)
-
-2002-03-14     src/files.c
-       * New function "DumpTape()" to dump the contents of the current tape
-         in a human readable format.
-
-2002-03-14     src/game.c
-       * Small tape bug fixed: When automatically advancing to next level
-         after a game was won, the tape from the previous level still was
-         loaded as a tape for the new level.
-
-2002-03-14     src/tape.c
-       * Small graphical bug fixed: When pressing ""Record" or "Play" on
-         tape, cartoons did not get completely removed because
-         StopAnimation() was not called.
-
-2002-03-13     src/files.c
-       * Changed "LoadLevel()" and "SaveLevel()" to add new chunk "CNT2".
-         Fixed bug of "CONT" and "BODY" (chunk size was set to 8-bit element
-         size even when using 16-bit elements). Added new chunk "CNT2" for
-         16-bit amoeba content (previously written in 8-bit field in "HEAD"
-         chunk even when content was 16-bit element). "CNT2" should now be
-         able to store content for arbitrary elements (up to eight blocks of
-         3 x 3 element arrays). All "CNT2" elements will always be stored as
-         16-bit elements. "CONT" (with 8/16-bit elements) now obsolete.
-
-2002-03-13     src/files.c
-       * Changed "LoadLevel()" for real chunk support.
-
-2002-03-12     src/game.c
-       * Fixed problem (introduced after 2.0.0 release) with penguins
-         not getting killed by enemies
-
-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
-         the moment or not.
-         Before, "player->last_move_dir" was misused for this purpose
-         for  the robot stuff (robots don't kill players when they are
-         moving). But setting "player->last_move_dir" to MV_NO_MOVING
-         broke tapes when walking through pipes!
-         ("IS_MOVING()" uses "MovPos[][]", but this fails when it is 0
-         in a continuous movement. This fact is ignored for friends and
-         enemies, though.)
index 595f5996acb4a4770dcf80e888de840d08f2ee3d..3ca01a688fd62799edd80e95058442624e042d60 100644 (file)
@@ -76,8 +76,12 @@ endif
 
 ifeq ($(TARGET),sdl)
 SYS_CFLAGS  = -DTARGET_SDL $(shell sdl-config --cflags)
+ifeq ($(PLATFORM),macosx)
+SYS_LDFLAGS = -lSDL_image -lSDL_mixer -lsmpeg $(shell sdl-config --libs)
+else
 SYS_LDFLAGS = -lSDL_image -lSDL_mixer $(shell sdl-config --libs)
 endif
+endif
 
 ifeq ($(TARGET),allegro)
 SYS_CFLAGS = -DTARGET_ALLEGRO -I$(CROSS_PATH_MSDOS)/include
@@ -103,7 +107,7 @@ CONFIG_GAME_DIR = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR)
 
 
 CONFIG = $(CONFIG_GAME_DIR) $(CONFIG_SCORE_ENTRIES) $(JOYSTICK)
-DEBUG = -DDEBUG -g
+DEBUG = -DDEBUG -g
 # PROFILING = $(PROFILING_FLAGS)
 
 # OPTIONS = $(DEBUG) -Wall                     # only for debugging purposes
index 276cb64b9d34017ef412d8db518b44b39972525d..043d69f5fe6bc9d1308a2f4a4f513aa94333f572 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-10-04 19:30]"
+#define COMPILE_DATE_STRING "[2003-10-06 01:34]"
index 3a622337a86391826a39bad8726eae8fc1e19c5d..007b3d14fc18c058b2f7af6f4c482cf5409b4e85 100644 (file)
@@ -6258,7 +6258,7 @@ void GameActions()
     }
   }
 
-  if (TimeFrames >= (1000 / GameFrameDelay))
+  if (TimeFrames >= FRAMES_PER_SECOND)
   {
     TimeFrames = 0;
     TimePlayed++;
index 54ba6a4110cc4863aec45fd9e0f4e1f96d076ba2..90085a467a6c7ae39371790a4484b4ad97c3c006 100644 (file)
@@ -1241,12 +1241,6 @@ static void drawChooseTreeList(int first_entry, int num_page_entries,
   int yoffset = (ti->type == TREE_TYPE_LEVEL_DIR ? 0 : yoffset_setup);
   int last_game_status = game_status;  /* save current game status */
 
-#if 1
-  DrawBackground(mSX, mSY, SXSIZE - 32 + menu.scrollbar_xoffset, SYSIZE);
-#else
-  DrawBackground(SX, SY, SXSIZE - 32, SYSIZE);
-#endif
-
   title_string =
     (ti->type == TREE_TYPE_LEVEL_DIR ? "Level Directories" :
      ti->type == TREE_TYPE_GRAPHICS_DIR ? "Custom Graphics" :
@@ -1258,6 +1252,10 @@ static void drawChooseTreeList(int first_entry, int num_page_entries,
   /* force LEVELS font on artwork setup screen */
   game_status = GAME_MODE_LEVELS;
 
+  /* clear tree list area, but not title or scrollbar */
+  DrawBackground(mSX, mSY + MENU_SCREEN_START_YPOS * 32,
+                SXSIZE - 32 + menu.scrollbar_xoffset, SYSIZE);
+
   for(i=0; i<num_page_entries; i++)
   {
     TreeInfo *node, *node_first;