X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_mm%2Fmm_main.h;h=684647ce12ea77ca52aff8fc88a27288e7fb452f;hp=dafaa5d60d043a20df3846b876f41f14bfa087f4;hb=HEAD;hpb=d30adaf83e17eef0c2b186c6fd622baa506df4f0 diff --git a/src/game_mm/mm_main.h b/src/game_mm/mm_main.h index dafaa5d6..684647ce 100644 --- a/src/game_mm/mm_main.h +++ b/src/game_mm/mm_main.h @@ -103,6 +103,10 @@ (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 && \ @@ -124,6 +128,13 @@ (e) == EL_BOMB || \ IS_WALL_AMOEBA(e)) +#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_ENVELOPE_OPENING(e) ((e) >= EL_ENVELOPE_OPENING_START && \ (e) <= EL_ENVELOPE_OPENING_END) @@ -131,32 +142,16 @@ #define ENVELOPE_OPENING_NR(e) ((e) - EL_ENVELOPE_1_OPENING) #define CAN_MOVE(e) ((e) == EL_PACMAN) -#define IS_FREE(x,y) (Tile[x][y] == EL_EMPTY) - -#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 IS_FREE(x, y) (Tile[x][y] == EL_EMPTY) -#define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_SPIELER1]) +#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 WALL_BASE(e) ((e) & 0xfff0) #define WALL_BITS(e) ((e) & 0x000f) -// 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 NUM_PICTURES 7 -#define NUM_BITMAPS 8 - // boundaries of arrays etc. #define MAX_PLAYER_NAME_LEN 10 #define MAX_LEVEL_NAME_LEN 32 @@ -188,7 +183,8 @@ #define LEVEL_SCORE_ELEMENTS 16 // level elements with score -extern DrawBuffer *drawto_field; +extern DrawBuffer *drawto_mm; +extern DrawBuffer *bitmap_db_field; extern int game_status; extern boolean level_editor_test_game; @@ -253,61 +249,6 @@ extern short Sign[16]; 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 @@ -364,31 +305,22 @@ extern int num_element_info; #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) @@ -551,14 +483,15 @@ extern int num_element_info; #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 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_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_START EL_DF_WALL_WOOD_START #define EL_DF_WALL_END EL_DF_WALL_STEEL_END #define EL_DF_EMPTY 304 @@ -647,37 +580,64 @@ extern int num_element_info; #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_BOMB_ACTIVE 505 -#define EL_MINE_ACTIVE 506 -#define EL_ENVELOPE_1_OPENING 507 -#define EL_ENVELOPE_2_OPENING 508 -#define EL_ENVELOPE_3_OPENING 509 -#define EL_ENVELOPE_4_OPENING 510 +#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 512 -#define EL_WALL_CHANGING_START (EL_WALL_CHANGING + 0) -#define EL_WALL_CHANGING_END (EL_WALL_CHANGING + 15) +#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 @@ -695,324 +655,6 @@ extern int num_element_info; #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 @@ -1081,8 +723,9 @@ extern int num_element_info; #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 @@ -1105,6 +748,8 @@ extern int num_element_info; #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 @@ -1119,31 +764,12 @@ extern int num_element_info; #define GAME_OVER_NO_ENERGY 1 #define GAME_OVER_OVERLOADED 2 #define GAME_OVER_BOMB 3 -#define GAME_OVER_DELAYED 4 - -// 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) @@ -1167,8 +793,4 @@ extern int num_element_info; PROGRAM_VERSION_MINOR, \ PROGRAM_VERSION_PATCH) -// sound control - -#define ST(x) (((x) - 8) * 16) - #endif // MM_MAIN_H