diff --git a/engines/access/events.cpp b/engines/access/events.cpp index 1184128ffd5b..73feefee97ec 100644 --- a/engines/access/events.cpp +++ b/engines/access/events.cpp @@ -148,7 +148,15 @@ void EventsManager::checkForNextFrameCounter() { // Signal the ScummVM debugger _vm->_debugger->onFrame(); + + // TODO: Refactor for dirty rects + _vm->_screen->updateScreen(); } } +void EventsManager::delay(int time) { + g_system->delayMillis(time); +} + + } // End of namespace Access diff --git a/engines/access/events.h b/engines/access/events.h index 2e6b06b5e2ba..55f04f17afae 100644 --- a/engines/access/events.h +++ b/engines/access/events.h @@ -88,6 +88,8 @@ class EventsManager { bool isCursorVisible(); void pollEvents(); + + void delay(int time); }; } // End of namespace Access diff --git a/engines/access/room.cpp b/engines/access/room.cpp index 4996527b7497..d3f0f8ff064d 100644 --- a/engines/access/room.cpp +++ b/engines/access/room.cpp @@ -84,6 +84,10 @@ void Room::doRoom() { _vm->_screen->fadeIn(); } + // TODO: Game loop doesn't seem to have any delay. For now, + // introduce a slight delay here + _vm->_events->delay(50); + // Handle any events _vm->_events->pollEvents(); diff --git a/engines/access/screen.cpp b/engines/access/screen.cpp index b47cd3e005eb..cdd5f2021ebe 100644 --- a/engines/access/screen.cpp +++ b/engines/access/screen.cpp @@ -64,6 +64,8 @@ void Screen::setPanel(int num) { } void Screen::updateScreen() { + g_system->copyRectToScreen((byte *)getPixels(), this->pitch, 0, 0, + this->w, this->h); g_system->updateScreen(); }