diff options
author | Thanasis Antoniou | 2019-04-07 22:46:36 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-04-07 22:48:10 +0300 |
commit | 603c9fd0095fa7cc492ad3feb8226229c3510721 (patch) | |
tree | 8ff3577aafc449d284121dccf826ca161dd35b51 /engines/bladerunner/script/ai | |
parent | c21090ea03965b128edcdfabad7f074151961fda (diff) | |
download | scummvm-rg350-603c9fd0095fa7cc492ad3feb8226229c3510721.tar.gz scummvm-rg350-603c9fd0095fa7cc492ad3feb8226229c3510721.tar.bz2 scummvm-rg350-603c9fd0095fa7cc492ad3feb8226229c3510721.zip |
BLADERUNNER: Fix for AR, CT01 Spinner fly-in
AR01: Fish dealer behavior fix, AR02: music fix, CT01: Spinner may fly in (loop)
Diffstat (limited to 'engines/bladerunner/script/ai')
-rw-r--r-- | engines/bladerunner/script/ai/fish_dealer.cpp | 27 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/general_doll.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/howie_lee.cpp | 7 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/officer_grayford.cpp | 2 |
4 files changed, 31 insertions, 7 deletions
diff --git a/engines/bladerunner/script/ai/fish_dealer.cpp b/engines/bladerunner/script/ai/fish_dealer.cpp index 5297ae43dd..d7f517c984 100644 --- a/engines/bladerunner/script/ai/fish_dealer.cpp +++ b/engines/bladerunner/script/ai/fish_dealer.cpp @@ -45,16 +45,33 @@ bool AIScriptFishDealer::Update() { Actor_Set_Goal_Number(kActorFishDealer, 400); return true; - } else if (Player_Query_Current_Scene() - || Actor_Query_Goal_Number(kActorFishDealer) == 2 - || Actor_Query_Goal_Number(kActorFishDealer) == 1 - || Actor_Query_Goal_Number(kActorFishDealer) == 400) { + } +#if BLADERUNNER_ORIGINAL_BUGS + else if (Player_Query_Current_Scene() + || Actor_Query_Goal_Number(kActorFishDealer) == 2 + || Actor_Query_Goal_Number(kActorFishDealer) == 1 + || Actor_Query_Goal_Number(kActorFishDealer) == 400) { return false; } else { Actor_Set_Goal_Number(kActorFishDealer, 1); return true; } +#else + // prevent Fish Dealer from blinking out while McCoy is flying out from Animoid + else if (Actor_Query_Goal_Number(kActorFishDealer) == 400 + || ( Player_Query_Current_Scene() != kSceneAR01 )) { + return false; + } + else { + if (Player_Query_Current_Scene() == kSceneAR01 + && Actor_Query_Goal_Number(kActorFishDealer) == 3) { + Actor_Set_Goal_Number(kActorFishDealer, 1); + } + return true; + } +#endif // BLADERUNNER_ORIGINAL_BUGS + } void AIScriptFishDealer::TimerExpired(int timer) { @@ -65,7 +82,7 @@ void AIScriptFishDealer::CompletedMovementTrack() { if (Actor_Query_Goal_Number(kActorFishDealer) != 1) return; // false - Actor_Set_Goal_Number(kActorFishDealer, 99); + Actor_Set_Goal_Number(kActorFishDealer, 99); // A bug? Actor_Set_Goal_Number(kActorFishDealer, 1); //return true; diff --git a/engines/bladerunner/script/ai/general_doll.cpp b/engines/bladerunner/script/ai/general_doll.cpp index 7a62320153..ee531d0d44 100644 --- a/engines/bladerunner/script/ai/general_doll.cpp +++ b/engines/bladerunner/script/ai/general_doll.cpp @@ -73,7 +73,7 @@ void AIScriptGeneralDoll::TimerExpired(int timer) { void AIScriptGeneralDoll::CompletedMovementTrack() { switch (Actor_Query_Goal_Number(kActorGeneralDoll)) { case 101: - if (Player_Query_Current_Scene() == 6) { + if (Player_Query_Current_Scene() == kSceneBB05) { switch (Random_Query(0, 5)) { case 0: Ambient_Sounds_Play_Speech_Sound(kActorGeneralDoll, 0, 80, 0, 0, 0); diff --git a/engines/bladerunner/script/ai/howie_lee.cpp b/engines/bladerunner/script/ai/howie_lee.cpp index 93f08672db..3675fc1b60 100644 --- a/engines/bladerunner/script/ai/howie_lee.cpp +++ b/engines/bladerunner/script/ai/howie_lee.cpp @@ -66,6 +66,13 @@ bool AIScriptHowieLee::Update() { if ( Actor_Query_Goal_Number(kActorHowieLee) == 1 && Game_Flag_Query(kFlagCT01BoughtHowieLeeFood) && !Game_Flag_Query(kFlagMcCoyInChinaTown) +#if BLADERUNNER_ORIGINAL_BUGS +#else + // Prevents possibility of Howie Lee from blinking in/out of existence + // when the flyout loop is playing + // and when McCoy enters and exits the Spinner with the spinner doors animation restored + && Player_Query_Current_Scene() != kSceneCT01 +#endif // BLADERUNNER_ORIGINAL_BUGS ) { Actor_Set_Goal_Number(kActorHowieLee, 4); return true; diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp index 0e82ded8c0..66f05e56ba 100644 --- a/engines/bladerunner/script/ai/officer_grayford.cpp +++ b/engines/bladerunner/script/ai/officer_grayford.cpp @@ -542,7 +542,7 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb Actor_Change_Animation_Mode(kActorOfficerGrayford, 43); - if (Player_Query_Current_Scene() == 28) { + if (Player_Query_Current_Scene() == kSceneDR04) { Actor_Says(kActorOfficerGrayford, 170, kAnimationModeTalk); } return true; |