aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorColin Snover2017-10-06 13:15:16 -0500
committerColin Snover2017-10-06 22:11:02 -0500
commit42180527c4d9df920ab1b77c78e9c5e36b93b74d (patch)
tree9b158852223d15af7b5e6edabd37f77866bdf0cb /engines/sci
parent93c8044f690306e23b5b3eb621207fbf57682c40 (diff)
downloadscummvm-rg350-42180527c4d9df920ab1b77c78e9c5e36b93b74d.tar.gz
scummvm-rg350-42180527c4d9df920ab1b77c78e9c5e36b93b74d.tar.bz2
scummvm-rg350-42180527c4d9df920ab1b77c78e9c5e36b93b74d.zip
SCI32: Fix music volume not being restored after speech in Torin
This was a regression introduced by d556dcc57bf50a03d81ab7a1ef59a9e5758465bf.
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sound/music.cpp8
-rw-r--r--engines/sci/sound/soundcmd.cpp4
2 files changed, 3 insertions, 9 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
index 5530952dcf..b2bd72e669 100644
--- a/engines/sci/sound/music.cpp
+++ b/engines/sci/sound/music.cpp
@@ -626,13 +626,7 @@ void SciMusic::soundStop(MusicEntry *pSnd) {
void SciMusic::soundSetVolume(MusicEntry *pSnd, byte volume) {
assert(volume <= MUSIC_VOLUME_MAX);
- if (pSnd->isSample) {
-#ifdef ENABLE_SCI32
- if (_soundVersion >= SCI_VERSION_2_1_EARLY) {
- g_sci->_audio32->setVolume(ResourceId(kResourceTypeAudio, pSnd->resourceId), pSnd->soundObj, volume);
- }
-#endif
- } else if (pSnd->pMidiParser) {
+ if (!pSnd->isSample && pSnd->pMidiParser) {
Common::StackLock lock(_mutex);
pSnd->pMidiParser->mainThreadBegin();
pSnd->pMidiParser->setVolume(volume);
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp
index 5a1c2c0825..54fdcf5f8f 100644
--- a/engines/sci/sound/soundcmd.cpp
+++ b/engines/sci/sound/soundcmd.cpp
@@ -739,8 +739,8 @@ reg_t SoundCommandParser::kDoSoundSetVolume(EngineState *s, int argc, reg_t *arg
#ifdef ENABLE_SCI32
// SSCI unconditionally sets volume if it is digital audio
if (_soundVersion >= SCI_VERSION_2_1_EARLY && musicSlot->isSample) {
- _music->soundSetVolume(musicSlot, value);
- } else
+ g_sci->_audio32->setVolume(ResourceId(kResourceTypeAudio, musicSlot->resourceId), musicSlot->soundObj, value);
+ }
#endif
if (musicSlot->volume != value) {
musicSlot->volume = value;