extended support for expanding wall settings in BD engine to level editor
[rocksndiamonds.git] / src / files.c
index be20c5b2643798682446afc4bb30ed8b9d8057e4..4e70f9eff6490ad413dfc04a731a649e209e06bd 100644 (file)
@@ -787,7 +787,7 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
   {
     EL_BD_ACID,                                -1,
     TYPE_ELEMENT,                      CONF_VALUE_16_BIT(2),
-    &li.bd_acid_turns_to_element,      EL_EMPTY
+    &li.bd_acid_turns_to_element,      EL_BD_EXPLODING_3
   },
 
   {
@@ -812,6 +812,11 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
     TYPE_BOOLEAN,                      CONF_VALUE_8_BIT(1),
     &li.bd_change_expanding_wall,      FALSE
   },
+  {
+    EL_BD_EXPANDABLE_WALL_ANY,         -1,
+    TYPE_ELEMENT,                      CONF_VALUE_16_BIT(1),
+    &li.bd_expanding_wall_looks_like,  EL_BD_WALL
+  },
 
   {
     EL_BD_REPLICATOR,                  -1,
@@ -863,6 +868,17 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
     &li.bd_hammer_walls_reappear_delay,        100
   },
 
+  {
+    EL_BD_SKELETON,                    -1,
+    TYPE_INTEGER,                      CONF_VALUE_8_BIT(1),
+    &li.bd_num_skeletons_needed_for_pot, 5
+  },
+  {
+    EL_BD_SKELETON,                    -1,
+    TYPE_INTEGER,                      CONF_VALUE_8_BIT(2),
+    &li.bd_skeleton_worth_num_diamonds,        0
+  },
+
   // (the following values are related to various game elements)
 
   {
@@ -4189,6 +4205,11 @@ static void CopyNativeLevel_RND_to_BD(struct LevelInfo *level)
   cave->hammered_walls_reappear                = level->bd_hammer_walls_reappear;
   cave->hammered_wall_reappear_frame   = level->bd_hammer_walls_reappear_delay;
 
+  cave->skeletons_needed_for_pot       = level->bd_num_skeletons_needed_for_pot;
+  cave->skeletons_worth_diamonds       = level->bd_skeleton_worth_num_diamonds;
+
+  cave->expanding_wall_looks_like      = map_element_RND_to_BD_cave(level->bd_expanding_wall_looks_like);
+
   // level name
   strncpy(cave->name, level->name, sizeof(GdString));
   cave->name[sizeof(GdString) - 1] = '\0';
@@ -4319,6 +4340,11 @@ static void CopyNativeLevel_BD_to_RND(struct LevelInfo *level)
   level->bd_hammer_walls_reappear      = cave->hammered_walls_reappear;
   level->bd_hammer_walls_reappear_delay        = cave->hammered_wall_reappear_frame;
 
+  level->bd_num_skeletons_needed_for_pot= cave->skeletons_needed_for_pot;
+  level->bd_skeleton_worth_num_diamonds        = cave->skeletons_worth_diamonds;
+
+  level->bd_expanding_wall_looks_like  = map_element_BD_to_RND_cave(cave->expanding_wall_looks_like);
+
   // level name
   char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);