From eb610d66bdff66a6a768ab9fc7409a17959b17ab Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 3 Mar 2009 11:08:03 +0000 Subject: Corrected click handling when a text message is displaying to properly dismiss the text, rather than trying to immediately perform another action svn-id: r39088 --- engines/cruise/cruise_main.cpp | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'engines/cruise') 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); -- cgit v1.2.3