fixed bug with using wrong values for 'level solved' and 'game over'
[rocksndiamonds.git] / src / main.h
index cf8cbe7f23fb599317602d1402e46b380a90c88f..b535fed953f1dd34de643eb4a5706a86630ceca3 100644 (file)
 #define IS_INTERNAL_ELEMENT(e) ((e) >= EL_INTERNAL_START &&            \
                                 (e) <= EL_INTERNAL_END)
 
+#define IS_MM_ELEMENT(e)       ((e) >= EL_MM_START &&                  \
+                                (e) <= EL_MM_END)
+
+#define IS_DF_ELEMENT(e)       ((e) >= EL_DF_START &&                  \
+                                (e) <= EL_DF_END)
+
+#define IS_MM_WALL(e)          (((e) >= EL_MM_WALL_START &&            \
+                                 (e) <= EL_MM_WALL_END) ||             \
+                                ((e) >= EL_DF_WALL_START &&            \
+                                 (e) <= EL_DF_WALL_END))
+
+#define IS_DF_WALL(e)          (((e) >= EL_DF_WALL_START &&            \
+                                 (e) <= EL_DF_WALL_END))
+
 #define IS_ENVELOPE(e)         ((e) >= EL_ENVELOPE_1 &&                \
                                 (e) <= EL_ENVELOPE_4)
 
 #define EL_FROM_LEVEL_TEMPLATE         863
 
 #define EL_MM_START                    864
+#define EL_MM_START_1                  EL_MM_START
+
 #define EL_MM_EMPTY_SPACE              (EL_MM_START + 0)
 #define EL_MM_EMPTY                    EL_MM_EMPTY_SPACE
 #define EL_MM_MIRROR_START             (EL_MM_START + 1)
 #define EL_MM_WOODEN_GRID_FIXED_END    EL_MM_WOODEN_GRID_FIXED_03
 #define EL_MM_FUEL_EMPTY               (EL_MM_START + 155)
 
-#define EL_DF_START                    (EL_MM_START + 156)
+#define EL_MM_END_1                    (EL_MM_START + 155)
+#define EL_MM_START_2                  (EL_MM_START + 156)
+
+#define EL_DF_START                    EL_MM_START_2
 #define EL_DF_START2                   (EL_DF_START - 240)
 
 #define EL_DF_MIRROR_START             EL_DF_START
 #define EL_DF_STEEL_WALL               1209
 #define EL_DF_WOODEN_WALL              1210
 
-#define EL_MM_END                      (EL_DF_START2 + 430)
+#define EL_MM_END_2                    (EL_DF_START2 + 430)
+#define EL_MM_END                      EL_MM_END_2
 
 #define NUM_FILE_ELEMENTS              1211
 
 #define EL_MM_GRAY_BALL_OPENING                (EL_FIRST_RUNTIME_REAL + 74)
 #define EL_MM_ICE_WALL_SHRINKING       (EL_FIRST_RUNTIME_REAL + 75)
 #define EL_MM_AMOEBA_WALL_GROWING      (EL_FIRST_RUNTIME_REAL + 76)
+#define EL_MM_PACMAN_EATING_RIGHT      (EL_FIRST_RUNTIME_REAL + 77)
+#define EL_MM_PACMAN_EATING_UP         (EL_FIRST_RUNTIME_REAL + 78)
+#define EL_MM_PACMAN_EATING_LEFT       (EL_FIRST_RUNTIME_REAL + 79)
+#define EL_MM_PACMAN_EATING_DOWN       (EL_FIRST_RUNTIME_REAL + 80)
 
-#define NUM_DRAWABLE_ELEMENTS          (EL_FIRST_RUNTIME_REAL + 77)
+#define NUM_DRAWABLE_ELEMENTS          (EL_FIRST_RUNTIME_REAL + 81)
 
 #define EL_MM_RUNTIME_START            EL_MM_EXIT_OPENING
 #define EL_MM_RUNTIME_END              EL_MM_AMOEBA_WALL_GROWING
 #define EL_SHIELD_NORMAL_ACTIVE                (EL_FIRST_DUMMY + 18)
 #define EL_SHIELD_DEADLY_ACTIVE                (EL_FIRST_DUMMY + 19)
 #define EL_AMOEBA                      (EL_FIRST_DUMMY + 20)
