}
else
{
- if (snd_ctrl.nr >= num_sounds)
+ if (snd_ctrl.nr < 0 || snd_ctrl.nr >= num_sounds)
return;
snd_info = getSoundInfoEntryFromSoundID(snd_ctrl.nr);
#endif
}
+static void *Load_WAV_or_MOD(char *filename)
+{
+ char *basename = strrchr(filename, '/');
+
+ basename = (basename != NULL ? basename + 1 : filename);
+
+ if (FileIsSound(basename))
+ return Load_WAV(filename);
+ else if (FileIsMusic(basename))
+ return Load_MOD(filename);
+ else
+ return NULL;
+}
+
void LoadCustomMusic_NoConf(void)
{
static boolean draw_init_text = TRUE; /* only draw at startup */
{
struct FileInfo *music = getMusicListEntry(i);
-#if 0
- printf("::: -> '%s'\n", music->filename);
-#endif
-
if (strcmp(basename, music->filename) == 0)
{
music_already_used = TRUE;
#if 0
if (FileIsSound(basename) || FileIsMusic(basename))
- printf("DEBUG: loading music '%s' ... [%d]\n",
- basename, music_already_used);
+ printf("DEBUG: loading music '%s' ...\n", basename);
#endif
if (draw_init_text)
/* ---------- initialize artwork loading/freeing functions ---------- */
- music_info->load_artwork = Load_MOD;
+ music_info->load_artwork = Load_WAV_or_MOD;
music_info->free_artwork = FreeMusic;
}