aboutsummaryrefslogtreecommitdiff
path: root/gob/util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gob/util.cpp')
-rw-r--r--gob/util.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/gob/util.cpp b/gob/util.cpp
index d0410d1649..eeaf569a5f 100644
--- a/gob/util.cpp
+++ b/gob/util.cpp
@@ -175,6 +175,15 @@ void util_setMousePos(int16 x, int16 y) {
g_system->warpMouse(x, y);
}
+void util_longDelay(uint16 msecs)
+{
+ uint32 time = g_system->getMillis() + msecs;
+ do {
+ util_processInput();
+ util_delay(10);
+ } while (g_system->getMillis() < time);
+}
+
void util_delay(uint16 msecs) {
g_system->delayMillis(msecs);
}
@@ -198,7 +207,9 @@ void util_waitMouseUp(void) {
int16 buttons;
do {
+ util_processInput();
util_getMouseState(&x, &y, &buttons);
+ if (buttons != 0) util_delay(10);
} while (buttons != 0);
}
@@ -208,7 +219,9 @@ void util_waitMouseDown(void) {
int16 buttons;
do {
+ util_processInput();
util_getMouseState(&x, &y, &buttons);
+ if (buttons == 0) util_delay(10);
} while (buttons == 0);
}
@@ -246,7 +259,6 @@ void util_waitEndFrame() {
if (timer_enabled) {
do {
time = util_getTimeKey();
-
} while (time - startFrameTime < frameWaitTime);
} else {
if (frameWaitTime - time > 0)