aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/police_maze.cpp
diff options
context:
space:
mode:
authorThanasis Antoniou2019-06-26 16:17:48 +0300
committerThanasis Antoniou2019-06-26 16:17:48 +0300
commit8f74f0f47ea3f1d956b5a21124d13d9a9a113241 (patch)
tree8967f00f0c8444c9708448b2f018b8fe288a2810 /engines/bladerunner/script/police_maze.cpp
parente60aac53b1d2d19a1f3a33a2581a514e8b571981 (diff)
downloadscummvm-rg350-8f74f0f47ea3f1d956b5a21124d13d9a9a113241.tar.gz
scummvm-rg350-8f74f0f47ea3f1d956b5a21124d13d9a9a113241.tar.bz2
scummvm-rg350-8f74f0f47ea3f1d956b5a21124d13d9a9a113241.zip
BLADERUNNER: Correct fix for maze target timings
Still only applies in Hard and Normal mode difficulty
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;
}