-#define EL_MM_MASK_MCDUFFIN_RIGHT      (EL_FIRST_DUMMY + 21)
-#define EL_MM_MASK_MCDUFFIN_UP         (EL_FIRST_DUMMY + 22)
-#define EL_MM_MASK_MCDUFFIN_LEFT       (EL_FIRST_DUMMY + 23)
-#define EL_MM_MASK_MCDUFFIN_DOWN       (EL_FIRST_DUMMY + 24)
-#define EL_MM_MASK_GRID_1              (EL_FIRST_DUMMY + 25)
-#define EL_MM_MASK_GRID_2              (EL_FIRST_DUMMY + 26)
-#define EL_MM_MASK_GRID_3              (EL_FIRST_DUMMY + 27)
-#define EL_MM_MASK_GRID_4              (EL_FIRST_DUMMY + 28)
-#define EL_MM_MASK_RECTANGLE           (EL_FIRST_DUMMY + 29)
-#define EL_MM_MASK_CIRCLE              (EL_FIRST_DUMMY + 30)
-#define EL_DEFAULT                     (EL_FIRST_DUMMY + 31)
-#define EL_BD_DEFAULT                  (EL_FIRST_DUMMY + 32)
-#define EL_SP_DEFAULT                  (EL_FIRST_DUMMY + 33)
-#define EL_SB_DEFAULT                  (EL_FIRST_DUMMY + 34)
-#define EL_MM_DEFAULT                  (EL_FIRST_DUMMY + 35)
-#define EL_GRAPHIC_1                   (EL_FIRST_DUMMY + 36)
-#define EL_GRAPHIC_2                   (EL_FIRST_DUMMY + 37)
-#define EL_GRAPHIC_3                   (EL_FIRST_DUMMY + 38)
-#define EL_GRAPHIC_4                   (EL_FIRST_DUMMY + 39)
-#define EL_GRAPHIC_5                   (EL_FIRST_DUMMY + 40)
-#define EL_GRAPHIC_6                   (EL_FIRST_DUMMY + 41)
-#define EL_GRAPHIC_7                   (EL_FIRST_DUMMY + 42)
-#define EL_GRAPHIC_8                   (EL_FIRST_DUMMY + 43)
+#define EL_MM_LIGHTBALL_RED            (EL_FIRST_DUMMY + 21)
+#define EL_MM_LIGHTBALL_BLUE           (EL_FIRST_DUMMY + 22)
+#define EL_MM_LIGHTBALL_YELLOW         (EL_FIRST_DUMMY + 23)
+#define EL_MM_MASK_MCDUFFIN_RIGHT      (EL_FIRST_DUMMY + 24)
+#define EL_MM_MASK_MCDUFFIN_UP         (EL_FIRST_DUMMY + 25)
+#define EL_MM_MASK_MCDUFFIN_LEFT       (EL_FIRST_DUMMY + 26)
+#define EL_MM_MASK_MCDUFFIN_DOWN       (EL_FIRST_DUMMY + 27)
+#define EL_MM_MASK_GRID_1              (EL_FIRST_DUMMY + 28)
+#define EL_MM_MASK_GRID_2              (EL_FIRST_DUMMY + 29)
+#define EL_MM_MASK_GRID_3              (EL_FIRST_DUMMY + 30)
+#define EL_MM_MASK_GRID_4              (EL_FIRST_DUMMY + 31)
+#define EL_MM_MASK_RECTANGLE           (EL_FIRST_DUMMY + 32)
+#define EL_MM_MASK_CIRCLE              (EL_FIRST_DUMMY + 33)
+#define EL_DEFAULT                     (EL_FIRST_DUMMY + 34)
+#define EL_BD_DEFAULT                  (EL_FIRST_DUMMY + 35)
+#define EL_SP_DEFAULT                  (EL_FIRST_DUMMY + 36)
+#define EL_SB_DEFAULT                  (EL_FIRST_DUMMY + 37)
+#define EL_MM_DEFAULT                  (EL_FIRST_DUMMY + 38)
+#define EL_GRAPHIC_1                   (EL_FIRST_DUMMY + 39)
+#define EL_GRAPHIC_2                   (EL_FIRST_DUMMY + 40)
+#define EL_GRAPHIC_3                   (EL_FIRST_DUMMY + 41)
+#define EL_GRAPHIC_4                   (EL_FIRST_DUMMY + 42)
+#define EL_GRAPHIC_5                   (EL_FIRST_DUMMY + 43)
+#define EL_GRAPHIC_6                   (EL_FIRST_DUMMY + 44)
+#define EL_GRAPHIC_7                   (EL_FIRST_DUMMY + 45)
+#define EL_GRAPHIC_8                   (EL_FIRST_DUMMY + 46)
 
 #define EL_MM_DUMMY_START              EL_MM_MASK_MCDUFFIN_RIGHT
 #define EL_MM_DUMMY_END                        EL_MM_MASK_CIRCLE
 
 /* internal elements (only used for internal purposes like copying) */
-#define EL_FIRST_INTERNAL              (EL_FIRST_DUMMY + 44)
+#define EL_FIRST_INTERNAL              (EL_FIRST_DUMMY + 47)
 
 #define EL_INTERNAL_CLIPBOARD_CUSTOM   (EL_FIRST_INTERNAL + 0)
 #define EL_INTERNAL_CLIPBOARD_CHANGE   (EL_FIRST_INTERNAL + 1)