X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsound.c;h=c8d61a828abbd877fee2c5d641132d970089a470;hb=942ec4881e3b21c130df9ae105d06c2c633fa192;hp=96165fe4ba1a00a9432b044244ea5ba7d60cc881;hpb=74c0f7de91268e40d15948f473eac51a9760b9c0;p=rocksndiamonds.git diff --git a/src/libgame/sound.c b/src/libgame/sound.c index 96165fe4..c8d61a82 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -862,7 +862,7 @@ static void Mixer_InsertSound(SoundControl snd_ctrl) if (num_music_noconf == 0) /* no fallback music available */ return; - snd_ctrl.nr = (-(snd_ctrl.nr + 1)) % num_music_noconf; + snd_ctrl.nr = UNMAP_NOCONF_MUSIC(snd_ctrl.nr) % num_music_noconf; snd_info = Music_NoConf[snd_ctrl.nr]; } else @@ -1868,13 +1868,9 @@ static void *Load_MOD(char *filename) static void *Load_WAV_or_MOD(char *filename) { - char *basename = strrchr(filename, '/'); - - basename = (basename != NULL ? basename + 1 : filename); - - if (FileIsSound(basename)) + if (FileIsSound(filename)) return Load_WAV(filename); - else if (FileIsMusic(basename)) + else if (FileIsMusic(filename)) return Load_MOD(filename); else return NULL; @@ -1889,6 +1885,15 @@ void LoadCustomMusic_NoConf(void) struct dirent *dir_entry; int num_music = getMusicListSize(); +#if 0 + int ii; + for (ii = 0; ii < num_music; ii++) + { + struct FileInfo *music = getMusicListEntry(ii); + printf("sound process: music %d: '%s'\n", ii, music->filename); + } +#endif + if (!audio.sound_available) return; @@ -1924,6 +1929,10 @@ void LoadCustomMusic_NoConf(void) { struct FileInfo *music = getMusicListEntry(i); +#if 0 + printf("sound process: '%s'\n", music->filename); +#endif + if (strcmp(basename, music->filename) == 0) { music_already_used = TRUE; @@ -1944,10 +1953,15 @@ void LoadCustomMusic_NoConf(void) filename = getPath2(music_directory, basename); +#if 1 + if (FileIsMusic(basename)) + mus_info = Load_WAV_or_MOD(filename); +#else if (FileIsSound(basename)) mus_info = Load_WAV(filename); else if (FileIsMusic(basename)) mus_info = Load_MOD(filename); +#endif free(filename);