aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script')
-rw-r--r--engines/bladerunner/script/police_maze.cpp91
-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
5 files changed, 107 insertions, 203 deletions
diff --git a/engines/bladerunner/script/police_maze.cpp b/engines/bladerunner/script/police_maze.cpp
index d3d652c8d0..99a5384e94 100644
--- a/engines/bladerunner/script/police_maze.cpp
+++ b/engines/bladerunner/script/police_maze.cpp
@@ -30,7 +30,7 @@
#include "bladerunner/script/police_maze.h"
#include "bladerunner/script/scene_script.h"
#include "bladerunner/time.h"
-#include "bladerunner/subtitles.h" // TODO Remove if no longer need to display score and debug info on-screen
+//#include "bladerunner/subtitles.h" // Display score and debug info on-screen
// ----------------------
// Maze point system info
@@ -61,27 +61,24 @@
// c) getting shot
//
// Combat Point System:
-// + 1: gain a point when an enemy (revealed) is shot (Item_Spin_In_World)
-// - 1: lose a point when an innocent or unrevealed enemy is shot (Item_Spin_In_World)
-// + 1: gain a point when an innocent escapes (kPMTILeave instruction)
-// - 1: lose a point when an enemy shoots McCoy (kPMTIShoot)
+// + 1: gain a point when an enemy (revealed) is shot (at Item_Spin_In_World)
+// - 1: lose a point when an innocent or unrevealed enemy is shot (at Item_Spin_In_World)
+// + 1: gain a point when an innocent escapes (at kPMTILeave instruction)
+// - 1: lose a point when an enemy shoots McCoy (at kPMTIShoot)
//
// For the maximum score, all 4 * 20 = 80 targets have to get activated and handled properly.
// Since McCoy always gains one (1) point per target (enemy or innocent) for that,
// the maximum score *should be*: 80 points.
-// [TODO] First pass of fixes: Normalize the original special targets.
-// Ensure the high score of 80 is achievable
-// [TODO] Second pass of fixes: Restore the original special (not bugged) targets.
-// Check achievable high score (should be higher than 80)
-// [TODO] However, there are some *special* target types:
-// 1.[TODO] Targets that will count as multiple targets without increasing
-// the active target count more than once.
-// 2.[TODO] Targets that won't increase the active target count at all.
//
-// So the maximum achievable score is greater than 80 points.
-// Taking all those targets into account (...)
-// ([TODO] can they appear randomly more than once via kPMTIPausedReset1of2 or kPMTIPausedReset1of3?)
-// ([TODO] is the highest score not a fixed number?)
+// However, there are some *special* target types:
+// 1. Targets that will count as multiple targets without increasing
+// the active target count more than once.
+// 2. Targets that won't increase the active target count at all,
+// and act as bonus points themselves. (eg. kItemPS12Target10, kItemPS12Target14)
+//
+// With the account of special targets the maximum achievable score will be greater than 80 points.
+// Since the special targets can appear randomly (by use of the kPMTIPausedReset1of2, kPMTIPausedReset1of3 instructions)
+// the highest score is not a predefined fixed number and will differ per run. It will always be above 80 points.
//
namespace BladeRunner {
@@ -147,70 +144,16 @@ void PoliceMaze::tick() {
_tracks[i]->tick();
}
-// int remainingActiveTargets = 0; // TODO Un-comment this line while debugging the maze
-// int targetIdsActive[kNumMazeTracks] = {0}; // TODO Un-comment this line while debugging the maze
-// int j = 0; // TODO Un-comment this line while debugging the maze
bool notFound = true;
for (int i = 0; i < kNumMazeTracks; i++) {
if (!_tracks[i]->isPaused()) {
notFound = false;
-// targetIdsActive[j++] = i; // TODO Un-comment this line while debugging the maze
-// remainingActiveTargets++; // TODO Un-comment this line while debugging the maze
- break; // TODO Comment-out this break while debugging the maze (debug messages on screen about all active targets)
+ break;
}
}
- Common::String scoreString;
-// TODO un-comment this segment of updating activeTargetsString while debugging the maze
-// Common::String activeTargetsString;
-// for (int i = 0; i < kNumMazeTracks; ++i) {
-// if (_vm->_items->isTarget(i)) {
-// activeTargetsString += Common::String::format(" %d", (i+1));
-// }
-// }
-// activeTargetsString += Common::String::format("] \n");
-// for (int i = 0; i < remainingActiveTargets; ++i) {
-// j = targetIdsActive[i];
-// activeTargetsString += Common::String::format(" %d{%s:%s:%s:%s:%s}",
-// (j+1),
-// _tracks[j]->_isPaused?"P":"X",
-// _tracks[j]->_isWaiting?"W":"X",
-// _vm->_items->isSpinning(j)?"S":"X",
-// _vm->_items->isTarget(j)?"T":"X",
-// _vm->_items->isVisible(j)?"V":"X" );
-// }
-// int allTargetsNum = SceneScriptPS10::getPoliceMazePS10TargetCount()
-// + SceneScriptPS11::getPoliceMazePS11TargetCount()
-// + SceneScriptPS12::getPoliceMazePS12TargetCount()
-// + SceneScriptPS13::getPoliceMazePS13TargetCount();
- int totalTargetsNumInScene = 0;
- int currTargetsCounUpForRoom = 0;
-// const int initActivatedTargetsPS10 = 4;
-// const int initActivatedTargetsPS11 = 4;
-// const int initActivatedTargetsPS12 = 5;
-// const int initActivatedTargetsPS13 = 4;
-
- int currMazeScore = Global_Variable_Query(kVariablePoliceMazeScore);
- if (_vm->_scene->getSceneId() == kScenePS10) {
- totalTargetsNumInScene = SceneScriptPS10::getPoliceMazePS10TargetCount();
- currTargetsCounUpForRoom = Global_Variable_Query(kVariablePoliceMazePS10TargetCounter);
- } else if (_vm->_scene->getSceneId() == kScenePS11) {
- totalTargetsNumInScene = SceneScriptPS11::getPoliceMazePS11TargetCount();
- currTargetsCounUpForRoom = Global_Variable_Query(kVariablePoliceMazePS11TargetCounter);
- } else if (_vm->_scene->getSceneId() == kScenePS12) {
- totalTargetsNumInScene = SceneScriptPS12::getPoliceMazePS12TargetCount();
- currTargetsCounUpForRoom = Global_Variable_Query(kVariablePoliceMazePS12TargetCounter);
- } else if (_vm->_scene->getSceneId() == kScenePS13) {
- totalTargetsNumInScene = SceneScriptPS13::getPoliceMazePS13TargetCount();
- currTargetsCounUpForRoom = Global_Variable_Query(kVariablePoliceMazePS13TargetCounter);
- }
-// scoreString = Common::String::format("Score: %02d (%02d), [%s]",
-// currMazeScore - (totalTargetsNumInScene - currTargetsCounUpForRoom),
-// totalTargetsNumInScene - currTargetsCounUpForRoom,
-// activeTargetsString.c_str());
- scoreString = Common::String::format("Score: %02d", currMazeScore - (totalTargetsNumInScene - currTargetsCounUpForRoom));
- _vm->_subtitles->setGameSubsText(scoreString, true);
- _vm->_subtitles->show();
+// _vm->_subtitles->setGameSubsText(Common::String::format("Score: %02d", Global_Variable_Query(kVariablePoliceMazeScore)), true); // for debug purposes, show maze score
+// _vm->_subtitles->show(); // for debug purposes, show maze score
if (notFound && _isActive && !_isEnding) {
_isActive = false;
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;