aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Kołodziejski2004-06-20 21:01:32 +0000
committerPaweł Kołodziejski2004-06-20 21:01:32 +0000
commit8b789937c6d02f7043ab5d490ebf9a7baae9aae9 (patch)
tree3e57d59f21bb37a624e1533a0842d9fa80cc64c3
parent80216dc6d672e7a8d65496971b3adb3ae308192b (diff)
downloadscummvm-rg350-8b789937c6d02f7043ab5d490ebf9a7baae9aae9.tar.gz
scummvm-rg350-8b789937c6d02f7043ab5d490ebf9a7baae9aae9.tar.bz2
scummvm-rg350-8b789937c6d02f7043ab5d490ebf9a7baae9aae9.zip
changed check to _insaneRunning
svn-id: r13986
-rw-r--r--scumm/imuse_digi/dimuse_script.cpp4
-rw-r--r--scumm/imuse_digi/dimuse_track.cpp1
-rw-r--r--scumm/script_v6.cpp4
-rw-r--r--scumm/scumm.cpp1
-rw-r--r--scumm/scumm.h3
5 files changed, 9 insertions, 4 deletions
diff --git a/scumm/imuse_digi/dimuse_script.cpp b/scumm/imuse_digi/dimuse_script.cpp
index 2209ff023c..64a2e384e4 100644
--- a/scumm/imuse_digi/dimuse_script.cpp
+++ b/scumm/imuse_digi/dimuse_script.cpp
@@ -163,8 +163,7 @@ void IMuseDigital::flushTracks() {
debug(5, "flushTracks()");
for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) {
Track *track = _track[l];
- if (track->used &&
- (track->readyToRemove || (!_vm->_videoFinished && track->toBeRemoved))) {
+ if (track->used && (track->readyToRemove || (_vm->_insaneRunning && track->toBeRemoved))) {
if ((track->stream) && (!track->stream->endOfStream())) {
track->stream->finish();
} else if ((track->stream) && (track->stream->endOfStream())) {
@@ -375,6 +374,7 @@ void IMuseDigital::stopAllSounds() {
if (!foundNotRemoved)
break;
flushTracks();
+ _vm->_system->delay_msecs(50);
}
}
diff --git a/scumm/imuse_digi/dimuse_track.cpp b/scumm/imuse_digi/dimuse_track.cpp
index 0b24a894a3..bbdae9d127 100644
--- a/scumm/imuse_digi/dimuse_track.cpp
+++ b/scumm/imuse_digi/dimuse_track.cpp
@@ -179,6 +179,7 @@ void IMuseDigital::startSound(int soundId, const char *soundName, int soundType,
track->used = true;
return;
}
+ _vm->_system->delay_msecs(50);
}
}
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index cf834cb7d6..d836c28442 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -2499,8 +2499,10 @@ void ScummEngine_v6::o6_kernelSetFunctions() {
const int insaneVarNum = ((_features & GF_DEMO) && (_features & GF_PC))
? 232 : 233;
- _insane->setSmushParams(speed);
+ _insaneRunning = true;
+ _insane->setSmushParams(speed);
_insane->runScene(insaneVarNum);
+ _insaneRunning = false;
}
}
break;
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp
index 7a857aa744..4d3fa6610c 100644
--- a/scumm/scumm.cpp
+++ b/scumm/scumm.cpp
@@ -352,6 +352,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
_smushFrameRate = 0;
_videoFinished = false;
_smushPaused = false;
+ _insaneRunning = false;
_quit = false;
_pauseDialog = NULL;
_optionsDialog = NULL;
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 383a3d415f..3da44b7d6c 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -394,7 +394,8 @@ public:
int _smushFrameRate;
bool _videoFinished;
bool _smushPaused;
-
+ bool _insaneRunning;
+
void pauseGame();
void restart();
void shutDown();