removed unused code
[rocksndiamonds.git] / src / game_mm / mm_main.h
index 22aaf32b6942a00167c09a00b5ef3debd1664801..6d66ea084a8aa3e17044a5f81fe25babe96c4bb1 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1994-2017 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // 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)
                                 (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)            (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 LEVEL_SCORE_ELEMENTS   16      // level elements with score
 
 
-struct HiScore_MM
-{
-  char Name[MAX_PLAYER_NAME_LEN + 1];
-  int Score;
-};
-
 extern DrawBuffer      *drawto_field;
+extern DrawBuffer      *bitmap_db_field;
 
 extern int             game_status;
 extern boolean         level_editor_test_game;
@@ -194,7 +197,7 @@ extern boolean              level_editor_test_game;
 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];
@@ -209,7 +212,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;
@@ -225,7 +234,6 @@ extern int          SBY_Upper, SBY_Lower;
 extern int             TimeFrames, TimePlayed, TimeLeft;
 
 extern struct LevelInfo_MM     native_mm_level;
-extern struct HiScore_MM       highscore[];
 extern struct GameInfo_MM      game_mm;
 extern struct LaserInfo                laser;
 
@@ -381,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)
@@ -452,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)
@@ -651,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)
@@ -666,18 +688,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"
@@ -1111,22 +1121,7 @@ extern int               num_element_info;
 #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
+#define GAME_OVER_DELAYED      4
 
 // values for color_status
 #define STATIC_COLORS          0