aboutsummaryrefslogtreecommitdiff
path: root/sky
diff options
context:
space:
mode:
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;
}