aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorPaweł Kołodziejski2008-01-01 15:05:27 +0000
committerPaweł Kołodziejski2008-01-01 15:05:27 +0000
commitcd84daf7f85646d9c4ae08dae1582a4238547d50 (patch)
treea172cb4d34ac2d742d5ce5911fe0734a0b96c315 /engines/scumm
parent79a9074548e0e988344cab3842a134559da0c8b5 (diff)
downloadscummvm-rg350-cd84daf7f85646d9c4ae08dae1582a4238547d50.tar.gz
scummvm-rg350-cd84daf7f85646d9c4ae08dae1582a4238547d50.tar.bz2
scummvm-rg350-cd84daf7f85646d9c4ae08dae1582a4238547d50.zip
experimental change to prevent play first region with fade out if jump opcode is attached
svn-id: r30117
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/imuse_digi/dimuse.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/scumm/imuse_digi/dimuse.cpp b/engines/scumm/imuse_digi/dimuse.cpp
index dba7e921b8..2f097e6c0e 100644
--- a/engines/scumm/imuse_digi/dimuse.cpp
+++ b/engines/scumm/imuse_digi/dimuse.cpp
@@ -385,6 +385,7 @@ void IMuseDigital::switchToNextRegion(Track *track) {
}
int num_regions = _sound->getNumRegions(track->soundDesc);
+ int previous_region = track->curRegion;
if (++track->curRegion == num_regions) {
flushTrack(track);
@@ -404,7 +405,7 @@ void IMuseDigital::switchToNextRegion(Track *track) {
int fadeDelay = (60 * _sound->getJumpFade(soundDesc, jumpId)) / 1000;
if (sampleHookId != 0) {
if (track->curHookId == sampleHookId) {
- if (fadeDelay != 0) {
+ if (fadeDelay != 0 && previous_region != -1) {
Track *fadeTrack = cloneToFadeOutTrack(track, fadeDelay);
if (fadeTrack) {
fadeTrack->dataOffset = _sound->getRegionOffset(fadeTrack->soundDesc, fadeTrack->curRegion);
@@ -418,7 +419,7 @@ void IMuseDigital::switchToNextRegion(Track *track) {
track->curHookId = 0;
}
} else {
- if (fadeDelay != 0) {
+ if (fadeDelay != 0 && previous_region != -1) {
Track *fadeTrack = cloneToFadeOutTrack(track, fadeDelay);
if (fadeTrack) {
fadeTrack->dataOffset = _sound->getRegionOffset(fadeTrack->soundDesc, fadeTrack->curRegion);