diff options
-rw-r--r-- | engines/sci/sfx/music.cpp | 2 | ||||
-rw-r--r-- | engines/sci/sfx/soundcmd.cpp | 3 |
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 |