diff options
author | Thanasis Antoniou | 2019-03-23 03:26:10 +0200 |
---|---|---|
committer | Thanasis Antoniou | 2019-03-23 03:26:10 +0200 |
commit | e898ed379fdd52a7cdc9c9b669d43c3078a72bf2 (patch) | |
tree | ed440ecc8f120829337ae9025809720ebb20b3d5 /engines/bladerunner/script/scene | |
parent | a03dbae1f0d52d288db662cf70fc535ad42ac4b4 (diff) | |
download | scummvm-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.cpp | 95 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps11.cpp | 62 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps12.cpp | 34 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps13.cpp | 28 |
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; |