aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/police_maze.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/police_maze.cpp')
-rw-r--r--engines/bladerunner/script/police_maze.cpp23
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;
}