From e57e16e2952f1576cb33ed5069ada14e26986b72 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 23 Jul 2014 02:39:51 +0200 Subject: SCUMM: Use correct sound type for digital sfx. This makes sure that digital sfx in pre digital iMuse games are using the SFX sound type rather than the speech sound type. This allows proper volume control. --- engines/scumm/sound.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp index 7f045517bc..7c48a96351 100644 --- a/engines/scumm/sound.cpp +++ b/engines/scumm/sound.cpp @@ -658,7 +658,11 @@ void Sound::startTalkSound(uint32 offset, uint32 b, int mode, Audio::SoundHandle _vm->_imuseDigital->startVoice(kTalkSoundID, input); #endif } else { - _mixer->playStream(Audio::Mixer::kSpeechSoundType, handle, input, id); + if (mode == 1) { + _mixer->playStream(Audio::Mixer::kSFXSoundType, handle, input, id); + } else { + _mixer->playStream(Audio::Mixer::kSpeechSoundType, handle, input, id); + } } } } -- cgit v1.2.3 From 1efc311de08301271ab72ec310e1d5a972846186 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 23 Jul 2014 02:39:51 +0200 Subject: SCUMM: Make sure digital SFX are played even when speech is muted. This makes sure that digital SFX are started even when speech is muted (when using subtitles only mode). This is, for example, noticable in the Sam&Max CD intro. --- engines/scumm/sound.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp index 7c48a96351..cb428d1c15 100644 --- a/engines/scumm/sound.cpp +++ b/engines/scumm/sound.cpp @@ -851,9 +851,6 @@ void Sound::soundKludge(int *list, int num) { } void Sound::talkSound(uint32 a, uint32 b, int mode, int channel) { - if (_vm->_game.version >= 5 && ConfMan.getBool("speech_mute")) - return; - if (mode == 1) { _talk_sound_a1 = a; _talk_sound_b1 = b; -- cgit v1.2.3 From 94f504f22a69177f591d2d2e9b856d9ad0bfbe20 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 23 Jul 2014 02:39:51 +0200 Subject: SCUMM: Fix Ctrl+t key code combination to affect speech mode. Formerly, the key code combination didn't unmute speech at all. --- engines/scumm/input.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp index 5e2566dc32..824dfec144 100644 --- a/engines/scumm/input.cpp +++ b/engines/scumm/input.cpp @@ -435,8 +435,9 @@ void ScummEngine_v6::processKeyboard(Common::KeyState lastKeyHit) { break; } - if (VAR_VOICE_MODE != 0xFF) - VAR(VAR_VOICE_MODE) = _voiceMode; + // We need to sync the current sound settings here to make sure that + // we actually update the mute state of speech properly. + syncSoundSettings(); return; } -- cgit v1.2.3