From 6e45a702a2230d7f5ff335d17d66dc65486a6203 Mon Sep 17 00:00:00 2001 From: Thanasis Antoniou Date: Thu, 28 Mar 2019 01:32:08 +0200 Subject: BLADERUNNER: Moonbus fixes (Izo and Luther) Also fixed a typo that resulted in Izo's corpse persisting past chapter 2 at RC03 --- engines/bladerunner/script/ai/clovis.cpp | 6 +++--- engines/bladerunner/script/ai/izo.cpp | 11 +++++++++-- engines/bladerunner/script/ai/luther.cpp | 12 +++++++++++- 3 files changed, 23 insertions(+), 6 deletions(-) (limited to 'engines/bladerunner/script') diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp index beb90edf15..a912c654f2 100644 --- a/engines/bladerunner/script/ai/clovis.cpp +++ b/engines/bladerunner/script/ai/clovis.cpp @@ -459,7 +459,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) { ) { #if BLADERUNNER_ORIGINAL_BUGS // Lucy's retirement on the moonbus should be handled in her ai script AIScriptLucy::Retired() - // like the others - even if she won't attack McCoy, she should be retired immediately (with this shot) + // like the others - even if she won't attack McCoy, she should be retired immediately (with one shot) Actor_Set_Goal_Number(kActorLucy, kGoalLucyGone); Global_Variable_Decrement(kVariableReplicantsSurvivorsAtMoobus, 1); #else @@ -473,8 +473,8 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) { && Actor_Query_In_Set(kActorLuther, kSetKP07) ) { #if BLADERUNNER_ORIGINAL_BUGS - // Luther's retirement on the moonbus should be handled in her ai script AIScriptLucy::Retired() - // like the others - even if she won't attack McCoy, she should be retired immediately (with this shot) + // Luther's retirement on the moonbus should be handled in his ai script AIScriptLuther:Retired() + // like the others - even if he won't attack McCoy, he should be retired immediately (with one shot) Actor_Set_Goal_Number(kActorLuther, kGoalLutherGone); Global_Variable_Decrement(kVariableReplicantsSurvivorsAtMoobus, 1); #endif // BLADERUNNER_ORIGINAL_BUGS diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp index 92d2587328..d02145b10f 100644 --- a/engines/bladerunner/script/ai/izo.cpp +++ b/engines/bladerunner/script/ai/izo.cpp @@ -59,7 +59,7 @@ bool AIScriptIzo::Update() { return true; } - if (Global_Variable_Query(kVariableChapter) == 1 + if (Global_Variable_Query(kVariableChapter) == 3 && Actor_Query_Goal_Number(kActorIzo) == kGoalIzoGone && Actor_Query_Which_Set_In(kActorIzo) == kSetRC03 ) { @@ -407,8 +407,15 @@ bool AIScriptIzo::GoalChanged(int currentGoalNumber, int newGoalNumber) { Ambient_Sounds_Play_Speech_Sound(kActorIzo, 9000, 100, 0, 0, 0); Actor_Change_Animation_Mode(kActorIzo, kAnimationModeDie); Actor_Set_Goal_Number(kActorIzo, 999); +#if BLADERUNNER_ORIGINAL_BUGS Scene_Exits_Enable(); - Actor_Retired_Here(kActorIzo, 36, 12, true, -1); +#else + Actor_Set_Targetable(kActorIzo, false); + if (!Actor_Query_In_Set(kActorIzo, kSetKP07)) { + Scene_Exits_Enable(); + Actor_Retired_Here(kActorIzo, 36, 12, true, -1); + } +#endif // BLADERUNNER_ORIGINAL_BUGS return true; case 200: diff --git a/engines/bladerunner/script/ai/luther.cpp b/engines/bladerunner/script/ai/luther.cpp index 791bb97a4d..c3db51951d 100644 --- a/engines/bladerunner/script/ai/luther.cpp +++ b/engines/bladerunner/script/ai/luther.cpp @@ -161,6 +161,16 @@ void AIScriptLuther::ShotAtAndMissed() { } bool AIScriptLuther::ShotAtAndHit() { +#if BLADERUNNER_ORIGINAL_BUGS +#else + if (Actor_Query_In_Set(kActorLuther, kSetKP07)) { + AI_Movement_Track_Flush(kActorLuther); + ChangeAnimationMode(kAnimationModeDie); + Actor_Retired_Here(kActorLuther, 6, 6, true, kActorMcCoy); + Actor_Set_Goal_Number(kActorLuther, kGoalLutherDie); + return false; + } +#endif if (Actor_Query_Which_Set_In(kActorLuther) == kSetUG16) { Actor_Set_Health(kActorLuther, 50, 50); } @@ -225,7 +235,7 @@ bool AIScriptLuther::GoalChanged(int currentGoalNumber, int newGoalNumber) { AI_Movement_Track_Flush(kActorLuther); break; - case 499: + case kGoalLutherDead: Actor_Set_Goal_Number(kActorLuther, kGoalLutherGone); break; } -- cgit v1.2.3