added support for water settings in BD engine to level editor
[rocksndiamonds.git] / src / main.h
index cf694a786359b81480fb9111407055a856b702a2..5a85ae2882c03fc983db4ffda1939db69fc7fcef 100644 (file)
                                         (e) == EL_BD_BITER_LEFT ||             \
                                         (e) == EL_BD_BITER_DOWN)
 
+#define IS_BD_EXPANDABLE_WALL(e)       ((e) == EL_BD_EXPANDABLE_WALL_HORIZONTAL ||     \
+                                        (e) == EL_BD_EXPANDABLE_WALL_VERTICAL ||       \
+                                        (e) == EL_BD_EXPANDABLE_WALL_ANY ||            \
+                                        (e) == EL_BD_EXPANDABLE_STEELWALL_HORIZONTAL ||\
+                                        (e) == EL_BD_EXPANDABLE_STEELWALL_VERTICAL ||  \
+                                        (e) == EL_BD_EXPANDABLE_STEELWALL_ANY)
+
+#define IS_BD_CONVEYOR_BELT(e)         ((e) == EL_BD_CONVEYOR_LEFT ||                  \
+                                        (e) == EL_BD_CONVEYOR_LEFT_ACTIVE ||           \
+                                        (e) == EL_BD_CONVEYOR_RIGHT ||                 \
+                                        (e) == EL_BD_CONVEYOR_RIGHT_ACTIVE)
+
+#define IS_BD_CONVEYOR_BELT_SWITCH(e)  ((e) == EL_BD_CONVEYOR_SWITCH ||                \
+                                        (e) == EL_BD_CONVEYOR_SWITCH_ACTIVE ||         \
+                                        (e) == EL_BD_CONVEYOR_DIR_SWITCH_NORMAL ||     \
+                                        (e) == EL_BD_CONVEYOR_DIR_SWITCH_CHANGED)
+
 #define IS_SOKOBAN_OBJECT_OR_FIELD(e)  ((e) == EL_SOKOBAN_OBJECT ||            \
                                         (e) == EL_SOKOBAN_FIELD_EMPTY ||       \
                                         (e) == EL_SOKOBAN_FIELD_FULL)
 #define EL_BD_CONVEYOR_RIGHT_ACTIVE            1318
 #define EL_BD_CONVEYOR_SWITCH                  1319
 #define EL_BD_CONVEYOR_SWITCH_ACTIVE           1320
-#define EL_BD_CONVEYOR_DIR_SWITCH_LEFT         1321
-#define EL_BD_CONVEYOR_DIR_SWITCH_RIGHT                1322
+#define EL_BD_CONVEYOR_DIR_SWITCH_NORMAL       1321
+#define EL_BD_CONVEYOR_DIR_SWITCH_CHANGED      1322
 #define EL_BD_GRAVITY_SWITCH                   1323
 #define EL_BD_GRAVITY_SWITCH_ACTIVE            1324
 #define EL_BD_ACID                             1325
@@ -3539,6 +3556,13 @@ struct LevelInfo
   int bd_acid_turns_to_element;                // BD acid target element after spreading
   int bd_biter_move_delay;             // BD biter delay between movements (in BD frames)
   int bd_biter_eats_element;           // BD biter eats this game element when moving
+  int bd_bladder_converts_by_element;  // BD bladder converts to clock by touching this element
+  boolean bd_change_expanding_wall;    // BD expanding wall direction is changed if enabled
+  boolean bd_replicators_active;       // BD replicators start in active state if enabled
+  int bd_replicator_create_delay;      // BD replicator delay between replications (in BD frames)
+  boolean bd_conveyor_belts_active;    // BD conveyor belts start in active state if enabled
+  boolean bd_conveyor_belts_changed;   // BD conveyor belts direction is changed if enabled
+  boolean bd_water_cannot_flow_down;   // BD water does not flow downwards if enabled
 
   boolean em_slippery_gems;            // EM style "gems slip from wall" behaviour
   boolean em_explodes_by_fire;         // EM style chain explosion behaviour