aboutsummaryrefslogtreecommitdiff
path: root/sword1
diff options
context:
space:
mode:
authorTravis Howell2004-01-28 04:11:06 +0000
committerTravis Howell2004-01-28 04:11:06 +0000
commit96e0a747f9ce7d9abf4409967d7af2a8c6de5080 (patch)
treeec38c14cec83f8fac985f05c15848872c73876e2 /sword1
parentece80a4a1f82abcef5c5aa0c12f665a89d7c85e2 (diff)
downloadscummvm-rg350-96e0a747f9ce7d9abf4409967d7af2a8c6de5080.tar.gz
scummvm-rg350-96e0a747f9ce7d9abf4409967d7af2a8c6de5080.tar.bz2
scummvm-rg350-96e0a747f9ce7d9abf4409967d7af2a8c6de5080.zip
Add fix from eriktorbjorn to make sure screen is always updated during cutscnes.
svn-id: r12654
Diffstat (limited to 'sword1')
-rw-r--r--sword1/animation.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/sword1/animation.cpp b/sword1/animation.cpp
index 9c0661ee2d..4f3fa9df69 100644
--- a/sword1/animation.cpp
+++ b/sword1/animation.cpp
@@ -307,6 +307,16 @@ bool AnimationState::decodeFrame() {
* dropping frames if we run behind and delaying if we are too fast
*/
+ /* FIXME: We shouldn't use delay_msecs() here.
+ * We should use something like the delay()
+ * function in SwordEngine, so that events are
+ * handled properly. For now, at least call the
+ * backend's event handler so that redraw
+ * events are processed.
+ */
+
+ OSystem::Event event;
+
#ifdef BACKEND_8BIT
if (checkPaletteSwitch() || (bgSoundStream == NULL) ||
(bgSoundStream->getSamplesPlayed()*12/bgSoundStream->getRate()) < (framenum+3)){
@@ -320,8 +330,7 @@ bool AnimationState::decodeFrame() {
while (_sys->get_msecs() < ticks)
_sys->delay_msecs(10);
}
-
-
+ _sys->poll_event(&event);
} else
warning("dropped frame %i", framenum);
@@ -341,6 +350,7 @@ bool AnimationState::decodeFrame() {
while (_sys->get_msecs() < ticks)
_sys->delay_msecs(10);
}
+ _sys->poll_event(&event);
} else
warning("dropped frame %i", framenum);