rnd-20030807-1-src
authorHolger Schemel <info@artsoft.org>
Wed, 6 Aug 2003 23:49:40 +0000 (01:49 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:43:06 +0000 (10:43 +0200)
CHANGES
Makefile
src/Makefile
src/conftime.h
src/editor.c
src/files.c
src/game.c
src/main.h
src/tools.c

diff --git a/CHANGES b/CHANGES
index 10ebc7f0a29e6ba5ef344faba569706f3d456a40..abd253eb53416b2784b79314692d380cf7d9c86d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
+Release Version 3.0.1 [?? ??? ????]
+-----------------------------------
+
 Release Version 3.0.0 [05 AUG 2003]
-------------------------------------------
+-----------------------------------
        - final version bumped to 3.0.0 due to the massive changes
        - graphics and sounds now completely and dynamically customizable
        - custom elements now have lots of configurable properties
index 0c22aefb3fa9bcb1696e9a9c507b3dde989eaf00..bdd285b5e775938c501bd4dd53fd57723470f574 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -49,8 +49,8 @@ CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc
 SRC_DIR = src
 MAKE_CMD = $(MAKE) -C $(SRC_DIR)
 
-DEFAULT_TARGET = x11
-DEFAULT_TARGET = sdl
+DEFAULT_TARGET = x11
+DEFAULT_TARGET = sdl
 
 all:
        @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET)
