aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanasis Antoniou2019-03-22 23:56:40 +0200
committerThanasis Antoniou2019-03-22 23:59:21 +0200
commita03dbae1f0d52d288db662cf70fc535ad42ac4b4 (patch)
tree16565d89f6831711604b98c65c230dd8d776fc1a
parent864cdd85f483824e765a4b35d658ef4c2f4506df (diff)
downloadscummvm-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.cpp6
-rw-r--r--engines/bladerunner/script/scene/ps11.cpp10
-rw-r--r--engines/bladerunner/script/scene/ps12.cpp14
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,