aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/events.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-12-31 11:12:18 -1000
committerPaul Gilbert2014-12-31 11:12:18 -1000
commit5c88d2cc42d9b6124f552464b9c02e800f3956df (patch)
tree8e29758709f81b2bdb431b7e691d81eea79e0642 /engines/xeen/events.cpp
parent9506635bad402d58886cc9a47512871b321a10a2 (diff)
downloadscummvm-rg350-5c88d2cc42d9b6124f552464b9c02e800f3956df.tar.gz
scummvm-rg350-5c88d2cc42d9b6124f552464b9c02e800f3956df.tar.bz2
scummvm-rg350-5c88d2cc42d9b6124f552464b9c02e800f3956df.zip
XEEN: Implement window framing code and dialog event handling
Diffstat (limited to 'engines/xeen/events.cpp')
-rw-r--r--engines/xeen/events.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/engines/xeen/events.cpp b/engines/xeen/events.cpp
index 54cc843dbb..fd0871edbc 100644
--- a/engines/xeen/events.cpp
+++ b/engines/xeen/events.cpp
@@ -94,6 +94,9 @@ void EventsManager::pollEvents() {
case Common::EVENT_KEYDOWN:
_keyCode = event.kbd.keycode;
break;
+ case Common::EVENT_MOUSEMOVE:
+ _mousePos = event.mouse;
+ break;
case Common::EVENT_LBUTTONDOWN:
_leftButton = true;
return;
@@ -168,6 +171,16 @@ uint32 EventsManager::timeElapsed() {
return _frameCounter - _gameCounter;
}
+bool EventsManager::wait(uint numFrames, bool interruptable) {
+ while (!_vm->shouldQuit() && timeElapsed() < numFrames) {
+ pollEventsAndWait();
+ if (interruptable && (_leftButton || _rightButton || isKeyPending()))
+ return true;
+ }
+
+ return false;
+}
+
/**
* Handles moving to the next game frame
*/