ENGINES: Handle speech_mute in syncSoundSettings.

This assures we always mute all speech sounds, when the user selects
subtitles only mode. Hopefully no engine abuses the speech sound type for
other sounds, since that would make them gone now too. Then again I would
consider this an utter abuse of the speech sound type...
This commit is contained in:
Johannes Schickel 2011-11-13 22:25:19 +01:00
parent 9a71985171
commit 4b433c2961

View File

@ -479,10 +479,20 @@ void Engine::syncSoundSettings() {
if (ConfMan.hasKey("mute"))
mute = ConfMan.getBool("mute");
// We need to handle the speech mute separately here. This is because the
// engine code should be able to rely on all speech sounds muted when the
// user specified subtitles only mode, which results in "speech_mute" to
// be set to "true". The global mute setting has precedence over the
// speech mute setting though.
bool speechMute = mute;
if (!speechMute)
speechMute = ConfMan.getBool("speech_mute");
_mixer->muteSoundType(Audio::Mixer::kPlainSoundType, mute);
_mixer->muteSoundType(Audio::Mixer::kMusicSoundType, mute);
_mixer->muteSoundType(Audio::Mixer::kSFXSoundType, mute);
_mixer->muteSoundType(Audio::Mixer::kSpeechSoundType, mute);
_mixer->muteSoundType(Audio::Mixer::kSpeechSoundType, speechMute);
_mixer->setVolumeForSoundType(Audio::Mixer::kPlainSoundType, Audio::Mixer::kMaxMixerVolume);
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, soundVolumeMusic);
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, soundVolumeSFX);