diff options
author | Thanasis Antoniou | 2019-04-28 00:20:05 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-04-28 00:21:16 +0300 |
commit | c72cde3149514dddb8f76f9e717a0fb03dcb8332 (patch) | |
tree | 64ab76f8e22b3fc26bdcd5af8872f288eb791189 /engines/bladerunner | |
parent | 346361166cd95bb6c2fb56c1526f8f44be27a32f (diff) | |
download | scummvm-rg350-c72cde3149514dddb8f76f9e717a0fb03dcb8332.tar.gz scummvm-rg350-c72cde3149514dddb8f76f9e717a0fb03dcb8332.tar.bz2 scummvm-rg350-c72cde3149514dddb8f76f9e717a0fb03dcb8332.zip |
BLADERUNNER: Fix spinner transitions post Act 1
Also restored ascenting outtake when leaving RC01 in Act 1
Diffstat (limited to 'engines/bladerunner')
-rw-r--r-- | engines/bladerunner/game_constants.h | 20 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ar01.cpp | 9 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/bb01.cpp | 10 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ct01.cpp | 12 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/dr01.cpp | 8 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/hf01.cpp | 12 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ma01.cpp | 24 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/nr01.cpp | 13 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps01.cpp | 21 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/rc01.cpp | 20 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/tb02.cpp | 9 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/tb07.cpp | 14 |
12 files changed, 136 insertions, 36 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h index c944db81d8..44acb5c3e4 100644 --- a/engines/bladerunner/game_constants.h +++ b/engines/bladerunner/game_constants.h @@ -1245,16 +1245,16 @@ enum Outtakes { kOuttakeEnd7 = 26, kOuttakeTyrellBuildingFly = 27, kOuttakeWestwood = 28, - kOuttakeFlyThrough = 29, - kOuttakeAway1 = 30, - kOuttakeAway2 = 31, - kOuttakeAscent = 32, - kOuttakeDescent = 33, - kOuttakeInside1 = 34, - kOuttakeInside2 = 35, - kOuttakeTowards1 = 36, - kOuttakeTowards2 = 37, - kOuttakeTowards3 = 38, + kOuttakeFlyThrough = 29, // Act 1 + kOuttakeAway1 = 30, // Act 2, 3 + kOuttakeAway2 = 31, // Act 1 + kOuttakeAscent = 32, // Act 1, 4, 5 - Original: unused + kOuttakeDescent = 33, // Act 1, 4, 5 + kOuttakeInside1 = 34, // Act 1 + kOuttakeInside2 = 35, // Act 1, 2, 3 + kOuttakeTowards1 = 36, // Act 1 + kOuttakeTowards2 = 37, // Act 1 + kOuttakeTowards3 = 38, // Act 1, 2, 3 kOuttakeRachel = 39, kOuttakeDektora = 40, kOuttakeBladeRunner = 41 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) { |