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;  		}  | 
