aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene/ps13.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/scene/ps13.cpp')
-rw-r--r--engines/bladerunner/script/scene/ps13.cpp134
1 files changed, 75 insertions, 59 deletions
diff --git a/engines/bladerunner/script/scene/ps13.cpp b/engines/bladerunner/script/scene/ps13.cpp
index 7454d42a87..ecd46cf259 100644
--- a/engines/bladerunner/script/scene/ps13.cpp
+++ b/engines/bladerunner/script/scene/ps13.cpp
@@ -63,7 +63,7 @@ void SceneScriptPS13::InitializeScene() {
Ambient_Sounds_Add_Sound(308, 5, 100, 17, 27, -100, 100, -101, -101, 0, 0);
}
-static const int *getPoliceMazePS13TrackData46() {
+static const int *getPoliceMazePS13TrackData46() { // - Starts activated
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
@@ -89,7 +89,7 @@ static const int *getPoliceMazePS13TrackData46() {
return trackData;
}
-static const int *getPoliceMazePS13TrackData47() {
+static const int *getPoliceMazePS13TrackData47() { // - Starts activated
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
@@ -113,7 +113,7 @@ static const int *getPoliceMazePS13TrackData47() {
return trackData;
}
-static const int *getPoliceMazePS13TrackData48() {
+static const int *getPoliceMazePS13TrackData48() { // - Starts activated
static int trackData[] = {
kPMTIActivate, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
kPMTIVariableInc, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
@@ -297,27 +297,27 @@ static const int *getPoliceMazePS13TrackData54() {
static const int *getPoliceMazePS13TrackData55() {
static int trackData[] = {
- kPMTIActivate, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
- kPMTIVariableInc, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
- kPMTIObstacleReset, kItemPS13Target10,
- kPMTIObstacleReset, kItemPS13Target11,
- kPMTIObstacleReset, kItemPS13Target12,
- kPMTITargetSet, kItemPS13Target10, 1,
- kPMTITargetSet, kItemPS13Target11, 1,
- kPMTITargetSet, kItemPS13Target12, 1,
- kPMTIFacing, 327,
- kPMTIPosition, 0,
- kPMTIWaitRandom, 1000, 1000,
- kPMTIPlaySound, 33, 33,
- kPMTIEnemyReset, kItemPS13Target10,
- kPMTIObstacleSet, kItemPS13Target10,
- kPMTIMove, 14,
- kPMTIWait, 1000,
- kPMTIPausedReset, kItemPS13Target11,
- kPMTIObstacleReset, kItemPS13Target10,
- kPMTIObstacleSet, kItemPS13Target11,
- kPMTIPausedSet, kItemPS13Target10,
- kPMTIPosition, 0,
+ kPMTIActivate, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
+ kPMTIVariableInc, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
+ kPMTIObstacleReset, kItemPS13Target10,
+ kPMTIObstacleReset, kItemPS13Target11,
+ kPMTIObstacleReset, kItemPS13Target12,
+ kPMTITargetSet, kItemPS13Target10, 1,
+ kPMTITargetSet, kItemPS13Target11, 1,
+ kPMTITargetSet, kItemPS13Target12, 1,
+ kPMTIFacing, 327,
+ kPMTIPosition, 0,
+ kPMTIWaitRandom, 1000, 1000,
+ kPMTIPlaySound, 33, 33,
+ kPMTIEnemyReset, kItemPS13Target10,
+ kPMTIObstacleSet, kItemPS13Target10,
+ kPMTIMove, 14,
+ kPMTIWait, 1000,
+ kPMTIPausedReset, kItemPS13Target11,
+ kPMTIObstacleReset, kItemPS13Target10,
+ kPMTIObstacleSet, kItemPS13Target11,
+ kPMTIPausedSet, kItemPS13Target10,
+ kPMTIPosition, 0,
kPMTIRestart
};
return trackData;
@@ -325,17 +325,17 @@ static const int *getPoliceMazePS13TrackData55() {
static const int *getPoliceMazePS13TrackData56() {
static int trackData[] = {
- kPMTIFacing, 327,
- kPMTIPosition, 0,
- kPMTIObstacleSet, kItemPS13Target11,
- kPMTIEnemyReset, kItemPS13Target11,
- kPMTIMove, 14,
- kPMTIWait, 1000,
- kPMTIPausedReset, kItemPS13Target12,
- kPMTIObstacleReset, kItemPS13Target11,
- kPMTIObstacleSet, kItemPS13Target12,
- kPMTIPausedSet, kItemPS13Target11,
- kPMTIPosition, 0,
+ kPMTIFacing, 327,
+ kPMTIPosition, 0,
+ kPMTIObstacleSet, kItemPS13Target11,
+ kPMTIEnemyReset, kItemPS13Target11,
+ kPMTIMove, 14,
+ kPMTIWait, 1000,
+ kPMTIPausedReset, kItemPS13Target12,
+ kPMTIObstacleReset, kItemPS13Target11,
+ kPMTIObstacleSet, kItemPS13Target12,
+ kPMTIPausedSet, kItemPS13Target11,
+ kPMTIPosition, 0,
kPMTIRestart
};
return trackData;
@@ -363,33 +363,33 @@ static const int *getPoliceMazePS13TrackData57() {
return trackData;
}
-static const int *getPoliceMazePS13TrackData58() {
+static const int *getPoliceMazePS13TrackData58() { // - Starts activated
static int trackData[] = {
- kPMTIActivate, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
- kPMTIVariableInc, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
- kPMTIObstacleReset, kItemPS13Target13,
- kPMTIFacing, 922,
- kPMTIPosition, 0,
- kPMTIWaitRandom, 3000, 3000,
- kPMTIObstacleSet, kItemPS13Target13,
- kPMTIPlaySound, 33, 33,
- kPMTITargetSet, kItemPS13Target13, 1,
- kPMTIEnemyReset, kItemPS13Target13,
- kPMTIMove, 9,
- kPMTIWait, 200,
- kPMTIMove, 0,
+ kPMTIActivate, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
+ kPMTIVariableInc, kVariablePoliceMazePS13TargetCounter, kPoliceMazePS13TargetCount,
+ kPMTIObstacleReset, kItemPS13Target13,
+ kPMTIFacing, 922,
+ kPMTIPosition, 0,
+ kPMTIWaitRandom, 3000, 3000,
+ kPMTIObstacleSet, kItemPS13Target13,
+ kPMTIPlaySound, 33, 33,
+ kPMTITargetSet, kItemPS13Target13, 1,
+ kPMTIEnemyReset, kItemPS13Target13,
+ kPMTIMove, 9,
+ kPMTIWait, 200,
+ kPMTIMove, 0,
kPMTILeave,
- kPMTITargetSet, kItemPS13Target13, 1,
- kPMTIEnemyReset, kItemPS13Target13,
- kPMTIWait, 200,
- kPMTIMove, 9,
- kPMTIWait, 200,
- kPMTIMove, 0,
+ kPMTITargetSet, kItemPS13Target13, 1,
+ kPMTIEnemyReset, kItemPS13Target13,
+ kPMTIWait, 200,
+ kPMTIMove, 9,
+ kPMTIWait, 200,
+ kPMTIMove, 0,
kPMTILeave,
- kPMTIObstacleReset, kItemPS13Target13,
- kPMTIPausedReset, kItemPS13Target4,
- kPMTIPausedSet, kItemPS13Target13,
- kPMTIPosition, 0,
+ kPMTIObstacleReset, kItemPS13Target13,
+ kPMTIPausedReset, kItemPS13Target4,
+ kPMTIPausedSet, kItemPS13Target13,
+ kPMTIPosition, 0,
kPMTIRestart
};
return trackData;
@@ -550,11 +550,23 @@ bool SceneScriptPS13::ClickedOnItem(int itemId, bool a2) {
Sound_Play(2, 12, 0, 0, 50); // SPINNY1
break;
}
+#if BLADERUNNER_ORIGINAL_BUGS
Item_Spin_In_World(itemId);
+#endif // BLADERUNNER_ORIGINAL_BUGS
switch (itemId) {
case kItemPS13Target10: // fall-through
case kItemPS13Target11: // fall-through
case kItemPS13Target12:
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ if (Item_Query_Visible(kItemPS13Target10)) { // without this check, the wrong target might get the spinning while the visible stays put
+ Item_Spin_In_World(kItemPS13Target10);
+ } else if (Item_Query_Visible(kItemPS13Target11)) {
+ Item_Spin_In_World(kItemPS13Target11);
+ } else {
+ Item_Spin_In_World(kItemPS13Target12);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
Item_Flag_As_Non_Target(kItemPS13Target10);
Item_Flag_As_Non_Target(kItemPS13Target11);
Item_Flag_As_Non_Target(kItemPS13Target12);
@@ -572,6 +584,10 @@ bool SceneScriptPS13::ClickedOnItem(int itemId, bool a2) {
case kItemPS13Target14: // fall-through
case kItemPS13Target15: // fall-through
default:
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ Item_Spin_In_World(itemId);
+#endif // BLADERUNNER_ORIGINAL_BUGS
Item_Flag_As_Non_Target(itemId);
break;
}