X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ffiles.c;h=605efc27af482bb4df72607829ea65fb6dcc2165;hp=9e4db60cde8fabb739f415d60c304bc1b9f14923;hb=f655d278060b2c79fc64a82bbd727a25136fd6a5;hpb=740b7b55a7f4982f08b09daee0152ec9df3240ae diff --git a/src/files.c b/src/files.c index 9e4db60c..605efc27 100644 --- a/src/files.c +++ b/src/files.c @@ -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 */ @@ -8359,6 +8368,7 @@ enum 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, @@ -8602,6 +8612,7 @@ static struct TokenInfo global_setup_tokens[] = { 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" }, @@ -8824,6 +8835,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) 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;