aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanasis Antoniou2019-03-23 03:26:10 +0200
committerThanasis Antoniou2019-03-23 03:26:10 +0200
commite898ed379fdd52a7cdc9c9b669d43c3078a72bf2 (patch)
treeed440ecc8f120829337ae9025809720ebb20b3d5
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.
-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;