aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene/ps03.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/scene/ps03.cpp')
-rw-r--r--engines/bladerunner/script/scene/ps03.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/engines/bladerunner/script/scene/ps03.cpp b/engines/bladerunner/script/scene/ps03.cpp
index 064caed1c9..158b6211c9 100644
--- a/engines/bladerunner/script/scene/ps03.cpp
+++ b/engines/bladerunner/script/scene/ps03.cpp
@@ -75,12 +75,22 @@ bool SceneScriptPS03::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptPS03::ClickedOnExit(int exitId) {
if (exitId == 0) {
+#if BLADERUNNER_ORIGINAL_BUGS
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -674.0f, -354.0f, 550.0f, 0, 1, false, 0)) {
Game_Flag_Set(kFlagPS03toPS04);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Set_Enter(kSetPS04, kScenePS04);
}
+#else
+ // Make McCoy move more forward till he reaches the exit to avoid blinking out at transition to PS03
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -674.0f, -354.0f, 690.0f, 0, 1, false, 0)) {
+ Game_Flag_Set(kFlagPS03toPS04);
+ Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
+ Ambient_Sounds_Remove_All_Looping_Sounds(1);
+ Set_Enter(kSetPS04, kScenePS04);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
return true;
}
if (exitId == 1) {
@@ -90,18 +100,28 @@ bool SceneScriptPS03::ClickedOnExit(int exitId) {
Set_Enter(kSetPS02, kScenePS02);
Game_Flag_Reset(kFlagMcCoyAtPS03);
if (Global_Variable_Query(kVariableChapter) < 4) {
- Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaLeaveOffice);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaLeftOffice);
}
}
return true;
}
if (exitId == 2) {
+#if BLADERUNNER_ORIGINAL_BUGS
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -875.0f, -354.0f, -1241.0f, 0, 1, false, 0)) {
Game_Flag_Set(kFlagPS03toPS14);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Set_Enter(kSetPS14, kScenePS14);
}
+#else
+ // exit Police Station earlier (lower z) to avoid some glitch of blending McCoy with background
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -875.0f, -354.0f, -1231.0f, 0, 1, false, 0)) {
+ Game_Flag_Set(kFlagPS03toPS14);
+ Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
+ Ambient_Sounds_Remove_All_Looping_Sounds(1);
+ Set_Enter(kSetPS14, kScenePS14);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
return true;
}
return false;