X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=3cb8fc725f4f67036aa167f5921fc058b09fca1c;hb=45c910a978cabc8e8dd40fac47b17b7d402c91aa;hp=c074f9586897786431b0678d7d4702d19eb34e38;hpb=9e08928735ed2195ecceb20747e705cfd3c7c5d2;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index c074f958..3cb8fc72 100644 --- a/src/files.c +++ b/src/files.c @@ -6206,7 +6206,7 @@ void LoadLevelFromFilename(struct LevelInfo *level, char *filename) LoadLevelFromFileInfo(level, &level_file_info, FALSE); } -static void LoadLevel_InitVersion(struct LevelInfo *level, char *filename) +static void LoadLevel_InitVersion(struct LevelInfo *level) { int i, j; @@ -6526,7 +6526,7 @@ static void LoadLevel_InitCustomElements(struct LevelInfo *level) } } -static void LoadLevel_InitElements(struct LevelInfo *level, char *filename) +static void LoadLevel_InitElements(struct LevelInfo *level) { LoadLevel_InitStandardElements(level); @@ -6538,7 +6538,7 @@ static void LoadLevel_InitElements(struct LevelInfo *level, char *filename) InitElementPropertiesGfxElement(); } -static void LoadLevel_InitPlayfield(struct LevelInfo *level, char *filename) +static void LoadLevel_InitPlayfield(struct LevelInfo *level) { int x, y; @@ -6570,7 +6570,7 @@ static void LoadLevel_InitPlayfield(struct LevelInfo *level, char *filename) SetBorderElement(); } -static void LoadLevel_InitNativeEngines(struct LevelInfo *level,char *filename) +static void LoadLevel_InitNativeEngines(struct LevelInfo *level) { struct LevelFileInfo *level_file_info = &level->file_info; @@ -6580,36 +6580,37 @@ static void LoadLevel_InitNativeEngines(struct LevelInfo *level,char *filename) void LoadLevelTemplate(int nr) { - char *filename; + if (!fileExists(getGlobalLevelTemplateFilename())) + { + Error(ERR_WARN, "no level template found for this level"); + + return; + } setLevelFileInfo(&level_template.file_info, nr); - filename = level_template.file_info.filename; LoadLevelFromFileInfo(&level_template, &level_template.file_info, FALSE); - LoadLevel_InitVersion(&level_template, filename); - LoadLevel_InitElements(&level_template, filename); + LoadLevel_InitVersion(&level_template); + LoadLevel_InitElements(&level_template); ActivateLevelTemplate(); } void LoadLevel(int nr) { - char *filename; - setLevelFileInfo(&level.file_info, nr); - filename = level.file_info.filename; LoadLevelFromFileInfo(&level, &level.file_info, FALSE); if (level.use_custom_template) LoadLevelTemplate(-1); - LoadLevel_InitVersion(&level, filename); - LoadLevel_InitElements(&level, filename); - LoadLevel_InitPlayfield(&level, filename); + LoadLevel_InitVersion(&level); + LoadLevel_InitElements(&level); + LoadLevel_InitPlayfield(&level); - LoadLevel_InitNativeEngines(&level, filename); + LoadLevel_InitNativeEngines(&level); } void LoadLevelInfoOnly(int nr) @@ -8282,6 +8283,7 @@ enum SETUP_TOKEN_SKIP_LEVELS, SETUP_TOKEN_INCREMENT_LEVELS, SETUP_TOKEN_AUTO_PLAY_NEXT_LEVEL, + SETUP_TOKEN_SKIP_SCORES_AFTER_GAME, SETUP_TOKEN_TIME_LIMIT, SETUP_TOKEN_FULLSCREEN, SETUP_TOKEN_WINDOW_SCALING_PERCENT, @@ -8522,6 +8524,7 @@ static struct TokenInfo global_setup_tokens[] = { TYPE_SWITCH, &si.skip_levels, "skip_levels" }, { TYPE_SWITCH, &si.increment_levels, "increment_levels" }, { TYPE_SWITCH, &si.auto_play_next_level, "auto_play_next_level" }, + { TYPE_SWITCH, &si.skip_scores_after_game, "skip_scores_after_game" }, { TYPE_SWITCH, &si.time_limit, "time_limit" }, { TYPE_SWITCH, &si.fullscreen, "fullscreen" }, { TYPE_INTEGER,&si.window_scaling_percent, "window_scaling_percent" }, @@ -8741,6 +8744,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->skip_levels = TRUE; si->increment_levels = TRUE; si->auto_play_next_level = TRUE; + si->skip_scores_after_game = FALSE; si->time_limit = TRUE; si->fullscreen = FALSE; si->window_scaling_percent = STD_WINDOW_SCALING_PERCENT;