diff options
author | Thanasis Antoniou | 2019-03-22 23:56:40 +0200 |
---|---|---|
committer | Thanasis Antoniou | 2019-03-22 23:59:21 +0200 |
commit | a03dbae1f0d52d288db662cf70fc535ad42ac4b4 (patch) | |
tree | 16565d89f6831711604b98c65c230dd8d776fc1a | |
parent | 864cdd85f483824e765a4b35d658ef4c2f4506df (diff) | |
download | scummvm-rg350-a03dbae1f0d52d288db662cf70fc535ad42ac4b4.tar.gz scummvm-rg350-a03dbae1f0d52d288db662cf70fc535ad42ac4b4.tar.bz2 scummvm-rg350-a03dbae1f0d52d288db662cf70fc535ad42ac4b4.zip |
BLADERUNNER: All maze targets normalized
Max achievable score is verified 80 as it should be if all targets were normal
Since there are special targets (to be restored in the next commit) the max score with be above 80 and it's not a fixed value known in advance.
-rw-r--r-- | engines/bladerunner/script/scene/ps10.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps11.cpp | 10 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps12.cpp | 14 |
3 files changed, 20 insertions, 10 deletions
diff --git a/engines/bladerunner/script/scene/ps10.cpp b/engines/bladerunner/script/scene/ps10.cpp index 3934ebc7fb..431ee7d3b7 100644 --- a/engines/bladerunner/script/scene/ps10.cpp +++ b/engines/bladerunner/script/scene/ps10.cpp @@ -92,7 +92,6 @@ static const int *getPoliceMazePS10TrackData2() { // Enemy linked series (kItem #if BLADERUNNER_ORIGINAL_BUGS #else kPMTITargetSet, kItemPS10Target2, 0, // remove target-able here - only for Target2 item - kPMTIPausedReset, kItemPS10Target3, #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset, kItemPS10Target5, kPMTIPausedSet, kItemPS10Target2, @@ -102,7 +101,6 @@ static const int *getPoliceMazePS10TrackData2() { // Enemy linked series (kItem return trackData; } -// NOTE Track 3 is used only once as is; it's activated when entering the room static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) - Starts activated - Rotating reveal static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, @@ -138,7 +136,7 @@ static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) - #if BLADERUNNER_ORIGINAL_BUGS #else kPMTITargetSet, kItemPS10Target3, 0, // remove target-able here - kPMTIPausedSet, kItemPS10Target3, +// kPMTIPausedSet, kItemPS10Target3, // It is intentional (original) that kItemPS10Target3 does not get paused - This target loops on its own #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIRestart }; @@ -315,7 +313,7 @@ static const int *getPoliceMazePS10TrackData8() { // Enemy (kItemPS10Target8) - #if BLADERUNNER_ORIGINAL_BUGS kPMTIWait, 0, // this is too fast #else - kPMTIWait, 250, + kPMTIWait, 100, #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIShoot, 27, 33, kPMTIMove, 0, diff --git a/engines/bladerunner/script/scene/ps11.cpp b/engines/bladerunner/script/scene/ps11.cpp index d5118995a4..ad8be4a75e 100644 --- a/engines/bladerunner/script/scene/ps11.cpp +++ b/engines/bladerunner/script/scene/ps11.cpp @@ -255,7 +255,11 @@ static const int *getPoliceMazePS11TrackData14() { // Enemy (kItemPS11Target6) kPMTIObstacleReset, kItemPS11Target6, kPMTITargetSet, kItemPS11Target6, 1, kPMTIEnemyReset, kItemPS11Target6, - kPMTIFacing, 900, +#if BLADERUNNER_ORIGINAL_BUGS + kPMTIFacing, 900, // orientation is wrong here - should conceal the gun entirely +#else + kPMTIFacing, 750, // corrected orientation +#endif // BLADERUNNER_ORIGINAL_BUGS kPMTIPosition, 0, kPMTIWaitRandom, 3000, 6000, kPMTIObstacleSet, kItemPS11Target6, @@ -267,9 +271,9 @@ static const int *getPoliceMazePS11TrackData14() { // Enemy (kItemPS11Target6) kPMTIRotate, 644, 80, kPMTIWait, 0, #if BLADERUNNER_ORIGINAL_BUGS -1 kPMTIRotate, 388, 80, // TODO fix orientation here +1 kPMTIRotate, 388, 80, // orientation is wrong here #else - kPMTIRotate, 280, 80, // corrected orientation + kPMTIRotate, 260, 80, // corrected orientation #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIWait, 1000, kPMTIShoot, 27, 33, diff --git a/engines/bladerunner/script/scene/ps12.cpp b/engines/bladerunner/script/scene/ps12.cpp index 66b4a89112..b717dc65bc 100644 --- a/engines/bladerunner/script/scene/ps12.cpp +++ b/engines/bladerunner/script/scene/ps12.cpp @@ -377,7 +377,9 @@ static const int *getPoliceMazePS12TrackData36() { // Enemy (kItemPS12Target6, return trackData; } -static const int *getPoliceMazePS12TrackData37() { // Innocent (kItemPS12Target9) - Starts activated +// kItemPS12Target9 and kItemPS12Target10 go together (innocent and enemy who uses innocent as a human shield) +// They count as one activated target, but they are credited separately (+1 for not shooting the innocent, +1 for shooting the enemy) +static const int *getPoliceMazePS12TrackData37() { // Special: Innocent (kItemPS12Target9) - Starts activated, goes together with enemy kItemPS12Target10 (not same target) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, kPMTIVariableInc, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, @@ -387,7 +389,7 @@ static const int *getPoliceMazePS12TrackData37() { // Innocent (kItemPS12Target #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS12Target9, kPMTIWaitRandom, 3000, 6000, - kPMTIPausedReset, kItemPS12Target10, // TODO MAZE A bug? intended? Why is kItemPS12Target10 unpaused so early? + kPMTIPausedReset, kItemPS12Target10, // kItemPS12Target10 unpaused early since he is the enemy using kItemPS12Target9 as human shield kPMTIFacing, 1010, kPMTIPosition, 0, kPMTIWait, 2000, @@ -416,6 +418,8 @@ static const int *getPoliceMazePS12TrackData38() { // Enemy (kItemPS12Target10) static int trackData[] = { #if BLADERUNNER_ORIGINAL_BUGS #else + kPMTIActivate, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // TODO MAZE A bug? intended? Missing activate instruction + kPMTIVariableInc, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // TODO MAZE A bug? intended? Missing increase counter instruction kPMTITargetSet, kItemPS12Target10, 0, // remove target-able here #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS12Target10, @@ -560,10 +564,14 @@ static const int *getPoliceMazePS12TrackData41() { // Innocent (kItemPS12Target return trackData; } +// kItemPS12Target14 does not count as an Active target in the original code +// Supposedly he is "Special" in the sense that he acts as a potential bonus point since he appears from a place where an innocent (kItemPS12Target16) can appear static const int *getPoliceMazePS12TrackData42() { // Enemy (kItemPS12Target14) static int trackData[] = { #if BLADERUNNER_ORIGINAL_BUGS #else + kPMTIActivate, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // TODO MAZE A bug? intended? Missing activate instruction + kPMTIVariableInc, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // TODO MAZE A bug? intended? Missing increase counter instruction kPMTITargetSet, kItemPS12Target14, 0, // remove target-able here #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS12Target14, @@ -688,7 +696,7 @@ static const int *getPoliceMazePS12TrackData45() { // Enemy (kItemPS12Target17) kPMTITargetSet, kItemPS12Target17, 1, kPMTIMove, 9, kPMTIWait, 1000, - kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL + kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL kPMTIEnemySet, kItemPS12Target17, // rotate - reveal kPMTIRotate, 284, 80, kPMTIWait, 0, |