// (c) 1994-2017 by Artsoft Entertainment
// Holger Schemel
// info@artsoft.org
-// http://www.artsoft.org/
+// https://www.artsoft.org/
// ----------------------------------------------------------------------------
// mm_main.h
// ============================================================================
#define IN_LEV_FIELD(x, y) IN_FIELD(x, y, lev_fieldx, lev_fieldy)
#define IN_SCR_FIELD(x, y) IN_FIELD_MINMAX(x, y, BX1, BY1, BX2, BY2)
-/* values for 'Elementeigenschaften' */
+// values for 'Elementeigenschaften'
#define EP_BIT_GRID (1 << 0)
#define EP_BIT_MCDUFFIN (1 << 1)
#define EP_BIT_RECTANGLE (1 << 2)
IS_WALL_AMOEBA(e))
#define CAN_MOVE(e) ((e) == EL_PACMAN)
-#define IS_FREE(x,y) (Feld[x][y] == EL_EMPTY)
+#define IS_FREE(x,y) (Tile[x][y] == EL_EMPTY)
#define IS_MOVING(x,y) (MovPos[x][y] != 0)
-#define IS_BLOCKED(x,y) (Feld[x][y] == EL_BLOCKED)
+#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 WALL_BASE(e) ((e) & 0xfff0)
#define WALL_BITS(e) ((e) & 0x000f)
-/* Bitmaps with graphic file */
+// Bitmaps with graphic file
#define PIX_BACK 0
#define PIX_DOOR 1
#define PIX_TOONS 2
#define PIX_BIGFONT 4
#define PIX_SMALLFONT 5
#define PIX_MEDIUMFONT 6
-/* Bitmaps without graphic file */
+// Bitmaps without graphic file
#define PIX_DB_DOOR 7
#define NUM_PICTURES 7
#define NUM_BITMAPS 8
-/* boundaries of arrays etc. */
+// boundaries of arrays etc.
#define MAX_PLAYER_NAME_LEN 10
#define MAX_LEVEL_NAME_LEN 32
#define MAX_LEVEL_AUTHOR_LEN 32
#define MAX_SCORE_ENTRIES 100
-#define MAX_ELEMENTS 700 /* 500 static + 200 runtime */
+#define MAX_ELEMENTS 700 // 500 static + 200 runtime
+
+#define MICROLEVEL_SCROLL_DELAY 50 // delay for scrolling micro level
+#define MICROLEVEL_LABEL_DELAY 250 // delay for micro level label
+
+// score for elements
+#define SC_COLLECTIBLE 0
+#define SC_UNUSED_1 1
+#define SC_UNUSED_2 2
+#define SC_UNUSED_3 3
+#define SC_UNUSED_4 4
+#define SC_UNUSED_5 5
+#define SC_PACMAN 6
+#define SC_UNUSED_7 7
+#define SC_UNUSED_8 8
+#define SC_KEY 9
+#define SC_TIME_BONUS 10
+#define SC_UNUSED_11 11
+#define SC_UNUSED_12 12
+#define SC_UNUSED_13 13
+#define SC_LIGHTBALL 14
+#define SC_UNUSED_15 15
+
+#define LEVEL_SCORE_ELEMENTS 16 // level elements with score
-#define LEVEL_SCORE_ELEMENTS 16 /* level elements with score */
-#define MICROLEVEL_SCROLL_DELAY 50 /* delay for scrolling micro level */
-#define MICROLEVEL_LABEL_DELAY 250 /* delay for micro level label */
-
-struct HiScore
-{
- char Name[MAX_PLAYER_NAME_LEN + 1];
- int Score;
-};
-
-struct EditorInfo
-{
- boolean draw_walls_masked;
-};
-
-extern Bitmap *pix[];
-extern DrawBuffer *fieldbuffer;
extern DrawBuffer *drawto_field;
-extern int joystick_device;
-extern char *joystick_device_name[];
-
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 unsigned int Elementeigenschaften[MAX_ELEMENTS];
extern int BX1, BY1, BX2, BY2;
extern int SBX_Left, SBX_Right;
extern int SBY_Upper, SBY_Lower;
-extern int ZX, ZY, ExitX, ExitY;
-extern int AllPlayersGone;
extern int TimeFrames, TimePlayed, TimeLeft;
-extern boolean SiebAktiv;
-extern int SiebCount;
extern struct LevelInfo_MM native_mm_level;
-extern struct HiScore highscore[];
-extern struct TapeInfo tape;
-extern struct SetupInfo setup;
extern struct GameInfo_MM game_mm;
extern struct LaserInfo laser;
-extern struct EditorInfo editor;
-extern struct GlobalInfo global;
extern short LX, LY, XS, YS, ELX, ELY;
extern short CT, Ct;
+extern int dSX, dSY;
+extern int cSX, cSY;
+extern int cSX2, cSY2;
+extern int cFX, cFY;
+
extern Pixel pen_fg, pen_bg, pen_ray, pen_magicolor[2];
extern int color_status;
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 SX 8
-#define SY 8
-#define REAL_SX (SX - 2)
-#define REAL_SY (SY - 2)
+// often used screen positions
#define DX 534
#define DY 60
#define EX DX
#define MICRO_FONT_STARTY (MICRO_DF_STARTY + 8 * MICRO_TILEY)
#define MICRO_FONT_PER_LINE 8
-/* wall positions (that can be OR'ed together) */
+// wall positions (that can be OR'ed together)
#define WALL_TOPLEFT 1
#define WALL_TOPRIGHT 2
#define WALL_BOTTOMLEFT 4
#define WALL_TOP (WALL_TOPLEFT | WALL_TOPRIGHT)
#define WALL_BOTTOM (WALL_BOTTOMLEFT | WALL_BOTTOMRIGHT)
-/* game elements:
-** 0 - 499: real elements, stored in level file
-** 500 - 699: flag elements, only used at runtime
-*/
-/* "real" level elements */
+// game elements:
+// 0 - 499: real elements, stored in level file
+// 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_MM_START_2 240
-/* elements for "Deflektor" style levels */
+// elements for "Deflektor" style levels
#define EL_DF_START EL_MM_START_2
#define EL_DF_MIRROR_START EL_DF_START
#define EL_DF_MIRROR_END EL_DF_MIRROR_15
#define EL_GRID_WOOD_FIXED_START 256
-#define EL_GRID_WOOD_FIXED_00 (EL_GRID_WOOD_FIXED_START + 0) /* 0.0° */
-#define EL_GRID_WOOD_FIXED_01 (EL_GRID_WOOD_FIXED_START + 1) /* 22.5° */
-#define EL_GRID_WOOD_FIXED_02 (EL_GRID_WOOD_FIXED_START + 2) /* 45.0° */
-#define EL_GRID_WOOD_FIXED_03 (EL_GRID_WOOD_FIXED_START + 3) /* 67.5° */
-#define EL_GRID_WOOD_FIXED_04 (EL_GRID_WOOD_FIXED_START + 4) /* 90.0° */
-#define EL_GRID_WOOD_FIXED_05 (EL_GRID_WOOD_FIXED_START + 5) /* 112.5° */
-#define EL_GRID_WOOD_FIXED_06 (EL_GRID_WOOD_FIXED_START + 6) /* 135.0° */
-#define EL_GRID_WOOD_FIXED_07 (EL_GRID_WOOD_FIXED_START + 7) /* 157.5° */
+#define EL_GRID_WOOD_FIXED_00 (EL_GRID_WOOD_FIXED_START + 0) // 0.0°
+#define EL_GRID_WOOD_FIXED_01 (EL_GRID_WOOD_FIXED_START + 1) // 22.5°
+#define EL_GRID_WOOD_FIXED_02 (EL_GRID_WOOD_FIXED_START + 2) // 45.0°
+#define EL_GRID_WOOD_FIXED_03 (EL_GRID_WOOD_FIXED_START + 3) // 67.5°
+#define EL_GRID_WOOD_FIXED_04 (EL_GRID_WOOD_FIXED_START + 4) // 90.0°
+#define EL_GRID_WOOD_FIXED_05 (EL_GRID_WOOD_FIXED_START + 5) // 112.5°
+#define EL_GRID_WOOD_FIXED_06 (EL_GRID_WOOD_FIXED_START + 6) // 135.0°
+#define EL_GRID_WOOD_FIXED_07 (EL_GRID_WOOD_FIXED_START + 7) // 157.5°
#define EL_GRID_WOOD_FIXED_END EL_GRID_WOOD_FIXED_07
#define EL_GRID_STEEL_FIXED_START 264
-#define EL_GRID_STEEL_FIXED_00 (EL_GRID_STEEL_FIXED_START + 0) /* 0.0° */
-#define EL_GRID_STEEL_FIXED_01 (EL_GRID_STEEL_FIXED_START + 1) /* 22.5° */
-#define EL_GRID_STEEL_FIXED_02 (EL_GRID_STEEL_FIXED_START + 2) /* 45.0° */
-#define EL_GRID_STEEL_FIXED_03 (EL_GRID_STEEL_FIXED_START + 3) /* 67.5° */
-#define EL_GRID_STEEL_FIXED_04 (EL_GRID_STEEL_FIXED_START + 4) /* 90.0° */
-#define EL_GRID_STEEL_FIXED_05 (EL_GRID_STEEL_FIXED_START + 5) /* 112.5° */
-#define EL_GRID_STEEL_FIXED_06 (EL_GRID_STEEL_FIXED_START + 6) /* 135.0° */
-#define EL_GRID_STEEL_FIXED_07 (EL_GRID_STEEL_FIXED_START + 7) /* 157.5° */
+#define EL_GRID_STEEL_FIXED_00 (EL_GRID_STEEL_FIXED_START + 0) // 0.0°
+#define EL_GRID_STEEL_FIXED_01 (EL_GRID_STEEL_FIXED_START + 1) // 22.5°
+#define EL_GRID_STEEL_FIXED_02 (EL_GRID_STEEL_FIXED_START + 2) // 45.0°
+#define EL_GRID_STEEL_FIXED_03 (EL_GRID_STEEL_FIXED_START + 3) // 67.5°
+#define EL_GRID_STEEL_FIXED_04 (EL_GRID_STEEL_FIXED_START + 4) // 90.0°
+#define EL_GRID_STEEL_FIXED_05 (EL_GRID_STEEL_FIXED_START + 5) // 112.5°
+#define EL_GRID_STEEL_FIXED_06 (EL_GRID_STEEL_FIXED_START + 6) // 135.0°
+#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_BEAMER_BLUE_START 404
#define EL_BEAMER_BLUE_END (EL_BEAMER_BLUE_START + 15)
-/* element definitions partially used for drawing graphics */
+// element definitions partially used for drawing graphics
#define EL_MCDUFFIN 420
#define EL_PACMAN 421
#define EL_FUSE_OFF 422
#define EL_MM_END_2 430
#define EL_MM_END EL_MM_END_2
-/* "real" (and therefore drawable) runtime elements */
+// "real" (and therefore drawable) runtime elements
#define EL_EXIT_OPENING 500
#define EL_EXIT_CLOSING 501
#define EL_GRAY_BALL_OPENING 502
#define EL_FIRST_RUNTIME_EL EL_EXIT_OPENING
-/* "unreal" (and therefore not drawable) runtime elements */
+// "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) */
+// 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_CIRCLE 709
-/* game graphics:
-** 0 - 191: graphics from "MirrorScreen"
-** 192 - 255: pseudo graphics mapped to "MirrorScreen"
-** 256 - 511: graphics from "MirrorFont"
-** 512 - 767: graphics from "MirrorDF"
-*/
+// game graphics:
+// 0 - 191: graphics from "MirrorScreen"
+// 192 - 255: pseudo graphics mapped to "MirrorScreen"
+// 256 - 511: graphics from "MirrorFont"
+// 512 - 767: graphics from "MirrorDF"
#define IMG_EMPTY IMG_EMPTY_SPACE
#define NUM_TILES 512
-/* graphics from "MirrorScreen" */
+// graphics from "MirrorScreen"
#define GFX_EMPTY (-1)
-/* row 0 (0) */
+// 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_14 (GFX_MIRROR_START + 14)
#define GFX_MIRROR_15 (GFX_MIRROR_START + 15)
#define GFX_MIRROR_END GFX_MIRROR_15
-/* row 1 (16) */
+// 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_EXIT_OPEN 27
#define GFX_KETTLE 28
#define GFX_EXPLOSION_KETTLE 29
-/* row 2 (32) */
+// row 2 (32)
#define GFX_PRISM 32
#define GFX_WALL_SEVERAL 33
#define GFX_WALL_ANIMATION 34
#define GFX_BALL_BLUE 45
#define GFX_BALL_YELLOW 46
#define GFX_BALL_GRAY 47
-/* row 3 (48) */
+// row 3 (48)
#define GFX_BEAMER_START 48
#define GFX_BEAMER_END 63
-/* row 4 (64) */
+// row 4 (64)
#define GFX_PACMAN_START 64
#define GFX_PACMAN GFX_PACMAN_START
#define GFX_PACMAN_RIGHT (GFX_PACMAN_START + 0)
#define GFX_EXPLOSION_START 72
#define GFX_EXPLOSION_SHORT 76
#define GFX_EXPLOSION_LAST 78
-/* row 5 (80) */
+// row 5 (80)
#define GFX_POLAR_START 80
#define GFX_POLAR_END 95
-/* row 6 (96) */
+// 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_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) */
+// row 7 (112)
#define GFX_BLOCK_STONE 112
#define GFX_GATE_WOOD 113
#define GFX_FUEL_FULL 114
#define GFX_GRID_WOOD_01 117
#define GFX_GRID_WOOD_02 118
#define GFX_GRID_WOOD_03 119
-/* row 8 (128) */
+// row 8 (128)
#define GFX_ARROW_BLUE_LEFT 128
#define GFX_ARROW_BLUE_RIGHT 129
#define GFX_ARROW_BLUE_UP 130
#define GFX_ARROW_RED_RIGHT 133
#define GFX_ARROW_RED_UP 134
#define GFX_ARROW_RED_DOWN 135
-/* row 9 (144) */
+// row 9 (144)
#define GFX_SCROLLBAR_BLUE 144
#define GFX_SCROLLBAR_RED 145
-/* row 10 (160) */
+// row 10 (160)
#define GFX_MASK_CIRCLE 160
#define GFX_MASK_RECTANGLE 161
#define GFX_MASK_RECTANGLE2 162
#define GFX_MASK_GRID_01 165
#define GFX_MASK_GRID_02 166
#define GFX_MASK_GRID_03 167
-/* row 11 (176) */
+// 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 */
+// 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_KUGEL_GELB GFX_BALL_YELLOW
#define GFX_KUGEL_GRAU GFX_BALL_GRAY
-/* graphics from "MirrorFont" */
+// 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_COPY (GFX_CHAR_ASCII0 + 94)
#define GFX_CHAR_END (GFX_CHAR_START + 79)
-/* graphics from "MirrorDF" */
+// 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_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 */
+// the names of the sounds
#define SND_AMOEBE 0
#define SND_ANTIGRAV 1
#define SND_AUTSCH 2
#define NUM_SOUNDS 20
-/* laser angles (directions) */
+// values for graphics/sounds action types
+#define MM_ACTION_DEFAULT 0
+#define MM_ACTION_WAITING 1
+#define MM_ACTION_FALLING 2
+#define MM_ACTION_MOVING 3
+#define MM_ACTION_DIGGING 4
+#define MM_ACTION_SNAPPING 5
+#define MM_ACTION_COLLECTING 6
+#define MM_ACTION_DROPPING 7
+#define MM_ACTION_PUSHING 8
+#define MM_ACTION_WALKING 9
+#define MM_ACTION_PASSING 10
+#define MM_ACTION_IMPACT 11
+#define MM_ACTION_BREAKING 12
+#define MM_ACTION_ACTIVATING 13
+#define MM_ACTION_DEACTIVATING 14
+#define MM_ACTION_OPENING 15
+#define MM_ACTION_CLOSING 16
+#define MM_ACTION_ATTACKING 17
+#define MM_ACTION_GROWING 18
+#define MM_ACTION_SHRINKING 19
+#define MM_ACTION_ACTIVE 20
+#define MM_ACTION_FILLING 21
+#define MM_ACTION_EMPTYING 22
+#define MM_ACTION_CHANGING 23
+#define MM_ACTION_EXPLODING 24
+#define MM_ACTION_BORING 25
+#define MM_ACTION_BORING_1 26
+#define MM_ACTION_BORING_2 27
+#define MM_ACTION_BORING_3 28
+#define MM_ACTION_BORING_4 29
+#define MM_ACTION_BORING_5 30
+#define MM_ACTION_BORING_6 31
+#define MM_ACTION_BORING_7 32
+#define MM_ACTION_BORING_8 33
+#define MM_ACTION_BORING_9 34
+#define MM_ACTION_BORING_10 35
+#define MM_ACTION_SLEEPING 36
+#define MM_ACTION_SLEEPING_1 37
+#define MM_ACTION_SLEEPING_2 38
+#define MM_ACTION_SLEEPING_3 39
+#define MM_ACTION_AWAKENING 40
+#define MM_ACTION_DYING 41
+#define MM_ACTION_TURNING 42
+#define MM_ACTION_TURNING_FROM_LEFT 43
+#define MM_ACTION_TURNING_FROM_RIGHT 44
+#define MM_ACTION_TURNING_FROM_UP 45
+#define MM_ACTION_TURNING_FROM_DOWN 46
+#define MM_ACTION_SMASHED_BY_ROCK 47
+#define MM_ACTION_SMASHED_BY_SPRING 48
+#define MM_ACTION_EATING 49
+#define MM_ACTION_TWINKLING 50
+#define MM_ACTION_SPLASHING 51
+#define MM_ACTION_HITTING 52
+
+// laser angles (directions)
#define ANG_RAY_RIGHT 0
#define ANG_RAY_UP 4
#define ANG_RAY_LEFT 8
#define ANG_RAY_DOWN 12
-/* laser angles (degree) */
+// laser angles (degree)
#define ANG_RAY_0 0
#define ANG_RAY_90 4
#define ANG_RAY_180 8
#define IS_HORIZ_ANGLE(angle) (!((angle) % 8))
#define IS_VERT_ANGLE(angle) ((angle) % 8)
-/* mirror angles */
+// mirror angles
#define ANG_MIRROR_0 0
#define ANG_MIRROR_45 4
#define ANG_MIRROR_90 8
#define ANG_MIRROR_135 12
-/* positions for checking where laser already hits element */
+// positions for checking where laser already hits element
#define HIT_POS_CENTER 1
#define HIT_POS_EDGE 2
#define HIT_POS_BETWEEN 4
-/* masks for scanning elements */
+// masks for scanning elements
#define HIT_MASK_NO_HIT 0
#define HIT_MASK_TOPLEFT 1
#define HIT_MASK_TOPRIGHT 2
#define HIT_MASK_BOTTOM (HIT_MASK_BOTTOMLEFT | HIT_MASK_BOTTOMRIGHT)
#define HIT_MASK_ALL (HIT_MASK_LEFT | HIT_MASK_RIGHT)
-/* step values for rotating elements */
+// step values for rotating elements
#define ROTATE_NO_ROTATING 0
#define ROTATE_LEFT (+1)
#define ROTATE_RIGHT (-1)
(button) == MB_RIGHTBUTTON ? ROTATE_RIGHT : \
ROTATE_NO_ROTATING)
-/* game over values */
+// game over values
#define GAME_OVER_NO_ENERGY 1
#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 */
+// values for color_status
#define STATIC_COLORS 0
#define DYNAMIC_COLORS 1
#define X11_ICONMASK_FILENAME "mirrormagic_iconmask.xbm"
#define MSDOS_POINTER_FILENAME "mouse.pcx"
-/* functions for version handling */
+// functions for version handling
#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:
-** 1.4 (still in use)
-** 2.0 (actual)
-*/
+#define MM_VERSION_MAJOR(x) VERSION_PART_1(x)
+#define MM_VERSION_MINOR(x) VERSION_PART_2(x)
+#define MM_VERSION_PATCH(x) VERSION_PART_3(x)
+
+// file version numbers for resource files (levels, score, setup, etc.)
+// currently supported/known file version numbers:
+// 1.4 (still in use)
+// 2.0 (actual)
+
#define MM_FILE_VERSION_1_4 MM_VERSION_IDENT(1,4,0)
#define MM_FILE_VERSION_2_0 MM_VERSION_IDENT(2,0,0)
-/* file version does not change for every program version, but is changed
- when new features are introduced that are incompatible with older file
- versions, so that they can be treated accordingly */
+// file version does not change for every program version, but is changed
+// when new features are introduced that are incompatible with older file
+// versions, so that they can be treated accordingly
#define MM_FILE_VERSION_ACTUAL MM_FILE_VERSION_2_0
#define MM_GAME_VERSION_ACTUAL MM_VERSION_IDENT(PROGRAM_VERSION_MAJOR, \
PROGRAM_VERSION_MINOR, \
PROGRAM_VERSION_PATCH)
-/* sound control */
+// sound control
#define ST(x) (((x) - 8) * 16)
-#endif /* MM_MAIN_H */
+#endif // MM_MAIN_H