#define EY (DY + 178)
#define TILEX TILESIZE
#define TILEY TILESIZE
+#define MINI_TILESIZE (TILESIZE / 2)
#define MINI_TILEX (TILEX / 2)
#define MINI_TILEY (TILEY / 2)
#define MICRO_TILEX (TILEX / 4)
** 500 - 699: flag elements, only used at runtime
*/
/* "real" level elements */
+#define EL_MM_START 0
+#define EL_MM_START_1 EL_MM_START
+
#define EL_EMPTY 0
#define EL_MIRROR_START 1
#define EL_MIRROR_00 (EL_MIRROR_START + 0)
#define EL_GRID_WOOD_END EL_GRID_WOOD_03
#define EL_FUEL_EMPTY 155
+#define EL_MM_END_1 155
+
#define EL_CHAR_START 160
#define EL_CHAR_ASCII0 (EL_CHAR_START-32)
#define EL_CHAR_AUSRUF (EL_CHAR_ASCII0+33)
(x) == CHAR_BYTE_UMLAUT_U ? EL_CHAR_UE : \
EL_CHAR_A + (x) - 'A')
+#define EL_MM_START_2 240
+
/* elements for "Deflektor" style levels */
-#define EL_DF_START 240
+#define EL_DF_START EL_MM_START_2
#define EL_DF_MIRROR_START EL_DF_START
#define EL_DF_MIRROR_00 (EL_DF_MIRROR_START + 0)
#define EL_BEAMER_BLUE_START 404
#define EL_BEAMER_BLUE_END (EL_BEAMER_BLUE_START + 15)
+/* (currently unused, but potentially useful element definitions) */
+#define EL_MCDUFFIN 420
+#define EL_PACMAN 421
+#define EL_FUSE_OFF 422
+#define EL_STEEL_WALL 423
+#define EL_WOODEN_WALL 424
+#define EL_ICE_WALL 425
+#define EL_AMOEBA_WALL 426
+#define EL_LASER 427
+#define EL_RECEIVER 428
+#define EL_DF_STEEL_WALL 429
+#define EL_DF_WOODEN_WALL 430
+
+#define EL_MM_END_2 430
+#define EL_MM_END EL_MM_END_2
+
/* "real" (and therefore drawable) runtime elements */
-#define EL_FIRST_RUNTIME_EL 500
-#define EL_FUSE_OFF 501
-#define EL_PACMAN 502
-#define EL_EXIT_OPENING 503
-#define EL_GRAY_BALL_OPENING 504
+#define EL_EXIT_OPENING 500
+#define EL_EXIT_CLOSING 501
+#define EL_GRAY_BALL_OPENING 502
+#define EL_ICE_WALL_SHRINKING 503
+#define EL_AMOEBA_WALL_GROWING 504
#define EL_WALL_CHANGING 512
#define EL_WALL_CHANGING_START (EL_WALL_CHANGING + 0)
#define EL_WALL_CHANGING_END (EL_WALL_CHANGING + 15)
-#if 0
-#define EL_MIRROR 5
-#define EL_GRID_STEEL 5
-#define EL_MCDUFFIN 5
-#define EL_BEAMER 5
-#define EL_POLAR 5
-#define EL_POLAR_CROSS 5
-#define EL_MIRROR_FIXED 5
-#define EL_GRID_WOOD 5
-#define EL_DF_MIRROR 5
-#define EL_GRID_WOOD_FIXED 5
-#define EL_GRID_STEEL_FIXED 5
-#define EL_LASER 5
-#define EL_RECEIVER 5
-#define EL_FIBRE_OPTIC 5
-#define EL_DF_MIRROR_AUTO 5
-#define EL_GRID_WOOD_AUTO 5
-#define EL_GRID_STEEL_AUTO 5
-#endif
+#define EL_FIRST_RUNTIME_EL EL_EXIT_OPENING
/* "unreal" (and therefore not drawable) runtime elements */
#define EL_BLOCKED 600
#define EL_EXPLODING_OPAQUE 601
#define EL_EXPLODING_TRANSP 602
+/* dummy elements (never used as game elements, only used as graphics) */
+#define EL_MM_MASK_MCDUFFIN_RIGHT 700
+#define EL_MM_MASK_MCDUFFIN_UP 701
+#define EL_MM_MASK_MCDUFFIN_LEFT 702
+#define EL_MM_MASK_MCDUFFIN_DOWN 703
+#define EL_MM_MASK_GRID_1 704
+#define EL_MM_MASK_GRID_2 705
+#define EL_MM_MASK_GRID_3 706
+#define EL_MM_MASK_GRID_4 707
+#define EL_MM_MASK_RECTANGE 708
+#define EL_MM_MASK_CIRCLE 709
+
/* game graphics:
** 0 - 191: graphics from "MirrorScreen"
** 512 - 767: graphics from "MirrorDF"
*/
+#define IMG_EMPTY IMG_EMPTY_SPACE
+
#define GFX_START_MIRRORSCREEN 0
#define GFX_END_MIRRORSCREEN 191
#define GFX_START_PSEUDO 192
#define MSDOS_POINTER_FILENAME "mouse.pcx"
/* functions for version handling */
-#define MM_VERSION_IDENT(x,y,z) ((x) * 10000 + (y) * 100 + (z))
-#define MM_VERSION_MAJOR(x) ((x) / 10000)
-#define MM_VERSION_MINOR(x) (((x) % 10000) / 100)
-#define MM_VERSION_PATCH(x) ((x) % 100)
+#define MM_VERSION_IDENT(x,y,z) VERSION_IDENT(x,y,z,0)
+#define MM_VERSION_MAJOR(x) VERSION_MAJOR(x)
+#define MM_VERSION_MINOR(x) VERSION_MINOR(x)
+#define MM_VERSION_PATCH(x) VERSION_PATCH(x)
/* file version numbers for resource files (levels, score, setup, etc.)
** currently supported/known file version numbers: