aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/events.cpp')
-rw-r--r--engines/mads/events.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/engines/mads/events.cpp b/engines/mads/events.cpp
index 70ca166aab..4b143ec0e2 100644
--- a/engines/mads/events.cpp
+++ b/engines/mads/events.cpp
@@ -177,9 +177,27 @@ void EventsManager::delay(int cycles) {
}
void EventsManager::waitForNextFrame() {
+ _mouseClicked = false;
+ _mouseReleased = false;
+ _mouseButtons = 0;
+
+ bool mouseClicked = false;
+ bool mouseReleased = false;
+ int mouseButtons = 0;
+
uint32 frameCtr = getFrameCounter();
- while (!_vm->shouldQuit() && frameCtr == _frameCounter)
+ while (!_vm->shouldQuit() && frameCtr == _frameCounter) {
delay(1);
+
+ mouseClicked |= _mouseClicked;
+ mouseReleased |= _mouseReleased;
+ mouseButtons |= _mouseButtons;
+ }
+
+ _mouseClicked = mouseClicked;
+ _mouseReleased = mouseReleased;
+ _mouseButtons = mouseButtons;
+ _mouseMoved = _mouseClicked || _mouseReleased;
}
void EventsManager::initVars() {
@@ -188,10 +206,4 @@ void EventsManager::initVars() {
_vD2 = _vD8 = 0;
}
-void EventsManager::resetMouseFlags() {
- _mouseClicked = false;
- _mouseReleased = false;
- _mouseButtons = 0;
-}
-
} // End of namespace MADS