aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene
diff options
context:
space:
mode:
authorThanasis Antoniou2019-03-23 03:26:10 +0200
committerThanasis Antoniou2019-03-23 03:26:10 +0200
commite898ed379fdd52a7cdc9c9b669d43c3078a72bf2 (patch)
treeed440ecc8f120829337ae9025809720ebb20b3d5 /engines/bladerunner/script/scene
parenta03dbae1f0d52d288db662cf70fc535ad42ac4b4 (diff)
downloadscummvm-rg350-e898ed379fdd52a7cdc9c9b669d43c3078a72bf2.tar.gz
scummvm-rg350-e898ed379fdd52a7cdc9c9b669d43c3078a72bf2.tar.bz2
scummvm-rg350-e898ed379fdd52a7cdc9c9b669d43c3078a72bf2.zip
BLADERUNNER: Final pass on the maze
Removed bell on enemy reveal, brought back original special targets Also reverted to original fast targets even though they are probably unfair. And commented out the score subtitle.
Diffstat (limited to 'engines/bladerunner/script/scene')
-rw-r--r--engines/bladerunner/script/scene/ps10.cpp95
-rw-r--r--engines/bladerunner/script/scene/ps11.cpp62
-rw-r--r--engines/bladerunner/script/scene/ps12.cpp34
-rw-r--r--engines/bladerunner/script/scene/ps13.cpp28
4 files changed, 90 insertions, 129 deletions
diff --git a/engines/bladerunner/script/scene/ps10.cpp b/engines/bladerunner/script/scene/ps10.cpp
index 431ee7d3b7..eadcea523c 100644
--- a/engines/bladerunner/script/scene/ps10.cpp
+++ b/engines/bladerunner/script/scene/ps10.cpp
@@ -29,14 +29,14 @@ int SceneScriptPS10::getPoliceMazePS10TargetCount() {
return kPoliceMazePS10TargetCount;
}
-static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kItemPS10Target1, kItemPS10Target2) - Rotating reveal
+static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kItemPS10Target1, kItemPS10Target2) - Rotating reveal
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target1, 0, // remove target-able here
- kPMTITargetSet, kItemPS10Target2, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target1, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target2, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target1,
kPMTIObstacleReset, kItemPS10Target2,
@@ -47,7 +47,7 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kItem
kPMTIEnemyReset, kItemPS10Target1,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTIEnemyReset, kItemPS10Target2, // both targets should clear their enemy flag here
+ kPMTIEnemyReset, kItemPS10Target2, // both targets should clear their enemy flag here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIWaitRandom, 3000, 5000,
kPMTIObstacleSet, kItemPS10Target1,
@@ -55,11 +55,10 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kItem
kPMTIMove, 14,
kPMTIWait, 1000,
kPMTIRotate, 740, 80,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
- kPMTIEnemySet, kItemPS10Target1, // rotate - reveal
+ kPMTIEnemySet, kItemPS10Target1, // rotate - reveal
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTIEnemySet, kItemPS10Target2, // both targets should set their enemy flag here
+ kPMTIEnemySet, kItemPS10Target2, // both targets should set their enemy flag here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIWait, 0,
kPMTIRotate, 488, 80,
@@ -67,13 +66,13 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kItem
kPMTIShoot, 27, 33,
kPMTIWait, 0,
kPMTIRotate, 740, 80,
- kPMTIPausedReset, kItemPS10Target2, // kItemPS10Target2 continues the route of this item
- kPMTIObstacleReset, kItemPS10Target1, // kItemPS10Target1 becomes invisible
+ kPMTIPausedReset, kItemPS10Target2, // kItemPS10Target2 continues the route of this item
+ kPMTIObstacleReset, kItemPS10Target1, // kItemPS10Target1 becomes invisible
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target1, 0, // remove target-able here - only for Target1 item
+ kPMTITargetSet, kItemPS10Target1, 0, // remove target-able here - only for Target1 item
#endif // BLADERUNNER_ORIGINAL_BUGS
- kPMTIObstacleSet, kItemPS10Target2, // kItemPS10Target2 becomes visible in kItemPS10Target1's place
+ kPMTIObstacleSet, kItemPS10Target2, // kItemPS10Target2 becomes visible in kItemPS10Target1's place
kPMTIPausedSet, kItemPS10Target1,
kPMTIPosition, 0,
kPMTIRestart
@@ -81,17 +80,17 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kItem
return trackData;
}
-static const int *getPoliceMazePS10TrackData2() { // Enemy linked series (kItemPS10Target1, kItemPS10Target2)
+static const int *getPoliceMazePS10TrackData2() { // Enemy linked series (kItemPS10Target1, kItemPS10Target2)
static int trackData[] = {
kPMTIFacing, 740,
kPMTIPosition, 0,
- kPMTIEnemySet, kItemPS10Target2, // [redundant after bug fix]
+ kPMTIEnemySet, kItemPS10Target2, // [redundant after bug fix]
kPMTIMove, 69,
kPMTIWait, 500,
kPMTIObstacleReset, kItemPS10Target2,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target2, 0, // remove target-able here - only for Target2 item
+ kPMTITargetSet, kItemPS10Target2, 0, // remove target-able here - only for Target2 item
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPausedReset, kItemPS10Target5,
kPMTIPausedSet, kItemPS10Target2,
@@ -101,13 +100,13 @@ static const int *getPoliceMazePS10TrackData2() { // Enemy linked series (kItem
return trackData;
}
-static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) - Starts activated - Rotating reveal
+static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) - Starts activated - Rotating reveal
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target3, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target3, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target3,
kPMTIFacing, 993,
@@ -119,8 +118,7 @@ static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) -
kPMTIEnemyReset, kItemPS10Target3,
kPMTIMove, 5,
kPMTIWait, 1000,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
- kPMTIEnemySet, kItemPS10Target3, // rotate - reveal
+ kPMTIEnemySet, kItemPS10Target3, // rotate - reveal
kPMTIRotate, 233, 80,
kPMTIWait, 0,
kPMTIRotate, 491, 80,
@@ -135,21 +133,21 @@ static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) -
kPMTIObstacleReset, kItemPS10Target3,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target3, 0, // remove target-able here
-// kPMTIPausedSet, kItemPS10Target3, // It is intentional (original) that kItemPS10Target3 does not get paused - This target loops on its own
+ kPMTITargetSet, kItemPS10Target3, 0, // remove target-able here
+// kPMTIPausedSet, kItemPS10Target3, // intended: Original kItemPS10Target3 does not get paused - it loops on its own
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIRestart
};
return trackData;
}
-static const int *getPoliceMazePS10TrackData4() { // Innocent (kItemPS10Target4)
+static const int *getPoliceMazePS10TrackData4() { // Innocent (kItemPS10Target4)
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target4, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target4, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target4,
kPMTIFacing, 993,
@@ -167,7 +165,7 @@ static const int *getPoliceMazePS10TrackData4() { // Innocent (kItemPS10Target4
kPMTIObstacleReset, kItemPS10Target4,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target4, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target4, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPausedReset, kItemPS10Target8,
kPMTIPausedSet, kItemPS10Target4,
@@ -176,13 +174,13 @@ static const int *getPoliceMazePS10TrackData4() { // Innocent (kItemPS10Target4
return trackData;
}
-static const int *getPoliceMazePS10TrackData5() { // Innocent (kItemPS10Target5) - Starts activated
+static const int *getPoliceMazePS10TrackData5() { // Innocent (kItemPS10Target5) - Starts activated
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target5, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target5, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target5,
kPMTIFacing, 0,
@@ -203,7 +201,7 @@ static const int *getPoliceMazePS10TrackData5() { // Innocent (kItemPS10Target5
kPMTIObstacleReset, kItemPS10Target5,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target5, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target5, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPausedReset, kItemPS10Target1,
kPMTIPausedSet, kItemPS10Target5,
@@ -213,13 +211,13 @@ static const int *getPoliceMazePS10TrackData5() { // Innocent (kItemPS10Target5
}
// NOTE Track 6 is used only once as is; it's activated when entering the room
-static const int *getPoliceMazePS10TrackData6() { // Enemy (kItemPS10Target6) - Starts activated - Rotating reveal
+static const int *getPoliceMazePS10TrackData6() { // Enemy (kItemPS10Target6) - Starts activated - Rotating reveal
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target6, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target6, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target6,
kPMTIFacing, 999,
@@ -231,8 +229,7 @@ static const int *getPoliceMazePS10TrackData6() { // Enemy (kItemPS10Target6) -
kPMTIEnemyReset, kItemPS10Target6,
kPMTIMove, 7,
kPMTIWait, 500,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
- kPMTIEnemySet, kItemPS10Target6, // rotate - reveal
+ kPMTIEnemySet, kItemPS10Target6, // rotate - reveal
kPMTIRotate, 750, 80,
kPMTIWait, 0,
kPMTIRotate, 500, 80,
@@ -247,7 +244,7 @@ static const int *getPoliceMazePS10TrackData6() { // Enemy (kItemPS10Target6) -
kPMTIObstacleReset, kItemPS10Target6,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target6, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target6, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPausedReset, kItemPS10Target7,
kPMTIPausedReset, kItemPS10Target9,
@@ -257,13 +254,13 @@ static const int *getPoliceMazePS10TrackData6() { // Enemy (kItemPS10Target6) -
return trackData;
}
-static const int *getPoliceMazePS10TrackData7() { // Innocent (kItemPS10Target7)
+static const int *getPoliceMazePS10TrackData7() { // Innocent (kItemPS10Target7)
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target7, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target7, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target7,
kPMTIFacing, 264,
@@ -280,7 +277,7 @@ static const int *getPoliceMazePS10TrackData7() { // Innocent (kItemPS10Target7
kPMTIObstacleReset, kItemPS10Target7,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target7, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target7, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPausedSet, kItemPS10Target7,
kPMTIRestart
@@ -288,13 +285,13 @@ static const int *getPoliceMazePS10TrackData7() { // Innocent (kItemPS10Target7
return trackData;
}
-static const int *getPoliceMazePS10TrackData8() { // Enemy (kItemPS10Target8) - Starts activated - Rotating reveal
+static const int *getPoliceMazePS10TrackData8() { // Enemy (kItemPS10Target8) - Starts activated - Rotating reveal
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target8, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target8, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target8,
kPMTIFacing, 993,
@@ -306,21 +303,16 @@ static const int *getPoliceMazePS10TrackData8() { // Enemy (kItemPS10Target8) -
kPMTIEnemyReset, kItemPS10Target8,
kPMTIMove, 34,
kPMTIWait, 500,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
- kPMTIEnemySet, kItemPS10Target8, // rotate - reveal
+ kPMTIEnemySet, kItemPS10Target8, // rotate - reveal
kPMTIRotate, 491, 80,
kPMTIMove, 20,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTIWait, 0, // this is too fast
-#else
- kPMTIWait, 100,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTIWait, 0, // this results in shooting too fast - TODO maybe introduce a small wait here (50 or 150)
kPMTIShoot, 27, 33,
kPMTIMove, 0,
kPMTIObstacleReset, kItemPS10Target8,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target8, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target8, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPausedReset, kItemPS10Target4,
kPMTIPausedSet, kItemPS10Target8,
@@ -329,13 +321,13 @@ static const int *getPoliceMazePS10TrackData8() { // Enemy (kItemPS10Target8) -
return trackData;
}
-static const int *getPoliceMazePS10TrackData9() { // Special (kItemPS10Target9) - Enemy x2
+static const int *getPoliceMazePS10TrackData9() { // Special (kItemPS10Target9) - Enemy x2
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target9, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target9, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS10Target9,
kPMTIFacing, 738,
@@ -369,10 +361,8 @@ static const int *getPoliceMazePS10TrackData9() { // Special (kItemPS10Target9)
kPMTIMove, 89,
kPMTIPlaySound, 0, 33,
kPMTIWaitRandom, 4000, 6000,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTITargetSet, kItemPS10Target9, 1, // TODO MAZE A bug? intended? "second" enemy
- kPMTIEnemySet, kItemPS10Target9,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTITargetSet, kItemPS10Target9, 1, // intended: special: "second" enemy (re-using the target of the track)
+ kPMTIEnemySet, kItemPS10Target9, // intended: special: "second" enemy (re-using the target of the track)
kPMTIFacing, 216,
kPMTIPlaySound, 32, 33,
kPMTIMove, 69,
@@ -388,7 +378,7 @@ static const int *getPoliceMazePS10TrackData9() { // Special (kItemPS10Target9)
kPMTIObstacleReset, kItemPS10Target9,
#if BLADERUNNER_ORIGINAL_BUGS
#else
- kPMTITargetSet, kItemPS10Target9, 0, // remove target-able here
+ kPMTITargetSet, kItemPS10Target9, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPausedSet, kItemPS10Target9,
kPMTIRestart
@@ -560,7 +550,8 @@ bool SceneScriptPS10::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 6, 12, true, false)) {
Game_Flag_Set(kFlagPS10toPS11);
removeTargets();
- Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS10TargetCount - Global_Variable_Query(kVariablePoliceMazePS10TargetCounter));
+// Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS10TargetCount - Global_Variable_Query(kVariablePoliceMazePS10TargetCounter));
+ Police_Maze_Decrement_Score(kPoliceMazePS10TargetCount - Global_Variable_Query(kVariablePoliceMazePS10TargetCounter));
Global_Variable_Set(kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount);
Set_Enter(kSetPS10_PS11_PS12_PS13, kScenePS11);
}
diff --git a/engines/bladerunner/script/scene/ps11.cpp b/engines/bladerunner/script/scene/ps11.cpp
index ad8be4a75e..0100370c2a 100644
--- a/engines/bladerunner/script/scene/ps11.cpp
+++ b/engines/bladerunner/script/scene/ps11.cpp
@@ -121,7 +121,6 @@ static const int *getPoliceMazePS11TrackData10() { // Enemy (kItemPS11Target2,
return trackData;
}
-// TODO - into look possible bug
static const int *getPoliceMazePS11TrackData11() { // Enemy (kItemPS11Target2, kItemPS11Target3)
static int trackData[] = {
kPMTIFacing, 860,
@@ -129,7 +128,6 @@ static const int *getPoliceMazePS11TrackData11() { // Enemy (kItemPS11Target2,
kPMTIEnemyReset, kItemPS11Target3, // [redundant after bug fix] target 2-3 still is not revealed as enemy
kPMTIMove, 25,
kPMTIWait, 500,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS11Target3, // rotate - reveal -- no need to set target 2 as enemy too, since it's gone
kPMTIPlaySound, 32, 33,
kPMTIRotate, 644, 80,
@@ -258,7 +256,7 @@ static const int *getPoliceMazePS11TrackData14() { // Enemy (kItemPS11Target6)
#if BLADERUNNER_ORIGINAL_BUGS
kPMTIFacing, 900, // orientation is wrong here - should conceal the gun entirely
#else
- kPMTIFacing, 750, // corrected orientation
+ kPMTIFacing, 750, // corrected orientation
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPosition, 0,
kPMTIWaitRandom, 3000, 6000,
@@ -266,14 +264,13 @@ static const int *getPoliceMazePS11TrackData14() { // Enemy (kItemPS11Target6)
kPMTIPlaySound, 33, 33,
kPMTIMove, 5,
kPMTIWait, 500,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS11Target6, // rotate - reveal
kPMTIRotate, 644, 80,
kPMTIWait, 0,
#if BLADERUNNER_ORIGINAL_BUGS
1 kPMTIRotate, 388, 80, // orientation is wrong here
#else
- kPMTIRotate, 260, 80, // corrected orientation
+ kPMTIRotate, 260, 80, // corrected orientation - face towards McCoy
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIWait, 1000,
kPMTIShoot, 27, 33,
@@ -291,7 +288,7 @@ static const int *getPoliceMazePS11TrackData14() { // Enemy (kItemPS11Target6)
return trackData;
}
-static const int *getPoliceMazePS11TrackData15() { // Innocent (kItemPS11Target7, kItemPS11Target8)
+static const int *getPoliceMazePS11TrackData15() { // Special (kItemPS11Target7, kItemPS11Target8) - Innocent x2
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount,
@@ -308,17 +305,14 @@ static const int *getPoliceMazePS11TrackData15() { // Innocent (kItemPS11Target
kPMTIPosition, 0,
kPMTIWaitRandom, 3000, 7000,
kPMTIObstacleSet, kItemPS11Target7,
- kPMTIPlaySound, 29, 33, // TARGUP1
+ kPMTIPlaySound, 29, 33,
kPMTIEnemyReset, kItemPS11Target7,
#if BLADERUNNER_ORIGINAL_BUGS
#else
kPMTIEnemyReset, kItemPS11Target8, // both targets should clear their enemy flag here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIMove, 14,
-
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTILeave, // TODO MAZE A bug? intended? - Why do a LEAVE here is its track is continued with kItemPS11Target8? (would result to re-credit another point with the later leave instruction for kItemPS11Target8)
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTILeave, // intended: special: credit for "first" innocent escaping
kPMTIWait, 1000,
kPMTIPausedReset, kItemPS11Target8,
kPMTIObstacleReset, kItemPS11Target7,
@@ -348,7 +342,7 @@ static const int *getPoliceMazePS11TrackData16() { // Innocent (kItemPS11Target
kPMTIRotate, 388, 200,
kPMTIWait, 500,
kPMTIMove, 79,
- kPMTILeave,
+ kPMTILeave, // credit for "second" / final innocent
kPMTIObstacleReset, kItemPS11Target8,
#if BLADERUNNER_ORIGINAL_BUGS
#else
@@ -387,28 +381,16 @@ static const int *getPoliceMazePS11TrackData17() { // Special (kItemPS11Target9
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIPlaySound, 32, 33,
kPMTIMove, 10,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTIWait, 0, // this is too fast
-#else
- kPMTIWait, 350,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTIWait, 0, // this results in shooting too fast - TODO maybe introduce a small wait here (50 or 150)
kPMTIShoot, 27, 33,
kPMTIMove, 0,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTITargetSet, kItemPS11Target9, 1, // TODO MAZE A bug? intended? - "Second" enemy
- kPMTIEnemySet, kItemPS11Target9,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTITargetSet, kItemPS11Target9, 1, // intended: special: "second" enemy (re-using the target of the track)
+ kPMTIEnemySet, kItemPS11Target9, // intended: special: "second" enemy (re-using the target of the track)
kPMTIMove, 24,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTITargetSet, kItemPS11Target9, 1, // TODO MAZE A bug? intended? - "Third" enemy
- kPMTIEnemySet, kItemPS11Target9,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTITargetSet, kItemPS11Target9, 1, // intended: special: "third" enemy (re-using the target of the track)
+ kPMTIEnemySet, kItemPS11Target9, // intended: special: "third" enemy (re-using the target of the track)
kPMTIMove, 10,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTIWait, 0, // this is too fast
-#else
- kPMTIWait, 350,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTIWait, 0, // this results in shooting too fast - TODO maybe introduce a small wait here (50 or 150)
kPMTIShoot, 27, 33,
kPMTIMove, 24,
kPMTIWait, 1000,
@@ -425,7 +407,7 @@ static const int *getPoliceMazePS11TrackData17() { // Special (kItemPS11Target9
return trackData;
}
-static const int *getPoliceMazePS11TrackData18() { // Special (kItemPS11Target10, kItemPS11Target11) - Innocent x1???, then Enemy x2
+static const int *getPoliceMazePS11TrackData18() { // Special (kItemPS11Target10, kItemPS11Target11) - Rotating reveal and Enemy x2
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount,
@@ -450,15 +432,14 @@ static const int *getPoliceMazePS11TrackData18() { // Special (kItemPS11Target1
kPMTIMove, 5,
kPMTIPlaySound, 19, 33,
#if BLADERUNNER_ORIGINAL_BUGS
- kPMTIPlaySound, 3, 33, // FEMHURT1
+ kPMTIPlaySound, 3, 33, // FEMHURT1 - Wrong sound
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIWait, 1000,
#if BLADERUNNER_ORIGINAL_BUGS
- kPMTILeave, // TODO MAZE A bug? intended? Is this target not revealed yet? Credit for "first" innocent (special)?
+ kPMTILeave, // bug: Leave does not fit here since the target does not actually "escape" (nor is innocent)
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIRotate, 700, 80,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
- kPMTIEnemySet, kItemPS11Target10, // Now the target is an enemy. (special) Rotate reveal?
+ kPMTIEnemySet, kItemPS11Target10, // Now the target is an enemy. (special) Rotate reveal
#if BLADERUNNER_ORIGINAL_BUGS
#else
kPMTIEnemySet, kItemPS11Target11, // both targets should set their enemy flag here
@@ -481,17 +462,15 @@ static const int *getPoliceMazePS11TrackData18() { // Special (kItemPS11Target1
return trackData;
}
-static const int *getPoliceMazePS11TrackData19() { // Enemy (kItemPS11Target10, kItemPS11Target11)
+static const int *getPoliceMazePS11TrackData19() { // Special (kItemPS11Target10, kItemPS11Target11) - becomes an Enemy again
static int trackData[] = {
kPMTIFacing, 512,
kPMTIPosition, 0,
kPMTIEnemySet, kItemPS11Target11, // [redundant after bug fix]
kPMTIMove, 8,
kPMTIWait, 4000,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTITargetSet, kItemPS11Target11, 1, // TODO MAZE A bug? intended? Now the target is reset as new enemy again (special)
- kPMTIEnemySet, kItemPS11Target11,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTITargetSet, kItemPS11Target11, 1, // intended: special: "second" enemy (re-using the target of the track)
+ kPMTIEnemySet, kItemPS11Target11, // intended: special: "second" enemy (re-using the target of the track)
kPMTIMove, 2,
kPMTIPlaySound, 32, 33,
kPMTIWait, 1000,
@@ -869,7 +848,8 @@ bool SceneScriptPS11::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 8, 12, true, false)) {
Game_Flag_Set(kFlagPS11toPS12);
removeTargets();
- Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS11TargetCount - Global_Variable_Query(kVariablePoliceMazePS11TargetCounter));
+// Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS11TargetCount - Global_Variable_Query(kVariablePoliceMazePS11TargetCounter));
+ Police_Maze_Decrement_Score(kPoliceMazePS11TargetCount - Global_Variable_Query(kVariablePoliceMazePS11TargetCounter));
Global_Variable_Set(kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount);
Set_Enter(kSetPS10_PS11_PS12_PS13, kScenePS12);
}
diff --git a/engines/bladerunner/script/scene/ps12.cpp b/engines/bladerunner/script/scene/ps12.cpp
index b717dc65bc..6f745b03e2 100644
--- a/engines/bladerunner/script/scene/ps12.cpp
+++ b/engines/bladerunner/script/scene/ps12.cpp
@@ -272,14 +272,12 @@ static const int *getPoliceMazePS12TrackData34() { // Special (kItemPS12Target6
kPMTIRotate, 469, 80,
kPMTIPlaySound, 29, 33,
kPMTIWait, 500,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTITargetSet, kItemPS12Target6, 1, // TODO MAZE A bug? intended? Set as target again ("Second" Enemy)
- kPMTITargetSet, kItemPS12Target7, 1, // TODO MAZE A bug? intended? Set as target again ("Second" Enemy)
- kPMTITargetSet, kItemPS12Target8, 1, // TODO MAZE A bug? intended? Set as target again ("Second" Enemy)
- kPMTIEnemySet, kItemPS12Target6, // TODO MAZE A bug? intended? Set as target again ("Second" Enemy)
- kPMTIEnemySet, kItemPS12Target7, // TODO MAZE A bug? intended? Set as target again ("Second" Enemy)
- kPMTIEnemySet, kItemPS12Target8, // TODO MAZE A bug? intended? Set as target again ("Second" Enemy)
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTITargetSet, kItemPS12Target6, 1, // intended: special: "second" enemy (re-using the targets of the track)
+ kPMTITargetSet, kItemPS12Target7, 1, // intended: special: "second" enemy (re-using the targets of the track)
+ kPMTITargetSet, kItemPS12Target8, 1, // intended: special: "second" enemy (re-using the targets of the track)
+ kPMTIEnemySet, kItemPS12Target6, // intended: special: "second" enemy (re-using the targets of the track)
+ kPMTIEnemySet, kItemPS12Target7, // intended: special: "second" enemy (re-using the targets of the track)
+ kPMTIEnemySet, kItemPS12Target8, // intended: special: "second" enemy (re-using the targets of the track)
kPMTIRotate, 376, 80,
kPMTIWait, 0,
kPMTIRotate, 168, 80,
@@ -389,7 +387,7 @@ static const int *getPoliceMazePS12TrackData37() { // Special: Innocent (kItemP
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS12Target9,
kPMTIWaitRandom, 3000, 6000,
- kPMTIPausedReset, kItemPS12Target10, // kItemPS12Target10 unpaused early since he is the enemy using kItemPS12Target9 as human shield
+ kPMTIPausedReset, kItemPS12Target10, // kItemPS12Target10 is unpaused early since he is the enemy using kItemPS12Target9 as human shield
kPMTIFacing, 1010,
kPMTIPosition, 0,
kPMTIWait, 2000,
@@ -414,12 +412,12 @@ static const int *getPoliceMazePS12TrackData37() { // Special: Innocent (kItemP
return trackData;
}
-static const int *getPoliceMazePS12TrackData38() { // Enemy (kItemPS12Target10)
+static const int *getPoliceMazePS12TrackData38() { // Enemy (kItemPS12Target10) - Special (bonus point)
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
+// kPMTIActivate, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // intended: special: Original missing activate instruction
+// kPMTIVariableInc, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // intended: special: Original missing increase counter instruction
kPMTITargetSet, kItemPS12Target10, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS12Target10,
@@ -470,7 +468,6 @@ static const int *getPoliceMazePS12TrackData39() { // Enemy (kItemPS12Target11)
kPMTITargetSet, kItemPS12Target11, 1,
kPMTIMove, 5,
kPMTIWait, 1000,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS12Target11, // rotate - reveal
kPMTIRotate, 1010, 80,
kPMTIPlaySound, 29, 33,
@@ -509,7 +506,6 @@ static const int *getPoliceMazePS12TrackData40() { // Enemy (kItemPS12Target12)
kPMTIMove, 5,
kPMTIPlaySound, 29, 33,
kPMTIWait, 500,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS12Target12, // rotate - reveal
kPMTIRotate, 968, 80,
kPMTIPlaySound, 29, 33,
@@ -566,12 +562,12 @@ static const int *getPoliceMazePS12TrackData41() { // Innocent (kItemPS12Target
// 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 const int *getPoliceMazePS12TrackData42() { // Enemy (kItemPS12Target14) - Special (bonus point)
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
+// kPMTIActivate, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // intended: special: Original missing activate instruction
+// kPMTIVariableInc, kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount, // intended: special: Original missing increase counter instruction
kPMTITargetSet, kItemPS12Target14, 0, // remove target-able here
#endif // BLADERUNNER_ORIGINAL_BUGS
kPMTIObstacleReset, kItemPS12Target14,
@@ -696,7 +692,6 @@ static const int *getPoliceMazePS12TrackData45() { // Enemy (kItemPS12Target17)
kPMTITargetSet, kItemPS12Target17, 1,
kPMTIMove, 9,
kPMTIWait, 1000,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS12Target17, // rotate - reveal
kPMTIRotate, 284, 80,
kPMTIWait, 0,
@@ -891,7 +886,8 @@ bool SceneScriptPS12::ClickedOnExit(int exitId) {
Player_Gains_Control();
Game_Flag_Set(kFlagPS12toPS13);
removeTargets();
- Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS12TargetCount - Global_Variable_Query(kVariablePoliceMazePS12TargetCounter));
+// Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS12TargetCount - Global_Variable_Query(kVariablePoliceMazePS12TargetCounter));
+ Police_Maze_Decrement_Score(kPoliceMazePS12TargetCount - Global_Variable_Query(kVariablePoliceMazePS12TargetCounter));
Global_Variable_Set(kVariablePoliceMazePS12TargetCounter, kPoliceMazePS12TargetCount);
Set_Enter(kSetPS10_PS11_PS12_PS13, kScenePS13);
}
diff --git a/engines/bladerunner/script/scene/ps13.cpp b/engines/bladerunner/script/scene/ps13.cpp
index 1dbf6fdd63..2f7bed8129 100644
--- a/engines/bladerunner/script/scene/ps13.cpp
+++ b/engines/bladerunner/script/scene/ps13.cpp
@@ -289,7 +289,6 @@ static const int *getPoliceMazePS13TrackData52() { // Enemy (kItemPS13Target7)
kPMTIEnemyReset, kItemPS13Target7,
kPMTIMove, 9,
kPMTIWait, 500,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS13Target7, // rotate - reveal
kPMTIRotate, 555, 80,
kPMTIWait, 0,
@@ -330,7 +329,6 @@ static const int *getPoliceMazePS13TrackData53() { // Enemy (kItemPS13Target8)
kPMTITargetSet, kItemPS13Target8, 1,
kPMTIEnemyReset, kItemPS13Target8,
kPMTIMove, 5,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS13Target8, // rotate - reveal
kPMTIRotate, 868, 200,
kPMTIWait, 1000,
@@ -372,7 +370,6 @@ static const int *getPoliceMazePS13TrackData54() { // Enemy (kItemPS13Target9)
kPMTIEnemyReset, kItemPS13Target9,
kPMTIMove, 3,
kPMTIWait, 500,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS13Target9, // rotate - reveal
kPMTIRotate, 768, 80,
kPMTIWait, 1000,
@@ -461,7 +458,6 @@ static const int *getPoliceMazePS13TrackData56() { // Enemy linked series (kIte
static const int *getPoliceMazePS13TrackData57() { // Enemy linked series (kItemPS13Target10, kItemPS13Target11, kItemPS13Target12) - Rotating reveal
static int trackData[] = {
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS13Target12, // rotate - reveal
#if BLADERUNNER_ORIGINAL_BUGS
#else
@@ -514,16 +510,14 @@ static const int *getPoliceMazePS13TrackData58() { // Special (kItemPS13Target1
kPMTIMove, 9,
kPMTIWait, 200,
kPMTIMove, 0,
-#if BLADERUNNER_ORIGINAL_BUGS
- kPMTILeave, // TODO MAZE A bug? intended? credit for "first" innocent
- kPMTITargetSet, kItemPS13Target13, 1,
- kPMTIEnemyReset, kItemPS13Target13,
-#endif // BLADERUNNER_ORIGINAL_BUGS
+ kPMTILeave, // intended: special: credit for "first" innocent escaping
+ kPMTITargetSet, kItemPS13Target13, 1, // intended: special: "second" innocent (re-using the target of the track)
+ kPMTIEnemyReset, kItemPS13Target13, // intended: special: "second" innocent (re-using the target of the track)
kPMTIWait, 200,
kPMTIMove, 9,
kPMTIWait, 200,
kPMTIMove, 0,
- kPMTILeave, // credit for "second" innocent
+ kPMTILeave, // credit for "second" / final innocent
kPMTIObstacleReset, kItemPS13Target13,
#if BLADERUNNER_ORIGINAL_BUGS
#else
@@ -559,7 +553,6 @@ static const int *getPoliceMazePS13TrackData62() { // Enemy (kItemPS13Target14)
kPMTIEnemyReset, kItemPS13Target14,
kPMTIMove, 14,
kPMTIWait, 1000,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS13Target14, // rotate - reveal
kPMTIRotate, 650, 80,
kPMTIWait, 0,
@@ -601,7 +594,6 @@ static const int *getPoliceMazePS13TrackData63() { // Enemy (kItemPS13Target15)
kPMTIEnemyReset, kItemPS13Target15,
kPMTIMove, 9,
kPMTIWait, 1000,
- kPMTIPlaySound, 495, 33, // ASDF REVEAL BELL
kPMTIEnemySet, kItemPS13Target15, // rotate - reveal
kPMTIRotate, 710, 80,
kPMTIWait, 0,
@@ -777,15 +769,17 @@ bool SceneScriptPS13::ClickedOnExit(int exitId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
removeTargets();
- Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS13TargetCount - Global_Variable_Query(kVariablePoliceMazePS13TargetCounter));
- Set_Score(kActorMcCoy, Global_Variable_Query(kVariablePoliceMazeScore));
-// Common::String scoreString = Common::String::format("Final: %03d", Global_Variable_Query(kVariablePoliceMazeScore));
-// Set_Subtitle_Text_On_Screen(scoreString);
+// Global_Variable_Decrement(kVariablePoliceMazeScore, kPoliceMazePS13TargetCount - Global_Variable_Query(kVariablePoliceMazePS13TargetCounter));
+ Police_Maze_Decrement_Score(kPoliceMazePS13TargetCount - Global_Variable_Query(kVariablePoliceMazePS13TargetCounter));
+ Set_Score(kActorMcCoy, Police_Maze_Query_Score());
+// Common::String scoreString = Common::String::format("Final: %03d", Global_Variable_Query(kVariablePoliceMazeScore)); // Display final score as subtitles
+// Set_Subtitle_Text_On_Screen(scoreString); // Display final score as subtitles
Global_Variable_Reset(kVariablePoliceMazePS10TargetCounter);
Global_Variable_Reset(kVariablePoliceMazePS11TargetCounter);
Global_Variable_Reset(kVariablePoliceMazePS12TargetCounter);
Global_Variable_Reset(kVariablePoliceMazePS13TargetCounter);
- Global_Variable_Reset(kVariablePoliceMazeScore);
+// Global_Variable_Reset(kVariablePoliceMazeScore);
+ Police_Maze_Zero_Score();
Set_Enter(kSetPS05, kScenePS05);
}
return true;