added setup option to ask to play again after game is over but not solved
[rocksndiamonds.git] / src / files.c
index 9e4db60cde8fabb739f415d60c304bc1b9f14923..75e691c36555fdd434af328a817ac5be0c482c99 100644 (file)
@@ -668,6 +668,11 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] =
     TYPE_INTEGER,                      CONF_VALUE_8_BIT(4),
     &li.game_of_life[3],               3
   },
+  {
+    EL_GAME_OF_LIFE,                   -1,
+    TYPE_BOOLEAN,                      CONF_VALUE_8_BIT(5),
+    &li.use_life_bugs,                 FALSE
+  },
 
   {
     EL_BIOMAZE,                                -1,
@@ -6309,6 +6314,10 @@ static void LoadLevel_InitVersion(struct LevelInfo *level)
     level->extra_time_score = level->score[SC_TIME_BONUS];
   }
 
+  /* game logic of "game of life" and "biomaze" was buggy before 4.1.1.1 */
+  if (level->game_version < VERSION_IDENT(4,1,1,1))
+    level->use_life_bugs = TRUE;
+
   if (level->game_version < VERSION_IDENT(3,2,0,7))
   {
     /* default behaviour for snapping was "not continuous" before 3.2.0-7 */
@@ -8356,9 +8365,11 @@ enum
   SETUP_TOKEN_VSYNC_MODE,
   SETUP_TOKEN_ASK_ON_ESCAPE,
   SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR,
+  SETUP_TOKEN_ASK_ON_GAME_OVER,
   SETUP_TOKEN_QUICK_SWITCH,
   SETUP_TOKEN_INPUT_ON_FOCUS,
   SETUP_TOKEN_PREFER_AGA_GRAPHICS,
+  SETUP_TOKEN_GAME_SPEED_EXTENDED,
   SETUP_TOKEN_GAME_FRAME_DELAY,
   SETUP_TOKEN_SP_SHOW_BORDER_ELEMENTS,
   SETUP_TOKEN_SMALL_GAME_GRAPHICS,
@@ -8599,9 +8610,11 @@ static struct TokenInfo global_setup_tokens[] =
   { TYPE_STRING, &si.vsync_mode,              "vsync_mode"             },
   { TYPE_SWITCH, &si.ask_on_escape,           "ask_on_escape"          },
   { TYPE_SWITCH, &si.ask_on_escape_editor,    "ask_on_escape_editor"   },
+  { TYPE_SWITCH, &si.ask_on_game_over,        "ask_on_game_over"       },
   { TYPE_SWITCH, &si.quick_switch,            "quick_player_switch"    },
   { TYPE_SWITCH, &si.input_on_focus,          "input_on_focus"         },
   { TYPE_SWITCH, &si.prefer_aga_graphics,     "prefer_aga_graphics"    },
+  { TYPE_SWITCH, &si.game_speed_extended,     "game_speed_extended"    },
   { TYPE_INTEGER,&si.game_frame_delay,        "game_frame_delay"       },
   { TYPE_SWITCH, &si.sp_show_border_elements, "sp_show_border_elements"        },
   { TYPE_SWITCH, &si.small_game_graphics,     "small_game_graphics"    },
@@ -8821,9 +8834,11 @@ static void setSetupInfoToDefaults(struct SetupInfo *si)
   si->vsync_mode = getStringCopy(STR_VSYNC_MODE_DEFAULT);
   si->ask_on_escape = TRUE;
   si->ask_on_escape_editor = TRUE;
+  si->ask_on_game_over = TRUE;
   si->quick_switch = FALSE;
   si->input_on_focus = FALSE;
   si->prefer_aga_graphics = TRUE;
+  si->game_speed_extended = FALSE;
   si->game_frame_delay = GAME_FRAME_DELAY;
   si->sp_show_border_elements = FALSE;
   si->small_game_graphics = FALSE;