aboutsummaryrefslogtreecommitdiff
path: root/engines/access/events.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-08-17 20:17:38 -0400
committerPaul Gilbert2014-08-17 20:17:38 -0400
commit483bca3d96b7012774d13875e78cfd8b649657f7 (patch)
treec23015914349f3154540a87abbb06bc150fbb862 /engines/access/events.cpp
parent9393f6d7559653a28166fe74da9745e95b76f85b (diff)
downloadscummvm-rg350-483bca3d96b7012774d13875e78cfd8b649657f7.tar.gz
scummvm-rg350-483bca3d96b7012774d13875e78cfd8b649657f7.tar.bz2
scummvm-rg350-483bca3d96b7012774d13875e78cfd8b649657f7.zip
ACCESS: Fixes for drawing bubble box backgrounds
Diffstat (limited to 'engines/access/events.cpp')
-rw-r--r--engines/access/events.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/engines/access/events.cpp b/engines/access/events.cpp
index 521e8895c8..71ed5f433e 100644
--- a/engines/access/events.cpp
+++ b/engines/access/events.cpp
@@ -112,9 +112,10 @@ bool EventsManager::isCursorVisible() {
return CursorMan.isVisible();
}
-void EventsManager::pollEvents(bool suppressFrames) {
- if (!suppressFrames)
- checkForNextFrameCounter();
+void EventsManager::pollEvents() {
+ if (checkForNextFrameCounter()) {
+ nextFrame();
+ }
Common::Event event;
while (g_system->getEventManager()->pollEvent(event)) {
@@ -158,24 +159,26 @@ void EventsManager::pollEvents(bool suppressFrames) {
}
}
-void EventsManager::checkForNextFrameCounter() {
+bool EventsManager::checkForNextFrameCounter() {
// Check for next game frame
uint32 milli = g_system->getMillis();
if ((milli - _priorFrameTime) >= GAME_FRAME_TIME) {
++_frameCounter;
_priorFrameTime = milli;
- nextFrame();
+ return true;
}
+
+ return false;
}
void EventsManager::nextFrame() {
- // Give time to the debugger
- _vm->_debugger->onFrame();
-
// Update timers
_vm->_animation->updateTimers();
+ // Give time to the debugger
+ _vm->_debugger->onFrame();
+
// TODO: Refactor for dirty rects
_vm->_screen->updateScreen();
}
@@ -199,13 +202,19 @@ bool EventsManager::getKey(Common::KeyState &key) {
void EventsManager::debounceLeft() {
while (_leftButton && !_vm->shouldQuit()) {
- pollEvents(true);
+ pollEvents();
g_system->delayMillis(10);
}
}
void EventsManager::waitKeyMouse() {
- error("TODO: waitKeyPress");
+ while (!_vm->shouldQuit() && !_leftButton && _keypresses.size() == 0) {
+ pollEvents();
+ g_system->delayMillis(10);
+ }
+
+ zeroKeys();
+ debounceLeft();
}
} // End of namespace Access