aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMartin Kiewitz2010-07-30 21:29:45 +0000
committerMartin Kiewitz2010-07-30 21:29:45 +0000
commit685c124a8e91dcec656258e7d8c11e1a735fe1cf (patch)
tree8a1a4551a9dcdfa0d77298ee80c22353e89d94da /engines
parent757f787a270676a38b165705c2e8b118bd5ca96d (diff)
downloadscummvm-rg350-685c124a8e91dcec656258e7d8c11e1a735fe1cf.tar.gz
scummvm-rg350-685c124a8e91dcec656258e7d8c11e1a735fe1cf.tar.bz2
scummvm-rg350-685c124a8e91dcec656258e7d8c11e1a735fe1cf.zip
SCI: speed throttler cleanup and iceman comment
svn-id: r51518
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/kmisc.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index 305e202ae9..f2026575de 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -55,16 +55,28 @@ reg_t kGameIsRestarting(EngineState *s, int argc, reg_t *argv) {
uint32 neededSleep = 30;
- // WORKAROUND: 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 (g_sci->getGameId() == GID_LSL3 && s->currentRoomNumber() == 290)
- s->_throttleTrigger = true;
- else if (g_sci->getGameId() == GID_ICEMAN && s->currentRoomNumber() == 27) {
- s->_throttleTrigger = true;
- neededSleep = 60;
+ // WORKAROUNDS:
+ switch (g_sci->getGameId()) {
+ case GID_LSL3:
+ // 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->currentRoomNumber() == 290)
+ s->_throttleTrigger = true;
+ break;
+ case GID_ICEMAN:
+ // In ICEMAN the submarine control room is not animating much, so it runs way too fast
+ // we calm it down even more otherwise especially fighting against other submarines
+ // is almost impossible
+ if (s->currentRoomNumber() == 27) {
+ s->_throttleTrigger = true;
+ neededSleep = 60;
+ }
+ break;
+ default:
+ break;
}
s->speedThrottler(neededSleep);