added customizability of gray ball content for MM engine
[rocksndiamonds.git] / src / main.h
index 7456a3d911d614012ffe39e185d9fc264241f6cc..a943547a875a67819374a679b030e06ac8c38cd3 100644 (file)
 #define STD_ELEMENT_CONTENTS   4
 #define MAX_ELEMENT_CONTENTS   8
 
+#define MIN_MM_BALL_CONTENTS   1
+#define STD_MM_BALL_CONTENTS   8
+#define MAX_MM_BALL_CONTENTS   16
+
 // values for initial player inventory
 #define MIN_INITIAL_INVENTORY_SIZE     1
 #define MAX_INITIAL_INVENTORY_SIZE     8
 #define EL_MM_PACMAN_EATING_UP         (EL_FIRST_RUNTIME_REAL + 78)
 #define EL_MM_PACMAN_EATING_LEFT       (EL_FIRST_RUNTIME_REAL + 79)
 #define EL_MM_PACMAN_EATING_DOWN       (EL_FIRST_RUNTIME_REAL + 80)
+#define EL_MM_BOMB_ACTIVE              (EL_FIRST_RUNTIME_REAL + 81)
+#define EL_DF_MINE_ACTIVE              (EL_FIRST_RUNTIME_REAL + 82)
 
-#define NUM_DRAWABLE_ELEMENTS          (EL_FIRST_RUNTIME_REAL + 81)
+#define NUM_DRAWABLE_ELEMENTS          (EL_FIRST_RUNTIME_REAL + 83)
 
 #define EL_MM_RUNTIME_START            EL_MM_EXIT_OPENING
 #define EL_MM_RUNTIME_END              EL_MM_AMOEBA_WALL_GROWING
 #define EL_MM_LIGHTBALL_RED            (EL_FIRST_DUMMY + 21)
 #define EL_MM_LIGHTBALL_BLUE           (EL_FIRST_DUMMY + 22)
 #define EL_MM_LIGHTBALL_YELLOW         (EL_FIRST_DUMMY + 23)
-#define EL_MM_MASK_MCDUFFIN_RIGHT      (EL_FIRST_DUMMY + 24)
-#define EL_MM_MASK_MCDUFFIN_UP         (EL_FIRST_DUMMY + 25)
-#define EL_MM_MASK_MCDUFFIN_LEFT       (EL_FIRST_DUMMY + 26)
-#define EL_MM_MASK_MCDUFFIN_DOWN       (EL_FIRST_DUMMY + 27)
-#define EL_MM_MASK_GRID_1              (EL_FIRST_DUMMY + 28)
-#define EL_MM_MASK_GRID_2              (EL_FIRST_DUMMY + 29)
-#define EL_MM_MASK_GRID_3              (EL_FIRST_DUMMY + 30)
-#define EL_MM_MASK_GRID_4              (EL_FIRST_DUMMY + 31)
-#define EL_MM_MASK_RECTANGLE           (EL_FIRST_DUMMY + 32)
-#define EL_MM_MASK_CIRCLE              (EL_FIRST_DUMMY + 33)
-#define EL_DEFAULT                     (EL_FIRST_DUMMY + 34)
-#define EL_BD_DEFAULT                  (EL_FIRST_DUMMY + 35)
-#define EL_SP_DEFAULT                  (EL_FIRST_DUMMY + 36)
-#define EL_SB_DEFAULT                  (EL_FIRST_DUMMY + 37)
-#define EL_MM_DEFAULT                  (EL_FIRST_DUMMY + 38)
-#define EL_GRAPHIC_1                   (EL_FIRST_DUMMY + 39)
-#define EL_GRAPHIC_2                   (EL_FIRST_DUMMY + 40)
-#define EL_GRAPHIC_3                   (EL_FIRST_DUMMY + 41)
-#define EL_GRAPHIC_4                   (EL_FIRST_DUMMY + 42)
-#define EL_GRAPHIC_5                   (EL_FIRST_DUMMY + 43)
-#define EL_GRAPHIC_6                   (EL_FIRST_DUMMY + 44)
-#define EL_GRAPHIC_7                   (EL_FIRST_DUMMY + 45)
-#define EL_GRAPHIC_8                   (EL_FIRST_DUMMY + 46)
-
-#define EL_MM_DUMMY_START              EL_MM_MASK_MCDUFFIN_RIGHT
-#define EL_MM_DUMMY_END                        EL_MM_MASK_CIRCLE
+#define EL_DEFAULT                     (EL_FIRST_DUMMY + 24)
+#define EL_BD_DEFAULT                  (EL_FIRST_DUMMY + 25)
+#define EL_SP_DEFAULT                  (EL_FIRST_DUMMY + 26)
+#define EL_SB_DEFAULT                  (EL_FIRST_DUMMY + 27)
+#define EL_MM_DEFAULT                  (EL_FIRST_DUMMY + 28)
+#define EL_GRAPHIC_1                   (EL_FIRST_DUMMY + 29)
+#define EL_GRAPHIC_2                   (EL_FIRST_DUMMY + 30)
+#define EL_GRAPHIC_3                   (EL_FIRST_DUMMY + 31)
+#define EL_GRAPHIC_4                   (EL_FIRST_DUMMY + 32)
+#define EL_GRAPHIC_5                   (EL_FIRST_DUMMY + 33)
+#define EL_GRAPHIC_6                   (EL_FIRST_DUMMY + 34)
+#define EL_GRAPHIC_7                   (EL_FIRST_DUMMY + 35)
+#define EL_GRAPHIC_8                   (EL_FIRST_DUMMY + 36)
 
 // internal elements (only used for internal purposes like copying)
-#define EL_FIRST_INTERNAL              (EL_FIRST_DUMMY + 47)
+#define EL_FIRST_INTERNAL              (EL_FIRST_DUMMY + 37)
 
 #define EL_INTERNAL_CLIPBOARD_CUSTOM   (EL_FIRST_INTERNAL + 0)
 #define EL_INTERNAL_CLIPBOARD_CHANGE   (EL_FIRST_INTERNAL + 1)
@@ -2611,7 +2604,7 @@ enum
 // program information and versioning definitions
 #define PROGRAM_VERSION_SUPER          4
 #define PROGRAM_VERSION_MAJOR          3
-#define PROGRAM_VERSION_MINOR          3
+#define PROGRAM_VERSION_MINOR          4
 #define PROGRAM_VERSION_PATCH          1
 #define PROGRAM_VERSION_EXTRA          ""
 
@@ -3301,6 +3294,10 @@ struct LevelInfo
   int mm_time_ball;
   int mm_time_block;
 
+  int num_mm_ball_contents;
+  int mm_ball_choice_mode;
+  int mm_ball_content[MAX_MM_BALL_CONTENTS];
+
   // ('int' instead of 'boolean' because used as selectbox value in editor)
   int use_step_counter;                // count steps instead of seconds for level