From c72cde3149514dddb8f76f9e717a0fb03dcb8332 Mon Sep 17 00:00:00 2001 From: Thanasis Antoniou Date: Sun, 28 Apr 2019 00:20:05 +0300 Subject: BLADERUNNER: Fix spinner transitions post Act 1 Also restored ascenting outtake when leaving RC01 in Act 1 --- engines/bladerunner/script/scene/ar01.cpp | 9 +++++++-- engines/bladerunner/script/scene/bb01.cpp | 10 ++++++++++ engines/bladerunner/script/scene/ct01.cpp | 12 ++++++++++++ engines/bladerunner/script/scene/dr01.cpp | 8 ++++++++ engines/bladerunner/script/scene/hf01.cpp | 12 +++++++++--- engines/bladerunner/script/scene/ma01.cpp | 24 ++++++++++++++++-------- engines/bladerunner/script/scene/nr01.cpp | 13 ++++++++++--- engines/bladerunner/script/scene/ps01.cpp | 21 +++++++++++++++------ engines/bladerunner/script/scene/rc01.cpp | 20 ++++++++++++++++---- engines/bladerunner/script/scene/tb02.cpp | 9 +++++++++ engines/bladerunner/script/scene/tb07.cpp | 14 ++++++++++++++ 11 files changed, 126 insertions(+), 26 deletions(-) (limited to 'engines/bladerunner/script') diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp index d658cc4476..0397435d57 100644 --- a/engines/bladerunner/script/scene/ar01.cpp +++ b/engines/bladerunner/script/scene/ar01.cpp @@ -399,9 +399,14 @@ void SceneScriptAR01::PlayerWalkedOut() { if (!Game_Flag_Query(kFlagAR01toHC01) && !Game_Flag_Query(kFlagAR01toAR02) ) { - Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); - Ambient_Sounds_Remove_All_Looping_Sounds(1); +#if BLADERUNNER_ORIGINAL_BUGS Outtake_Play(kOuttakeTowards3, true, -1); +#else + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // don't play an extra outtake when going to Tyrell Building + Outtake_Play(kOuttakeTowards3, true, -1); // Act 1, 2, 3 + } +#endif // BLADERUNNER_ORIGINAL_BUGS } } diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp index 76fe189687..4275bb93bf 100644 --- a/engines/bladerunner/script/scene/bb01.cpp +++ b/engines/bladerunner/script/scene/bb01.cpp @@ -259,6 +259,16 @@ void SceneScriptBB01::PlayerWalkedIn() { void SceneScriptBB01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); +#if BLADERUNNER_ORIGINAL_BUGS +#else + if (!Game_Flag_Query(kFlagBB01toBB02) + && !Game_Flag_Query(kFlagBB01toDR02)) { + // Acts 2, 3 - should still use a spinner fly-through transition + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + Outtake_Play(kOuttakeTowards3, true, -1); // available in Acts 1, 2, 3 + } + } +#endif // BLADERUNNER_ORIGINAL_BUGS } void SceneScriptBB01::DialogueQueueFlushed(int a1) { diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp index d3312f74b7..43805d09f5 100644 --- a/engines/bladerunner/script/scene/ct01.cpp +++ b/engines/bladerunner/script/scene/ct01.cpp @@ -487,11 +487,23 @@ void SceneScriptCT01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Looping_Sounds(1); } Music_Stop(5); +#if BLADERUNNER_ORIGINAL_BUGS if (!Game_Flag_Query(kFlagMcCoyInChinaTown) && Global_Variable_Query(kVariableChapter) == 1) { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(kOuttakeTowards3, true, -1); } +#else + // Acts 2, 3 - should still use a spinner fly-through transition + // also removed the redundant Ambient_Sounds_Remove_All_Non_Looping_Sounds + if (!Game_Flag_Query(kFlagMcCoyInChinaTown)) { + Ambient_Sounds_Remove_All_Looping_Sounds(1); + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // don't play this outtake when going to Tyrell Building + Outtake_Play(kOuttakeTowards3, true, -1); // available in Acts 1, 2, 3 + } + } +#endif // BLADERUNNER_ORIGINAL_BUGS } void SceneScriptCT01::DialogueQueueFlushed(int a1) { diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp index 334c0e4f49..2467d841cd 100644 --- a/engines/bladerunner/script/scene/dr01.cpp +++ b/engines/bladerunner/script/scene/dr01.cpp @@ -303,6 +303,14 @@ void SceneScriptDR01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(kOuttakeInside2, true, -1); +#if BLADERUNNER_ORIGINAL_BUGS +#else + // add another transition to make it less abrupt + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // but don't play this extra outtake when going to Tyrell Building + Outtake_Play(kOuttakeAway1, true, -1); + } +#endif // BLADERUNNER_ORIGINAL_BUGS } } diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp index f7567bc438..e98cd93db7 100644 --- a/engines/bladerunner/script/scene/hf01.cpp +++ b/engines/bladerunner/script/scene/hf01.cpp @@ -411,10 +411,16 @@ void SceneScriptHF01::PlayerWalkedOut() { && !Game_Flag_Query(kFlagHF01toHF03) && !Game_Flag_Query(kFlagChapter4Starting) ) { - Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); - Ambient_Sounds_Remove_All_Looping_Sounds(1); - Outtake_Play(kOuttakeInside2, true, -1); +#if BLADERUNNER_ORIGINAL_BUGS + Outtake_Play(kOuttakeInside2, true, -1); Outtake_Play(kOuttakeTowards3, true, -1); +#else + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // don't play an extra outtake when going to Tyrell Building + Outtake_Play(kOuttakeInside2, true, -1); + Outtake_Play(kOuttakeTowards3, true, -1); + } +#endif // BLADERUNNER_ORIGINAL_BUGS } Game_Flag_Reset(kFlagChapter4Starting); diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp index 7de96d7577..9a4bf2431b 100644 --- a/engines/bladerunner/script/scene/ma01.cpp +++ b/engines/bladerunner/script/scene/ma01.cpp @@ -275,14 +275,22 @@ void SceneScriptMA01::PlayerWalkedOut() { Actor_Set_Invisible(kActorMcCoy, false); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); - if (!Game_Flag_Query(kFlagMA01toMA06) - && Global_Variable_Query(kVariableChapter) == 1 - ) { - Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); - Ambient_Sounds_Remove_All_Looping_Sounds(1); - Outtake_Play(kOuttakeTowards2, true, -1); - Outtake_Play(kOuttakeInside1, true, -1); - Outtake_Play(kOuttakeTowards1, true, -1); + if (!Game_Flag_Query(kFlagMA01toMA06)) { + if (Global_Variable_Query(kVariableChapter) == 1) { + Outtake_Play(kOuttakeTowards2, true, -1); + Outtake_Play(kOuttakeInside1, true, -1); + Outtake_Play(kOuttakeTowards1, true, -1); + } +#if BLADERUNNER_ORIGINAL_BUGS +#else + else { + // Acts 2, 3 - should still use a spinner fly-through transition + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // don't play an extra outtake when going to Tyrell Building + Outtake_Play(kOuttakeAway1, true, -1); // available in Acts 2, 3 + } + } +#endif // BLADERUNNER_ORIGINAL_BUGS } } diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp index 41a571c5e0..3429870187 100644 --- a/engines/bladerunner/script/scene/nr01.cpp +++ b/engines/bladerunner/script/scene/nr01.cpp @@ -462,10 +462,17 @@ void SceneScriptNR01::PlayerWalkedOut() { && !Game_Flag_Query(kFlagNR01DektoraFall) && !Game_Flag_Query(kFlagChapter4Starting) ) { - Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); - Ambient_Sounds_Remove_All_Looping_Sounds(1); - Outtake_Play(kOuttakeAway1, true, -1); +#if BLADERUNNER_ORIGINAL_BUGS + Outtake_Play(kOuttakeAway1, true, -1); Outtake_Play(kOuttakeInside2, true, -1); +#else + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // don't play an extra outtake when going to Tyrell Building + // also switch order so inside2 outtake is not last + Outtake_Play(kOuttakeInside2, true, -1); + Outtake_Play(kOuttakeAway1, true, -1); + } +#endif // BLADERUNNER_ORIGINAL_BUGS } Game_Flag_Reset(kFlagChapter4Starting); } diff --git a/engines/bladerunner/script/scene/ps01.cpp b/engines/bladerunner/script/scene/ps01.cpp index 4ab8f24582..56b9f7289a 100644 --- a/engines/bladerunner/script/scene/ps01.cpp +++ b/engines/bladerunner/script/scene/ps01.cpp @@ -288,12 +288,21 @@ void SceneScriptPS01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); - if (!Game_Flag_Query(kflagPS01toPS02) - && Global_Variable_Query(kVariableChapter) == 1 - ) { - Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); - Ambient_Sounds_Remove_All_Looping_Sounds(1); - Outtake_Play(kOuttakeTowards3, true, -1); + if (!Game_Flag_Query(kflagPS01toPS02)) { + if (Global_Variable_Query(kVariableChapter) == 1) { + Outtake_Play(kOuttakeTowards3, true, -1); + } +#if BLADERUNNER_ORIGINAL_BUGS +#else + else { + // Acts 2, 3 - should still use a spinner fly-through transition + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // don't play an extra outtake when going to Tyrell Building + Outtake_Play(kOuttakeInside2, true, -1); // available in Acts 1, 2, 3 + Outtake_Play(kOuttakeTowards3, true, -1); // available in Acts 1, 2, 3 + } + } +#endif // BLADERUNNER_ORIGINAL_BUGS } } diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp index a6fb2db5b2..ee7fe5f957 100644 --- a/engines/bladerunner/script/scene/rc01.cpp +++ b/engines/bladerunner/script/scene/rc01.cpp @@ -698,11 +698,23 @@ void SceneScriptRC01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Looping_Sounds(1); if (!Game_Flag_Query(kFlagRC01toRC02) && !Game_Flag_Query(kFlagRC01toRC03) - && Global_Variable_Query(kVariableChapter) == 1 ) { - Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); - Ambient_Sounds_Remove_All_Looping_Sounds(1); - Outtake_Play(kOuttakeAway2, true, -1); + if(Global_Variable_Query(kVariableChapter) == 1) { + if (_vm->_cutContent) { + Outtake_Play(kOuttakeAscent, true, -1); + } + Outtake_Play(kOuttakeAway2, true, -1); + } +#if BLADERUNNER_ORIGINAL_BUGS +#else + else { + // Acts 2, 3 - should still use a spinner fly-through transition + if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) { + // don't play this extra outtake when going to Tyrell Building + Outtake_Play(kOuttakeAway1, true, -1); // available in Acts 2, 3 + } + } +#endif // BLADERUNNER_ORIGINAL_BUGS } // return 1; } diff --git a/engines/bladerunner/script/scene/tb02.cpp b/engines/bladerunner/script/scene/tb02.cpp index bffea7be46..56cf556a3c 100644 --- a/engines/bladerunner/script/scene/tb02.cpp +++ b/engines/bladerunner/script/scene/tb02.cpp @@ -383,6 +383,15 @@ void SceneScriptTB02::PlayerWalkedIn() { void SceneScriptTB02::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); +#if BLADERUNNER_ORIGINAL_BUGS +#else + if (Global_Variable_Query(kVariableChapter) < 4 + && !Game_Flag_Query(kFlagMcCoyInTyrellBuilding) + ) { + // Acts 2, 3 - use a spinner fly-through transition + Outtake_Play(kOuttakeTowards3, true, -1); // available in Acts 1, 2, 3 + } +#endif // BLADERUNNER_ORIGINAL_BUGS } void SceneScriptTB02::DialogueQueueFlushed(int a1) { diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp index 9e5578a907..781e53ee47 100644 --- a/engines/bladerunner/script/scene/tb07.cpp +++ b/engines/bladerunner/script/scene/tb07.cpp @@ -90,8 +90,10 @@ bool SceneScriptTB07::ClickedOnItem(int itemId, bool a2) { bool SceneScriptTB07::ClickedOnExit(int exitId) { if (exitId == 0) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 68.0f, 12.0f, 288.0f, 0, true, false, 0)) { +#if BLADERUNNER_ORIGINAL_BUGS Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); +#endif // BLADERUNNER_ORIGINAL_BUGS if (Global_Variable_Query(kVariableChapter) == 4) { Game_Flag_Set(kFlagTB07toTB02); Set_Enter(kSetTB02_TB03, kSceneTB02); @@ -199,6 +201,18 @@ void SceneScriptTB07::PlayerWalkedIn() { } void SceneScriptTB07::PlayerWalkedOut() { +#if BLADERUNNER_ORIGINAL_BUGS +#else + Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); + Ambient_Sounds_Remove_All_Looping_Sounds(1); + if (Global_Variable_Query(kVariableChapter) < 4 + && !Game_Flag_Query(kFlagMcCoyInTyrellBuilding) + ) { + // Acts 2, 3 - use a spinner fly-through transition + Outtake_Play(kOuttakeAway1, true, -1); // available in Acts 2, 3 + } +#endif // BLADERUNNER_ORIGINAL_BUGS + } void SceneScriptTB07::DialogueQueueFlushed(int a1) { -- cgit v1.2.3