diff options
-rw-r--r-- | scumm/imuse_digi/dimuse.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/scumm/imuse_digi/dimuse.cpp b/scumm/imuse_digi/dimuse.cpp index 7a1add676c..1c0eb5447b 100644 --- a/scumm/imuse_digi/dimuse.cpp +++ b/scumm/imuse_digi/dimuse.cpp @@ -246,20 +246,24 @@ void IMuseDigital::switchToNextRegion(int track) { int fadeDelay = (60 * _sound->getJumpFade(_track[track]->soundHandle, jumpId)) / 1000; if (sampleHookId != 0) { if (_track[track]->curHookId == sampleHookId) { - int fadeTrack = cloneToFadeOutTrack(track, fadeDelay, false); - _track[fadeTrack]->dataOffset = _sound->getRegionOffset(_track[fadeTrack]->soundHandle, _track[fadeTrack]->curRegion); - _track[fadeTrack]->regionOffset = 0; - debug(5, "switchToNextRegion-sound(%d) select %d region, curHookId: %d", _track[fadeTrack]->soundId, _track[fadeTrack]->curRegion, _track[fadeTrack]->curHookId); + if (fadeDelay != 0) { + int fadeTrack = cloneToFadeOutTrack(track, fadeDelay, false); + _track[fadeTrack]->dataOffset = _sound->getRegionOffset(_track[fadeTrack]->soundHandle, _track[fadeTrack]->curRegion); + _track[fadeTrack]->regionOffset = 0; + debug(5, "switchToNextRegion-sound(%d) select %d region, curHookId: %d", _track[fadeTrack]->soundId, _track[fadeTrack]->curRegion, _track[fadeTrack]->curHookId); + _track[fadeTrack]->curHookId = 0; + } _track[track]->curRegion = region; debug(5, "switchToNextRegion-sound(%d) jump to %d region, curHookId: %d", _track[track]->soundId, _track[track]->curRegion, _track[track]->curHookId); _track[track]->curHookId = 0; - _track[fadeTrack]->curHookId = 0; } } else { - int fadeTrack = cloneToFadeOutTrack(track, fadeDelay, false); - _track[fadeTrack]->dataOffset = _sound->getRegionOffset(_track[fadeTrack]->soundHandle, _track[fadeTrack]->curRegion); - _track[fadeTrack]->regionOffset = 0; - debug(5, "switchToNextRegion-sound(%d) select %d region, curHookId: %d", _track[fadeTrack]->soundId, _track[fadeTrack]->curRegion, _track[fadeTrack]->curHookId); + if (fadeDelay != 0) { + int fadeTrack = cloneToFadeOutTrack(track, fadeDelay, false); + _track[fadeTrack]->dataOffset = _sound->getRegionOffset(_track[fadeTrack]->soundHandle, _track[fadeTrack]->curRegion); + _track[fadeTrack]->regionOffset = 0; + debug(5, "switchToNextRegion-sound(%d) select %d region, curHookId: %d", _track[fadeTrack]->soundId, _track[fadeTrack]->curRegion, _track[fadeTrack]->curHookId); + } _track[track]->curRegion = region; debug(5, "switchToNextRegion-sound(%d) jump to %d region, curHookId: %d", _track[track]->soundId, _track[track]->curRegion, _track[track]->curHookId); } |