aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/cruise/cruise_main.cpp32
1 files changed, 21 insertions, 11 deletions
diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp
index 8f6736a34e..8d8ae71713 100644
--- a/engines/cruise/cruise_main.cpp
+++ b/engines/cruise/cruise_main.cpp
@@ -1262,6 +1262,22 @@ void closeAllMenu(void) {
linkedRelation = NULL;
}
+bool checkInput(int16 *buttonPtr) {
+ int16 handle, button;
+ Common::Point pt;
+
+ getMouseStatus(&handle, &pt.x, &button, &pt.y);
+
+ if (!button)
+ buttonDown = 0;
+ else if (!buttonDown && button) {
+ *buttonPtr = button;
+ buttonDown = 1;
+ }
+
+ return false;
+}
+
int processInput(void) {
int16 mouseX = 0;
int16 mouseY = 0;
@@ -1796,13 +1812,8 @@ void mainLoop(void) {
}
if (userWait) {
- int16 mouseButton;
- int16 mouseX;
- int16 mouseY;
-
- do {
- getMouseStatus(&main10, &mouseX, &mouseButton, &mouseY);
- } while (mouseButton);
+ int16 mouseButton = 0;
+ checkInput(&mouseButton);
while (!mouseButton) {
manageScripts(&relHead);
@@ -1813,13 +1824,12 @@ void mainLoop(void) {
processAnimation();
+ flip();
+
// not exactly this
manageEvents();
- int16 mouseVar;
- getMouseStatus(&mouseVar, &mouseX, &mouseButton, &mouseY);
-
- flip();
+ checkInput(&mouseButton);
}
changeScriptParamInList(-1, -1, &procHead, 9999, 0);