aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-05-17 09:32:16 +0000
committerMartin Kiewitz2010-05-17 09:32:16 +0000
commit4119fdb9a93207f9de5e925e1d095ca5dd6348b1 (patch)
tree619f752a65bef11bed58e45e9237e4973d97fced
parent8b59e45e6e8ffdd733abaa53d6ee4eea7ee6bc5d (diff)
downloadscummvm-rg350-4119fdb9a93207f9de5e925e1d095ca5dd6348b1.tar.gz
scummvm-rg350-4119fdb9a93207f9de5e925e1d095ca5dd6348b1.tar.bz2
scummvm-rg350-4119fdb9a93207f9de5e925e1d095ca5dd6348b1.zip
SCI: adding speed throttler special case for iceman / submarine control room
svn-id: r49056
-rw-r--r--engines/sci/engine/kmisc.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index 288f8b6387..96241b8b7c 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -56,12 +56,18 @@ reg_t kGameIsRestarting(EngineState *s, int argc, reg_t *argv) {
s->restarting_flags &= ~SCI_GAME_WAS_RESTARTED;
}
+ 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 (s->_gameId == "lsl3" && s->currentRoomNumber() == 290)
s->_throttleTrigger = true;
+ if (s->_gameId == "iceman" && s->currentRoomNumber() == 27) {
+ s->_throttleTrigger = true;
+ neededSleep = 60;
+ }
if (s->_throttleTrigger) {
// Some games seem to get the duration of main loop initially and then switch of animations for the whole game
@@ -74,7 +80,6 @@ reg_t kGameIsRestarting(EngineState *s, int argc, reg_t *argv) {
uint32 curTime = g_system->getMillis();
uint32 duration = curTime - s->_throttleLastTime;
- uint32 neededSleep = 30;
if (duration < neededSleep) {
s->_event->sleep(neededSleep - duration);