aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/events.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2013-06-01 22:14:59 -0400
committerPaul Gilbert2013-06-01 22:14:59 -0400
commitf70fd947327495b8c4ff9e595c1371dbcd43cd3f (patch)
tree068be982810212c85bbc4849bda5f1f9c13a8632 /engines/voyeur/events.cpp
parente9e596e741b70a9a6b3481732ca2dd37adefe8f6 (diff)
downloadscummvm-rg350-f70fd947327495b8c4ff9e595c1371dbcd43cd3f.tar.gz
scummvm-rg350-f70fd947327495b8c4ff9e595c1371dbcd43cd3f.tar.bz2
scummvm-rg350-f70fd947327495b8c4ff9e595c1371dbcd43cd3f.zip
VOYEUR: Added in debugger and adding event manager methods
Diffstat (limited to 'engines/voyeur/events.cpp')
-rw-r--r--engines/voyeur/events.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/engines/voyeur/events.cpp b/engines/voyeur/events.cpp
index c43c810b88..3202cb3b1f 100644
--- a/engines/voyeur/events.cpp
+++ b/engines/voyeur/events.cpp
@@ -27,6 +27,9 @@ namespace Voyeur {
EventsManager::EventsManager() {
_cycleStatus = 0;
+ _mouseButton = 0;
+ _priorFrameTime = g_system->getMillis();
+ Common::fill(&_keyState[0], &_keyState[256], false);
}
void EventsManager::resetMouse() {
@@ -71,4 +74,57 @@ void EventsManager::sWaitFlip() {
}
}
+void EventsManager::checkForNextFrameCounter() {
+ // Check for next game frame
+ uint32 milli = g_system->getMillis();
+ if ((milli - _priorFrameTime) >= GAME_FRAME_TIME) {
+ ++_gameCounter;
+ _priorFrameTime = milli;
+
+ // Signal the ScummVM debugger
+ _vm->_debugger.onFrame();
+ }
+}
+
+void EventsManager::delay(int totalMilli) {
+ uint32 delayEnd = g_system->getMillis() + totalMilli;
+
+ while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd) {
+ g_system->delayMillis(10);
+ }
+}
+
+void EventsManager::pollEvents() {
+ checkForNextFrameCounter();
+
+ Common::Event event;
+ while (g_system->getEventManager()->pollEvent(event)) {
+ // Handle keypress
+ switch (event.type) {
+ case Common::EVENT_QUIT:
+ case Common::EVENT_RTL:
+ return;
+
+ case Common::EVENT_KEYDOWN:
+ _keyState[(byte)toupper(event.kbd.ascii)] = true;
+ return;
+ case Common::EVENT_KEYUP:
+ _keyState[(byte)toupper(event.kbd.ascii)] = false;
+ return;
+ case Common::EVENT_LBUTTONDOWN:
+ _mouseButton = 1;
+ return;
+ case Common::EVENT_RBUTTONDOWN:
+ _mouseButton = 2;
+ return;
+ case Common::EVENT_LBUTTONUP:
+ case Common::EVENT_RBUTTONUP:
+ _mouseButton = 0;
+ return;
+ default:
+ break;
+ }
+ }
+}
+
} // End of namespace Voyeur