added setup option for fast game start from level editor
[rocksndiamonds.git] / src / screens.c
index 14e6291c56de620255c1f48ac76d487c4f9fbfce..0a891b6bb732f5520e2f2f96cb50d34550c7cb5c 100644 (file)
@@ -1929,7 +1929,7 @@ void DrawMainMenu(void)
   SetAnimationFirstLevel(leveldir_current->first_level);
 
   // level_nr may have been set to value over handicap with level editor
-  if (setup.allow_skipping_levels != TRUE && level_nr > leveldir_current->handicap_level)
+  if (setup.allow_skipping_levels != STATE_TRUE && level_nr > leveldir_current->handicap_level)
     level_nr = leveldir_current->handicap_level;
 
   LoadLevel(level_nr);
@@ -2286,13 +2286,13 @@ static void HandleMainMenu_SelectLevel(int step, int direction,
   if (new_level_nr > leveldir_current->last_level)
     new_level_nr = leveldir_current->last_level;
 
-  if (setup.allow_skipping_levels != TRUE && new_level_nr > leveldir_current->handicap_level)
+  if (setup.allow_skipping_levels != STATE_TRUE && new_level_nr > leveldir_current->handicap_level)
   {
     // skipping levels is only allowed when trying to skip single level
     // (also, skipping BD style intermission levels is always possible)
     if (new_level_nr == old_level_nr + 1 &&
        (level.bd_intermission ||
-        (setup.allow_skipping_levels == MODE_ASK &&
+        (setup.allow_skipping_levels == STATE_ASK &&
          Request("Level still unsolved! Skip it anyway?", REQ_ASK))))
     {
       leveldir_current->handicap_level++;
@@ -5720,7 +5720,7 @@ static void HandleHallOfFame_SelectLevel(int step, int direction)
   if (new_level_nr > leveldir_current->last_level)
     new_level_nr = leveldir_current->last_level;
 
-  if (setup.allow_skipping_levels != TRUE && new_level_nr > leveldir_current->handicap_level)
+  if (setup.allow_skipping_levels != STATE_TRUE && new_level_nr > leveldir_current->handicap_level)
     new_level_nr = leveldir_current->handicap_level;
 
   if (new_level_nr != old_level_nr)
@@ -7984,14 +7984,16 @@ static struct TokenInfo setup_info_engines[] =
   { TYPE_ENTER_LIST,   &execSetupChooseGameEngineType, "Default Game Engine:"          },
   { TYPE_STRING,       &game_engine_type_text,         ""                              },
   { TYPE_EMPTY,                NULL,                           ""                              },
+  { TYPE_ECS_AGA,      &setup.prefer_aga_graphics,     "Game Graphics Style:"          },
+  { TYPE_EMPTY,                NULL,                           ""                              },
   { TYPE_HEADLINE,     NULL,                           "Boulder Dash"                  },
   { TYPE_SWITCH,       &setup.bd_skip_uncovering,      "Skip (un)covering screen:"     },
   { TYPE_SWITCH,       &setup.bd_skip_hatching,        "Skip hatching player:"         },
   { TYPE_SWITCH,       &setup.bd_scroll_delay,         "Scroll Delay:"                 },
   { TYPE_YES_NO_AUTO,  &setup.bd_smooth_movements,     "Smooth Element Movement:"      },
-  { TYPE_YES_NO_AUTO,  &setup.bd_pushing_graphics,     "Use Player Pushing Graphics:"  },
-  { TYPE_YES_NO_AUTO,  &setup.bd_up_down_graphics,     "Use Player Up/Down Graphics:"  },
-  { TYPE_YES_NO_AUTO,  &setup.bd_skip_falling_sounds,  "Mute Double Falling Sounds:"   },
+  { TYPE_YES_NO_AUTO,  &setup.bd_pushing_graphics,     "Player Pushing Graphics:"      },
+  { TYPE_YES_NO_AUTO,  &setup.bd_up_down_graphics,     "Player Up/Down Graphics:"      },
+  { TYPE_YES_NO_AUTO,  &setup.bd_falling_sounds,       "Double Falling Sounds:"        },
   { TYPE_SWITCH,       &setup.bd_show_invisible_outbox,"Show invisible outbox:"        },
   { TYPE_ENTER_LIST,   &execSetupChoosePaletteC64,     "Color Palette (C64):"          },
   { TYPE_STRING,       &bd_palette_c64_text,           ""                              },
@@ -8005,7 +8007,6 @@ static struct TokenInfo setup_info_engines[] =
   { TYPE_EMPTY,                NULL,                           ""                              },
   { TYPE_HEADLINE,     NULL,                           "Emerald Mine"                  },
   { TYPE_SWITCH,       &setup.forced_scroll_delay,     "Scroll Delay:"                 },
-  { TYPE_ECS_AGA,      &setup.prefer_aga_graphics,     "Amiga Graphics Chipset:"       },
   { TYPE_SWITCH,       &setup.prefer_lowpass_sounds,   "Low-Pass Filter Sounds:"       },
   { TYPE_SWITCH,       &setup.prefer_extra_panel_items,"Show Dynamite and Keys:"       },
   { TYPE_EMPTY,                NULL,                           ""                              },
@@ -8046,6 +8047,7 @@ static struct TokenInfo setup_info_editor[] =
   { TYPE_EMPTY,                NULL,                           ""                              },
 #endif
   { TYPE_SWITCH, &setup.editor.show_element_token,     "Show element token:"           },
+  { TYPE_SWITCH,       &setup.editor.fast_game_start,  "Fast game start:"              },
   { TYPE_EMPTY,                NULL,                           ""                              },
   { TYPE_SWITCH, &setup.editor.show_read_only_warning, "Show read-only warning:"       },
   { TYPE_EMPTY,                NULL,                           ""                              },
@@ -8386,11 +8388,11 @@ static int getSetupValueFont(int type, void *value)
   else if (type & TYPE_BOOLEAN_STYLE)
     return (*(boolean *)value ? FONT_OPTION_ON : FONT_OPTION_OFF);
   else if (type & TYPE_YES_NO_AUTO)
-    return (*(int *)value == MODE_AUTO  ? FONT_OPTION_ON :
-           *(int *)value == FALSE ? FONT_OPTION_OFF : FONT_OPTION_ON);
+    return (*(int *)value == STATE_AUTO  ? FONT_OPTION_ON :
+           *(int *)value == STATE_FALSE ? FONT_OPTION_OFF : FONT_OPTION_ON);
   else if (type & TYPE_YES_NO_ASK)
-    return (*(int *)value == MODE_ASK  ? FONT_OPTION_ON :
-           *(int *)value == FALSE ? FONT_OPTION_OFF : FONT_OPTION_ON);
+    return (*(int *)value == STATE_ASK   ? FONT_OPTION_ON :
+           *(int *)value == STATE_FALSE ? FONT_OPTION_OFF : FONT_OPTION_ON);
   else if (type & TYPE_PLAYER)
     return FONT_VALUE_1;
   else
@@ -8534,19 +8536,19 @@ static void changeSetupValue(int screen_pos, int setup_info_pos_raw, int dx)
   {
     *(int *)si->value =
       (dx == -1 ?
-       (*(int *)si->value == MODE_AUTO ? TRUE :
-       *(int *)si->value == TRUE ? FALSE : MODE_AUTO) :
-       (*(int *)si->value == TRUE ? MODE_AUTO :
-       *(int *)si->value == MODE_AUTO ? FALSE : TRUE));
+       (*(int *)si->value == STATE_AUTO ? STATE_TRUE :
+       *(int *)si->value == STATE_TRUE ? STATE_FALSE : STATE_AUTO) :
+       (*(int *)si->value == STATE_TRUE ? STATE_AUTO :
+       *(int *)si->value == STATE_AUTO ? STATE_FALSE : STATE_TRUE));
   }
   else if (si->type & TYPE_YES_NO_ASK)
   {
     *(int *)si->value =
       (dx == -1 ?
-       (*(int *)si->value == MODE_ASK ? TRUE :
-       *(int *)si->value == TRUE ? FALSE : MODE_ASK) :
-       (*(int *)si->value == TRUE ? MODE_ASK :
-       *(int *)si->value == MODE_ASK ? FALSE : TRUE));
+       (*(int *)si->value == STATE_ASK  ? STATE_TRUE :
+       *(int *)si->value == STATE_TRUE ? STATE_FALSE : STATE_ASK) :
+       (*(int *)si->value == STATE_TRUE ? STATE_ASK :
+       *(int *)si->value == STATE_ASK  ? STATE_FALSE : STATE_TRUE));
   }
   else if (si->type & TYPE_KEY)
   {
@@ -10323,7 +10325,7 @@ static struct
     SCREEN_CTRL_ID_SWITCH_ECS_AGA,
     SCREEN_MASK_MAIN,
     GD_EVENT_RELEASED | GD_EVENT_OFF_BORDERS,
-    FALSE, "switch ECS/AGA chipset"
+    FALSE, "switch old/new graphics"
   },
   {
     IMG_MENU_BUTTON_TOUCH_BACK, IMG_MENU_BUTTON_TOUCH_BACK, -1,