added "effects" game elements for native BD engine to level editor
[rocksndiamonds.git] / src / files.c
index 1260870372cf83bd6c03c9c061d7e33e772caf34..8197672ac21cf85370818650e8d31c725fe95319 100644 (file)
@@ -759,6 +759,23 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
     &li.bd_replicator_create_delay,    4
   },
 
+  {
+    EL_BD_CONVEYOR_LEFT,               -1,
+    TYPE_BOOLEAN,                      CONF_VALUE_8_BIT(1),
+    &li.bd_conveyor_belts_active,      TRUE
+  },
+  {
+    EL_BD_CONVEYOR_LEFT,               -1,
+    TYPE_BOOLEAN,                      CONF_VALUE_8_BIT(2),
+    &li.bd_conveyor_belts_changed,     FALSE
+  },
+
+  {
+    EL_BD_WATER,                       -1,
+    TYPE_BOOLEAN,                      CONF_VALUE_8_BIT(1),
+    &li.bd_water_cannot_flow_down,     FALSE
+  },
+
   // (the following values are related to various game elements)
 
   {
@@ -4059,6 +4076,11 @@ static void CopyNativeLevel_RND_to_BD(struct LevelInfo *level)
   cave->replicators_active             = level->bd_replicators_active;
   cave->replicator_delay_frame         = level->bd_replicator_create_delay;
 
+  cave->conveyor_belts_active          = level->bd_conveyor_belts_active;
+  cave->conveyor_belts_direction_changed= level->bd_conveyor_belts_changed;
+
+  cave->water_does_not_flow_down       = level->bd_water_cannot_flow_down;
+
   // level name
   strncpy(cave->name, level->name, sizeof(GdString));
   cave->name[sizeof(GdString) - 1] = '\0';
@@ -4163,6 +4185,11 @@ static void CopyNativeLevel_BD_to_RND(struct LevelInfo *level)
   level->bd_replicators_active         = cave->replicators_active;
   level->bd_replicator_create_delay    = cave->replicator_delay_frame;
 
+  level->bd_conveyor_belts_active      = cave->conveyor_belts_active;
+  level->bd_conveyor_belts_changed     = cave->conveyor_belts_direction_changed;
+
+  level->bd_water_cannot_flow_down     = cave->water_does_not_flow_down;
+
   // level name
   char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);
 
@@ -10505,6 +10532,10 @@ static struct TokenInfo editor_cascade_setup_tokens[] =
     TYPE_SWITCH,
     &setup.editor_cascade.el_bd_native,                "editor.cascade.el_bd_native"
   },
+  {
+    TYPE_SWITCH,
+    &setup.editor_cascade.el_bd_effects,       "editor.cascade.el_bd_effects"
+  },
   {
     TYPE_SWITCH,
     &setup.editor_cascade.el_em,               "editor.cascade.el_em"
@@ -11199,6 +11230,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
 
   si->editor.el_boulderdash            = TRUE;
   si->editor.el_boulderdash_native     = TRUE;
+  si->editor.el_boulderdash_effects    = TRUE;
   si->editor.el_emerald_mine           = TRUE;
   si->editor.el_emerald_mine_club      = TRUE;
   si->editor.el_more                   = TRUE;
@@ -11373,6 +11405,7 @@ static void setSetupInfoToDefaults_EditorCascade(struct SetupInfo *si)
 {
   si->editor_cascade.el_bd             = TRUE;
   si->editor_cascade.el_bd_native      = TRUE;
+  si->editor_cascade.el_bd_effects     = FALSE;
   si->editor_cascade.el_em             = TRUE;
   si->editor_cascade.el_emc            = TRUE;
   si->editor_cascade.el_rnd            = TRUE;