X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=57a0344771fbc81bf854b07193a935b0bfcba48e;hb=ec942b1c9df306ed468fdc42ba3b5f7f0d9b330f;hp=e6baec2532cc26d4636cb68c21a7e129e3f62798;hpb=6d7ebf6db8a9a57f2e3e398da1d2f7d8d084523f;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index e6baec25..57a03447 100644 --- a/src/files.c +++ b/src/files.c @@ -4944,25 +4944,26 @@ void SaveScore(int nr) #define SETUP_TOKEN_SOFT_SCROLLING 7 #define SETUP_TOKEN_FADING 8 #define SETUP_TOKEN_AUTORECORD 9 -#define SETUP_TOKEN_QUICK_DOORS 10 -#define SETUP_TOKEN_TEAM_MODE 11 -#define SETUP_TOKEN_HANDICAP 12 -#define SETUP_TOKEN_SKIP_LEVELS 13 -#define SETUP_TOKEN_TIME_LIMIT 14 -#define SETUP_TOKEN_FULLSCREEN 15 -#define SETUP_TOKEN_ASK_ON_ESCAPE 16 -#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR 17 -#define SETUP_TOKEN_QUICK_SWITCH 18 -#define SETUP_TOKEN_INPUT_ON_FOCUS 19 -#define SETUP_TOKEN_PREFER_AGA_GRAPHICS 20 -#define SETUP_TOKEN_GRAPHICS_SET 21 -#define SETUP_TOKEN_SOUNDS_SET 22 -#define SETUP_TOKEN_MUSIC_SET 23 -#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 24 -#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 25 -#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 26 - -#define NUM_GLOBAL_SETUP_TOKENS 27 +#define SETUP_TOKEN_SHOW_TITLESCREEN 10 +#define SETUP_TOKEN_QUICK_DOORS 11 +#define SETUP_TOKEN_TEAM_MODE 12 +#define SETUP_TOKEN_HANDICAP 13 +#define SETUP_TOKEN_SKIP_LEVELS 14 +#define SETUP_TOKEN_TIME_LIMIT 15 +#define SETUP_TOKEN_FULLSCREEN 16 +#define SETUP_TOKEN_ASK_ON_ESCAPE 17 +#define SETUP_TOKEN_ASK_ON_ESCAPE_EDITOR 18 +#define SETUP_TOKEN_QUICK_SWITCH 19 +#define SETUP_TOKEN_INPUT_ON_FOCUS 20 +#define SETUP_TOKEN_PREFER_AGA_GRAPHICS 21 +#define SETUP_TOKEN_GRAPHICS_SET 22 +#define SETUP_TOKEN_SOUNDS_SET 23 +#define SETUP_TOKEN_MUSIC_SET 24 +#define SETUP_TOKEN_OVERRIDE_LEVEL_GRAPHICS 25 +#define SETUP_TOKEN_OVERRIDE_LEVEL_SOUNDS 26 +#define SETUP_TOKEN_OVERRIDE_LEVEL_MUSIC 27 + +#define NUM_GLOBAL_SETUP_TOKENS 28 /* editor setup */ #define SETUP_TOKEN_EDITOR_EL_BOULDERDASH 0 @@ -5064,6 +5065,7 @@ static struct TokenInfo global_setup_tokens[] = { TYPE_SWITCH, &si.soft_scrolling, "soft_scrolling" }, { TYPE_SWITCH, &si.fading, "screen_fading" }, { TYPE_SWITCH, &si.autorecord, "automatic_tape_recording" }, + { TYPE_SWITCH, &si.show_titlescreen, "show_titlescreen" }, { TYPE_SWITCH, &si.quick_doors, "quick_doors" }, { TYPE_SWITCH, &si.team_mode, "team_mode" }, { TYPE_SWITCH, &si.handicap, "handicap" }, @@ -5193,6 +5195,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->soft_scrolling = TRUE; si->fading = FALSE; si->autorecord = TRUE; + si->show_titlescreen = TRUE; si->quick_doors = FALSE; si->team_mode = FALSE; si->handicap = TRUE; @@ -5547,19 +5550,14 @@ void LoadCustomElementDescriptions() freeSetupFileHash(setup_file_hash); } -void LoadSpecialMenuDesignSettings() +static void LoadSpecialMenuDesignSettingsFromFilename(char *filename) { - char *filename = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS); SetupFileHash *setup_file_hash; - int i, j; + int i; - /* always start with reliable default values from default config */ - for (i = 0; image_config_vars[i].token != NULL; i++) - for (j = 0; image_config[j].token != NULL; j++) - if (strEqual(image_config_vars[i].token, image_config[j].token)) - *image_config_vars[i].value = - get_auto_parameter_value(image_config_vars[i].token, - image_config[j].value); +#if 0 + printf("LoadSpecialMenuDesignSettings from file '%s' ...\n", filename); +#endif if ((setup_file_hash = loadSetupFileHash(filename)) == NULL) return; @@ -5592,6 +5590,42 @@ void LoadSpecialMenuDesignSettings() freeSetupFileHash(setup_file_hash); } +void LoadSpecialMenuDesignSettings() +{ + char *filename_base = UNDEFINED_FILENAME, *filename_local; + int i, j; + + /* always start with reliable default values from default config */ + for (i = 0; image_config_vars[i].token != NULL; i++) + for (j = 0; image_config[j].token != NULL; j++) + if (strEqual(image_config_vars[i].token, image_config[j].token)) + *image_config_vars[i].value = + get_auto_parameter_value(image_config_vars[i].token, + image_config[j].value); + +#if 1 + if (!SETUP_OVERRIDE_ARTWORK(setup, ARTWORK_TYPE_GRAPHICS)) + { + /* first look for special settings configured in level series config */ + filename_base = getCustomArtworkLevelConfigFilename(ARTWORK_TYPE_GRAPHICS); + + if (fileExists(filename_base)) + LoadSpecialMenuDesignSettingsFromFilename(filename_base); + } + + filename_local = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS); + + if (filename_local != NULL && !strEqual(filename_base, filename_local)) + LoadSpecialMenuDesignSettingsFromFilename(filename_local); + +#else + + filename_local = getCustomArtworkConfigFilename(ARTWORK_TYPE_GRAPHICS); + + LoadSpecialMenuDesignSettingsFromFilename(filename_local); +#endif +} + void LoadUserDefinedEditorElementList(int **elements, int *num_elements) { char *filename = getEditorSetupFilename();