aboutsummaryrefslogtreecommitdiff
path: root/gob
diff options
context:
space:
mode:
Diffstat (limited to 'gob')
-rw-r--r--gob/inter.cpp2
-rw-r--r--gob/util.cpp14
-rw-r--r--gob/util.h3
3 files changed, 16 insertions, 3 deletions
diff --git a/gob/inter.cpp b/gob/inter.cpp
index 69ff7a0161..02a152ef54 100644
--- a/gob/inter.cpp
+++ b/gob/inter.cpp
@@ -931,7 +931,7 @@ void inter_keyFunc(void) {
if (flag != 1) {
if (flag != 2) {
- util_delay(flag);
+ util_longDelay(flag);
return;
}
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)
diff --git a/gob/util.h b/gob/util.h
index 9233667f45..11a0483433 100644
--- a/gob/util.h
+++ b/gob/util.h
@@ -46,6 +46,7 @@ int16 util_checkKey(void);
int16 util_getRandom(int16 max);
void util_getMouseState(int16 *pX, int16 *pY, int16 *pButtons);
void util_setMousePos(int16 x, int16 y);
+void util_longDelay(uint16 msecs);
void util_delay(uint16 msecs);
void util_beep(int16 freq);
uint32 util_getTimeKey(void);
@@ -67,7 +68,7 @@ void util_clearPalette(void);
void util_insertStr(const char *str1, char *str2, int16 pos);
void util_cutFromStr(char *str, int16 from, int16 cutlen);
int16 util_strstr(const char *str1, char *str2);
-void util_waitEndFrame(void);
+void util_waitEndFrame();
void util_setFrameRate(int16 rate);
void util_listInsertBack(Util_List * list, void *data);