X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=7e621f434192736cce6fe13192d632a79421bb63;hb=14f10ebaf067872a8a1412476c8923cb2414aee4;hp=bc8a1a34740bb1b31ab92b928dfba63cffa8b8b4;hpb=9f7cd608c28ded86b2c2e649c776220ae27df038;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index bc8a1a34..7e621f43 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -602,6 +602,15 @@ char *getCustomImageFilename(char *basename) if (fileExists(filename)) return filename; +#if CREATE_SPECIAL_EDITION + free(filename); + + /* 6th try: look for fallback artwork in old default artwork directory */ + filename = getPath2(options.graphics_directory, GFX_FALLBACK_FILENAME); + if (fileExists(filename)) + return filename; +#endif + return NULL; /* cannot find specified artwork file anywhere */ } @@ -660,6 +669,15 @@ char *getCustomSoundFilename(char *basename) if (fileExists(filename)) return filename; +#if CREATE_SPECIAL_EDITION + free(filename); + + /* 6th try: look for fallback artwork in old default artwork directory */ + filename = getPath2(options.sounds_directory, SND_FALLBACK_FILENAME); + if (fileExists(filename)) + return filename; +#endif + return NULL; /* cannot find specified artwork file anywhere */ } @@ -718,6 +736,15 @@ char *getCustomMusicFilename(char *basename) if (fileExists(filename)) return filename; +#if CREATE_SPECIAL_EDITION + free(filename); + + /* 6th try: look for fallback artwork in old default artwork directory */ + filename = getPath2(options.music_directory, MUS_FALLBACK_FILENAME); + if (fileExists(filename)) + return filename; +#endif + return NULL; /* cannot find specified artwork file anywhere */ } @@ -1773,8 +1800,7 @@ static boolean loadSetupFileData(void *setup_file_data, char *filename, void *insert_ptr = NULL; boolean read_continued_line = FALSE; FILE *file; - int line_nr = 0; - int token_count = 0; + int line_nr = 0, token_count = 0, include_count = 0; #if CHECK_TOKEN_VALUE_SEPARATOR__WARN_IF_MISSING token_value_separator_warning = FALSE; @@ -1873,6 +1899,8 @@ static boolean loadSetupFileData(void *setup_file_data, char *filename, free(basepath); free(basename); free(filename_include); + + include_count++; } else { @@ -1928,7 +1956,7 @@ static boolean loadSetupFileData(void *setup_file_data, char *filename, Error(ERR_INFO_LINE, "-"); #endif - if (token_count == 0) + if (token_count == 0 && include_count == 0) Error(ERR_WARN, "configuration file '%s' is empty", filename); if (top_recursion_level)