diff options
author | Thanasis Antoniou | 2019-05-25 03:39:17 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-05-25 03:39:57 +0300 |
commit | 9bfca34497786bcaa05d01f13e8f97f500a3ef45 (patch) | |
tree | 91784fa272bd03a721e9a5f0d64c81e867002ca4 /engines/bladerunner/script/ai | |
parent | cde63356f11d6b7a7bc744e0ee98e139ad06a4ad (diff) | |
download | scummvm-rg350-9bfca34497786bcaa05d01f13e8f97f500a3ef45.tar.gz scummvm-rg350-9bfca34497786bcaa05d01f13e8f97f500a3ef45.tar.bz2 scummvm-rg350-9bfca34497786bcaa05d01f13e8f97f500a3ef45.zip |
BLADERUNNER: Fixes for UG18 Guzza scene cases
Diffstat (limited to 'engines/bladerunner/script/ai')
-rw-r--r-- | engines/bladerunner/script/ai/sadik.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp index 0523e9f5b5..a6de93a337 100644 --- a/engines/bladerunner/script/ai/sadik.cpp +++ b/engines/bladerunner/script/ai/sadik.cpp @@ -161,7 +161,7 @@ void AIScriptSadik::OtherAgentEnteredCombatMode(int otherActorId, int combatMode void AIScriptSadik::ShotAtAndMissed() { if (Actor_Query_Goal_Number(kActorSadik) == 414 - || Actor_Query_Goal_Number(kActorSadik) == kGoalSadikUG18NeedsReactorCoreFromMcCoy + || Actor_Query_Goal_Number(kActorSadik) == kGoalSadikKP06NeedsReactorCoreFromMcCoy ) { Game_Flag_Set(kFlagMcCoyAttackedReplicants); if (Actor_Query_Which_Set_In(kActorSadik) != kSetKP07) { @@ -215,7 +215,7 @@ bool AIScriptSadik::ShotAtAndHit() { } if (Actor_Query_Goal_Number(kActorSadik) == 414 - || Actor_Query_Goal_Number(kActorSadik) == kGoalSadikUG18NeedsReactorCoreFromMcCoy + || Actor_Query_Goal_Number(kActorSadik) == kGoalSadikKP06NeedsReactorCoreFromMcCoy ) { Game_Flag_Set(kFlagMcCoyAttackedReplicants); if (Actor_Query_Which_Set_In(kActorSadik) != kSetKP07) { @@ -337,6 +337,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { return true; case kGoalSadikUG18Decide: + // This is called first and then the scene script SceneScriptUG18::ActorChangedGoal Actor_Set_Targetable(kActorSadik, false); return true; @@ -363,11 +364,20 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { case kGoalSadikUG18ShootMcCoy: if (Player_Query_Current_Scene() == kSceneUG18) { +#if BLADERUNNER_ORIGINAL_BUGS Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(kSfxLGCAL1, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1); +#else + Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); + Sound_Play(kSfxLGCAL1, 100, 0, 0, 50); + Player_Loses_Control(); + Actor_Force_Stop_Walking(kActorMcCoy); + Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); + Actor_Retired_Here(kActorMcCoy, 6, 6, true, kActorSadik); +#endif // BLADERUNNER_ORIGINAL_BUGS } return true; @@ -443,10 +453,10 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { Actor_Says(kActorSadik, 240, kAnimationModeTalk); Actor_Says(kActorSadik, 250, kAnimationModeTalk); Actor_Says(kActorSadik, 260, kAnimationModeTalk); - Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18NeedsReactorCoreFromMcCoy); + Actor_Set_Goal_Number(kActorSadik, kGoalSadikKP06NeedsReactorCoreFromMcCoy); return true; - case kGoalSadikUG18NeedsReactorCoreFromMcCoy: + case kGoalSadikKP06NeedsReactorCoreFromMcCoy: Loop_Actor_Walk_To_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 0, false, false, false); Actor_Face_Heading(kActorSadik, 150, false); return true; @@ -459,7 +469,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { Actor_Says(kActorSadik, 330, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2335, kAnimationModeTalk); Actor_Says(kActorSadik, 340, kAnimationModeTalk); - Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18NeedsReactorCoreFromMcCoy); + Actor_Set_Goal_Number(kActorSadik, kGoalSadikKP06NeedsReactorCoreFromMcCoy); return true; case 418: |