diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/bladerunner/actor.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/clovis.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/izo.cpp | 11 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/luther.cpp | 12 |
4 files changed, 24 insertions, 7 deletions
diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp index 2c5b77ccbb..461fbab148 100644 --- a/engines/bladerunner/actor.cpp +++ b/engines/bladerunner/actor.cpp @@ -106,7 +106,7 @@ void Actor::setup(int actorId) { _timersLeft[i] = 0; _timersLast[i] = _vm->_time->current(); } - _timersLeft[4] = _timer4RemainDefault; // This was in original code. We need to init this timer in oder to kick off periodic updates for acquireCluesByRelations + _timersLeft[4] = _timer4RemainDefault; // This was in original code. We need to init this timer in order to kick off periodic updates for acquireCluesByRelations _honesty = 50; _intelligence = 50; 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; } |