diff options
-rw-r--r-- | engines/bladerunner/script/police_maze.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/engines/bladerunner/script/police_maze.cpp b/engines/bladerunner/script/police_maze.cpp index f3f20b2354..68e2b672ed 100644 --- a/engines/bladerunner/script/police_maze.cpp +++ b/engines/bladerunner/script/police_maze.cpp @@ -260,24 +260,31 @@ bool PoliceMazeTargetTrack::tick() { _timeLeftUpdate -= timeDiff; if (_timeLeftUpdate > 0) { -#if !BLADERUNNER_ORIGINAL_BUGS - // this fix makes the targets appear according to their wait time - // but it might be too fast for easy or normal mode, so only do this for normal and hard modes - if (_vm->_settings->getDifficulty() > kGameDifficultyEasy) { - _time = oldTime; - } -#endif // !BLADERUNNER_ORIGINAL_BUGS return false; } - _timeLeftUpdate = 66; +#if BLADERUNNER_ORIGINAL_BUGS +#else + if (_vm->_settings->getDifficulty() > kGameDifficultyEasy) { + timeDiff = 0 - _timeLeftUpdate; + } +#endif // BLADERUNNER_ORIGINAL_BUGS + _timeLeftUpdate = 66; // update the target track 15 times per second if (_isPaused) { return false; } if (_isWaiting) { +#if BLADERUNNER_ORIGINAL_BUGS _timeLeftWait -= timeDiff; +#else + if (_vm->_settings->getDifficulty() == kGameDifficultyEasy) { + _timeLeftWait -= timeDiff; // original behavior + } else { + _timeLeftWait -= (timeDiff + _timeLeftUpdate); // this deducts an amount >= 66 + } +#endif // BLADERUNNER_ORIGINAL_BUGS if (_timeLeftWait > 0) { return true; } |