aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorThanasis Antoniou2019-06-21 14:55:26 +0300
committerThanasis Antoniou2019-06-21 16:09:58 +0300
commit12b5dde457cb69e7e8e7136628889f57f4ecfd04 (patch)
tree6bec8c5a4126a53127e90642ae984acd0298d297 /engines
parent80f163b0fc7fc033aa99b829f626784804bf5176 (diff)
downloadscummvm-rg350-12b5dde457cb69e7e8e7136628889f57f4ecfd04.tar.gz
scummvm-rg350-12b5dde457cb69e7e8e7136628889f57f4ecfd04.tar.bz2
scummvm-rg350-12b5dde457cb69e7e8e7136628889f57f4ecfd04.zip
BLADERUNNER: Fix max volume in VQAs with audio stream
Closes #10987
Diffstat (limited to 'engines')
-rw-r--r--engines/bladerunner/audio_player.cpp2
-rw-r--r--engines/bladerunner/bladerunner.cpp38
-rw-r--r--engines/bladerunner/vqa_player.cpp3
3 files changed, 22 insertions, 21 deletions
diff --git a/engines/bladerunner/audio_player.cpp b/engines/bladerunner/audio_player.cpp
index 8673fab2f6..4fb2fef5af 100644
--- a/engines/bladerunner/audio_player.cpp
+++ b/engines/bladerunner/audio_player.cpp
@@ -48,7 +48,7 @@ AudioPlayer::AudioPlayer(BladeRunnerEngine *vm) {
_tracks[i].stream = nullptr;
}
- _sfxVolume =BLADERUNNER_ORIGINAL_SETTINGS ? 65 : 100;
+ _sfxVolume = BLADERUNNER_ORIGINAL_SETTINGS ? 65 : 100;
}
AudioPlayer::~AudioPlayer() {
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 0966b6cf8e..45bd857d0f 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -465,20 +465,6 @@ bool BladeRunnerEngine::startup(bool hasSavegames) {
_gameFlags = new GameFlags();
_gameFlags->setFlagCount(_gameInfo->getFlagCount());
- // Assign default values to the ScummVM configuration manager, in case settings are missing
- ConfMan.registerDefault("subtitles", "true");
- ConfMan.registerDefault("sfx_volume", 192);
- ConfMan.registerDefault("music_volume", 192);
- ConfMan.registerDefault("speech_volume", 192);
- ConfMan.registerDefault("mute", "false");
- ConfMan.registerDefault("speech_mute", "false");
-
- // get value from the ScummVM configuration manager
- syncSoundSettings();
-
- _sitcomMode = ConfMan.getBool("sitcom");
- _shortyMode = ConfMan.getBool("shorty");
-
_items = new Items(this);
_audioCache = new AudioCache();
@@ -493,6 +479,19 @@ bool BladeRunnerEngine::startup(bool hasSavegames) {
_ambientSounds = new AmbientSounds(this);
+ // Assign default values to the ScummVM configuration manager, in case settings are missing
+ ConfMan.registerDefault("subtitles", "true");
+ ConfMan.registerDefault("sfx_volume", 192);
+ ConfMan.registerDefault("music_volume", 192);
+ ConfMan.registerDefault("speech_volume", 192);
+ ConfMan.registerDefault("mute", "false");
+ ConfMan.registerDefault("speech_mute", "false");
+
+ // get value from the ScummVM configuration manager
+ syncSoundSettings();
+
+ _sitcomMode = ConfMan.getBool("sitcom");
+ _shortyMode = ConfMan.getBool("shorty");
// BLADE.INI was read here, but it was replaced by ScummVM configuration
_chapters = new Chapters(this);
@@ -1844,16 +1843,17 @@ void BladeRunnerEngine::syncSoundSettings() {
_mixer->setVolumeForSoundType(_mixer->kMusicSoundType, ConfMan.getInt("music_volume"));
_mixer->setVolumeForSoundType(_mixer->kSFXSoundType, ConfMan.getInt("sfx_volume"));
_mixer->setVolumeForSoundType(_mixer->kSpeechSoundType, ConfMan.getInt("speech_volume"));
-
// debug("syncSoundSettings: Volumes synced as Music: %d, Sfx: %d, Speech: %d", ConfMan.getInt("music_volume"), ConfMan.getInt("sfx_volume"), ConfMan.getInt("speech_volume"));
+ bool allSoundIsMuted = false;
if (ConfMan.hasKey("mute")) {
- _mixer->muteSoundType(_mixer->kMusicSoundType, ConfMan.getBool("mute"));
- _mixer->muteSoundType(_mixer->kSFXSoundType, ConfMan.getBool("mute"));
- _mixer->muteSoundType(_mixer->kSpeechSoundType, ConfMan.getBool("mute"));
+ allSoundIsMuted = ConfMan.getBool("mute");
+ _mixer->muteSoundType(_mixer->kMusicSoundType, allSoundIsMuted);
+ _mixer->muteSoundType(_mixer->kSFXSoundType, allSoundIsMuted);
+ _mixer->muteSoundType(_mixer->kSpeechSoundType, allSoundIsMuted);
}
- if (ConfMan.hasKey("speech_mute")) {
+ if (ConfMan.hasKey("speech_mute") && !allSoundIsMuted) {
// if true it means show only subtitles
// "subtitles" key will already be set appropriately by Engine::syncSoundSettings();
// but we need to mute the speech
diff --git a/engines/bladerunner/vqa_player.cpp b/engines/bladerunner/vqa_player.cpp
index 05ce15d72b..4925ca73da 100644
--- a/engines/bladerunner/vqa_player.cpp
+++ b/engines/bladerunner/vqa_player.cpp
@@ -24,6 +24,7 @@
#include "bladerunner/bladerunner.h"
#include "bladerunner/time.h"
+#include "bladerunner/audio_player.h"
#include "audio/decoders/raw.h"
@@ -134,7 +135,7 @@ int VQAPlayer::update(bool forceDraw, bool advanceFrame, bool useTime, Graphics:
queueAudioFrame(_decoder.decodeAudioFrame());
}
}
- _vm->_mixer->playStream(Audio::Mixer::kPlainSoundType, &_soundHandle, _audioStream);
+ _vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle, _audioStream);
_audioStarted = true;
}
if (_frameNext + audioPreloadFrames < _frameEnd) {