diff options
Diffstat (limited to 'engines/kyra/timer_eob.cpp')
-rw-r--r-- | engines/kyra/timer_eob.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/engines/kyra/timer_eob.cpp b/engines/kyra/timer_eob.cpp index f6e8b63dc1..00dc758a27 100644 --- a/engines/kyra/timer_eob.cpp +++ b/engines/kyra/timer_eob.cpp @@ -193,6 +193,23 @@ void EobCoreEngine::setupCharacterTimers() { } } +void EobCoreEngine::manualAdvanceTimer(int sysTimer, uint32 millis) { + if (sysTimer != 2) + return; + + uint32 ct = _system->getMillis(); + for (int i = 0; i < 6; i++) { + for (int ii = 0; ii < 10; ii++) { + if (_characters[i].timers[ii]) { + uint32 chrt = _characters[i].timers[ii] - ct; + _characters[i].timers[ii] = chrt > millis ? chrt - millis : 1; + } + } + } + + _timer->manualAdvance(millis); +} + void EobCoreEngine::timerProcessCharacterExchange(int timerNum) { _charExchangeSwap ^= 1; if (_charExchangeSwap) { |