diff options
author | athrxx | 2011-07-18 01:22:58 +0200 |
---|---|---|
committer | Johannes Schickel | 2011-12-26 16:18:12 +0100 |
commit | 9140fd8e91882250e23e2e4b44bf3088f3da827a (patch) | |
tree | 37deb0048ed88ffff3995ab230535f92cb16842f /engines/kyra/timer_eob.cpp | |
parent | db83458330310072c743d5acc7e1a470c888ec3b (diff) | |
download | scummvm-rg350-9140fd8e91882250e23e2e4b44bf3088f3da827a.tar.gz scummvm-rg350-9140fd8e91882250e23e2e4b44bf3088f3da827a.tar.bz2 scummvm-rg350-9140fd8e91882250e23e2e4b44bf3088f3da827a.zip |
KYRA: (EOB) - implement party resting
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) { |