added definitions for Mirror Magic (and Deflektor) game elements
[rocksndiamonds.git] / src / main.h
index 6cb89a4ba427f7c7e618fb032faeb4252dc81d5b..badd84041b63b6a6d8fe82bfc61135592f185097 100644 (file)
 
 #define EL_FROM_LEVEL_TEMPLATE         863
 
-#define NUM_FILE_ELEMENTS              864
+#define EL_MM_START                    864
+#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_MIRROR_1                 (EL_MM_MIRROR_START + 0)
+#define EL_MM_MIRROR_2                 (EL_MM_MIRROR_START + 1)
+#define EL_MM_MIRROR_3                 (EL_MM_MIRROR_START + 2)
+#define EL_MM_MIRROR_4                 (EL_MM_MIRROR_START + 3)
+#define EL_MM_MIRROR_5                 (EL_MM_MIRROR_START + 4)
+#define EL_MM_MIRROR_6                 (EL_MM_MIRROR_START + 5)
+#define EL_MM_MIRROR_7                 (EL_MM_MIRROR_START + 6)
+#define EL_MM_MIRROR_8                 (EL_MM_MIRROR_START + 7)
+#define EL_MM_MIRROR_9                 (EL_MM_MIRROR_START + 8)
+#define EL_MM_MIRROR_10                        (EL_MM_MIRROR_START + 9)
+#define EL_MM_MIRROR_11                        (EL_MM_MIRROR_START + 10)
+#define EL_MM_MIRROR_12                        (EL_MM_MIRROR_START + 11)
+#define EL_MM_MIRROR_13                        (EL_MM_MIRROR_START + 12)
+#define EL_MM_MIRROR_14                        (EL_MM_MIRROR_START + 13)
+#define EL_MM_MIRROR_15                        (EL_MM_MIRROR_START + 14)
+#define EL_MM_MIRROR_16                        (EL_MM_MIRROR_START + 15)
+#define EL_MM_MIRROR_END               EL_MM_MIRROR_15
+#define EL_MM_STEEL_GRID_FIXED_START   (EL_MM_START + 17)
+#define EL_MM_STEEL_GRID_FIXED_1       (EL_MM_STEEL_GRID_FIXED_START + 0)
+#define EL_MM_STEEL_GRID_FIXED_2       (EL_MM_STEEL_GRID_FIXED_START + 1)
+#define EL_MM_STEEL_GRID_FIXED_3       (EL_MM_STEEL_GRID_FIXED_START + 2)
+#define EL_MM_STEEL_GRID_FIXED_4       (EL_MM_STEEL_GRID_FIXED_START + 3)
+#define EL_MM_STEEL_GRID_FIXED_END     EL_MM_STEEL_GRID_FIXED_03
+#define EL_MM_MCDUFFIN_START           (EL_MM_START + 21)
+#define EL_MM_MCDUFFIN_RIGHT           (EL_MM_MCDUFFIN_START + 0)
+#define EL_MM_MCDUFFIN_UP              (EL_MM_MCDUFFIN_START + 1)
+#define EL_MM_MCDUFFIN_LEFT            (EL_MM_MCDUFFIN_START + 2)
+#define EL_MM_MCDUFFIN_DOWN            (EL_MM_MCDUFFIN_START + 3)
+#define EL_MM_MCDUFFIN_END             EL_MM_MCDUFFIN_DOWN
+#define EL_MM_EXIT_CLOSED              (EL_MM_START + 25)
+#define EL_MM_EXIT_OPENING_1           (EL_MM_START + 26)
+#define EL_MM_EXIT_OPENING_2           (EL_MM_START + 27)
+#define EL_MM_EXIT_OPEN                        (EL_MM_START + 28)
+#define EL_MM_KETTLE                   (EL_MM_START + 29)
+#define EL_MM_BOMB                     (EL_MM_START + 30)
+#define EL_MM_PRISM                    (EL_MM_START + 31)
+#define EL_MM_WALL_START               (EL_MM_START + 32)
+#define EL_MM_WALL_EMPTY               EL_MM_WALL_START
+#define EL_MM_WALL_00                  EL_MM_WALL_START
+#define EL_MM_STEEL_WALL_START         EL_MM_WALL_00
+#define EL_MM_WALL_15                  (EL_MM_START + 47)
+#define EL_MM_STEEL_WALL_END           EL_MM_WALL_15
+#define EL_MM_WALL_16                  (EL_MM_START + 48)
+#define EL_MM_WOODEN_WALL_START                EL_MM_WALL_16
+#define EL_MM_WALL_31                  (EL_MM_START + 63)
+#define EL_MM_WOODEN_WALL_END          EL_MM_WALL_31
+#define EL_MM_WALL_32                  (EL_MM_START + 64)
+#define EL_MM_ICE_WALL_START           EL_MM_WALL_32
+#define EL_MM_WALL_47                  (EL_MM_START + 79)
+#define EL_MM_ICE_WALL_END             EL_MM_WALL_47
+#define EL_MM_WALL_48                  (EL_MM_START + 80)
+#define EL_MM_AMOEBA_WALL_START                EL_MM_WALL_48
+#define EL_MM_WALL_63                  (EL_MM_START + 95)
+#define EL_MM_AMOEBA_WALL_END          EL_MM_WALL_63
+#define EL_MM_WALL_END                 EL_MM_WALL_63
+#define EL_MM_WOODEN_BLOCK             (EL_MM_START + 96)
+#define EL_MM_GRAY_BALL                        (EL_MM_START + 97)
+#define EL_MM_BEAMER_START             (EL_MM_START + 98)
+#define EL_MM_BEAMER_1                 (EL_MM_BEAMER_START + 0)
+#define EL_MM_BEAMER_2                 (EL_MM_BEAMER_START + 1)
+#define EL_MM_BEAMER_3                 (EL_MM_BEAMER_START + 2)
+#define EL_MM_BEAMER_4                 (EL_MM_BEAMER_START + 3)
+#define EL_MM_BEAMER_5                 (EL_MM_BEAMER_START + 4)
+#define EL_MM_BEAMER_6                 (EL_MM_BEAMER_START + 5)
+#define EL_MM_BEAMER_7                 (EL_MM_BEAMER_START + 6)
+#define EL_MM_BEAMER_8                 (EL_MM_BEAMER_START + 7)
+#define EL_MM_BEAMER_9                 (EL_MM_BEAMER_START + 8)
+#define EL_MM_BEAMER_10                        (EL_MM_BEAMER_START + 9)
+#define EL_MM_BEAMER_11                        (EL_MM_BEAMER_START + 10)
+#define EL_MM_BEAMER_12                        (EL_MM_BEAMER_START + 11)
+#define EL_MM_BEAMER_13                        (EL_MM_BEAMER_START + 12)
+#define EL_MM_BEAMER_14                        (EL_MM_BEAMER_START + 13)
+#define EL_MM_BEAMER_15                        (EL_MM_BEAMER_START + 14)
+#define EL_MM_BEAMER_16                        (EL_MM_BEAMER_START + 15)
+#define EL_MM_BEAMER_END               EL_MM_BEAMER_15
+#define EL_MM_FUSE_ACTIVE              (EL_MM_START + 114)
+#define EL_MM_PACMAN_START             (EL_MM_START + 115)
+#define EL_MM_PACMAN_RIGHT             (EL_MM_PACMAN_START + 0)
+#define EL_MM_PACMAN_UP                        (EL_MM_PACMAN_START + 1)
+#define EL_MM_PACMAN_LEFT              (EL_MM_PACMAN_START + 2)
+#define EL_MM_PACMAN_DOWN              (EL_MM_PACMAN_START + 3)
+#define EL_MM_PACMAN_END               EL_MM_PACMAN_DOWN
+#define EL_MM_POLARISATOR_START                (EL_MM_START + 119)
+#define EL_MM_POLARISATOR_1            (EL_MM_POLARISATOR_START + 0)
+#define EL_MM_POLARISATOR_2            (EL_MM_POLARISATOR_START + 1)
+#define EL_MM_POLARISATOR_3            (EL_MM_POLARISATOR_START + 2)
+#define EL_MM_POLARISATOR_4            (EL_MM_POLARISATOR_START + 3)
+#define EL_MM_POLARISATOR_5            (EL_MM_POLARISATOR_START + 4)
+#define EL_MM_POLARISATOR_6            (EL_MM_POLARISATOR_START + 5)
+#define EL_MM_POLARISATOR_7            (EL_MM_POLARISATOR_START + 6)
+#define EL_MM_POLARISATOR_8            (EL_MM_POLARISATOR_START + 7)
+#define EL_MM_POLARISATOR_9            (EL_MM_POLARISATOR_START + 8)
+#define EL_MM_POLARISATOR_10           (EL_MM_POLARISATOR_START + 9)
+#define EL_MM_POLARISATOR_11           (EL_MM_POLARISATOR_START + 10)
+#define EL_MM_POLARISATOR_12           (EL_MM_POLARISATOR_START + 11)
+#define EL_MM_POLARISATOR_13           (EL_MM_POLARISATOR_START + 12)
+#define EL_MM_POLARISATOR_14           (EL_MM_POLARISATOR_START + 13)
+#define EL_MM_POLARISATOR_15           (EL_MM_POLARISATOR_START + 14)
+#define EL_MM_POLARISATOR_16           (EL_MM_POLARISATOR_START + 15)
+#define EL_MM_POLARISATOR_END          EL_MM_POLARISATOR_15
+#define EL_MM_POLARISATOR_CROSS_START  (EL_MM_START + 135)
+#define EL_MM_POLARISATOR_CROSS_1      (EL_MM_POLARISATOR_CROSS_START + 0)
+#define EL_MM_POLARISATOR_CROSS_2      (EL_MM_POLARISATOR_CROSS_START + 1)
+#define EL_MM_POLARISATOR_CROSS_3      (EL_MM_POLARISATOR_CROSS_START + 2)
+#define EL_MM_POLARISATOR_CROSS_4      (EL_MM_POLARISATOR_CROSS_START + 3)
+#define EL_MM_POLARISATOR_CROSS_END    EL_MM_POLARISATOR_CROSS_03
+#define EL_MM_MIRROR_FIXED_START       (EL_MM_START + 139)
+#define EL_MM_MIRROR_FIXED_1           (EL_MM_MIRROR_FIXED_START + 0)
+#define EL_MM_MIRROR_FIXED_2           (EL_MM_MIRROR_FIXED_START + 1)
+#define EL_MM_MIRROR_FIXED_3           (EL_MM_MIRROR_FIXED_START + 2)
+#define EL_MM_MIRROR_FIXED_4           (EL_MM_MIRROR_FIXED_START + 3)
+#define EL_MM_MIRROR_FIXED_END         EL_MM_MIRROR_FIXED_03
+#define EL_MM_STEEL_LOCK               (EL_MM_START + 143)
+#define EL_MM_KEY                      (EL_MM_START + 144)
+#define EL_MM_LIGHTBULB                        (EL_MM_START + 145)
+#define EL_MM_LIGHTBULB_ACTIVE         (EL_MM_START + 146)
+#define EL_MM_LIGHTBALL                        (EL_MM_START + 147)
+#define EL_MM_STEEL_BLOCK              (EL_MM_START + 148)
+#define EL_MM_WOODEN_LOCK              (EL_MM_START + 149)
+#define EL_MM_FUEL_FULL                        (EL_MM_START + 150)
+#define EL_MM_WOODEN_GRID_FIXED_START  (EL_MM_START + 151)
+#define EL_MM_WOODEN_GRID_FIXED_1      (EL_MM_WOODEN_GRID_FIXED_START + 0)
+#define EL_MM_WOODEN_GRID_FIXED_2      (EL_MM_WOODEN_GRID_FIXED_START + 1)
+#define EL_MM_WOODEN_GRID_FIXED_3      (EL_MM_WOODEN_GRID_FIXED_START + 2)
+#define EL_MM_WOODEN_GRID_FIXED_4      (EL_MM_WOODEN_GRID_FIXED_START + 3)
+#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_DF_START2                   (EL_DF_START - 240)
+
+#define EL_DF_MIRROR_START             EL_DF_START
+#define EL_DF_MIRROR_1                 (EL_DF_MIRROR_START + 0)
+#define EL_DF_MIRROR_2                 (EL_DF_MIRROR_START + 1)
+#define EL_DF_MIRROR_3                 (EL_DF_MIRROR_START + 2)
+#define EL_DF_MIRROR_4                 (EL_DF_MIRROR_START + 3)
+#define EL_DF_MIRROR_5                 (EL_DF_MIRROR_START + 4)
+#define EL_DF_MIRROR_6                 (EL_DF_MIRROR_START + 5)
+#define EL_DF_MIRROR_7                 (EL_DF_MIRROR_START + 6)
+#define EL_DF_MIRROR_8                 (EL_DF_MIRROR_START + 7)
+#define EL_DF_MIRROR_9                 (EL_DF_MIRROR_START + 8)
+#define EL_DF_MIRROR_10                        (EL_DF_MIRROR_START + 9)
+#define EL_DF_MIRROR_11                        (EL_DF_MIRROR_START + 10)
+#define EL_DF_MIRROR_12                        (EL_DF_MIRROR_START + 11)
+#define EL_DF_MIRROR_13                        (EL_DF_MIRROR_START + 12)
+#define EL_DF_MIRROR_14                        (EL_DF_MIRROR_START + 13)
+#define EL_DF_MIRROR_15                        (EL_DF_MIRROR_START + 14)
+#define EL_DF_MIRROR_16                        (EL_DF_MIRROR_START + 15)
+#define EL_DF_MIRROR_END               EL_DF_MIRROR_15
+
+#define EL_DF_WOODEN_GRID_FIXED_START  (EL_DF_START2 + 256)
+#define EL_DF_WOODEN_GRID_FIXED_1      (EL_DF_WOODEN_GRID_FIXED_START + 0)
+#define EL_DF_WOODEN_GRID_FIXED_2      (EL_DF_WOODEN_GRID_FIXED_START + 1)
+#define EL_DF_WOODEN_GRID_FIXED_3      (EL_DF_WOODEN_GRID_FIXED_START + 2)
+#define EL_DF_WOODEN_GRID_FIXED_4      (EL_DF_WOODEN_GRID_FIXED_START + 3)
+#define EL_DF_WOODEN_GRID_FIXED_5      (EL_DF_WOODEN_GRID_FIXED_START + 4)
+#define EL_DF_WOODEN_GRID_FIXED_6      (EL_DF_WOODEN_GRID_FIXED_START + 5)
+#define EL_DF_WOODEN_GRID_FIXED_7      (EL_DF_WOODEN_GRID_FIXED_START + 6)
+#define EL_DF_WOODEN_GRID_FIXED_8      (EL_DF_WOODEN_GRID_FIXED_START + 7)
+#define EL_DF_WOODEN_GRID_FIXED_END    EL_DF_WOODEN_GRID_FIXED_07
+
+#define EL_DF_STEEL_GRID_FIXED_START   (EL_DF_START2 + 264)
+#define EL_DF_STEEL_GRID_FIXED_1       (EL_DF_STEEL_GRID_FIXED_START + 0)
+#define EL_DF_STEEL_GRID_FIXED_2       (EL_DF_STEEL_GRID_FIXED_START + 1)
+#define EL_DF_STEEL_GRID_FIXED_3       (EL_DF_STEEL_GRID_FIXED_START + 2)
+#define EL_DF_STEEL_GRID_FIXED_4       (EL_DF_STEEL_GRID_FIXED_START + 3)
+#define EL_DF_STEEL_GRID_FIXED_5       (EL_DF_STEEL_GRID_FIXED_START + 4)
+#define EL_DF_STEEL_GRID_FIXED_6       (EL_DF_STEEL_GRID_FIXED_START + 5)
+#define EL_DF_STEEL_GRID_FIXED_7       (EL_DF_STEEL_GRID_FIXED_START + 6)
+#define EL_DF_STEEL_GRID_FIXED_8       (EL_DF_STEEL_GRID_FIXED_START + 7)
+#define EL_DF_STEEL_GRID_FIXED_END     EL_DF_STEEL_GRID_FIXED_07
+
+#define EL_DF_WOODEN_WALL_START                (EL_DF_START2 + 272)
+#define EL_DF_WOODEN_WALL_END          (EL_DF_WOODEN_WALL_START + 15)
+
+#define EL_DF_STEEL_WALL_START         (EL_DF_START2 + 288)
+#define EL_DF_STEEL_WALL_END           (EL_DF_STEEL_WALL_START + 15)
+
+#define EL_DF_WALL_START               EL_DF_WOODEN_WALL_START
+#define EL_DF_WALL_END                 EL_DF_STEEL_WALL_END
+
+#define EL_DF_EMPTY                    (EL_DF_START2 + 304)
+#define EL_DF_CELL                     (EL_DF_START2 + 305)
+#define EL_DF_MINE                     (EL_DF_START2 + 306)
+#define EL_DF_REFRACTOR                        (EL_DF_START2 + 307)
+
+#define EL_DF_LASER_START              (EL_DF_START2 + 308)
+#define EL_DF_LASER_RIGHT              (EL_DF_LASER_START + 0)
+#define EL_DF_LASER_UP                 (EL_DF_LASER_START + 1)
+#define EL_DF_LASER_LEFT               (EL_DF_LASER_START + 2)
+#define EL_DF_LASER_DOWN               (EL_DF_LASER_START + 3)
+#define EL_DF_LASER_END                        EL_DF_LASER_DOWN
+
+#define EL_DF_RECEIVER_START           (EL_DF_START2 + 312)
+#define EL_DF_RECEIVER_RIGHT           (EL_DF_RECEIVER_START + 0)
+#define EL_DF_RECEIVER_UP              (EL_DF_RECEIVER_START + 1)
+#define EL_DF_RECEIVER_LEFT            (EL_DF_RECEIVER_START + 2)
+#define EL_DF_RECEIVER_DOWN            (EL_DF_RECEIVER_START + 3)
+#define EL_DF_RECEIVER_END             EL_DF_RECEIVER_DOWN
+
+#define EL_DF_FIBRE_OPTIC_START                (EL_DF_START2 + 316)
+#define EL_DF_FIBRE_OPTIC_RED_1                (EL_DF_FIBRE_OPTIC_START + 0)
+#define EL_DF_FIBRE_OPTIC_RED_2                (EL_DF_FIBRE_OPTIC_START + 1)
+#define EL_DF_FIBRE_OPTIC_YELLOW_1     (EL_DF_FIBRE_OPTIC_START + 2)
+#define EL_DF_FIBRE_OPTIC_YELLOW_2     (EL_DF_FIBRE_OPTIC_START + 3)
+#define EL_DF_FIBRE_OPTIC_GREEN_1      (EL_DF_FIBRE_OPTIC_START + 4)
+#define EL_DF_FIBRE_OPTIC_GREEN_2      (EL_DF_FIBRE_OPTIC_START + 5)
+#define EL_DF_FIBRE_OPTIC_BLUE_1       (EL_DF_FIBRE_OPTIC_START + 6)
+#define EL_DF_FIBRE_OPTIC_BLUE_2       (EL_DF_FIBRE_OPTIC_START + 7)
+#define EL_DF_FIBRE_OPTIC_END          EL_DF_FIBRE_OPTIC_07
+
+#define EL_DF_MIRROR_ROTATING_START    (EL_DF_START2 + 324)
+#define EL_DF_MIRROR_ROTATING_1                (EL_DF_MIRROR_ROTATING_START + 0)
+#define EL_DF_MIRROR_ROTATING_2                (EL_DF_MIRROR_ROTATING_START + 1)
+#define EL_DF_MIRROR_ROTATING_3                (EL_DF_MIRROR_ROTATING_START + 2)
+#define EL_DF_MIRROR_ROTATING_4                (EL_DF_MIRROR_ROTATING_START + 3)
+#define EL_DF_MIRROR_ROTATING_5                (EL_DF_MIRROR_ROTATING_START + 4)
+#define EL_DF_MIRROR_ROTATING_6                (EL_DF_MIRROR_ROTATING_START + 5)
+#define EL_DF_MIRROR_ROTATING_7                (EL_DF_MIRROR_ROTATING_START + 6)
+#define EL_DF_MIRROR_ROTATING_8                (EL_DF_MIRROR_ROTATING_START + 7)
+#define EL_DF_MIRROR_ROTATING_9                (EL_DF_MIRROR_ROTATING_START + 8)
+#define EL_DF_MIRROR_ROTATING_10       (EL_DF_MIRROR_ROTATING_START + 9)
+#define EL_DF_MIRROR_ROTATING_11       (EL_DF_MIRROR_ROTATING_START + 10)
+#define EL_DF_MIRROR_ROTATING_12       (EL_DF_MIRROR_ROTATING_START + 11)
+#define EL_DF_MIRROR_ROTATING_13       (EL_DF_MIRROR_ROTATING_START + 12)
+#define EL_DF_MIRROR_ROTATING_14       (EL_DF_MIRROR_ROTATING_START + 13)
+#define EL_DF_MIRROR_ROTATING_15       (EL_DF_MIRROR_ROTATING_START + 14)
+#define EL_DF_MIRROR_ROTATING_16       (EL_DF_MIRROR_ROTATING_START + 15)
+#define EL_DF_MIRROR_ROTATING_END      EL_DF_MIRROR_ROTATING_15
+
+#define EL_DF_WOODEN_GRID_ROTATING_START (EL_DF_START2 + 340)
+#define EL_DF_WOODEN_GRID_ROTATING_1   (EL_DF_WOODEN_GRID_ROTATING_START + 0)
+#define EL_DF_WOODEN_GRID_ROTATING_2   (EL_DF_WOODEN_GRID_ROTATING_START + 1)
+#define EL_DF_WOODEN_GRID_ROTATING_3   (EL_DF_WOODEN_GRID_ROTATING_START + 2)
+#define EL_DF_WOODEN_GRID_ROTATING_4   (EL_DF_WOODEN_GRID_ROTATING_START + 3)
+#define EL_DF_WOODEN_GRID_ROTATING_5   (EL_DF_WOODEN_GRID_ROTATING_START + 4)
+#define EL_DF_WOODEN_GRID_ROTATING_6   (EL_DF_WOODEN_GRID_ROTATING_START + 5)
+#define EL_DF_WOODEN_GRID_ROTATING_7   (EL_DF_WOODEN_GRID_ROTATING_START + 6)
+#define EL_DF_WOODEN_GRID_ROTATING_8   (EL_DF_WOODEN_GRID_ROTATING_START + 7)
+#define EL_DF_WOODEN_GRID_ROTATING_END EL_DF_WOODEN_GRID_ROTATING_07
+
+#define EL_DF_STEEL_GRID_ROTATING_START        (EL_DF_START2 + 348)
+#define EL_DF_STEEL_GRID_ROTATING_1    (EL_DF_STEEL_GRID_ROTATING_START + 0)
+#define EL_DF_STEEL_GRID_ROTATING_2    (EL_DF_STEEL_GRID_ROTATING_START + 1)
+#define EL_DF_STEEL_GRID_ROTATING_3    (EL_DF_STEEL_GRID_ROTATING_START + 2)
+#define EL_DF_STEEL_GRID_ROTATING_4    (EL_DF_STEEL_GRID_ROTATING_START + 3)
+#define EL_DF_STEEL_GRID_ROTATING_5    (EL_DF_STEEL_GRID_ROTATING_START + 4)
+#define EL_DF_STEEL_GRID_ROTATING_6    (EL_DF_STEEL_GRID_ROTATING_START + 5)
+#define EL_DF_STEEL_GRID_ROTATING_7    (EL_DF_STEEL_GRID_ROTATING_START + 6)
+#define EL_DF_STEEL_GRID_ROTATING_8    (EL_DF_STEEL_GRID_ROTATING_START + 7)
+#define EL_DF_STEEL_GRID_ROTATING_END  EL_DF_STEEL_GRID_ROTATING_07
+
+#define EL_DF_END                      (EL_DF_START2 + 355)
+
+#define EL_MM_BEAMER_RED_START         (EL_DF_START2 + 356)
+#define EL_MM_BEAMER_RED_1             (EL_MM_BEAMER_RED_START + 0)
+#define EL_MM_BEAMER_RED_2             (EL_MM_BEAMER_RED_START + 1)
+#define EL_MM_BEAMER_RED_3             (EL_MM_BEAMER_RED_START + 2)
+#define EL_MM_BEAMER_RED_4             (EL_MM_BEAMER_RED_START + 3)
+#define EL_MM_BEAMER_RED_5             (EL_MM_BEAMER_RED_START + 4)
+#define EL_MM_BEAMER_RED_6             (EL_MM_BEAMER_RED_START + 5)
+#define EL_MM_BEAMER_RED_7             (EL_MM_BEAMER_RED_START + 6)
+#define EL_MM_BEAMER_RED_8             (EL_MM_BEAMER_RED_START + 7)
+#define EL_MM_BEAMER_RED_9             (EL_MM_BEAMER_RED_START + 8)
+#define EL_MM_BEAMER_RED_10            (EL_MM_BEAMER_RED_START + 9)
+#define EL_MM_BEAMER_RED_11            (EL_MM_BEAMER_RED_START + 10)
+#define EL_MM_BEAMER_RED_12            (EL_MM_BEAMER_RED_START + 11)
+#define EL_MM_BEAMER_RED_13            (EL_MM_BEAMER_RED_START + 12)
+#define EL_MM_BEAMER_RED_14            (EL_MM_BEAMER_RED_START + 13)
+#define EL_MM_BEAMER_RED_15            (EL_MM_BEAMER_RED_START + 14)
+#define EL_MM_BEAMER_RED_16            (EL_MM_BEAMER_RED_START + 15)
+#define EL_MM_BEAMER_RED_END           EL_MM_BEAMER_RED_16
+#define EL_MM_BEAMER_YELLOW_START      (EL_DF_START2 + 372)
+#define EL_MM_BEAMER_YELLOW_1          (EL_MM_BEAMER_YELLOW_START + 0)
+#define EL_MM_BEAMER_YELLOW_2          (EL_MM_BEAMER_YELLOW_START + 1)
+#define EL_MM_BEAMER_YELLOW_3          (EL_MM_BEAMER_YELLOW_START + 2)
+#define EL_MM_BEAMER_YELLOW_4          (EL_MM_BEAMER_YELLOW_START + 3)
+#define EL_MM_BEAMER_YELLOW_5          (EL_MM_BEAMER_YELLOW_START + 4)
+#define EL_MM_BEAMER_YELLOW_6          (EL_MM_BEAMER_YELLOW_START + 5)
+#define EL_MM_BEAMER_YELLOW_7          (EL_MM_BEAMER_YELLOW_START + 6)
+#define EL_MM_BEAMER_YELLOW_8          (EL_MM_BEAMER_YELLOW_START + 7)
+#define EL_MM_BEAMER_YELLOW_9          (EL_MM_BEAMER_YELLOW_START + 8)
+#define EL_MM_BEAMER_YELLOW_10         (EL_MM_BEAMER_YELLOW_START + 9)
+#define EL_MM_BEAMER_YELLOW_11         (EL_MM_BEAMER_YELLOW_START + 10)
+#define EL_MM_BEAMER_YELLOW_12         (EL_MM_BEAMER_YELLOW_START + 11)
+#define EL_MM_BEAMER_YELLOW_13         (EL_MM_BEAMER_YELLOW_START + 12)
+#define EL_MM_BEAMER_YELLOW_14         (EL_MM_BEAMER_YELLOW_START + 13)
+#define EL_MM_BEAMER_YELLOW_15         (EL_MM_BEAMER_YELLOW_START + 14)
+#define EL_MM_BEAMER_YELLOW_16         (EL_MM_BEAMER_YELLOW_START + 15)
+#define EL_MM_BEAMER_YELLOW_END                EL_MM_BEAMER_YELLOW_16
+#define EL_MM_BEAMER_GREEN_START       (EL_DF_START2 + 388)
+#define EL_MM_BEAMER_GREEN_1           (EL_MM_BEAMER_GREEN_START + 0)
+#define EL_MM_BEAMER_GREEN_2           (EL_MM_BEAMER_GREEN_START + 1)
+#define EL_MM_BEAMER_GREEN_3           (EL_MM_BEAMER_GREEN_START + 2)
+#define EL_MM_BEAMER_GREEN_4           (EL_MM_BEAMER_GREEN_START + 3)
+#define EL_MM_BEAMER_GREEN_5           (EL_MM_BEAMER_GREEN_START + 4)
+#define EL_MM_BEAMER_GREEN_6           (EL_MM_BEAMER_GREEN_START + 5)
+#define EL_MM_BEAMER_GREEN_7           (EL_MM_BEAMER_GREEN_START + 6)
+#define EL_MM_BEAMER_GREEN_8           (EL_MM_BEAMER_GREEN_START + 7)
+#define EL_MM_BEAMER_GREEN_9           (EL_MM_BEAMER_GREEN_START + 8)
+#define EL_MM_BEAMER_GREEN_10          (EL_MM_BEAMER_GREEN_START + 9)
+#define EL_MM_BEAMER_GREEN_11          (EL_MM_BEAMER_GREEN_START + 10)
+#define EL_MM_BEAMER_GREEN_12          (EL_MM_BEAMER_GREEN_START + 11)
+#define EL_MM_BEAMER_GREEN_13          (EL_MM_BEAMER_GREEN_START + 12)
+#define EL_MM_BEAMER_GREEN_14          (EL_MM_BEAMER_GREEN_START + 13)
+#define EL_MM_BEAMER_GREEN_15          (EL_MM_BEAMER_GREEN_START + 14)
+#define EL_MM_BEAMER_GREEN_16          (EL_MM_BEAMER_GREEN_START + 15)
+#define EL_MM_BEAMER_GREEN_END         EL_MM_BEAMER_GREEN_16
+#define EL_MM_BEAMER_BLUE_START                (EL_DF_START2 + 404)
+#define EL_MM_BEAMER_BLUE_1            (EL_MM_BEAMER_BLUE_START + 0)
+#define EL_MM_BEAMER_BLUE_2            (EL_MM_BEAMER_BLUE_START + 1)
+#define EL_MM_BEAMER_BLUE_3            (EL_MM_BEAMER_BLUE_START + 2)
+#define EL_MM_BEAMER_BLUE_4            (EL_MM_BEAMER_BLUE_START + 3)
+#define EL_MM_BEAMER_BLUE_5            (EL_MM_BEAMER_BLUE_START + 4)
+#define EL_MM_BEAMER_BLUE_6            (EL_MM_BEAMER_BLUE_START + 5)
+#define EL_MM_BEAMER_BLUE_7            (EL_MM_BEAMER_BLUE_START + 6)
+#define EL_MM_BEAMER_BLUE_8            (EL_MM_BEAMER_BLUE_START + 7)
+#define EL_MM_BEAMER_BLUE_9            (EL_MM_BEAMER_BLUE_START + 8)
+#define EL_MM_BEAMER_BLUE_10           (EL_MM_BEAMER_BLUE_START + 9)
+#define EL_MM_BEAMER_BLUE_11           (EL_MM_BEAMER_BLUE_START + 10)
+#define EL_MM_BEAMER_BLUE_12           (EL_MM_BEAMER_BLUE_START + 11)
+#define EL_MM_BEAMER_BLUE_13           (EL_MM_BEAMER_BLUE_START + 12)
+#define EL_MM_BEAMER_BLUE_14           (EL_MM_BEAMER_BLUE_START + 13)
+#define EL_MM_BEAMER_BLUE_15           (EL_MM_BEAMER_BLUE_START + 14)
+#define EL_MM_BEAMER_BLUE_16           (EL_MM_BEAMER_BLUE_START + 15)
+#define EL_MM_BEAMER_BLUE_END          EL_MM_BEAMER_BLUE_16
+
+#define EL_MM_END                      (EL_DF_START2 + 419)
+
+#define EL_MM_MCDUFFIN                 1200
+#define EL_MM_PACMAN                   1201
+#define EL_MM_FUSE                     1202
+#define EL_MM_STEEL_WALL               1203
+#define EL_MM_WOODEN_WALL              1204
+#define EL_MM_ICE_WALL                 1205
+#define EL_MM_AMOEBA_WALL              1206
+#define EL_DF_LASER                    1207
+#define EL_DF_RECEIVER                 1208
+#define EL_DF_STEEL_WALL               1209
+#define EL_DF_WOODEN_WALL              1210
+
+#define NUM_FILE_ELEMENTS              1211
 
 
 /* "real" (and therefore drawable) runtime elements */
 #define EL_DC_GATE_WHITE_GRAY_ACTIVE   (EL_FIRST_RUNTIME_REAL + 69)
 #define EL_EMC_DRIPPER_ACTIVE          (EL_FIRST_RUNTIME_REAL + 70)
 #define EL_EMC_SPRING_BUMPER_ACTIVE    (EL_FIRST_RUNTIME_REAL + 71)
