aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kmisc.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-17 20:17:00 +0000
committerMartin Kiewitz2010-01-17 20:17:00 +0000
commit35c2469c0bd6e6af75c5642f52efd6e014abf4f5 (patch)
tree2c39ea9a4f360e92023a4fd07a49d1dac5c9e763 /engines/sci/engine/kmisc.cpp
parent22ea4eb621b3b6f3267157368958af556b1ce68a (diff)
downloadscummvm-rg350-35c2469c0bd6e6af75c5642f52efd6e014abf4f5.tar.gz
scummvm-rg350-35c2469c0bd6e6af75c5642f52efd6e014abf4f5.tar.bz2
scummvm-rg350-35c2469c0bd6e6af75c5642f52efd6e014abf4f5.zip
SCI: speed throttler - hardcoded exception for room 290/lsl3, should fix pushup count later in the game
svn-id: r47346
Diffstat (limited to 'engines/sci/engine/kmisc.cpp')
-rw-r--r--engines/sci/engine/kmisc.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index 7f1572d671..ef0e4d444c 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -56,9 +56,16 @@ reg_t kGameIsRestarting(EngineState *s, int argc, reg_t *argv) {
s->restarting_flags &= ~SCI_GAME_WAS_RESTARTED;
}
- // Some games seem to get the duration of main loop initially and then switch of animations for the whole game
- // based on that (qfg2, iceman). We are now running full speed initially to avoid that.
+ // LSL3 calculates a machinespeed variable during game startup (right after the filthy questions)
+ // This one would go through w/o throttling resulting in having to do 1000 pushups or something
+ // Another way of handling this would be delaying incrementing of "machineSpeed" selector
+ if (s->_gameId == "lsl3" && s->currentRoomNumber() == 290)
+ s->_throttleTrigger = true;
+
if (s->_throttleTrigger) {
+ // Some games seem to get the duration of main loop initially and then switch of animations for the whole game
+ // based on that (qfg2, iceman). We are now running full speed initially to avoid that.
+ // It seems like we dont need to do that anymore
//if (s->_throttleCounter < 50) {
// s->_throttleCounter++;
// return s->r_acc;