SCI32: Fix music volume not being restored after speech in Torin

This was a regression introduced by
d556dcc57b.
This commit is contained in:
Colin Snover 2017-10-06 13:15:16 -05:00
parent 93c8044f69
commit 42180527c4
2 changed files with 3 additions and 9 deletions

View file

@ -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);

View file

@ -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;