From a52f2d8a756f2b1ff06a90154cb55f29cf77a46a Mon Sep 17 00:00:00 2001 From: antoniou79 Date: Mon, 28 Jun 2021 22:49:31 +0300 Subject: [PATCH] BLADERUNNER: Introduce small delay to two targets These both are infamous for how fast they shoot after becoming visible on screen The delay was 0 in the original. Now it's random between 400 and 800ms, so they are still fast, but not unfair --- engines/bladerunner/script/scene/ps10.cpp | 116 ++++++------- engines/bladerunner/script/scene/ps11.cpp | 202 +++++++++------------- 2 files changed, 135 insertions(+), 183 deletions(-) diff --git a/engines/bladerunner/script/scene/ps10.cpp b/engines/bladerunner/script/scene/ps10.cpp index 31efc28f2fd..ce998191183 100644 --- a/engines/bladerunner/script/scene/ps10.cpp +++ b/engines/bladerunner/script/scene/ps10.cpp @@ -33,11 +33,10 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kIte static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target1, 0, // remove target-able here kPMTITargetSet, kItemPS10Target2, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target1, kPMTIObstacleReset, kItemPS10Target2, kPMTIFacing, 989, @@ -45,10 +44,9 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kIte kPMTITargetSet, kItemPS10Target1, 1, kPMTITargetSet, kItemPS10Target2, 1, kPMTIEnemyReset, kItemPS10Target1, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTIEnemyReset, kItemPS10Target2, // both targets should clear their enemy flag here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIWaitRandom, 3000, 5000, kPMTIObstacleSet, kItemPS10Target1, kPMTIPlaySound, kSfxUPTARG3, 100, @@ -56,10 +54,9 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kIte kPMTIWait, 1000, kPMTIRotate, 740, 80, kPMTIEnemySet, kItemPS10Target1, // rotate - reveal -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTIEnemySet, kItemPS10Target2, // both targets should set their enemy flag here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIWait, 0, kPMTIRotate, 488, 80, kPMTIWait, 1000, @@ -68,10 +65,9 @@ static const int *getPoliceMazePS10TrackData1() { // Enemy linked series (kIte kPMTIRotate, 740, 80, kPMTIPausedReset, kItemPS10Target2, // kItemPS10Target2 continues the route of this item kPMTIObstacleReset, kItemPS10Target1, // kItemPS10Target1 becomes invisible -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target1, 0, // remove target-able here - only for Target1 item -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleSet, kItemPS10Target2, // kItemPS10Target2 becomes visible in kItemPS10Target1's place kPMTIPausedSet, kItemPS10Target1, kPMTIPosition, 0, @@ -88,10 +84,9 @@ static const int *getPoliceMazePS10TrackData2() { // Enemy linked series (kIte kPMTIMove, 69, kPMTIWait, 500, kPMTIObstacleReset, kItemPS10Target2, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target2, 0, // remove target-able here - only for Target2 item -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset, kItemPS10Target5, kPMTIPausedSet, kItemPS10Target2, kPMTIPosition, 0, @@ -104,10 +99,9 @@ static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target3, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target3, kPMTIFacing, 993, kPMTIPosition, 0, @@ -131,11 +125,10 @@ static const int *getPoliceMazePS10TrackData3() { // Enemy (kItemPS10Target3) kPMTIPlaySound, kSfxTARGUP6, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS10Target3, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS 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 +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIRestart }; return trackData; @@ -145,10 +138,9 @@ static const int *getPoliceMazePS10TrackData4() { // Innocent (kItemPS10Target static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target4, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target4, kPMTIFacing, 993, kPMTIPosition, 0, @@ -163,10 +155,9 @@ static const int *getPoliceMazePS10TrackData4() { // Innocent (kItemPS10Target kPMTIMove, 0, kPMTILeave, kPMTIObstacleReset, kItemPS10Target4, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target4, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset, kItemPS10Target8, kPMTIPausedSet, kItemPS10Target4, kPMTIRestart @@ -178,10 +169,9 @@ static const int *getPoliceMazePS10TrackData5() { // Innocent (kItemPS10Target static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target5, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target5, kPMTIFacing, 0, kPMTIPosition, 0, @@ -199,10 +189,9 @@ static const int *getPoliceMazePS10TrackData5() { // Innocent (kItemPS10Target kPMTIMove, 0, kPMTILeave, kPMTIObstacleReset, kItemPS10Target5, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target5, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset, kItemPS10Target1, kPMTIPausedSet, kItemPS10Target5, kPMTIRestart @@ -215,10 +204,9 @@ static const int *getPoliceMazePS10TrackData6() { // Enemy (kItemPS10Target6) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target6, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target6, kPMTIFacing, 999, kPMTIPosition, 0, @@ -242,10 +230,9 @@ static const int *getPoliceMazePS10TrackData6() { // Enemy (kItemPS10Target6) kPMTIPlaySound, kSfxTARGUP6, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS10Target6, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target6, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset, kItemPS10Target7, kPMTIPausedReset, kItemPS10Target9, kPMTIPausedSet, kItemPS10Target6, @@ -258,10 +245,9 @@ static const int *getPoliceMazePS10TrackData7() { // Innocent (kItemPS10Target static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target7, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target7, kPMTIFacing, 264, kPMTIPosition, 0, @@ -275,10 +261,9 @@ static const int *getPoliceMazePS10TrackData7() { // Innocent (kItemPS10Target kPMTIMove, 0, kPMTILeave, kPMTIObstacleReset, kItemPS10Target7, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target7, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedSet, kItemPS10Target7, kPMTIRestart }; @@ -289,10 +274,9 @@ static const int *getPoliceMazePS10TrackData8() { // Enemy (kItemPS10Target8) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target8, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target8, kPMTIFacing, 993, kPMTIPosition, 0, @@ -306,14 +290,17 @@ static const int *getPoliceMazePS10TrackData8() { // Enemy (kItemPS10Target8) kPMTIEnemySet, kItemPS10Target8, // rotate - reveal kPMTIRotate, 491, 80, kPMTIMove, 20, - kPMTIWait, 0, // this results in shooting too fast - TODO maybe introduce a small wait here (50 or 150) +#if BLADERUNNER_ORIGINAL_BUGS + kPMTIWait, 0, // this results in shooting too fast +#else + kPMTIWaitRandom, 400, 800, // introduce a small wait here (400 - 800) +#endif kPMTIShoot, kSfxSMCAL3, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS10Target8, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target8, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset, kItemPS10Target4, kPMTIPausedSet, kItemPS10Target8, kPMTIRestart @@ -325,10 +312,9 @@ static const int *getPoliceMazePS10TrackData9() { // Special (kItemPS10Target9 static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, kPMTIVariableInc, kVariablePoliceMazePS10TargetCounter, kPoliceMazePS10TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target9, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS10Target9, kPMTIFacing, 738, kPMTIPosition, 0, @@ -376,10 +362,9 @@ static const int *getPoliceMazePS10TrackData9() { // Special (kItemPS10Target9 kPMTIPlaySound, kSfxTARGUP4, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS10Target9, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS10Target9, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedSet, kItemPS10Target9, kPMTIRestart }; @@ -416,13 +401,12 @@ void SceneScriptPS10::InitializeScene() { Ambient_Sounds_Add_Sound(kSfxBBMOVE1, 5, 100, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(kSfxBBMOVE2, 5, 100, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(kSfxBBMOVE3, 5, 100, 17, 27, -100, 100, -101, -101, 0, 0); -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS if (!Game_Flag_Query(kFlagPS11toPS10)) { // Moved here from PS15 Sound_Play(kSfxLABBUZZ1, 90, 0, 0, 50); } -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS } void SceneScriptPS10::SceneLoaded() { @@ -520,14 +504,13 @@ bool SceneScriptPS10::ClickedOnItem(int itemId, bool combatMode) { switch (itemId) { case kItemPS10Target1: // fall through // treated the same as kItemPS10Target2 (In the original code they are the same target in different tracks) case kItemPS10Target2: -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS if (Item_Query_Visible(kItemPS10Target1)) { // without this check, target2 seems to get the spinning while the visible target1 stays put Item_Spin_In_World(kItemPS10Target1); } else { Item_Spin_In_World(kItemPS10Target2); } -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS Item_Flag_As_Non_Target(kItemPS10Target1); Item_Flag_As_Non_Target(kItemPS10Target2); break; @@ -539,10 +522,9 @@ bool SceneScriptPS10::ClickedOnItem(int itemId, bool combatMode) { case kItemPS10Target8: // fall through case kItemPS10Target9: // fall through default: -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS Item_Spin_In_World(itemId); -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS Item_Flag_As_Non_Target(itemId); break; } diff --git a/engines/bladerunner/script/scene/ps11.cpp b/engines/bladerunner/script/scene/ps11.cpp index 400be66189c..8533a91bb73 100644 --- a/engines/bladerunner/script/scene/ps11.cpp +++ b/engines/bladerunner/script/scene/ps11.cpp @@ -48,10 +48,9 @@ static const int *getPoliceMazePS11TrackData9() { // Enemy (kItemPS11Target1) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target1, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target1, kPMTIFacing, 50, kPMTIPosition, 0, @@ -71,10 +70,9 @@ static const int *getPoliceMazePS11TrackData9() { // Enemy (kItemPS11Target1) kPMTIMove, 0, kPMTIWait, 500, kPMTIObstacleReset, kItemPS11Target1, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target1, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target7, kItemPS11Target2, kPMTIPausedSet, kItemPS11Target1, kPMTIRestart @@ -86,11 +84,10 @@ static const int *getPoliceMazePS11TrackData10() { // Enemy (kItemPS11Target2, static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target2, 0, // remove target-able here kPMTITargetSet, kItemPS11Target3, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target2, kPMTIObstacleReset, kItemPS11Target3, kPMTITargetSet, kItemPS11Target2, 1, @@ -99,20 +96,18 @@ static const int *getPoliceMazePS11TrackData10() { // Enemy (kItemPS11Target2, kPMTIPosition, 0, kPMTIWaitRandom, 3000, 6000, kPMTIEnemyReset, kItemPS11Target2, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTIEnemyReset, kItemPS11Target3, // both targets should clear their enemy flag here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleSet, kItemPS11Target2, kPMTIPlaySound, kSfxTARGUP5, 33, kPMTIMove, 14, kPMTIWait, 500, kPMTIPausedReset, kItemPS11Target3, kPMTIObstacleReset, kItemPS11Target2, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target2, 0, // remove target-able here - only for kItemPS11Target2 item -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleSet, kItemPS11Target3, kPMTIPausedSet, kItemPS11Target2, kPMTIPosition, 0, @@ -137,10 +132,9 @@ static const int *getPoliceMazePS11TrackData11() { // Enemy (kItemPS11Target2, kPMTIShoot, kSfxLGCAL1, 33, kPMTIMove, 79, kPMTIObstacleReset, kItemPS11Target3, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target3, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target7, kItemPS11Target1, kPMTIPausedSet, kItemPS11Target3, kPMTIPosition, 0, @@ -154,10 +148,9 @@ static const int *getPoliceMazePS11TrackData12() { // Innocent (kItemPS11Target static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target4, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target4, kPMTIFacing, 725, kPMTIPosition, 0, @@ -180,11 +173,10 @@ static const int *getPoliceMazePS11TrackData12() { // Innocent (kItemPS11Target kPMTIRotate, 725, 80, kPMTIMove, 99, kPMTIObstacleReset, kItemPS11Target4, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTILeave, // Do the leave instruction here, before becoming un-target-able kPMTITargetSet, kItemPS11Target4, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset, kItemPS11Target16, kPMTIPausedSet, kItemPS11Target4, kPMTIPosition, 0, @@ -197,10 +189,9 @@ static const int *getPoliceMazePS11TrackData13() { // Enemy (kItemPS11Target5) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target5, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target5, kPMTIFacing, 340, kPMTIPosition, 0, @@ -231,10 +222,9 @@ static const int *getPoliceMazePS11TrackData13() { // Enemy (kItemPS11Target5) kPMTIPlaySound, kSfxTARGUP6, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS11Target5, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target5, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target6, kItemPS11Target10, kPMTIPausedSet, kItemPS11Target5, kPMTIRestart @@ -246,10 +236,9 @@ static const int *getPoliceMazePS11TrackData14() { // Enemy (kItemPS11Target6) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target6, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target6, kPMTITargetSet, kItemPS11Target6, 1, kPMTIEnemyReset, kItemPS11Target6, @@ -277,10 +266,9 @@ static const int *getPoliceMazePS11TrackData14() { // Enemy (kItemPS11Target6) kPMTIPlaySound, kSfxTARGUP6, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS11Target6, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target6, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target10, kItemPS11Target5, kPMTIPausedSet, kItemPS11Target6, kPMTIRestart @@ -292,11 +280,10 @@ static const int *getPoliceMazePS11TrackData15() { // Special (kItemPS11Target7 static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target7, 0, // remove target-able here - redundant, but consistent with the original kPMTIObstacleReset (redundant) instructions that follow kPMTITargetSet, kItemPS11Target8, 0, // remove target-able here - redundant, but consistent with the original kPMTIObstacleReset (redundant) instructions that follow -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target7, kPMTIObstacleReset, kItemPS11Target8, kPMTITargetSet, kItemPS11Target7, 1, @@ -307,19 +294,17 @@ static const int *getPoliceMazePS11TrackData15() { // Special (kItemPS11Target7 kPMTIObstacleSet, kItemPS11Target7, kPMTIPlaySound, kSfxTARGUP1, 33, kPMTIEnemyReset, kItemPS11Target7, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTIEnemyReset, kItemPS11Target8, // both targets should clear their enemy flag here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIMove, 14, kPMTILeave, // intended: special: credit for "first" innocent escaping kPMTIWait, 1000, kPMTIPausedReset, kItemPS11Target8, kPMTIObstacleReset, kItemPS11Target7, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target7, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleSet, kItemPS11Target8, kPMTIPausedSet, kItemPS11Target7, kPMTIPosition, 0, @@ -344,10 +329,9 @@ static const int *getPoliceMazePS11TrackData16() { // Innocent (kItemPS11Target kPMTIMove, 79, kPMTILeave, // credit for "second" / final innocent kPMTIObstacleReset, kItemPS11Target8, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target8, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target2, kItemPS11Target1, kPMTIPausedSet, kItemPS11Target8, kPMTIPosition, 0, @@ -361,11 +345,10 @@ static const int *getPoliceMazePS11TrackData17() { // Special (kItemPS11Target9 static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target9, 0, // remove target-able here kPMTIObstacleReset, kItemPS11Target9, -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIFacing, 310, kPMTIPosition, 0, #if BLADERUNNER_ORIGINAL_BUGS @@ -374,14 +357,17 @@ static const int *getPoliceMazePS11TrackData17() { // Special (kItemPS11Target9 #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIEnemySet, kItemPS11Target9, kPMTIWaitRandom, 4000, 8000, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleSet, kItemPS11Target9, // make visible after the wait period, not before kPMTITargetSet, kItemPS11Target9, 1, // set Target-able after the wait period, not before -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPlaySound, kSfxTARGUP4, 33, kPMTIMove, 10, - kPMTIWait, 0, // this results in shooting too fast - TODO maybe introduce a small wait here (50 or 150) +#if BLADERUNNER_ORIGINAL_BUGS + kPMTIWait, 0, // this results in shooting too fast +#else + kPMTIWaitRandom, 400, 800, // introduce a small wait here (400 - 800) +#endif kPMTIShoot, kSfxSMCAL3, 33, kPMTIMove, 0, kPMTITargetSet, kItemPS11Target9, 1, // intended: special: "second" enemy (re-using the target of the track) @@ -390,15 +376,18 @@ static const int *getPoliceMazePS11TrackData17() { // Special (kItemPS11Target9 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, - kPMTIWait, 0, // this results in shooting too fast - TODO maybe introduce a small wait here (50 or 150) +#if BLADERUNNER_ORIGINAL_BUGS + kPMTIWait, 0, // this results in shooting too fast +#else + kPMTIWaitRandom, 400, 800, // introduce a small wait here (400 - 800) +#endif kPMTIShoot, kSfxSMCAL3, 33, kPMTIMove, 24, kPMTIWait, 1000, kPMTIObstacleReset, kItemPS11Target9, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target9, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target15, kItemPS11Target14, kPMTIPausedSet, kItemPS11Target9, kPMTIPosition, 0, @@ -411,11 +400,10 @@ static const int *getPoliceMazePS11TrackData18() { // Special (kItemPS11Target1 static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target10, 0, // remove target-able here kPMTITargetSet, kItemPS11Target11, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target10, kPMTIObstacleReset, kItemPS11Target11, kPMTIFacing, 900, @@ -423,10 +411,9 @@ static const int *getPoliceMazePS11TrackData18() { // Special (kItemPS11Target1 kPMTITargetSet, kItemPS11Target10, 1, kPMTITargetSet, kItemPS11Target11, 1, kPMTIEnemyReset, kItemPS11Target10, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTIEnemyReset, kItemPS11Target11, // both targets should clear their enemy flag here -#endif +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIWaitRandom, 4000, 6000, kPMTIObstacleSet, kItemPS11Target10, kPMTIMove, 5, @@ -440,20 +427,18 @@ static const int *getPoliceMazePS11TrackData18() { // Special (kItemPS11Target1 #endif // BLADERUNNER_ORIGINAL_BUGS kPMTIRotate, 700, 80, kPMTIEnemySet, kItemPS11Target10, // Now the target is an enemy. (special) Rotate reveal -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTIEnemySet, kItemPS11Target11, // both targets should set their enemy flag here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIWait, 0, kPMTIRotate, 512, 200, kPMTIWait, 1000, kPMTIShoot, kSfxLGCAL1, 33, kPMTIPausedReset, kItemPS11Target11, kPMTIObstacleReset, kItemPS11Target10, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target10, 0, // remove target-able here only for kItemPS11Target10 -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleSet, kItemPS11Target11, kPMTIPausedSet, kItemPS11Target10, kPMTIPosition, 0, @@ -478,10 +463,9 @@ static const int *getPoliceMazePS11TrackData19() { // Special (kItemPS11Target1 kPMTIMove, kItemPS11Target11, kPMTIWait, 500, kPMTIObstacleReset, kItemPS11Target11, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target11, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target5, kItemPS11Target6, kPMTIPausedSet, kItemPS11Target11, kPMTIPosition, 0, @@ -494,10 +478,9 @@ static const int *getPoliceMazePS11TrackData20() { // Enemy (kItemPS11Target12) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target12, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target12, kPMTIFacing, 280, kPMTIPosition, 0, @@ -511,10 +494,9 @@ static const int *getPoliceMazePS11TrackData20() { // Enemy (kItemPS11Target12) kPMTIShoot, kSfxSMCAL3, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS11Target12, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target12, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target13, kItemPS11Target4, kPMTIPausedSet, kItemPS11Target12, kPMTIPosition, 0, @@ -527,10 +509,9 @@ static const int *getPoliceMazePS11TrackData21() { // Innocent (kItemPS11Target static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target13, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target13, kPMTIFacing, 280, kPMTIPosition, 0, @@ -545,11 +526,10 @@ static const int *getPoliceMazePS11TrackData21() { // Innocent (kItemPS11Target kPMTIWait, 1000, kPMTIMove, 0, kPMTIObstacleReset, kItemPS11Target13, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTILeave, // Do the leave instruction here instead kPMTITargetSet, kItemPS11Target13, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target12, kItemPS11Target4, kPMTIPausedSet, kItemPS11Target13, kPMTIPosition, 0, @@ -562,10 +542,9 @@ static const int *getPoliceMazePS11TrackData22() { // Enemy (kItemPS11Target14) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target14, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target14, kPMTIFacing, 255, kPMTIPosition, 0, @@ -583,10 +562,9 @@ static const int *getPoliceMazePS11TrackData22() { // Enemy (kItemPS11Target14) kPMTIShoot, kSfxLGCAL1, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS11Target14, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target14, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target15, kItemPS11Target9, kPMTIPausedSet, kItemPS11Target14, kPMTIPosition, 0, @@ -599,10 +577,9 @@ static const int *getPoliceMazePS11TrackData23() { // Innocent (kItemPS11Target static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target15, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target15, kPMTIFacing, 310, kPMTIPosition, 0, @@ -616,10 +593,9 @@ static const int *getPoliceMazePS11TrackData23() { // Innocent (kItemPS11Target kPMTIMove, 0, kPMTILeave, kPMTIObstacleReset, kItemPS11Target15, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target15, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target14, kItemPS11Target9, kPMTIPausedSet, kItemPS11Target15, kPMTIPosition, 0, @@ -632,10 +608,9 @@ static const int *getPoliceMazePS11TrackData27() { // Enemy (kItemPS11Target16) static int trackData[] = { kPMTIActivate, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, kPMTIVariableInc, kVariablePoliceMazePS11TargetCounter, kPoliceMazePS11TargetCount, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target16, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIObstacleReset, kItemPS11Target16, kPMTIFacing, 346, kPMTIPosition, 0, @@ -648,10 +623,9 @@ static const int *getPoliceMazePS11TrackData27() { // Enemy (kItemPS11Target16) kPMTIShoot, kSfxLGCAL1, 33, kPMTIMove, 0, kPMTIObstacleReset, kItemPS11Target16, -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS kPMTITargetSet, kItemPS11Target16, 0, // remove target-able here -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS kPMTIPausedReset1of2, kItemPS11Target13, kItemPS11Target12, kPMTIPausedSet, kItemPS11Target16, kPMTIPosition, 0, @@ -775,40 +749,37 @@ bool SceneScriptPS11::ClickedOnItem(int itemId, bool combatMode) { switch (itemId) { case kItemPS11Target2: // fall through case kItemPS11Target3: -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS if (Item_Query_Visible(kItemPS11Target2)) { // without this check, the wrong target might get the spinning while the visible stays put Item_Spin_In_World(kItemPS11Target2); } else { Item_Spin_In_World(kItemPS11Target3); } -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS Item_Flag_As_Non_Target(kItemPS11Target2); Item_Flag_As_Non_Target(kItemPS11Target3); break; case kItemPS11Target7: // fall through case kItemPS11Target8: -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS if (Item_Query_Visible(kItemPS11Target7)) { // without this check, the wrong target might get the spinning while the visible stays put Item_Spin_In_World(kItemPS11Target7); } else { Item_Spin_In_World(kItemPS11Target8); } -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS Item_Flag_As_Non_Target(kItemPS11Target7); Item_Flag_As_Non_Target(kItemPS11Target8); break; case kItemPS11Target10: // fall through case kItemPS11Target11: -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS if (Item_Query_Visible(kItemPS11Target10)) { // without this check, the wrong target might get the spinning while the visible stays put Item_Spin_In_World(kItemPS11Target10); } else { Item_Spin_In_World(kItemPS11Target11); } -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS Item_Flag_As_Non_Target(kItemPS11Target10); Item_Flag_As_Non_Target(kItemPS11Target11); break; @@ -823,10 +794,9 @@ bool SceneScriptPS11::ClickedOnItem(int itemId, bool combatMode) { case kItemPS11Target15: // fall through case kItemPS11Target16: // fall through default: -#if BLADERUNNER_ORIGINAL_BUGS -#else +#if !BLADERUNNER_ORIGINAL_BUGS Item_Spin_In_World(itemId); -#endif // BLADERUNNER_ORIGINAL_BUGS +#endif // !BLADERUNNER_ORIGINAL_BUGS Item_Flag_As_Non_Target(itemId); break; }