cav->lenses_time = level->lenses_time;
cav->magnify_time = level->magnify_time;
+ cav->wind_time = 9999;
cav->wind_direction =
map_direction_RND_to_EM(level->wind_direction_initial);
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();
DirectoryEntry *dir_entry;
struct FileInfo *music, *sound;
struct MusicFileInfo *next, **new;
+ boolean read_music_from_directory = TRUE;
int i;
while (music_file_info != NULL)
}
}
- 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);
- return;
+ read_music_from_directory = FALSE;
}
- while ((dir_entry = readDirectory(dir)) != NULL) // loop all entries
+ while (read_music_from_directory &&
+ (dir_entry = readDirectory(dir)) != NULL) // loop all entries
{
char *basename = dir_entry->basename;
boolean music_already_used = FALSE;
num_music_noconf++;
}
- closeDirectory(dir);
+ if (dir != NULL)
+ closeDirectory(dir);
for (i = 0; i < num_sounds; i++)
{