// (c) 1994-2017 by Artsoft Entertainment
// Holger Schemel
// info@artsoft.org
-// http://www.artsoft.org/
+// https://www.artsoft.org/
// ----------------------------------------------------------------------------
// mm_main.h
// ============================================================================
#define EP_BIT_INACTIVE (1 << 11)
#define EP_BIT_WALL (1 << 12)
#define EP_BIT_PACMAN (1 << 13)
+#define EP_BIT_ENVELOPE (1 << 14)
#define IS_GRID(e) (Elementeigenschaften[e] & EP_BIT_GRID)
#define IS_MCDUFFIN(e) (Elementeigenschaften[e] & EP_BIT_MCDUFFIN)
#define IS_INACTIVE(e) (Elementeigenschaften[e] & EP_BIT_INACTIVE)
#define IS_MM_WALL(e) (Elementeigenschaften[e] & EP_BIT_WALL)
#define IS_PACMAN(e) (Elementeigenschaften[e] & EP_BIT_PACMAN)
+#define IS_ENVELOPE(e) (Elementeigenschaften[e] & EP_BIT_ENVELOPE)
#define IS_WALL_STEEL(e) ((e) >= EL_WALL_STEEL_START && \
(e) <= EL_WALL_STEEL_END)
(e) <= EL_DF_MIRROR_END)
#define IS_DF_MIRROR_AUTO(e) ((e) >= EL_DF_MIRROR_AUTO_START && \
(e) <= EL_DF_MIRROR_AUTO_END)
+#define IS_DF_MIRROR_FIXED(e) ((e) >= EL_DF_MIRROR_FIXED_START && \
+ (e) <= EL_DF_MIRROR_FIXED_END)
+#define IS_DF_SLOPE(e) ((e) >= EL_DF_SLOPE_START && \
+ (e) <= EL_DF_SLOPE_END)
#define IS_LASER(e) ((e) >= EL_LASER_START && \
(e) <= EL_LASER_END)
#define IS_RECEIVER(e) ((e) >= EL_RECEIVER_START && \
(e) == EL_BOMB || \
IS_WALL_AMOEBA(e))
-#define CAN_MOVE(e) ((e) == EL_PACMAN)
-#define IS_FREE(x,y) (Feld[x][y] == EL_EMPTY)
+#define IS_ABSORBING_BLOCK(e) (IS_WALL_WOOD(e) || \
+ IS_DF_WALL_WOOD(e) || \
+ (e) == EL_BLOCK_WOOD || \
+ (e) == EL_GATE_WOOD || \
+ (e) == EL_EXIT_CLOSED || \
+ (e) == EL_EXIT_OPEN)
-#define IS_MOVING(x,y) (MovPos[x][y] != 0)
-#define IS_BLOCKED(x,y) (Feld[x][y] == EL_BLOCKED)
-#define IS_DRAWABLE(e) ((e) < EL_BLOCKED)
-#define IS_NOT_DRAWABLE(e) ((e) >= EL_BLOCKED)
+#define IS_ENVELOPE_OPENING(e) ((e) >= EL_ENVELOPE_OPENING_START && \
+ (e) <= EL_ENVELOPE_OPENING_END)
-#define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_SPIELER1])
+#define ENVELOPE_NR(e) ((e) - EL_ENVELOPE_1)
+#define ENVELOPE_OPENING_NR(e) ((e) - EL_ENVELOPE_1_OPENING)
-#define WALL_BASE(e) ((e) & 0xfff0)
-#define WALL_BITS(e) ((e) & 0x000f)
+#define CAN_MOVE(e) ((e) == EL_PACMAN)
+#define IS_FREE(x, y) (Tile[x][y] == EL_EMPTY)
-// Bitmaps with graphic file
-#define PIX_BACK 0
-#define PIX_DOOR 1
-#define PIX_TOONS 2
-#define PIX_DF 3
-#define PIX_BIGFONT 4
-#define PIX_SMALLFONT 5
-#define PIX_MEDIUMFONT 6
-// Bitmaps without graphic file
-#define PIX_DB_DOOR 7
+#define IS_MOVING(x, y) (MovPos[x][y] != 0)
+#define IS_BLOCKED(x, y) (Tile[x][y] == EL_BLOCKED)
+#define IS_DRAWABLE(e) ((e) < EL_BLOCKED)
+#define IS_NOT_DRAWABLE(e) ((e) >= EL_BLOCKED)
-#define NUM_PICTURES 7
-#define NUM_BITMAPS 8
+#define WALL_BASE(e) ((e) & 0xfff0)
+#define WALL_BITS(e) ((e) & 0x000f)
// boundaries of arrays etc.
#define MAX_PLAYER_NAME_LEN 10
#define LEVEL_SCORE_ELEMENTS 16 // level elements with score
-struct HiScore_MM
-{
- char Name[MAX_PLAYER_NAME_LEN + 1];
- int Score;
-};
-
-extern Bitmap *pix[];
-extern DrawBuffer *fieldbuffer;
-extern DrawBuffer *drawto_field;
-
-extern int joystick_device;
-extern char *joystick_device_name[];
+extern DrawBuffer *drawto_mm;
+extern DrawBuffer *bitmap_db_field;
extern int game_status;
extern boolean level_editor_test_game;
-extern boolean network_playing;
-
-extern int key_joystick_mapping;
-extern int global_joystick_status, joystick_status;
-extern int sound_status;
-extern boolean sound_loops_allowed;
extern boolean redraw[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern int redraw_x1, redraw_y1;
-extern short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short Tile[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short Hit[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short Box[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern short AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
+extern short AmoebaCnt[MAX_NUM_AMOEBA];
+extern short AmoebaCnt2[MAX_NUM_AMOEBA];
+extern short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+
+extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+
extern unsigned int Elementeigenschaften[MAX_ELEMENTS];
extern int level_nr;
extern int SBX_Left, SBX_Right;
extern int SBY_Upper, SBY_Lower;
extern int TimeFrames, TimePlayed, TimeLeft;
-extern boolean SiebAktiv;
-extern int SiebCount;
extern struct LevelInfo_MM native_mm_level;
-extern struct HiScore_MM highscore[];
-extern struct TapeInfo tape;
-extern struct SetupInfo setup;
extern struct GameInfo_MM game_mm;
extern struct LaserInfo laser;
-extern struct GlobalInfo global;
extern short LX, LY, XS, YS, ELX, ELY;
extern short CT, Ct;
extern struct XY Step[];
extern short Sign[16];
-extern char *sound_name[];
-extern int background_loop[];
-extern int num_bg_loops;
extern char *element_info[];
extern int num_element_info;
-// often used screen positions
-#define DX 534
-#define DY 60
-#define EX DX
-#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)
-#define MICRO_TILEY (TILEY / 4)
-#define MICRO_WALLX (TILEX / 8)
-#define MICRO_WALLY (TILEY / 8)
-#define MIDPOSX (SCR_FIELDX / 2)
-#define MIDPOSY (SCR_FIELDY / 2)
-#define DXSIZE 100
-#define DYSIZE 280
-#define VXSIZE DXSIZE
-#define VYSIZE 100
-#define EXSIZE DXSIZE
-#define EYSIZE (VXSIZE + 44)
-#define FULL_SXSIZE (2 + SXSIZE + 2)
-#define FULL_SYSIZE (2 + SYSIZE + 2)
-#define MICROLEV_XPOS (SX + 12 * TILEX)
-#define MICROLEV_YPOS (SY + 6 * TILEY)
-#define MICROLEV_XSIZE (STD_LEV_FIELDX * MICRO_TILEX)
-#define MICROLEV_YSIZE (STD_LEV_FIELDY * MICRO_TILEY)
-#define MICROLABEL_XPOS (SY)
-#define MICROLABEL_YPOS (SY + 352)
-#define MICROLABEL_XSIZE (SXSIZE)
-#define MICROLABEL_YSIZE (FONT4_YSIZE)
-
-#define GFX_STARTX SX
-#define GFX_STARTY SY
-#define MINI_GFX_STARTX (SX + 8 * TILEX)
-#define MINI_GFX_STARTY (SY + 6 * TILEY)
-#define MICRO_GFX_STARTX (MINI_GFX_STARTX + 8 * MINI_TILEX)
-#define MICRO_GFX_STARTY (MINI_GFX_STARTY + 6 * MINI_TILEY)
-#define GFX_PER_LINE 16
-#define MINI_GFX_PER_LINE GFX_PER_LINE
-#define MICRO_GFX_PER_LINE GFX_PER_LINE
-
-#define MINI_DF_STARTX (8 * TILEX)
-#define MINI_DF_STARTY (8 * TILEY)
-#define MICRO_DF_STARTX (MINI_DF_STARTX + 8 * MINI_TILEX)
-#define MICRO_DF_STARTY (MINI_DF_STARTY + 8 * MINI_TILEY)
-#define DF_PER_LINE 16
-#define MINI_DF_PER_LINE DF_PER_LINE
-#define MICRO_DF_PER_LINE DF_PER_LINE
-
-#define MICRO_FONT_STARTX (MICRO_DF_STARTX + 8 * MICRO_TILEX)
-#define MICRO_FONT_STARTY (MICRO_DF_STARTY + 8 * MICRO_TILEY)
-#define MICRO_FONT_PER_LINE 8
-
// wall positions (that can be OR'ed together)
#define WALL_TOPLEFT 1
#define WALL_TOPRIGHT 2
#define EL_KETTLE 29
#define EL_BOMB 30
#define EL_PRISM 31
-#define EL_WALL_START 32
-#define EL_WALL_EMPTY EL_WALL_START
-#define EL_WALL_00 EL_WALL_START
-#define EL_WALL_STEEL EL_WALL_00
-#define EL_WALL_STEEL_START EL_WALL_00
-#define EL_WALL_15 47
-#define EL_WALL_STEEL_END EL_WALL_15
-#define EL_WALL_16 48
-#define EL_WALL_WOOD EL_WALL_16
-#define EL_WALL_WOOD_START EL_WALL_16
-#define EL_WALL_31 63
-#define EL_WALL_WOOD_END EL_WALL_31
-#define EL_WALL_32 64
-#define EL_WALL_ICE EL_WALL_32
-#define EL_WALL_ICE_START EL_WALL_32
-#define EL_WALL_47 79
-#define EL_WALL_ICE_END EL_WALL_47
-#define EL_WALL_48 80
-#define EL_WALL_AMOEBA EL_WALL_48
-#define EL_WALL_AMOEBA_START EL_WALL_48
-#define EL_WALL_63 95
-#define EL_WALL_AMOEBA_END EL_WALL_63
-#define EL_WALL_END EL_WALL_63
+#define EL_WALL_START EL_WALL_STEEL_START
+#define EL_WALL_STEEL_BASE 32
+#define EL_WALL_STEEL_START (EL_WALL_STEEL_BASE + 0)
+#define EL_WALL_STEEL_END (EL_WALL_STEEL_BASE + 15)
+#define EL_WALL_WOOD_BASE 48
+#define EL_WALL_WOOD_START (EL_WALL_WOOD_BASE + 0)
+#define EL_WALL_WOOD_END (EL_WALL_WOOD_BASE + 15)
+#define EL_WALL_ICE_BASE 64
+#define EL_WALL_ICE_START (EL_WALL_ICE_BASE + 0)
+#define EL_WALL_ICE_END (EL_WALL_ICE_BASE + 15)
+#define EL_WALL_AMOEBA_BASE 80
+#define EL_WALL_AMOEBA_START (EL_WALL_AMOEBA_BASE + 0)
+#define EL_WALL_AMOEBA_END (EL_WALL_AMOEBA_BASE + 15)
+#define EL_WALL_END EL_WALL_AMOEBA_END
#define EL_BLOCK_WOOD 96
-#define EL_BALL_GRAY 97
+#define EL_GRAY_BALL 97
#define EL_BEAMER_START 98
#define EL_BEAMER_00 (EL_BEAMER_START + 0)
#define EL_BEAMER_01 (EL_BEAMER_START + 1)
#define EL_GRID_WOOD_03 (EL_GRID_WOOD_START + 3)
#define EL_GRID_WOOD_END EL_GRID_WOOD_03
#define EL_FUEL_EMPTY 155
+#define EL_ENVELOPE_1 156
+#define EL_ENVELOPE_2 157
+#define EL_ENVELOPE_3 158
+#define EL_ENVELOPE_4 159
-#define EL_MM_END_1 155
+#define EL_MM_END_1 159
#define EL_CHAR_START 160
#define EL_CHAR_ASCII0 (EL_CHAR_START - 32)
#define EL_GRID_STEEL_FIXED_07 (EL_GRID_STEEL_FIXED_START + 7) // 157.5°
#define EL_GRID_STEEL_FIXED_END EL_GRID_STEEL_FIXED_07
-#define EL_DF_WALL_WOOD 272
-#define EL_DF_WALL_START EL_DF_WALL_WOOD_START
-#define EL_DF_WALL_WOOD_START (EL_DF_WALL_WOOD + 0)
-#define EL_DF_WALL_WOOD_END (EL_DF_WALL_WOOD + 15)
+#define EL_DF_WALL_WOOD_BASE 272
+#define EL_DF_WALL_WOOD_START (EL_DF_WALL_WOOD_BASE + 0)
+#define EL_DF_WALL_WOOD_END (EL_DF_WALL_WOOD_BASE + 15)
+
+#define EL_DF_WALL_STEEL_BASE 288
+#define EL_DF_WALL_STEEL_START (EL_DF_WALL_STEEL_BASE + 0)
+#define EL_DF_WALL_STEEL_END (EL_DF_WALL_STEEL_BASE + 15)
-#define EL_DF_WALL_STEEL 288
-#define EL_DF_WALL_STEEL_START (EL_DF_WALL_STEEL + 0)
-#define EL_DF_WALL_STEEL_END (EL_DF_WALL_STEEL + 15)
+#define EL_DF_WALL_START EL_DF_WALL_WOOD_START
#define EL_DF_WALL_END EL_DF_WALL_STEEL_END
#define EL_DF_EMPTY 304
#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_WALL_STEEL 423
+#define EL_WALL_WOOD 424
+#define EL_WALL_ICE 425
+#define EL_WALL_AMOEBA 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_DF_WALL_STEEL 429
+#define EL_DF_WALL_WOOD 430
+
+#define EL_DF_MIRROR_FIXED_START 431
+#define EL_DF_MIRROR_FIXED_00 (EL_DF_MIRROR_FIXED_START + 0)
+#define EL_DF_MIRROR_FIXED_01 (EL_DF_MIRROR_FIXED_START + 1)
+#define EL_DF_MIRROR_FIXED_02 (EL_DF_MIRROR_FIXED_START + 2)
+#define EL_DF_MIRROR_FIXED_03 (EL_DF_MIRROR_FIXED_START + 3)
+#define EL_DF_MIRROR_FIXED_04 (EL_DF_MIRROR_FIXED_START + 4)
+#define EL_DF_MIRROR_FIXED_05 (EL_DF_MIRROR_FIXED_START + 5)
+#define EL_DF_MIRROR_FIXED_06 (EL_DF_MIRROR_FIXED_START + 6)
+#define EL_DF_MIRROR_FIXED_07 (EL_DF_MIRROR_FIXED_START + 7)
+#define EL_DF_MIRROR_FIXED_08 (EL_DF_MIRROR_FIXED_START + 8)
+#define EL_DF_MIRROR_FIXED_09 (EL_DF_MIRROR_FIXED_START + 9)
+#define EL_DF_MIRROR_FIXED_10 (EL_DF_MIRROR_FIXED_START + 10)
+#define EL_DF_MIRROR_FIXED_11 (EL_DF_MIRROR_FIXED_START + 11)
+#define EL_DF_MIRROR_FIXED_12 (EL_DF_MIRROR_FIXED_START + 12)
+#define EL_DF_MIRROR_FIXED_13 (EL_DF_MIRROR_FIXED_START + 13)
+#define EL_DF_MIRROR_FIXED_14 (EL_DF_MIRROR_FIXED_START + 14)
+#define EL_DF_MIRROR_FIXED_15 (EL_DF_MIRROR_FIXED_START + 15)
+#define EL_DF_MIRROR_FIXED_END EL_DF_MIRROR_FIXED_15
+
+#define EL_DF_SLOPE_START 447
+#define EL_DF_SLOPE_00 (EL_DF_SLOPE_START + 0)
+#define EL_DF_SLOPE_01 (EL_DF_SLOPE_START + 1)
+#define EL_DF_SLOPE_02 (EL_DF_SLOPE_START + 2)
+#define EL_DF_SLOPE_03 (EL_DF_SLOPE_START + 3)
+#define EL_DF_SLOPE_END EL_DF_SLOPE_03
+
+#define EL_MM_END_2 450
#define EL_MM_END EL_MM_END_2
// "real" (and therefore drawable) runtime elements
#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)
+#define EL_GRAY_BALL_ACTIVE 502
+#define EL_GRAY_BALL_OPENING 503
+#define EL_WALL_ICE_SHRINKING 504
+#define EL_WALL_AMOEBA_GROWING 505
+#define EL_BOMB_ACTIVE 506
+#define EL_MINE_ACTIVE 507
+#define EL_ENVELOPE_1_OPENING 508
+#define EL_ENVELOPE_2_OPENING 509
+#define EL_ENVELOPE_3_OPENING 510
+#define EL_ENVELOPE_4_OPENING 511
+
+#define EL_ENVELOPE_OPENING_START EL_ENVELOPE_1_OPENING
+#define EL_ENVELOPE_OPENING_END EL_ENVELOPE_4_OPENING
+
+#define EL_WALL_CHANGING_BASE 512
+#define EL_WALL_CHANGING_START (EL_WALL_CHANGING_BASE + 0)
+#define EL_WALL_CHANGING_END (EL_WALL_CHANGING_BASE + 15)
#define EL_FIRST_RUNTIME_EL EL_EXIT_OPENING
#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"
#define IMG_EMPTY IMG_EMPTY_SPACE
-#define GFX_START_MIRRORSCREEN 0
-#define GFX_END_MIRRORSCREEN 191
-#define GFX_START_PSEUDO 192
-#define GFX_END_PSEUDO 255
-#define GFX_START_MIRRORFONT 256
-#define GFX_END_MIRRORFONT 511
-#define GFX_START_MIRRORDF 512
-#define GFX_END_MIRRORDF 767
-
-#define NUM_TILES 512
-
-// graphics from "MirrorScreen"
-#define GFX_EMPTY (-1)
-// row 0 (0)
-#define GFX_MIRROR_START 0
-#define GFX_MIRROR GFX_MIRROR_START
-#define GFX_MIRROR_00 (GFX_MIRROR_START + 0)
-#define GFX_MIRROR_01 (GFX_MIRROR_START + 1)
-#define GFX_MIRROR_02 (GFX_MIRROR_START + 2)
-#define GFX_MIRROR_03 (GFX_MIRROR_START + 3)
-#define GFX_MIRROR_04 (GFX_MIRROR_START + 4)
-#define GFX_MIRROR_05 (GFX_MIRROR_START + 5)
-#define GFX_MIRROR_06 (GFX_MIRROR_START + 6)
-#define GFX_MIRROR_07 (GFX_MIRROR_START + 7)
-#define GFX_MIRROR_08 (GFX_MIRROR_START + 8)
-#define GFX_MIRROR_09 (GFX_MIRROR_START + 9)
-#define GFX_MIRROR_10 (GFX_MIRROR_START + 10)
-#define GFX_MIRROR_11 (GFX_MIRROR_START + 11)
-#define GFX_MIRROR_12 (GFX_MIRROR_START + 12)
-#define GFX_MIRROR_13 (GFX_MIRROR_START + 13)
-#define GFX_MIRROR_14 (GFX_MIRROR_START + 14)
-#define GFX_MIRROR_15 (GFX_MIRROR_START + 15)
-#define GFX_MIRROR_END GFX_MIRROR_15
-// row 1 (16)
-#define GFX_GRID_STEEL_START 16
-#define GFX_GRID_STEEL GFX_GRID_STEEL_START
-#define GFX_GRID_STEEL_00 (GFX_GRID_STEEL_START + 0)
-#define GFX_GRID_STEEL_01 (GFX_GRID_STEEL_START + 1)
-#define GFX_GRID_STEEL_02 (GFX_GRID_STEEL_START + 2)
-#define GFX_GRID_STEEL_03 (GFX_GRID_STEEL_START + 3)
-#define GFX_MCDUFFIN_START 20
-#define GFX_MCDUFFIN GFX_MCDUFFIN_START
-#define GFX_MCDUFFIN_RIGHT (GFX_MCDUFFIN_START + 0)
-#define GFX_MCDUFFIN_UP (GFX_MCDUFFIN_START + 1)
-#define GFX_MCDUFFIN_LEFT (GFX_MCDUFFIN_START + 2)
-#define GFX_MCDUFFIN_DOWN (GFX_MCDUFFIN_START + 3)
-#define GFX_EXIT_CLOSED 24
-#define GFX_EXIT_OPENING_1 25
-#define GFX_EXIT_OPENING_2 26
-#define GFX_EXIT_OPEN 27
-#define GFX_KETTLE 28
-#define GFX_EXPLOSION_KETTLE 29
-// row 2 (32)
-#define GFX_PRISM 32
-#define GFX_WALL_SEVERAL 33
-#define GFX_WALL_ANIMATION 34
-#define GFX_BLOCK_WOOD 36
-#define GFX_BOMB 37
-#define GFX_FUSE_ON 38
-#define GFX_FUSE_OFF 39
-#define GFX_GATE_STONE 40
-#define GFX_KEY 41
-#define GFX_LIGHTBULB_OFF 42
-#define GFX_LIGHTBULB_ON 43
-#define GFX_BALL_RED 44
-#define GFX_BALL_BLUE 45
-#define GFX_BALL_YELLOW 46
-#define GFX_BALL_GRAY 47
-// row 3 (48)
-#define GFX_BEAMER_START 48
-#define GFX_BEAMER_END 63
-// row 4 (64)
-#define GFX_PACMAN_START 64
-#define GFX_PACMAN GFX_PACMAN_START
-#define GFX_PACMAN_RIGHT (GFX_PACMAN_START + 0)
-#define GFX_PACMAN_UP (GFX_PACMAN_START + 1)
-#define GFX_PACMAN_LEFT (GFX_PACMAN_START + 2)
-#define GFX_PACMAN_DOWN (GFX_PACMAN_START + 3)
-#define GFX_EXPLOSION_START 72
-#define GFX_EXPLOSION_SHORT 76
-#define GFX_EXPLOSION_LAST 78
-// row 5 (80)
-#define GFX_POLAR_START 80
-#define GFX_POLAR_END 95
-// row 6 (96)
-#define GFX_POLAR_CROSS_START 96
-#define GFX_POLAR_CROSS GFX_POLAR_CROSS_START
-#define GFX_POLAR_CROSS_00 (GFX_POLAR_CROSS_START + 0)
-#define GFX_POLAR_CROSS_01 (GFX_POLAR_CROSS_START + 1)
-#define GFX_POLAR_CROSS_02 (GFX_POLAR_CROSS_START + 2)
-#define GFX_POLAR_CROSS_03 (GFX_POLAR_CROSS_START + 3)
-#define GFX_MIRROR_FIXED_START 100
-#define GFX_MIRROR_FIXED GFX_MIRROR_FIXED_START
-#define GFX_MIRROR_FIXED_00 (GFX_MIRROR_FIXED_START + 0)
-#define GFX_MIRROR_FIXED_01 (GFX_MIRROR_FIXED_START + 1)
-#define GFX_MIRROR_FIXED_02 (GFX_MIRROR_FIXED_START + 2)
-#define GFX_MIRROR_FIXED_03 (GFX_MIRROR_FIXED_START + 3)
-// row 7 (112)
-#define GFX_BLOCK_STONE 112
-#define GFX_GATE_WOOD 113
-#define GFX_FUEL_FULL 114
-#define GFX_FUEL_EMPTY 115
-#define GFX_GRID_WOOD_00 116
-#define GFX_GRID_WOOD_01 117
-#define GFX_GRID_WOOD_02 118
-#define GFX_GRID_WOOD_03 119
-// row 8 (128)
-#define GFX_ARROW_BLUE_LEFT 128
-#define GFX_ARROW_BLUE_RIGHT 129
-#define GFX_ARROW_BLUE_UP 130
-#define GFX_ARROW_BLUE_DOWN 131
-#define GFX_ARROW_RED_LEFT 132
-#define GFX_ARROW_RED_RIGHT 133
-#define GFX_ARROW_RED_UP 134
-#define GFX_ARROW_RED_DOWN 135
-// row 9 (144)
-#define GFX_SCROLLBAR_BLUE 144
-#define GFX_SCROLLBAR_RED 145
-// row 10 (160)
-#define GFX_MASK_CIRCLE 160
-#define GFX_MASK_RECTANGLE 161
-#define GFX_MASK_RECTANGLE2 162
-#define GFX_MASK_RECTANGLE3 163
-#define GFX_MASK_GRID_00 164
-#define GFX_MASK_GRID_01 165
-#define GFX_MASK_GRID_02 166
-#define GFX_MASK_GRID_03 167
-// row 11 (176)
-#define GFX_MASK_MCDUFFIN_00 176
-#define GFX_MASK_MCDUFFIN_01 177
-#define GFX_MASK_MCDUFFIN_02 178
-#define GFX_MASK_MCDUFFIN_03 179
-
-// pseudo-graphics; will be mapped to other graphics
-#define GFX_WALL_STEEL 192
-#define GFX_WALL_WOOD 193
-#define GFX_WALL_ICE 194
-#define GFX_WALL_AMOEBA 195
-#define GFX_DF_WALL_STEEL 196
-#define GFX_DF_WALL_WOOD 197
-
-#define GFX_KUGEL_ROT GFX_BALL_RED
-#define GFX_KUGEL_BLAU GFX_BALL_BLUE
-#define GFX_KUGEL_GELB GFX_BALL_YELLOW
-#define GFX_KUGEL_GRAU GFX_BALL_GRAY
-
-// graphics from "MirrorFont"
-#define GFX_CHAR_START (GFX_START_MIRRORFONT)
-#define GFX_CHAR_ASCII0 (GFX_CHAR_START - 32)
-#define GFX_CHAR_AUSRUF (GFX_CHAR_ASCII0 + 33)
-#define GFX_CHAR_ZOLL (GFX_CHAR_ASCII0 + 34)
-#define GFX_CHAR_DOLLAR (GFX_CHAR_ASCII0 + 36)
-#define GFX_CHAR_PROZ (GFX_CHAR_ASCII0 + 37)
-#define GFX_CHAR_APOSTR (GFX_CHAR_ASCII0 + 39)
-#define GFX_CHAR_KLAMM1 (GFX_CHAR_ASCII0 + 40)
-#define GFX_CHAR_KLAMM2 (GFX_CHAR_ASCII0 + 41)
-#define GFX_CHAR_PLUS (GFX_CHAR_ASCII0 + 43)
-#define GFX_CHAR_KOMMA (GFX_CHAR_ASCII0 + 44)
-#define GFX_CHAR_MINUS (GFX_CHAR_ASCII0 + 45)
-#define GFX_CHAR_PUNKT (GFX_CHAR_ASCII0 + 46)
-#define GFX_CHAR_SLASH (GFX_CHAR_ASCII0 + 47)
-#define GFX_CHAR_0 (GFX_CHAR_ASCII0 + 48)
-#define GFX_CHAR_9 (GFX_CHAR_ASCII0 + 57)
-#define GFX_CHAR_DOPPEL (GFX_CHAR_ASCII0 + 58)
-#define GFX_CHAR_SEMIKL (GFX_CHAR_ASCII0 + 59)
-#define GFX_CHAR_LT (GFX_CHAR_ASCII0 + 60)
-#define GFX_CHAR_GLEICH (GFX_CHAR_ASCII0 + 61)
-#define GFX_CHAR_GT (GFX_CHAR_ASCII0 + 62)
-#define GFX_CHAR_FRAGE (GFX_CHAR_ASCII0 + 63)
-#define GFX_CHAR_AT (GFX_CHAR_ASCII0 + 64)
-#define GFX_CHAR_A (GFX_CHAR_ASCII0 + 65)
-#define GFX_CHAR_Z (GFX_CHAR_ASCII0 + 90)
-#define GFX_CHAR_AE (GFX_CHAR_ASCII0 + 91)
-#define GFX_CHAR_OE (GFX_CHAR_ASCII0 + 92)
-#define GFX_CHAR_UE (GFX_CHAR_ASCII0 + 93)
-#define GFX_CHAR_COPY (GFX_CHAR_ASCII0 + 94)
-#define GFX_CHAR_END (GFX_CHAR_START + 79)
-
-// graphics from "MirrorDF"
-#define GFX_DF_MIRROR_00 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 0)
-#define GFX_DF_MIRROR_01 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 1)
-#define GFX_DF_MIRROR_02 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 2)
-#define GFX_DF_MIRROR_03 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 3)
-#define GFX_DF_MIRROR_04 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 4)
-#define GFX_DF_MIRROR_05 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 5)
-#define GFX_DF_MIRROR_06 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 6)
-#define GFX_DF_MIRROR_07 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 7)
-#define GFX_DF_MIRROR_08 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 8)
-#define GFX_DF_MIRROR_09 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 9)
-#define GFX_DF_MIRROR_10 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 10)
-#define GFX_DF_MIRROR_11 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 11)
-#define GFX_DF_MIRROR_12 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 12)
-#define GFX_DF_MIRROR_13 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 13)
-#define GFX_DF_MIRROR_14 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 14)
-#define GFX_DF_MIRROR_15 (GFX_START_MIRRORDF + 0 * DF_PER_LINE + 15)
-
-#define GFX_DF_MIRROR_AUTO_00 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 0)
-#define GFX_DF_MIRROR_AUTO_01 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 1)
-#define GFX_DF_MIRROR_AUTO_02 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 2)
-#define GFX_DF_MIRROR_AUTO_03 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 3)
-#define GFX_DF_MIRROR_AUTO_04 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 4)
-#define GFX_DF_MIRROR_AUTO_05 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 5)
-#define GFX_DF_MIRROR_AUTO_06 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 6)
-#define GFX_DF_MIRROR_AUTO_07 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 7)
-#define GFX_DF_MIRROR_AUTO_08 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 8)
-#define GFX_DF_MIRROR_AUTO_09 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 9)
-#define GFX_DF_MIRROR_AUTO_10 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 10)
-#define GFX_DF_MIRROR_AUTO_11 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 11)
-#define GFX_DF_MIRROR_AUTO_12 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 12)
-#define GFX_DF_MIRROR_AUTO_13 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 13)
-#define GFX_DF_MIRROR_AUTO_14 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 14)
-#define GFX_DF_MIRROR_AUTO_15 (GFX_START_MIRRORDF + 1 * DF_PER_LINE + 15)
-
-#define GFX_GRID_STEEL_FIXED_00 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 0)
-#define GFX_GRID_STEEL_FIXED_01 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 1)
-#define GFX_GRID_STEEL_FIXED_02 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 2)
-#define GFX_GRID_STEEL_FIXED_03 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 3)
-#define GFX_GRID_STEEL_FIXED_04 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 4)
-#define GFX_GRID_STEEL_FIXED_05 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 5)
-#define GFX_GRID_STEEL_FIXED_06 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 6)
-#define GFX_GRID_STEEL_FIXED_07 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 7)
-#define GFX_GRID_STEEL_FIXED GFX_GRID_STEEL_FIXED_00
-
-#define GFX_GRID_WOOD_FIXED_00 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 8)
-#define GFX_GRID_WOOD_FIXED_01 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 9)
-#define GFX_GRID_WOOD_FIXED_02 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 10)
-#define GFX_GRID_WOOD_FIXED_03 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 11)
-#define GFX_GRID_WOOD_FIXED_04 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 12)
-#define GFX_GRID_WOOD_FIXED_05 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 13)
-#define GFX_GRID_WOOD_FIXED_06 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 14)
-#define GFX_GRID_WOOD_FIXED_07 (GFX_START_MIRRORDF + 2 * DF_PER_LINE + 15)
-#define GFX_GRID_WOOD_FIXED GFX_GRID_WOOD_FIXED_00
-
-#define GFX_GRID_STEEL_AUTO_00 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 0)
-#define GFX_GRID_STEEL_AUTO_01 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 1)
-#define GFX_GRID_STEEL_AUTO_02 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 2)
-#define GFX_GRID_STEEL_AUTO_03 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 3)
-#define GFX_GRID_STEEL_AUTO_04 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 4)
-#define GFX_GRID_STEEL_AUTO_05 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 5)
-#define GFX_GRID_STEEL_AUTO_06 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 6)
-#define GFX_GRID_STEEL_AUTO_07 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 7)
-#define GFX_GRID_STEEL_AUTO GFX_GRID_STEEL_AUTO_00
-
-#define GFX_GRID_WOOD_AUTO_00 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 8)
-#define GFX_GRID_WOOD_AUTO_01 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 9)
-#define GFX_GRID_WOOD_AUTO_02 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 10)
-#define GFX_GRID_WOOD_AUTO_03 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 11)
-#define GFX_GRID_WOOD_AUTO_04 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 12)
-#define GFX_GRID_WOOD_AUTO_05 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 13)
-#define GFX_GRID_WOOD_AUTO_06 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 14)
-#define GFX_GRID_WOOD_AUTO_07 (GFX_START_MIRRORDF + 3 * DF_PER_LINE + 15)
-#define GFX_GRID_WOOD_AUTO GFX_GRID_WOOD_AUTO_00
-
-#define GFX_BEAMER_RED_START (GFX_START_MIRRORDF + 4 * DF_PER_LINE + 0)
-#define GFX_BEAMER_RED_END (GFX_START_MIRRORDF + 4 * DF_PER_LINE + 15)
-#define GFX_BEAMER_YELLOW_START (GFX_START_MIRRORDF + 5 * DF_PER_LINE + 0)
-#define GFX_BEAMER_YELLOW_END (GFX_START_MIRRORDF + 5 * DF_PER_LINE + 15)
-#define GFX_BEAMER_GREEN_START (GFX_START_MIRRORDF + 6 * DF_PER_LINE + 0)
-#define GFX_BEAMER_GREEN_END (GFX_START_MIRRORDF + 6 * DF_PER_LINE + 15)
-#define GFX_BEAMER_BLUE_START (GFX_START_MIRRORDF + 7 * DF_PER_LINE + 0)
-#define GFX_BEAMER_BLUE_END (GFX_START_MIRRORDF + 7 * DF_PER_LINE + 15)
-
-#define GFX_DF_WALL_SEVERAL (GFX_START_MIRRORDF + 8 * DF_PER_LINE + 0)
-#define GFX_REFRACTOR (GFX_START_MIRRORDF + 8 * DF_PER_LINE + 1)
-#define GFX_CELL (GFX_START_MIRRORDF + 8 * DF_PER_LINE + 2)
-#define GFX_MINE (GFX_START_MIRRORDF + 8 * DF_PER_LINE + 4)
-
-#define GFX_LASER_RIGHT (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 0)
-#define GFX_LASER_UP (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 1)
-#define GFX_LASER_LEFT (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 2)
-#define GFX_LASER_DOWN (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 3)
-#define GFX_RECEIVER_RIGHT (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 4)
-#define GFX_RECEIVER_UP (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 5)
-#define GFX_RECEIVER_LEFT (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 6)
-#define GFX_RECEIVER_DOWN (GFX_START_MIRRORDF + 9 * DF_PER_LINE + 7)
-
-#define GFX_FIBRE_OPTIC_00 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 0)
-#define GFX_FIBRE_OPTIC_01 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 1)
-#define GFX_FIBRE_OPTIC_02 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 2)
-#define GFX_FIBRE_OPTIC_03 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 3)
-#define GFX_FIBRE_OPTIC_04 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 4)
-#define GFX_FIBRE_OPTIC_05 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 5)
-#define GFX_FIBRE_OPTIC_06 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 6)
-#define GFX_FIBRE_OPTIC_07 (GFX_START_MIRRORDF + 10 * DF_PER_LINE + 7)
-
-#define GFX_FIBRE_OPTIC_ED_00 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 0)
-#define GFX_FIBRE_OPTIC_ED_01 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 1)
-#define GFX_FIBRE_OPTIC_ED_02 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 2)
-#define GFX_FIBRE_OPTIC_ED_03 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 3)
-#define GFX_FIBRE_OPTIC_ED_04 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 4)
-#define GFX_FIBRE_OPTIC_ED_05 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 5)
-#define GFX_FIBRE_OPTIC_ED_06 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 6)
-#define GFX_FIBRE_OPTIC_ED_07 (GFX_START_MIRRORDF + 11 * DF_PER_LINE + 7)
-
-// the names of the sounds
-#define SND_AMOEBE 0
-#define SND_ANTIGRAV 1
-#define SND_AUTSCH 2
-#define SND_BONG 3
-#define SND_FUEL 4
-#define SND_HALLOFFAME 5
-#define SND_HOLZ 6
-#define SND_HUI 7
-#define SND_KABUMM 8
-#define SND_KINK 9
-#define SND_KLING 10
-#define SND_LASER 11
-#define SND_OEFFNEN 12
-#define SND_QUIEK 13
-#define SND_RHYTHMLOOP 14
-#define SND_ROAAAR 15
-#define SND_SIRR 16
-#define SND_SLURP 17
-#define SND_WARNTON 18
-#define SND_WHOOSH 19
-
-#define NUM_SOUNDS 20
-
// values for graphics/sounds action types
#define MM_ACTION_DEFAULT 0
#define MM_ACTION_WAITING 1
#define ANG_RAY_270 12
#define IS_22_5_ANGLE(angle) ((angle) % 2)
#define IS_90_ANGLE(angle) (!((angle) % 4))
+#define IS_45_ANGLE(angle) (!(((angle) + 2) % 4))
#define IS_HORIZ_ANGLE(angle) (!((angle) % 8))
-#define IS_VERT_ANGLE(angle) ((angle) % 8)
+#define IS_VERT_ANGLE(angle) (!(((angle) + 4) % 8))
// mirror angles
#define ANG_MIRROR_0 0
#define HIT_MASK_RIGHT (HIT_MASK_TOPRIGHT | HIT_MASK_BOTTOMRIGHT)
#define HIT_MASK_TOP (HIT_MASK_TOPLEFT | HIT_MASK_TOPRIGHT)
#define HIT_MASK_BOTTOM (HIT_MASK_BOTTOMLEFT | HIT_MASK_BOTTOMRIGHT)
+#define HIT_MASK_DIAGONAL_1 (HIT_MASK_TOPLEFT | HIT_MASK_BOTTOMRIGHT)
+#define HIT_MASK_DIAGONAL_2 (HIT_MASK_TOPRIGHT | HIT_MASK_BOTTOMLEFT)
#define HIT_MASK_ALL (HIT_MASK_LEFT | HIT_MASK_RIGHT)
// step values for rotating elements
#define GAME_OVER_OVERLOADED 2
#define GAME_OVER_BOMB 3
-// values for game_status
-#define EXITGAME 0
-#define MAINMENU 1
-#define PLAYING 2
-#define LEVELED 3
-#define HELPSCREEN 4
-#define CHOOSELEVEL 5
-#define TYPENAME 6
-#define HALLOFFAME 7
-#define SETUP 8
-
-// return values for GameActions
-#define ACT_GO_ON 0
-#define ACT_GAME_OVER 1
-#define ACT_NEW_GAME 2
-
-// values for color_status
-#define STATIC_COLORS 0
-#define DYNAMIC_COLORS 1
-
#define PROGRAM_VERSION_MAJOR 2
#define PROGRAM_VERSION_MINOR 0
#define PROGRAM_VERSION_PATCH 2
#define PROGRAM_VERSION_STRING "2.0.2"
-#define PROGRAM_TITLE_STRING "Mirror Magic II"
-#define PROGRAM_AUTHOR_STRING "Holger Schemel"
-#define PROGRAM_RIGHTS_STRING "Copyright ^1994-2001"
-#define PROGRAM_DOS_PORT_STRING "DOS port based on code by Guido Schulz"
-#define PROGRAM_IDENT_STRING PROGRAM_VERSION_STRING " " TARGET_STRING
-#define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
-#define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING
-#define ICON_TITLE_STRING PROGRAM_TITLE_STRING
-#define UNIX_USERDATA_DIRECTORY ".mirrormagic"
-
-#define X11_ICON_FILENAME "mirrormagic_icon.xbm"
-#define X11_ICONMASK_FILENAME "mirrormagic_iconmask.xbm"
-#define MSDOS_POINTER_FILENAME "mouse.pcx"
-
// functions for version handling
#define MM_VERSION_IDENT(x,y,z) VERSION_IDENT(x,y,z,0)
#define MM_VERSION_MAJOR(x) VERSION_PART_1(x)
PROGRAM_VERSION_MINOR, \
PROGRAM_VERSION_PATCH)
-// sound control
-
-#define ST(x) (((x) - 8) * 16)
-
#endif // MM_MAIN_H