rnd-20070424-1-src
[rocksndiamonds.git] / src / libgame / setup.c
index bc8a1a34740bb1b31ab92b928dfba63cffa8b8b4..7e621f434192736cce6fe13192d632a79421bb63 100644 (file)
@@ -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)