rnd-20030730-2-src
[rocksndiamonds.git] / src / main.c
index dc2c783438227082168a5dc1012e58895531d186..3095a5a25a8e41e7b03a17935a1ad286b59fa24e 100644 (file)
@@ -40,7 +40,6 @@ boolean                       redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
 int                    redraw_x1 = 0, redraw_y1 = 0;
 
 short                  Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-short                  Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -51,6 +50,7 @@ short                 StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  Back[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 boolean                        Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 boolean                        Pushed[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+boolean                        Changing[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  AmoebaCnt[MAX_NUM_AMOEBA];
@@ -87,7 +87,7 @@ int                   TimeFrames, TimePlayed, TimeLeft;
 
 boolean                        network_player_action_received = FALSE;
 
-struct LevelInfo       level;
+struct LevelInfo       level, level_template;
 struct PlayerInfo      stored_player[MAX_PLAYERS], *local_player = NULL;
 struct HiScore         highscore[MAX_SCORE_ENTRIES];
 struct TapeInfo                tape;
@@ -2923,11 +2923,36 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "-",
     "-"
   },
+  {
+    "dynabomb",
+    "-",
+    "-"
+  },
   {
     "dynabomb_active",
     "-",
     "-"
   },
+  {
+    "dynabomb_player_1",
+    "-",
+    "-"
+  },
+  {
+    "dynabomb_player_2",
+    "-",
+    "-"
+  },
+  {
+    "dynabomb_player_3",
+    "-",
+    "-"
+  },
+  {
+    "dynabomb_player_4",
+    "-",
+    "-"
+  },
   {
     "shield_normal_active",
     "-",
@@ -2973,7 +2998,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
 /* element action and direction definitions                                  */
 /* ------------------------------------------------------------------------- */
 
-struct ElementActionInfo element_action_info[NUM_ACTIONS + 1] =
+struct ElementActionInfo element_action_info[NUM_ACTIONS + 1 + 1] =
 {
   { ".[DEFAULT]",      ACTION_DEFAULT,         TRUE    },
   { ".waiting",                ACTION_WAITING,         TRUE    },
@@ -3003,6 +3028,9 @@ struct ElementActionInfo element_action_info[NUM_ACTIONS + 1] =
   { ".dying",          ACTION_DYING,           FALSE   },
   { ".other",          ACTION_OTHER,           FALSE   },
 
+  /* empty suffix always matches -- check as last entry in InitSoundInfo() */
+  { "",                        ACTION_DEFAULT,         TRUE    },
+
   { NULL,              0,                      0       }
 };
 
@@ -3026,6 +3054,7 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1] =
   { ".SETUP",          GAME_MODE_SETUP,                },
   { ".DOOR",           GAME_MODE_PSEUDO_DOOR,          },
   { ".PREVIEW",                GAME_MODE_PSEUDO_PREVIEW,       },
+  { ".CRUMBLED",       GAME_MODE_PSEUDO_CRUMBLED,      },
 
   { NULL,              0,                              }
 };
@@ -3049,6 +3078,8 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "menu.draw_xoffset.SETUP", &menu.draw_xoffset[GFX_SPECIAL_ARG_SETUP]  },
   { "menu.draw_yoffset.SETUP", &menu.draw_yoffset[GFX_SPECIAL_ARG_SETUP]  },
 
+  { "menu.scrollbar_xoffset",  &menu.scrollbar_xoffset                    },
+
   { "menu.list_size",          &menu.list_size_default                    },
   { "menu.list_size.LEVELS",   &menu.list_size[GFX_SPECIAL_ARG_LEVELS]    },
   { "menu.list_size.SCORES",   &menu.list_size[GFX_SPECIAL_ARG_SCORES]    },