aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/sfx/music.cpp2
-rw-r--r--engines/sci/sfx/soundcmd.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/engines/sci/sfx/music.cpp b/engines/sci/sfx/music.cpp
index 96b43db1ae..8a5f55f7c0 100644
--- a/engines/sci/sfx/music.cpp
+++ b/engines/sci/sfx/music.cpp
@@ -572,8 +572,6 @@ void MusicEntry::doFade() {
// TODO: create onTimer within audio.cpp to do the handling there, if we do it in cmdUpdateCues it wont
// work right, because the last volume set won't get done at all. Also we are fading digital sound effects
// currently here in any case currently. Fade code should get moved to void SciMusic::onTimer()
- if (hCurrentAud)
- mixer->setChannelVolume(musicSlot->hCurrentAud, volume);
}
}
diff --git a/engines/sci/sfx/soundcmd.cpp b/engines/sci/sfx/soundcmd.cpp
index 5d610d6821..12c909493b 100644
--- a/engines/sci/sfx/soundcmd.cpp
+++ b/engines/sci/sfx/soundcmd.cpp
@@ -775,6 +775,7 @@ void SoundCommandParser::cmdUpdateCues(reg_t obj, int16 value) {
Audio::Mixer *mixer = g_system->getMixer();
if (musicSlot->pStreamAud) {
+
// TODO: We need to update loop selector here, when sample is looping
if (!mixer->isSoundHandleActive(musicSlot->hCurrentAud)) {
musicSlot->ticker = SIGNAL_OFFSET;
@@ -783,6 +784,8 @@ void SoundCommandParser::cmdUpdateCues(reg_t obj, int16 value) {
} else {
musicSlot->ticker = (uint16)(mixer->getSoundElapsedTime(musicSlot->hCurrentAud) * 0.06);
}
+ if (musicSlot->fadeStep)
+ mixer->setChannelVolume(musicSlot->hCurrentAud, musicSlot->volume);
}
_music->_mutex.lock(); // and lock again