{
struct SoundControl snd_ctrl = emptySoundControl;
-#ifdef USE_SDL_LIBRARY
- Mix_PlayChannel(-1, Sound[nr].mix_chunk, 0);
-
- /*
- Mix_Volume(-1, SDL_MIX_MAXVOLUME / 4);
- Mix_VolumeMusic(SDL_MIX_MAXVOLUME / 4);
- */
-
- return;
-#endif
-
if (sound_status==SOUND_OFF || !setup.sound)
return;
snd_ctrl.data_ptr = Sound[nr].data_ptr;
snd_ctrl.data_len = Sound[nr].data_len;
+#ifdef USE_SDL_LIBRARY
+
+ Mix_Volume(-1, SDL_MIX_MAXVOLUME / 4);
+ Mix_VolumeMusic(SDL_MIX_MAXVOLUME / 4);
+
+ Mix_PlayChannel(-1, Sound[nr].mix_chunk, (loop ? -1 : 0));
+
+#else
#ifndef MSDOS
if (write(sound_pipe[1], &snd_ctrl, sizeof(snd_ctrl))<0)
{
#else
sound_handler(snd_ctrl);
#endif
+#endif
}
void FadeSound(int nr)
{
struct SoundControl snd_ctrl = emptySoundControl;
-#ifdef USE_SDL_LIBRARY
- Mix_HaltMusic();
- return;
-#endif
-
if (sound_status==SOUND_OFF)
return;
snd_ctrl.stop_sound = TRUE;
}
+#ifdef USE_SDL_LIBRARY
+
+ if (SSND_FADING(method))
+ {
+ Mix_FadeOutChannel(-1, 1000);
+ Mix_FadeOutMusic(1000);
+ }
+ else
+ {
+ Mix_HaltChannel(-1);
+ Mix_HaltMusic();
+ }
+
+#else
#ifndef MSDOS
if (write(sound_pipe[1], &snd_ctrl, sizeof(snd_ctrl))<0)
{
#else
sound_handler(snd_ctrl);
#endif
+#endif
}
void FreeSounds(int num_sounds)