aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/timer_eob.cpp
diff options
context:
space:
mode:
authorathrxx2011-07-18 01:22:58 +0200
committerJohannes Schickel2011-12-26 16:18:12 +0100
commit9140fd8e91882250e23e2e4b44bf3088f3da827a (patch)
tree37deb0048ed88ffff3995ab230535f92cb16842f /engines/kyra/timer_eob.cpp
parentdb83458330310072c743d5acc7e1a470c888ec3b (diff)
downloadscummvm-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.cpp17
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) {