+#define EL_MM_EXIT_OPENING             (EL_FIRST_RUNTIME_REAL + 72)
+#define EL_MM_EXIT_CLOSING             (EL_FIRST_RUNTIME_REAL + 73)
+#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 NUM_DRAWABLE_ELEMENTS          (EL_FIRST_RUNTIME_REAL + 72)
+#define NUM_DRAWABLE_ELEMENTS          (EL_FIRST_RUNTIME_REAL + 77)
 
 /* "unreal" (and therefore not drawable) runtime elements */
 #define EL_FIRST_RUNTIME_UNREAL                (NUM_DRAWABLE_ELEMENTS)
 #define EL_INTERNAL_CASCADE_DC_ACTIVE          (EL_FIRST_INTERNAL + 17)
 #define EL_INTERNAL_CASCADE_DX                 (EL_FIRST_INTERNAL + 18)
 #define EL_INTERNAL_CASCADE_DX_ACTIVE          (EL_FIRST_INTERNAL + 19)
-#define EL_INTERNAL_CASCADE_CHARS              (EL_FIRST_INTERNAL + 20)
-#define EL_INTERNAL_CASCADE_CHARS_ACTIVE       (EL_FIRST_INTERNAL + 21)
-#define EL_INTERNAL_CASCADE_STEEL_CHARS                (EL_FIRST_INTERNAL + 22)
-#define EL_INTERNAL_CASCADE_STEEL_CHARS_ACTIVE (EL_FIRST_INTERNAL + 23)
-#define EL_INTERNAL_CASCADE_CE                 (EL_FIRST_INTERNAL + 24)
-#define EL_INTERNAL_CASCADE_CE_ACTIVE          (EL_FIRST_INTERNAL + 25)
-#define EL_INTERNAL_CASCADE_GE                 (EL_FIRST_INTERNAL + 26)
-#define EL_INTERNAL_CASCADE_GE_ACTIVE          (EL_FIRST_INTERNAL + 27)
-#define EL_INTERNAL_CASCADE_REF                        (EL_FIRST_INTERNAL + 28)
-#define EL_INTERNAL_CASCADE_REF_ACTIVE         (EL_FIRST_INTERNAL + 29)
-#define EL_INTERNAL_CASCADE_USER               (EL_FIRST_INTERNAL + 30)
-#define EL_INTERNAL_CASCADE_USER_ACTIVE                (EL_FIRST_INTERNAL + 31)
-#define EL_INTERNAL_CASCADE_DYNAMIC            (EL_FIRST_INTERNAL + 32)
-#define EL_INTERNAL_CASCADE_DYNAMIC_ACTIVE     (EL_FIRST_INTERNAL + 33)
+#define EL_INTERNAL_CASCADE_MM                 (EL_FIRST_INTERNAL + 20)
+#define EL_INTERNAL_CASCADE_MM_ACTIVE          (EL_FIRST_INTERNAL + 21)
+#define EL_INTERNAL_CASCADE_DF                 (EL_FIRST_INTERNAL + 22)
+#define EL_INTERNAL_CASCADE_DF_ACTIVE          (EL_FIRST_INTERNAL + 23)
+#define EL_INTERNAL_CASCADE_CHARS              (EL_FIRST_INTERNAL + 24)
+#define EL_INTERNAL_CASCADE_CHARS_ACTIVE       (EL_FIRST_INTERNAL + 25)
+#define EL_INTERNAL_CASCADE_STEEL_CHARS                (EL_FIRST_INTERNAL + 26)
+#define EL_INTERNAL_CASCADE_STEEL_CHARS_ACTIVE (EL_FIRST_INTERNAL + 27)
+#define EL_INTERNAL_CASCADE_CE                 (EL_FIRST_INTERNAL + 28)
+#define EL_INTERNAL_CASCADE_CE_ACTIVE          (EL_FIRST_INTERNAL + 29)
+#define EL_INTERNAL_CASCADE_GE                 (EL_FIRST_INTERNAL + 30)
+#define EL_INTERNAL_CASCADE_GE_ACTIVE          (EL_FIRST_INTERNAL + 31)
+#define EL_INTERNAL_CASCADE_REF                        (EL_FIRST_INTERNAL + 32)
+#define EL_INTERNAL_CASCADE_REF_ACTIVE         (EL_FIRST_INTERNAL + 33)
+#define EL_INTERNAL_CASCADE_USER               (EL_FIRST_INTERNAL + 34)
+#define EL_INTERNAL_CASCADE_USER_ACTIVE                (EL_FIRST_INTERNAL + 35)
+#define EL_INTERNAL_CASCADE_DYNAMIC            (EL_FIRST_INTERNAL + 36)
+#define EL_INTERNAL_CASCADE_DYNAMIC_ACTIVE     (EL_FIRST_INTERNAL + 37)
 
 #define EL_INTERNAL_CLIPBOARD_START    (EL_FIRST_INTERNAL + 0)
 #define EL_INTERNAL_CLIPBOARD_END      (EL_FIRST_INTERNAL + 2)
 #define EL_INTERNAL_START              (EL_FIRST_INTERNAL + 0)
-#define EL_INTERNAL_END                        (EL_FIRST_INTERNAL + 33)
+#define EL_INTERNAL_END                        (EL_FIRST_INTERNAL + 37)
 
-#define MAX_NUM_ELEMENTS               (EL_FIRST_INTERNAL + 34)
+#define MAX_NUM_ELEMENTS               (EL_FIRST_INTERNAL + 38)
 
 
 /* values for graphics/sounds action types */