aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra_v1.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2009-06-01 23:38:56 +0000
committerJohannes Schickel2009-06-01 23:38:56 +0000
commit9a0fff429f51832aafd1ad17fad94c206b68ffb5 (patch)
tree9249036044b7e4f45dbee6dbd1fe06e971fbe1c0 /engines/kyra/kyra_v1.cpp
parentfb93062def9f8f3a67c9a8aa5715094bc67f8e8b (diff)
downloadscummvm-rg350-9a0fff429f51832aafd1ad17fad94c206b68ffb5.tar.gz
scummvm-rg350-9a0fff429f51832aafd1ad17fad94c206b68ffb5.tar.bz2
scummvm-rg350-9a0fff429f51832aafd1ad17fad94c206b68ffb5.zip
- Remove LoLEngine::delayUntil it was identical to KyraEngine_v1 in its functionallity anyway
- Change KyraEngine_v1::delayUntil to a somewhat more LoLEngine::delayUntil like implementation svn-id: r41117
Diffstat (limited to 'engines/kyra/kyra_v1.cpp')
-rw-r--r--engines/kyra/kyra_v1.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp
index a5e6503d7c..f3ba67a265 100644
--- a/engines/kyra/kyra_v1.cpp
+++ b/engines/kyra/kyra_v1.cpp
@@ -476,9 +476,15 @@ int KyraEngine_v1::resetGameFlag(int flag) {
}
void KyraEngine_v1::delayUntil(uint32 timestamp, bool updateTimers, bool update, bool isMainLoop) {
- while (_system->getMillis() < timestamp && !shouldQuit()) {
- if (timestamp - _system->getMillis() >= 10)
- delay(10, update, isMainLoop);
+ const uint32 curTime = _system->getMillis();
+ if (curTime > timestamp)
+ return;
+
+ uint32 del = timestamp - curTime;
+ while (del && !shouldQuit()) {
+ uint32 step = MIN<uint32>(del, _tickLength);
+ delay(step, update, isMainLoop);
+ del -= step;
}
}