diff options
author | Paul Gilbert | 2013-06-01 22:14:59 -0400 |
---|---|---|
committer | Paul Gilbert | 2013-06-01 22:14:59 -0400 |
commit | f70fd947327495b8c4ff9e595c1371dbcd43cd3f (patch) | |
tree | 068be982810212c85bbc4849bda5f1f9c13a8632 /engines/voyeur/events.cpp | |
parent | e9e596e741b70a9a6b3481732ca2dd37adefe8f6 (diff) | |
download | scummvm-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.cpp | 56 |
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 |