index ff28877633b2b653aa14aa87f2e396da2af41c55..595f5996acb4a4770dcf80e888de840d08f2ee3d 100644 (file)
@@ -103,7 +103,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 e2c1ccdd7231482331565162a4dda86016edcba3..6c63aef202e3805e763b4050a0ca8d618c132dfc 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-08-05 01:57]"
+#define COMPILE_DATE_STRING "[2003-08-07 01:24]"
index 1749fe25f9c78a59565665ae9999c934c6fdd1b1..87184cd88820a0be03ce083009a8f5b696f79bbe 100644 (file)
@@ -1363,7 +1363,7 @@ static struct
   {
     ED_SETTINGS_XPOS(0) + 340,         ED_COUNTER_YPOS(6) - MINI_TILEY,
     GADGET_ID_GRAVITY,                 GADGET_ID_DOUBLE_SPEED,
-    &level.gravity,
+    &level.initial_gravity,
     " ", "gravity",                    "set level gravity"
   },
   {
index bd2539b8ef19ac6cb8a5ac35eeca23952bd27d7b..4f24ebbe1aae5d87fe10b68901aeb4a49ad8227c 100644 (file)
@@ -74,7 +74,7 @@ static void setLevelInfoToDefaults(struct LevelInfo *level)
   level->time_timegate = 10;
   level->amoeba_content = EL_DIAMOND;
   level->double_speed = FALSE;
-  level->gravity = FALSE;
+  level->initial_gravity = FALSE;
   level->em_slippery_gems = FALSE;
 
   level->use_custom_template = FALSE;
@@ -276,7 +276,7 @@ static int LoadLevel_HEAD(FILE *file, int chunk_size, struct LevelInfo *level)
   level->time_wheel            = getFile8Bit(file);
   level->amoeba_content                = checkLevelElement(getFile8Bit(file));
   level->double_speed          = (getFile8Bit(file) == 1 ? TRUE : FALSE);
-  level->gravity               = (getFile8Bit(file) == 1 ? TRUE : FALSE);
+  level->initial_gravity       = (getFile8Bit(file) == 1 ? TRUE : FALSE);
   level->encoding_16bit_field  = (getFile8Bit(file) == 1 ? TRUE : FALSE);
   level->em_slippery_gems      = (getFile8Bit(file) == 1 ? TRUE : FALSE);
 
@@ -838,7 +838,7 @@ static void SaveLevel_HEAD(FILE *file, struct LevelInfo *level)
   putFile8Bit(file, (level->encoding_16bit_amoeba ? EL_EMPTY :
                     level->amoeba_content));
   putFile8Bit(file, (level->double_speed ? 1 : 0));
-  putFile8Bit(file, (level->gravity ? 1 : 0));
+  putFile8Bit(file, (level->initial_gravity ? 1 : 0));
   putFile8Bit(file, (level->encoding_16bit_field ? 1 : 0));
   putFile8Bit(file, (level->em_slippery_gems ? 1 : 0));
 
@@ -1198,7 +1198,7 @@ void DumpLevel(struct LevelInfo *level)
   printf("\n");
   printf("Amoeba Speed: %d\n", level->amoeba_speed);
   printf("\n");
-  printf("Gravity:                %s\n", (level->gravity ? "yes" : "no"));
+  printf("Gravity:                %s\n", (level->initial_gravity ?"yes":"no"));
   printf("Double Speed Movement:  %s\n", (level->double_speed ? "yes" : "no"));
   printf("EM style slippery gems: %s\n", (level->em_slippery_gems ? "yes" : "no"));
 
index a9256de700b26165492684b984d700a492895e22..f5b3ab7b883d783c088bd11a20379611c4fc3a75 100644 (file)
@@ -1032,6 +1032,7 @@ void InitGame()
   game.switchgate_pos = 0;
   game.balloon_dir = MV_NO_MOVING;
   game.explosions_delayed = TRUE;
+  game.current_gravity = level.initial_gravity;
 
   for (i=0; i<4; i++)
   {
@@ -6087,7 +6088,7 @@ void ScrollLevel(int dx, int dy)
 
 static void CheckGravityMovement(struct PlayerInfo *player)
 {
-  if (level.gravity && !player->programmed_action)
+  if (game.current_gravity && !player->programmed_action)
   {
     int move_dir_vertical = player->action & (MV_UP | MV_DOWN);
     int move_dir_horizontal = player->action & (MV_LEFT | MV_RIGHT);
@@ -7085,7 +7086,7 @@ int DigField(struct PlayerInfo *player,
          element == EL_SP_GRAVITY_PORT_RIGHT ||
          element == EL_SP_GRAVITY_PORT_UP ||
          element == EL_SP_GRAVITY_PORT_DOWN)
-       level.gravity = !level.gravity;
+       game.current_gravity = !game.current_gravity;
 
       /* automatically move to the next field with double speed */
       player->programmed_action = move_direction;
index 03e983782a83ec62ff9425804ffbd1e422c9e8a8..24ecedf4673ee89a14b0090a0cc2fe78b30b7912 100644 (file)
 
 #define PROGRAM_VERSION_MAJOR  3
 #define PROGRAM_VERSION_MINOR  0
-#define PROGRAM_VERSION_PATCH  0
+#define PROGRAM_VERSION_PATCH  1
 #define PROGRAM_VERSION_RELEASE        0
-#define PROGRAM_VERSION_STRING "3.0.0"
+#define PROGRAM_VERSION_STRING "3.0.1"
 
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
@@ -1117,7 +1117,7 @@ struct LevelInfo
   int time_light;
   int time_timegate;
   boolean double_speed;
-  boolean gravity;
+  boolean initial_gravity;
   boolean em_slippery_gems;    /* EM style "gems slip from wall" behaviour */
 
   short field[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -1179,6 +1179,7 @@ struct GameInfo
   int switchgate_pos;
   int balloon_dir;
   boolean explosions_delayed;
+  boolean current_gravity;
 };
 
 struct GlobalInfo
index 744065cd5923675762f020124912bc5a78a6dd8e..d37a7b0e991b821c3979602a3689758ccdf3504d 100644 (file)
@@ -666,13 +666,14 @@ void DrawPlayer(struct PlayerInfo *player)
     if (player_is_moving && GfxElement[jx][jy] != EL_UNDEFINED)
     {
 #if 1
-      if (CAN_BE_CRUMBLED(GfxElement[jx][jy]))
+      /* !!! insert DrawLevelFieldCrumbledSandDigging code here !!! */
+      if (player->is_digging && CAN_BE_CRUMBLED(GfxElement[jx][jy]))
        DrawLevelFieldCrumbledSandDigging(jx, jy, move_dir, player->StepFrame);
 #else
       if (GfxElement[jx][jy] == EL_SAND)
        DrawLevelFieldCrumbledSandDigging(jx, jy, move_dir, player->StepFrame);
 #endif
-      else
+      else     /* player->is_collecting */
       {
        int old_element = GfxElement[jx][jy];
        int old_graphic = el_act_dir2img(old_element, action, move_dir);
@@ -1322,7 +1323,9 @@ void DrawLevelFieldCrumbledSandDigging(int x, int y, int direction,
   int sx = SCREENX(x), sy = SCREENY(y);
 
   DrawGraphic(sx, sy, graphic1, frame1);
-  DrawLevelFieldCrumbledSandExt(x, y, graphic2, frame2);
+
+  if (graphic1 != IMG_EMPTY_SPACE)
+    DrawLevelFieldCrumbledSandExt(x, y, graphic2, frame2);
 }
 
 void DrawLevelFieldCrumbledSandNeighbours(int x, int y)