rnd-20060226-3-src
[rocksndiamonds.git] / src / main.h
index 7dfec0fdecf39a9bc83c1cb10fb6f2018b573929..c26e1a259b52f2a5acc9e1e049544137a7c57fbf 100644 (file)
@@ -50,8 +50,8 @@
 #define MIN_LEV_FIELDY                 3
 #define STD_LEV_FIELDX                 64
 #define STD_LEV_FIELDY                 32
-#define MAX_LEV_FIELDX                 128
-#define MAX_LEV_FIELDY                 128
+#define MAX_LEV_FIELDX                 MAX_PLAYFIELD_WIDTH
+#define MAX_LEV_FIELDY                 MAX_PLAYFIELD_HEIGHT
 
 #define SCREENX(a)                     ((a) - scroll_x)
 #define SCREENY(a)                     ((a) - scroll_y)
 #define GFX_ELEMENT(e)         (element_info[e].use_gfx_element ?      \
                                 element_info[e].gfx_element : e)
 
+#if 1
+#define TILE_GFX_ELEMENT(x, y)                                         \
+                  (GfxElement[x][y] != EL_UNDEFINED &&                 \
+                   Feld[x][y] != EL_EXPLOSION ?                        \
+                   GfxElement[x][y] : Feld[x][y])
+#else
+#define TILE_GFX_ELEMENT(x, y)                                         \
+       GFX_ELEMENT(GfxElement[x][y] != EL_UNDEFINED &&                 \
+                   Feld[x][y] != EL_EXPLOSION ?                        \
+                   GfxElement[x][y] : Feld[x][y])
+#endif
+
 /* !!! "use sound" deactivated due to problems with level "bug machine" !!! */
 /* (solution: add separate "use sound of element" to level file and editor) */
 #if 0
 #define EL_EM_GATE_3_GRAY              252
 #define EL_EM_GATE_4_GRAY              253
 
-#define EL_UNUSED_254                  254
-#define EL_UNUSED_255                  255
+#define EL_EM_DYNAMITE                 254
+#define EL_EM_DYNAMITE_ACTIVE          255
 
 #define EL_PEARL                       256
 #define EL_CRYSTAL                     257
 #define ACTION_TURNING_FROM_DOWN       46
 #define ACTION_SMASHED_BY_ROCK         47
 #define ACTION_SMASHED_BY_SPRING       48
-#define ACTION_SLURPING                        49
+#define ACTION_EATING                  49
 #define ACTION_TWINKLING               50
 #define ACTION_SPLASHING               51
 #define ACTION_PAGE_1                  52
@@ -2079,6 +2091,10 @@ struct GameInfo
 
   /* values for special game initialization control */
   boolean restart_level;
+
+  /* values for special game control */
+  int centered_player_nr;
+  int centered_player_nr_next;
 };
 
 struct GlobalInfo