diff options
-rw-r--r-- | engines/sci/sound/midiparser_sci.cpp | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp index 4172d05888..2a86ef8942 100644 --- a/engines/sci/sound/midiparser_sci.cpp +++ b/engines/sci/sound/midiparser_sci.cpp @@ -673,30 +673,28 @@ void MidiParser_SCI::setVolume(byte volume) { } assert(volume <= MUSIC_VOLUME_MAX); - if (_volume != volume) { - _volume = volume; - - switch (_soundVersion) { - case SCI_VERSION_0_EARLY: - case SCI_VERSION_0_LATE: { - // SCI0 adlib driver doesn't support channel volumes, so we need to go this way - // TODO: this should take the actual master volume into account - int16 globalVolume = _volume * 15 / 127; - ((MidiPlayer *)_driver)->setVolume(globalVolume); - break; - } + _volume = volume; + + switch (_soundVersion) { + case SCI_VERSION_0_EARLY: + case SCI_VERSION_0_LATE: { + // SCI0 adlib driver doesn't support channel volumes, so we need to go this way + // TODO: this should take the actual master volume into account + int16 globalVolume = _volume * 15 / 127; + ((MidiPlayer *)_driver)->setVolume(globalVolume); + break; + } - case SCI_VERSION_1_EARLY: - case SCI_VERSION_1_LATE: - // Send previous channel volumes again to actually update the volume - for (int i = 0; i < 15; i++) - if (_channelRemap[i] != -1) - sendToDriver(0xB0 + i, 7, _channelVolume[i]); - break; + case SCI_VERSION_1_EARLY: + case SCI_VERSION_1_LATE: + // Send previous channel volumes again to actually update the volume + for (int i = 0; i < 15; i++) + if (_channelRemap[i] != -1) + sendToDriver(0xB0 + i, 7, _channelVolume[i]); + break; - default: - error("MidiParser_SCI::setVolume: Unsupported soundVersion"); - } + default: + error("MidiParser_SCI::setVolume: Unsupported soundVersion"); } } |