renamed variable
[rocksndiamonds.git] / src / editor.c
index df592b1f528f39ff055a4add1f0623c4c4503711..7a854200d554445d7c48545c228b303777795d49 100644 (file)
@@ -3692,6 +3692,7 @@ static int level_xpos = -1, level_ypos = -1;
 
 /* actual tile size used to display playfield drawing area */
 static int ed_tilesize = DEFAULT_EDITOR_TILESIZE;
+static int ed_tilesize_default = DEFAULT_EDITOR_TILESIZE;
 
 #define IN_ED_FIELD(x,y)       IN_FIELD(x, y, ed_fieldx, ed_fieldy)
 
@@ -8281,9 +8282,13 @@ void InitZoomLevelSettings(int zoom_tilesize)
   if (zoom_tilesize == -1)
   {
     ed_tilesize = setup.auto_setup.editor_zoom_tilesize;
+    ed_tilesize_default = DEFAULT_EDITOR_TILESIZE;
 
     if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
+    {
       ed_tilesize = DEFAULT_EDITOR_TILESIZE_MM;
+      ed_tilesize_default = DEFAULT_EDITOR_TILESIZE_MM;
+    }
   }
 
   // limit zoom tilesize by upper and lower bound
@@ -8297,6 +8302,35 @@ void InitZoomLevelSettings(int zoom_tilesize)
   MAX_ED_FIELDY = getMaxEdFieldY(FALSE);
 }
 
+static void InitDrawingElements()
+{
+  static int game_engine_type_last = GAME_ENGINE_TYPE_UNKNOWN;
+
+  if (level.game_engine_type == game_engine_type_last)
+    return;
+
+  if (level.game_engine_type == GAME_ENGINE_TYPE_SP)
+  {
+    new_element1 = EL_SP_CHIP_SINGLE;
+    new_element2 = EL_EMPTY;
+    new_element3 = EL_SP_BASE;
+  }
+  else if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
+  {
+    new_element1 = EL_MM_MIRROR_START;
+    new_element2 = EL_EMPTY;
+    new_element3 = EL_MM_WOODEN_WALL;
+  }
+  else
+  {
+    new_element1 = EL_WALL;
+    new_element2 = EL_EMPTY;
+    new_element3 = EL_SAND;
+  }
+
+  game_engine_type_last = level.game_engine_type;
+}
+
 static void InitLevelSetInfo()
 {
   snprintf(levelset_name,   MAX_LEVEL_NAME_LEN + 1,
@@ -8398,6 +8432,7 @@ void DrawLevelEd()
   ClearField();
 
   InitZoomLevelSettings(-1);
+  InitDrawingElements();
   InitLevelSetInfo();
 
 #if DEBUG
@@ -13271,7 +13306,7 @@ static void HandleControlButtons(struct GadgetInfo *gi)
     case GADGET_ID_ZOOM:
       // zoom level editor tile size in or out (or reset to default size)
       ed_tilesize = (button == 1 ? ed_tilesize * 2 :
-                    button == 2 ? DEFAULT_EDITOR_TILESIZE :
+                    button == 2 ? ed_tilesize_default :
                     button == 3 ? ed_tilesize / 2 : ed_tilesize);
 
       // limit zoom level by upper and lower bound