diff options
Diffstat (limited to 'engines/bladerunner/script/scene/ps03.cpp')
-rw-r--r-- | engines/bladerunner/script/scene/ps03.cpp | 22 |
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; |