aboutsummaryrefslogtreecommitdiff
path: root/sky
diff options
context:
space:
mode:
authorNicolas Bacca2004-03-05 08:53:31 +0000
committerNicolas Bacca2004-03-05 08:53:31 +0000
commit07d918ace29043a051ecfa91419277030e8c7c42 (patch)
tree16073988c0c595e2a6de20c8f0db77b03af1c09a /sky
parentde848a5d80a0669c9da2c915668cf4e9e5b945a3 (diff)
downloadscummvm-rg350-07d918ace29043a051ecfa91419277030e8c7c42.tar.gz
scummvm-rg350-07d918ace29043a051ecfa91419277030e8c7c42.tar.bz2
scummvm-rg350-07d918ace29043a051ecfa91419277030e8c7c42.zip
Yearly CE BASS intro synch fix
svn-id: r13199
Diffstat (limited to 'sky')
-rw-r--r--sky/intro.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/sky/intro.cpp b/sky/intro.cpp
index 75b37c639c..a9628905f5 100644
--- a/sky/intro.cpp
+++ b/sky/intro.cpp
@@ -794,7 +794,11 @@ bool Intro::floppyScrollFlirt(void) {
}
_system->copy_rect(scrollPos, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, GAME_SCREEN_HEIGHT);
_system->updateScreen();
+#ifndef _WIN32_WCE
if (!escDelay(40))
+#else
+ if (!escDelay(15))
+#endif
doContinue = false;
}
memcpy(_skyScreen->giveCurrent(), scrollPos, FRAME_SIZE);
@@ -887,6 +891,10 @@ bool Intro::escDelay(uint32 msecs) {
OSystem::Event event;
do {
+#ifdef _WIN32_WCE
+ uint32 startTimeLoop = _system->get_msecs();
+ uint32 delta;
+#endif
while (_system->poll_event(&event)) {
if (event.event_code == OSystem::EVENT_KEYDOWN) {
if (event.kbd.keycode == 27)
@@ -902,7 +910,15 @@ bool Intro::escDelay(uint32 msecs) {
uint8 nDelay = (msecs > 50) ? (50) : ((uint8)msecs);
#endif
_system->delay_msecs(nDelay);
+#ifdef _WIN32_WCE
+ delta = _system->get_msecs() - startTimeLoop;
+ if (delta > msecs)
+ break;
+ else
+ msecs -= delta;
+#else
msecs -= nDelay;
+#endif
} while (msecs > 0);
return true;
}