added support for conveyor belt settings in BD engine to level editor
[rocksndiamonds.git] / src / main.h
index f65f53c2cd1c3b4020063c8f9949a8d39e58380e..fdda65054a624fddbedde0f7b42ecf21af172ee9 100644 (file)
                                         (e) == EL_BD_PLAYER_GLUED ||           \
                                         (e) == EL_BD_PLAYER_STIRRING)
 
+#define IS_BD_BITER(e)                 ((e) == EL_BD_BITER ||                  \
+                                        (e) == EL_BD_BITER_RIGHT ||            \
+                                        (e) == EL_BD_BITER_UP ||               \
+                                        (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_LEFT ||       \
+                                        (e) == EL_BD_CONVEYOR_DIR_SWITCH_RIGHT)
+
 #define IS_SOKOBAN_OBJECT_OR_FIELD(e)  ((e) == EL_SOKOBAN_OBJECT ||            \
                                         (e) == EL_SOKOBAN_FIELD_EMPTY ||       \
                                         (e) == EL_SOKOBAN_FIELD_FULL)
@@ -3531,6 +3554,14 @@ struct LevelInfo
   int bd_acid_eats_element;            // BD acid eats this game element when spreading
   int bd_acid_spread_rate;             // BD acid probability of spreading (in percent)
   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 em_slippery_gems;            // EM style "gems slip from wall" behaviour
   boolean em_explodes_by_fire;         // EM style chain explosion behaviour