added support for sound configuration parameters (not used yet)
[rocksndiamonds.git] / src / editor.c
index 177336f7f5cfa0e90ba9967c81d9bb8b8ea07db1..c95d38db21226bdafbd60dff6d0d957d4d57081d 100644 (file)
@@ -5859,6 +5859,22 @@ static void ReinitializeElementList_EnableSections(void)
     setup_editor_el_mirror_magic       = FALSE;
     setup_editor_el_deflektor          = FALSE;
   }
+  else if (level.game_engine_type == GAME_ENGINE_TYPE_BD)
+  {
+    setup_editor_el_emerald_mine       = FALSE;
+    setup_editor_el_emerald_mine_club  = FALSE;
+    setup_editor_el_more               = FALSE;
+    setup_editor_el_sokoban            = FALSE;
+    setup_editor_el_supaplex           = FALSE;
+    setup_editor_el_diamond_caves      = FALSE;
+    setup_editor_el_dx_boulderdash     = FALSE;
+    setup_editor_el_mirror_magic       = FALSE;
+    setup_editor_el_deflektor          = FALSE;
+    setup_editor_el_chars              = FALSE;
+    setup_editor_el_steel_chars                = FALSE;
+
+    setup_editor_el_custom             = FALSE;
+  }
   else if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
   {
     setup_editor_el_boulderdash                = FALSE;
@@ -7625,7 +7641,7 @@ static void MapGraphicbuttonGadget(int id)
 {
   int font_nr = FONT_TEXT_1;
   int font_height = getFontHeight(font_nr);
-  struct GadgetInfo *gi= level_editor_gadget[graphicbutton_info[id].gadget_id];
+  struct GadgetInfo *gi = level_editor_gadget[graphicbutton_info[id].gadget_id];
   int xoffset_left = getTextWidthForGadget(graphicbutton_info[id].text_left);
   int xoffset_right = ED_GADGET_TEXT_DISTANCE;
   int yoffset = (gi->height - font_height) / 2;
@@ -10198,7 +10214,7 @@ static void DrawPropertiesConfig(void)
                num_element_counters);
 
       counterbutton_info[counter_id].value = elements_with_counter[i].value;
-      counterbutton_info[counter_id].text_right= elements_with_counter[i].text;
+      counterbutton_info[counter_id].text_right = elements_with_counter[i].text;
 
       if (properties_element == EL_GAME_OF_LIFE ||
          properties_element == EL_BIOMAZE)
@@ -12766,6 +12782,7 @@ static void CopyBrushExt(int from_x, int from_y, int to_x, int to_y,
       lev_fieldx = level.fieldx = brush_width;
       lev_fieldy = level.fieldy = brush_height;
 
+      boolean use_bd_engine = TRUE;
       boolean use_em_engine = TRUE;
       boolean use_sp_engine = TRUE;
       boolean use_mm_engine = TRUE;
@@ -12776,6 +12793,9 @@ static void CopyBrushExt(int from_x, int from_y, int to_x, int to_y,
        {
          int element = Tile[x][y];
 
+         if (!IS_BD_ELEMENT(element) && !IS_PLAYER_ELEMENT(element))
+           use_bd_engine = FALSE;
+
          if (!IS_EM_ELEMENT(element) && !IS_PLAYER_ELEMENT(element))
            use_em_engine = FALSE;
 
@@ -12787,7 +12807,8 @@ static void CopyBrushExt(int from_x, int from_y, int to_x, int to_y,
        }
       }
 
-      level.game_engine_type = (use_em_engine ? GAME_ENGINE_TYPE_EM :
+      level.game_engine_type = (use_bd_engine ? GAME_ENGINE_TYPE_BD :
+                               use_em_engine ? GAME_ENGINE_TYPE_EM :
                                use_sp_engine ? GAME_ENGINE_TYPE_SP :
                                use_mm_engine ? GAME_ENGINE_TYPE_MM :
                                GAME_ENGINE_TYPE_RND);
@@ -14738,8 +14759,8 @@ static void HandleControlButtons(struct GadgetInfo *gi)
 
          for (i = 0; editor_elements_info[i].setup_value != NULL; i++)
          {
-           int *cascade_element= &(*editor_elements_info[i].headline_list)[0];
-           boolean *cascade_value=editor_elements_info[i].setup_cascade_value;
+           int *cascade_element = &(*editor_elements_info[i].headline_list)[0];
+           boolean *cascade_value = editor_elements_info[i].setup_cascade_value;
 
            if (*cascade_element == new_element)
            {
@@ -15283,7 +15304,7 @@ void RequestExitLevelEditor(boolean ask_if_level_has_changed,
        vp_door_2->height == VYSIZE)
       CloseDoor(DOOR_CLOSE_ALL | DOOR_NO_DELAY);
     else
-      SetDoorState(DOOR_CLOSE_2);
+      SetDoorState(DOOR_CLOSE_ALL);
 
     BackToFront();