X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_mm%2Fmm_main.h;h=6d66ea084a8aa3e17044a5f81fe25babe96c4bb1;hb=2b9849f490f48a8e2e5dd5aaeadf920827127d78;hp=2c12cfcca502bfd61601d8f4d37a37f7f5a2afeb;hpb=10f312b2236afd0bd063d1dab380064d8431a850;p=rocksndiamonds.git diff --git a/src/game_mm/mm_main.h b/src/game_mm/mm_main.h index 2c12cfcc..6d66ea08 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) @@ -181,6 +189,7 @@ extern DrawBuffer *drawto_field; +extern DrawBuffer *bitmap_db_field; extern int game_status; extern boolean level_editor_test_game; @@ -207,6 +216,9 @@ 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; @@ -377,7 +389,7 @@ extern int num_element_info; #define EL_WALL_AMOEBA_END EL_WALL_63 #define EL_WALL_END EL_WALL_63 #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) @@ -448,8 +460,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,9 +663,19 @@ extern int num_element_info; // "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_GRAY_BALL_ACTIVE 502 +#define EL_GRAY_BALL_OPENING 503 +#define EL_ICE_WALL_SHRINKING 504 +#define EL_AMOEBA_WALL_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)