added separate playfield and buffer sizes for EM engine caves
[rocksndiamonds.git] / src / files.c
index 16b2179131918569244e3aa315cc4dfb7b3bbcac..0c0f2f9b08ef1349c77fdc04feff1ae4fc3efff6 100644 (file)
@@ -3519,8 +3519,8 @@ static void CopyNativeLevel_RND_to_EM(struct LevelInfo *level)
   struct PLAYER **ply = level_em->ply;
   int i, j, x, y;
 
-  lev->width  = MIN(level->fieldx, EM_MAX_CAVE_WIDTH);
-  lev->height = MIN(level->fieldy, EM_MAX_CAVE_HEIGHT);
+  lev->width  = MIN(level->fieldx, EM_MAX_CAVE_BUFFER_WIDTH);
+  lev->height = MIN(level->fieldy, EM_MAX_CAVE_BUFFER_HEIGHT);
 
   lev->time_seconds     = level->time;
   lev->required_initial = level->gems_needed;
@@ -3574,9 +3574,9 @@ static void CopyNativeLevel_RND_to_EM(struct LevelInfo *level)
   map_android_clone_elements_RND_to_EM(level);
 
   // first fill the complete playfield with the default border element
-  for (y = 0; y < EM_MAX_CAVE_HEIGHT; y++)
-    for (x = 0; x < EM_MAX_CAVE_WIDTH; x++)
-      level_em->cave[x][y] = ZBORDER;
+  for (y = 0; y < EM_MAX_CAVE_BUFFER_HEIGHT; y++)
+    for (x = 0; x < EM_MAX_CAVE_BUFFER_WIDTH; x++)
+      level_em->cave[x][y] = Zborder;
 
   if (BorderElement == EL_STEELWALL)
   {
@@ -8951,6 +8951,10 @@ static struct TokenInfo internal_setup_tokens[] =
     TYPE_BOOLEAN,
     &setup.internal.show_scaling_in_title,     "show_scaling_in_title"
   },
+  {
+    TYPE_BOOLEAN,
+    &setup.internal.create_user_levelset,      "create_user_levelset"
+  },
   {
     TYPE_BOOLEAN,
     &setup.internal.menu_game,                 "menu_game"
@@ -9324,6 +9328,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->internal.default_level_series = getStringCopy(UNDEFINED_LEVELSET);
   si->internal.choose_from_top_leveldir = FALSE;
   si->internal.show_scaling_in_title = TRUE;
+  si->internal.create_user_levelset = TRUE;
 
   si->internal.default_window_width  = WIN_XSIZE_DEFAULT;
   si->internal.default_window_height = WIN_YSIZE_DEFAULT;