Do not disable and reenable sounds entirely when window focus changes

Sounds are not started if the window is unfocused,
regardless of sound_disabled.

Fixes -nosound not working (sounds would always be
reenabled if window comes into focus).
This commit is contained in:
James R 2023-01-11 18:22:06 -08:00
parent 78f04f8c71
commit eb8d03f479
2 changed files with 3 additions and 29 deletions

View file

@ -2331,24 +2331,6 @@ void S_ResumeAudio(void)
S_AdjustMusicStackTics();
}
void S_DisableSound(void)
{
if (sound_started && !sound_disabled)
{
sound_disabled = true;
S_StopSounds();
}
}
void S_EnableSound(void)
{
if (sound_started && sound_disabled)
{
sound_disabled = false;
S_InitSfxChannels(cv_soundvolume.value);
}
}
void S_SetMusicVolume(INT32 digvolume)
{
if (digvolume < 0)
@ -2698,13 +2680,8 @@ static void PlaySoundIfUnfocused_OnChange(void)
if (!cv_gamesounds.value)
return;
if (window_notinfocus)
{
if (cv_playsoundifunfocused.value)
S_DisableSound();
else
S_EnableSound();
}
if (window_notinfocus && cv_playsoundifunfocused.value)
S_StopSounds();
}
#ifdef HAVE_OPENMPT

View file

@ -614,9 +614,6 @@ static void Impl_HandleWindowEvent(SDL_WindowEvent evt)
S_InitMusicVolume();
if (cv_gamesounds.value)
S_EnableSound();
if (!firsttimeonmouse)
{
if (cv_usemouse.value) I_StartupMouse();
@ -633,7 +630,7 @@ static void Impl_HandleWindowEvent(SDL_WindowEvent evt)
if (!cv_playmusicifunfocused.value)
I_SetMusicVolume(0);
if (!cv_playsoundifunfocused.value)
S_DisableSound();
S_StopSounds();
if (!disable_mouse)
{