added setup option to show invisible exit in BD engine
[rocksndiamonds.git] / src / main.h
index 04b6021aed78e26600ff8c9b6a2ccd01c342a1c0..7f70cea7ca544c23d7157c1f32068f5a594e3ea5 100644 (file)
 #define EL_DF_END_2                            EL_DF_SLOPE_END
 
 // BD style elements (normal)
-#define EL_BD_EMPTY_SPACE                      1253
+#define EL_BD_START                            1253
+#define EL_BD_EMPTY_SPACE                      EL_BD_START
 #define EL_BD_EMPTY                            EL_BD_EMPTY_SPACE
 #define EL_BD_SAND                             1254
 #define EL_BD_SAND_2                           1255
 #define EL_BD_NUT_BREAKING_2                   1484
 #define EL_BD_NUT_BREAKING_3                   1485
 #define EL_BD_NUT_BREAKING_4                   1486
+#define EL_BD_END                              EL_BD_NUT_BREAKING_4
 
 #define NUM_FILE_ELEMENTS                      1487
 
@@ -3662,8 +3664,10 @@ struct LevelInfo
   int bd_pushing_prob;                 // BD player probability to push rocks
   int bd_pushing_prob_with_sweet;      // BD player probability to push rocks after eating sweet
   boolean bd_push_mega_rock_with_sweet;        // BD player can push mega rocks after eating sweet
+  boolean bd_magic_wall_zero_infinite; // BD magic wall with timer of zero runs infinitely
   boolean bd_magic_wall_wait_hatching; // BD magic wall waits for player's birth
   boolean bd_magic_wall_stops_amoeba;  // BD magic wall can stop amoeba and turn to diamonds
+  boolean bd_magic_wall_break_scan;    // BD magic wall setting to implement buggy BD1 behaviour
   int bd_magic_wall_diamond_to;                // BD magic wall turns diamonds to specified element
   int bd_magic_wall_rock_to;           // BD magic wall turns rocks to specified element
   int bd_magic_wall_mega_rock_to;      // BD magic wall turns mega rocks to specified element
@@ -3748,6 +3752,13 @@ struct LevelInfo
   int bd_bomb_explosion_turns_to;      // BD bomb explosion changes to specified element
   int bd_nitro_explosion_turns_to;     // BD nitro pack explosion changes to specified element
   int bd_explosion_turns_to;           // BD other explosions change to specified element
+  int bd_color_b;                      // BD engine C64-style cave color (border)
+  int bd_color_0;                      // BD engine C64-style cave color (background)
+  int bd_color_1;                      // BD engine C64-style cave color (sand)
+  int bd_color_2;                      // BD engine C64-style cave color (steel wall)
+  int bd_color_3;                      // BD engine C64-style cave color (wall)
+  int bd_color_4;                      // BD engine C64-style cave color (amoeba)
+  int bd_color_5;                      // BD engine C64-style cave color (slime)
 
   boolean em_slippery_gems;            // EM style "gems slip from wall" behaviour
   boolean em_explodes_by_fire;         // EM style chain explosion behaviour
@@ -3796,6 +3807,8 @@ struct LevelInfo
 
   boolean file_has_custom_elements;    // set when level file contains CEs
 
+  int bd_color_type;                   // set according to BD colors in level
+
   boolean no_valid_file;               // set when level file missing or invalid
   boolean no_level_file;               // set when falling back to level template