Skip to content

Commit

Permalink
BLADERUNNER: Fix spinner transitions post Act 1
Browse files Browse the repository at this point in the history
Also restored ascenting outtake when leaving RC01 in Act 1
  • Loading branch information
antoniou79 committed Apr 27, 2019
1 parent 3463611 commit c72cde3
Show file tree
Hide file tree
Showing 12 changed files with 136 additions and 36 deletions.
20 changes: 10 additions & 10 deletions engines/bladerunner/game_constants.h
Expand Up @@ -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
Expand Down
9 changes: 7 additions & 2 deletions engines/bladerunner/script/scene/ar01.cpp
Expand Up @@ -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
}
}

Expand Down
10 changes: 10 additions & 0 deletions engines/bladerunner/script/scene/bb01.cpp
Expand Up @@ -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) {
Expand Down
12 changes: 12 additions & 0 deletions engines/bladerunner/script/scene/ct01.cpp
Expand Up @@ -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) {
Expand Down
8 changes: 8 additions & 0 deletions engines/bladerunner/script/scene/dr01.cpp
Expand Up @@ -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
}
}

Expand Down
12 changes: 9 additions & 3 deletions engines/bladerunner/script/scene/hf01.cpp
Expand Up @@ -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);

Expand Down
24 changes: 16 additions & 8 deletions engines/bladerunner/script/scene/ma01.cpp
Expand Up @@ -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
}
}

Expand Down
13 changes: 10 additions & 3 deletions engines/bladerunner/script/scene/nr01.cpp
Expand Up @@ -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);
}
Expand Down
21 changes: 15 additions & 6 deletions engines/bladerunner/script/scene/ps01.cpp
Expand Up @@ -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
}
}

Expand Down
20 changes: 16 additions & 4 deletions engines/bladerunner/script/scene/rc01.cpp
Expand Up @@ -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;
}
Expand Down
9 changes: 9 additions & 0 deletions engines/bladerunner/script/scene/tb02.cpp
Expand Up @@ -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) {
Expand Down
14 changes: 14 additions & 0 deletions engines/bladerunner/script/scene/tb07.cpp
Expand Up @@ -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);
Expand Down Expand Up @@ -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) {
Expand Down

0 comments on commit c72cde3

Please sign in to comment.