return music_info_listed_ext(list, basename, TRUE);
}
+static boolean checkLevelSetHasMusic_NoConf(void)
+{
+ int i;
+
+ for (i = leveldir_current->first_level;
+ i <= leveldir_current->last_level; i++)
+ if (levelset.music[level_nr] == MUS_UNDEFINED)
+ return TRUE;
+
+ return FALSE;
+}
+
void LoadMusicInfo(void)
{
char *music_directory = getCustomMusicDirectory_NoConf();
int num_music = getMusicListSize();
int num_music_noconf = 0;
int num_sounds = getSoundListSize();
- Directory *dir;
+ Directory *dir = NULL;
DirectoryEntry *dir_entry;
struct FileInfo *music, *sound;
struct MusicFileInfo *next, **new;
}
}
- if ((dir = openDirectory(music_directory)) == NULL)
+ // if all levels have game music configured, do not read music from directory
+ if (!checkLevelSetHasMusic_NoConf())
+ {
+ read_music_from_directory = FALSE;
+ }
+ else if (music_directory == NULL)
+ {
+ Warn("cannot find music directory with unconfigured music");
+
+ read_music_from_directory = FALSE;
+ }
+ else if ((dir = openDirectory(music_directory)) == NULL)
{
Warn("cannot read music directory '%s'", music_directory);