rnd-20030105-1-src
[rocksndiamonds.git] / src / libgame / setup.c
index 614bb613cec6cc7185c78f423daca63193f7d89d..083b9c895f50b552859ac9407c6bf12755fab356 100644 (file)
@@ -462,10 +462,14 @@ char *getCustomImageFilename(char *basename)
     if (fileExists(filename))
       return filename;
 
+    free(filename);
+
     /* 2nd try: look for special artwork in current level series directory */
     filename = getPath3(getCurrentLevelDir(), GRAPHICS_DIRECTORY, basename);
     if (fileExists(filename))
       return filename;
+
+    free(filename);
   }
 
   /* 3rd try: look for special artwork in configured artwork directory */
@@ -473,11 +477,15 @@ char *getCustomImageFilename(char *basename)
   if (fileExists(filename))
     return filename;
 
+  free(filename);
+
   /* 4th try: look for default artwork in new default artwork directory */
   filename = getPath2(getDefaultGraphicsDir(GRAPHICS_SUBDIR), basename);
   if (fileExists(filename))
     return filename;
 
+  free(filename);
+
   /* 5th try: look for default artwork in old default artwork directory */
   filename = getPath2(options.graphics_directory, basename);
   if (fileExists(filename))
@@ -500,10 +508,14 @@ char *getCustomSoundFilename(char *basename)
     if (fileExists(filename))
       return filename;
 
+    free(filename);
+
     /* 2nd try: look for special artwork in current level series directory */
     filename = getPath3(getCurrentLevelDir(), SOUNDS_DIRECTORY, basename);
     if (fileExists(filename))
       return filename;
+
+    free(filename);
   }
 
   /* 3rd try: look for special artwork in configured artwork directory */
@@ -511,11 +523,15 @@ char *getCustomSoundFilename(char *basename)
   if (fileExists(filename))
     return filename;
 
+  free(filename);
+
   /* 4th try: look for default artwork in new default artwork directory */
   filename = getPath2(getDefaultSoundsDir(SOUNDS_SUBDIR), basename);
   if (fileExists(filename))
     return filename;
 
+  free(filename);
+
   /* 5th try: look for default artwork in old default artwork directory */
   filename = getPath2(options.sounds_directory, basename);
   if (fileExists(filename))
@@ -553,10 +569,14 @@ char *getCustomMusicDirectory(void)
     if (fileExists(directory))
       return directory;
 
+    free(directory);
+
     /* 2nd try: look for special artwork in current level series directory */
     directory = getPath2(getCurrentLevelDir(), MUSIC_DIRECTORY);
     if (fileExists(directory))
       return directory;
+
+    free(directory);
   }
 
   /* 3rd try: look for special artwork in configured artwork directory */
@@ -564,11 +584,15 @@ char *getCustomMusicDirectory(void)
   if (fileExists(directory))
     return directory;
 
+  free(directory);
+
   /* 4th try: look for default artwork in new default artwork directory */
   directory = getStringCopy(getDefaultMusicDir(MUSIC_SUBDIR));
   if (fileExists(directory))
     return directory;
 
+  free(directory);
+
   /* 5th try: look for default artwork in old default artwork directory */
   directory = getStringCopy(options.music_directory);
   if (fileExists(directory))
@@ -2074,6 +2098,9 @@ static void SaveUserLevelInfo()
   ldi.first_level = 1;
   ldi.sort_priority = LEVELCLASS_USER_START;
   ldi.readonly = FALSE;
+  ldi.graphics_set = getStringCopy(GRAPHICS_SUBDIR);
+  ldi.sounds_set = getStringCopy(SOUNDS_SUBDIR);
+  ldi.music_set = getStringCopy(MUSIC_SUBDIR);
 
   fprintf(file, "%s\n\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER,
                                                 getCookie("LEVELINFO")));