diff options
Diffstat (limited to 'engines/mads/events.cpp')
-rw-r--r-- | engines/mads/events.cpp | 26 |
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 |