aboutsummaryrefslogtreecommitdiff
path: root/engines/voyeur/events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/voyeur/events.cpp')
-rw-r--r--engines/voyeur/events.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/engines/voyeur/events.cpp b/engines/voyeur/events.cpp
index eb793d3142..6d38dc4695 100644
--- a/engines/voyeur/events.cpp
+++ b/engines/voyeur/events.cpp
@@ -104,7 +104,12 @@ void EventsManager::startMainClockInt() {
}
void EventsManager::mainVoyeurIntFunc() {
- // TODO
+ if (!(_vm->_voy._field478 & 1)) {
+ ++_vm->_voy._switchBGNum;
+ ++_vm->_voy._RTVNum;
+ if (_vm->_voy._RTVNum >= _vm->_voy._field4F2)
+ _vm->_voy._field4F0 = 1;
+ }
}
void EventsManager::vStopCycle() {
@@ -147,6 +152,9 @@ void EventsManager::checkForNextFrameCounter() {
// Run the timer-based updates
voyeurTimer();
+ if ((_gameCounter % GAME_FRAME_RATE) == 0)
+ mainVoyeurIntFunc();
+
// Display the frame
g_system->copyRectToScreen((byte *)_vm->_graphicsManager._screenSurface.getPixels(),
SCREEN_WIDTH, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
@@ -193,6 +201,7 @@ void EventsManager::voyeurTimer() {
(this->*node._intFunc)();
}
+
}
void EventsManager::videoTimer() {
@@ -423,6 +432,8 @@ void EventsManager::hideCursor() {
}
void EventsManager::getMouseInfo() {
+ pollEvents();
+
if (_vm->_voy._field478 & 0x10) {
if ((_gameCounter - _joe) > 8) {
_joe = _gameCounter;
@@ -454,7 +465,8 @@ void EventsManager::startCursorBlink() {
}
void EventsManager::incrementTime(int amt) {
- error("TODO: incrementTime");
+ for (int i = 0; i < amt; ++i)
+ mainVoyeurIntFunc();
}
} // End of namespace Voyeur