added setup option to select default game engine type
[rocksndiamonds.git] / src / files.c
index 85bc18351de901a25a5de9024c854f6e7eaf741a..38f142585ac07cf49157ae22cd4050149e1e5796 100644 (file)
@@ -2369,6 +2369,9 @@ static void setLevelInfoToDefaults_Level(struct LevelInfo *level)
   strcpy(level->name, NAMELESS_LEVEL_NAME);
   strcpy(level->author, ANONYMOUS_NAME);
 
+  // set default game engine type
+  level->game_engine_type = setup.default_game_engine_type;
+
   // set level playfield to playable default level with player and exit
   for (x = 0; x < MAX_LEV_FIELDX; x++)
     for (y = 0; y < MAX_LEV_FIELDY; y++)
@@ -2382,6 +2385,9 @@ static void setLevelInfoToDefaults_Level(struct LevelInfo *level)
   // detect custom elements when loading them
   level->file_has_custom_elements = FALSE;
 
+  // set random colors for BD style levels according to preferred color type
+  SetRandomLevelColors_BD(setup.bd_default_color_type);
+
   // set default color type and colors for BD style level colors
   SetDefaultLevelColorType_BD();
   SetDefaultLevelColors_BD();
@@ -10724,6 +10730,10 @@ static struct TokenInfo global_setup_tokens[] =
     TYPE_INTEGER,
     &setup.game_frame_delay,                   "game_frame_delay"
   },
+  {
+    TYPE_INTEGER,
+    &setup.default_game_engine_type,           "default_game_engine_type"
+  },
   {
     TYPE_SWITCH,
     &setup.bd_skip_uncovering,                 "bd_skip_uncovering"
@@ -10740,6 +10750,22 @@ static struct TokenInfo global_setup_tokens[] =
     TYPE_SWITCH3,
     &setup.bd_smooth_movements,                        "bd_smooth_movements"
   },
+  {
+    TYPE_INTEGER,
+    &setup.bd_palette_c64,                     "bd_palette_c64"
+  },
+  {
+    TYPE_INTEGER,
+    &setup.bd_palette_c64dtv,                  "bd_palette_c64dtv"
+  },
+  {
+    TYPE_INTEGER,
+    &setup.bd_palette_atari,                   "bd_palette_atari"
+  },
+  {
+    TYPE_INTEGER,
+    &setup.bd_default_color_type,              "bd_default_color_type"
+  },
   {
     TYPE_SWITCH,
     &setup.sp_show_border_elements,            "sp_show_border_elements"
@@ -11560,10 +11586,15 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->prefer_extra_panel_items = TRUE;
   si->game_speed_extended = FALSE;
   si->game_frame_delay = GAME_FRAME_DELAY;
+  si->default_game_engine_type = GAME_ENGINE_TYPE_RND;
   si->bd_skip_uncovering = FALSE;
   si->bd_skip_hatching = FALSE;
   si->bd_scroll_delay = TRUE;
   si->bd_smooth_movements = AUTO;
+  si->bd_palette_c64 = GD_DEFAULT_PALETTE_C64;
+  si->bd_palette_c64dtv = GD_DEFAULT_PALETTE_C64DTV;
+  si->bd_palette_atari = GD_DEFAULT_PALETTE_ATARI;
+  si->bd_default_color_type = GD_DEFAULT_COLOR_TYPE;
   si->sp_show_border_elements = FALSE;
   si->small_game_graphics = FALSE;
   si->show_load_save_buttons = FALSE;