+ // get (configured or unconfigured) music file info for all levels
+ for (i = leveldir_current->first_level;
+ i <= leveldir_current->last_level; i++)
+ {
+ int music_nr;
+
+ if (levelset.music[i] != MUS_UNDEFINED)
+ {
+ // get music file info for configured level music
+ music_nr = levelset.music[i];
+ }
+ else
+ {
+ // get music file info for unconfigured level music
+ int level_pos = i - leveldir_current->first_level;
+
+ music_nr = MAP_NOCONF_MUSIC(level_pos % num_music_noconf);
+ }
+
+ char *basename = getMusicInfoEntryFilename(music_nr);
+
+ if (basename == NULL)
+ continue;
+
+ if (!music_info_listed(music_file_info, basename))
+ {
+ *new = get_music_file_info(basename, music_nr);
+
+ if (*new != NULL)
+ new = &(*new)->next;
+ }
+ }
+
+ // get music file info for all remaining configured music files