X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsound.c;h=a70ea3accf9018ed7c264f76b6bc06f61a89f5b6;hb=8f33ee4940b9c35bf4627b7ef1126d03748da646;hp=96165fe4ba1a00a9432b044244ea5ba7d60cc881;hpb=74c0f7de91268e40d15948f473eac51a9760b9c0;p=rocksndiamonds.git diff --git a/src/libgame/sound.c b/src/libgame/sound.c index 96165fe4..a70ea3ac 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -569,8 +569,7 @@ static void ReadReloadInfoFromPipe(SoundControl *snd_ctrl) &setup.override_level_sounds : &setup.override_level_music); - if (set_identifier) - free(set_identifier); + checked_free(set_identifier); set_identifier = checked_malloc(snd_ctrl->data_len); @@ -579,16 +578,12 @@ static void ReadReloadInfoFromPipe(SoundControl *snd_ctrl) if (ti == NULL) ti = *ti_ptr = checked_calloc(sizeof(TreeInfo)); - if (leveldir_current->fullpath != NULL) - free(leveldir_current->fullpath); - if (leveldir_current->sounds_path != NULL) - free(leveldir_current->sounds_path); - if (leveldir_current->music_path != NULL) - free(leveldir_current->music_path); - if (ti->basepath != NULL) - free(ti->basepath); - if (ti->fullpath != NULL) - free(ti->fullpath); + + checked_free(leveldir_current->fullpath); + checked_free(leveldir_current->sounds_path); + checked_free(leveldir_current->music_path); + checked_free(ti->basepath); + checked_free(ti->fullpath); if (read(audio.mixer_pipe[0], set_identifier, snd_ctrl->data_len) != snd_ctrl->data_len || @@ -862,7 +857,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 +1863,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; @@ -1944,10 +1935,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); @@ -2386,8 +2382,7 @@ void FreeSound(void *ptr) #endif } - if (sound->source_filename) - free(sound->source_filename); + checked_free(sound->source_filename); free(sound); }