X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_mm%2Fmm_main.h;h=dafaa5d60d043a20df3846b876f41f14bfa087f4;hb=d30adaf83e17eef0c2b186c6fd622baa506df4f0;hp=e33e8f19acc1e66f5c9d6c76168adfaebf5da5dc;hpb=28d0092120f3b0038bf15b4c19f494219851599f;p=rocksndiamonds.git diff --git a/src/game_mm/mm_main.h b/src/game_mm/mm_main.h index e33e8f19..dafaa5d6 100644 --- a/src/game_mm/mm_main.h +++ b/src/game_mm/mm_main.h @@ -48,6 +48,7 @@ #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) @@ -63,6 +64,7 @@ #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) @@ -122,6 +124,12 @@ (e) == EL_BOMB || \ IS_WALL_AMOEBA(e)) +#define IS_ENVELOPE_OPENING(e) ((e) >= EL_ENVELOPE_OPENING_START && \ + (e) <= EL_ENVELOPE_OPENING_END) + +#define ENVELOPE_NR(e) ((e) - EL_ENVELOPE_1) +#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) @@ -203,7 +211,13 @@ 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 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; @@ -445,8 +459,12 @@ extern int num_element_info; #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) @@ -647,6 +665,15 @@ extern int num_element_info; #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_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) @@ -659,18 +686,6 @@ extern int num_element_info; #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"