diff options
author | Thanasis Antoniou | 2019-06-26 13:25:15 +0300 |
---|---|---|
committer | Thanasis Antoniou | 2019-06-26 13:25:15 +0300 |
commit | d1a2a2ff918cbb47926082c6199d16845d8972d5 (patch) | |
tree | 4316ebe3394deb24c3c0ec746307abd1062f0914 /engines/bladerunner/script/ai | |
parent | 9fe95b9603b13f63323c54c55bf1c1d679c17b8e (diff) | |
download | scummvm-rg350-d1a2a2ff918cbb47926082c6199d16845d8972d5.tar.gz scummvm-rg350-d1a2a2ff918cbb47926082c6199d16845d8972d5.tar.bz2 scummvm-rg350-d1a2a2ff918cbb47926082c6199d16845d8972d5.zip |
BLADERUNNER: Fix UG04 train disable control and Police AI
Diffstat (limited to 'engines/bladerunner/script/ai')
-rw-r--r-- | engines/bladerunner/script/ai/officer_grayford.cpp | 19 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/officer_leary.cpp | 20 |
2 files changed, 38 insertions, 1 deletions
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp index 9e4f0b8602..ae84933e09 100644 --- a/engines/bladerunner/script/ai/officer_grayford.cpp +++ b/engines/bladerunner/script/ai/officer_grayford.cpp @@ -760,8 +760,9 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb break; case 5: +#if BLADERUNNER_ORIGINAL_BUGS // kSetUG06 -> kSetFreeSlotC -// debug("gray 8-5 kSetUG06 -> kSetFreeSlotC"); + // debug("gray 8-5 kSetUG06 -> kSetFreeSlotC"); AI_Movement_Track_Append(kActorOfficerGrayford, 413, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 414, 0); AI_Movement_Track_Append_With_Facing(kActorOfficerGrayford, 431, 0, 1017); @@ -769,6 +770,22 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); break; +#else + // Don't allow police officers to shoot McCoy while he is + // disabled reciting his monologue at start of Act 4 + if (Game_Flag_Query(kFlagUG06Chapter4Started)) { + // kSetUG06 -> kSetFreeSlotC + // debug("gray 8-5 kSetUG06 -> kSetFreeSlotC"); + AI_Movement_Track_Append(kActorOfficerGrayford, 413, 10); + AI_Movement_Track_Append(kActorOfficerGrayford, 414, 0); + AI_Movement_Track_Append_With_Facing(kActorOfficerGrayford, 431, 0, 1017); + AI_Movement_Track_Append(kActorOfficerGrayford, 432, 10); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC + AI_Movement_Track_Repeat(kActorOfficerGrayford); + break; + } +#endif // BLADERUNNER_ORIGINAL_BUGS + // fall through case 6: // kSetUG07 -> kSetFreeSlotC diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp index 6bbfb1809f..8b3f7cf87e 100644 --- a/engines/bladerunner/script/ai/officer_leary.cpp +++ b/engines/bladerunner/script/ai/officer_leary.cpp @@ -163,7 +163,9 @@ bool AIScriptOfficerLeary::Update() { } break; case kSetUG04: + // fall through case kSetUG05: + // fall through case kSetUG06: if (Actor_Query_Which_Set_In(kActorOfficerLeary) == Player_Query_Current_Set()) { Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyAttackMcCoyAct4); @@ -509,6 +511,7 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) AI_Movement_Track_Repeat(kActorOfficerLeary); break; case 5: +#if BLADERUNNER_ORIGINAL_BUGS // kSetUG06 -> kSetFreeSlotC // debug("leary 8-5 kSetUG06 -> kSetFreeSlotC"); AI_Movement_Track_Append(kActorOfficerLeary, 413, 10); @@ -518,6 +521,23 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) AI_Movement_Track_Append(kActorOfficerLeary, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerLeary); break; +#else + // Don't allow police officers to shoot McCoy while he is + // disabled reciting his monologue at start of Act 4 + if (Game_Flag_Query(kFlagUG06Chapter4Started)) { + // kSetUG06 -> kSetFreeSlotC + // debug("leary 8-5 kSetUG06 -> kSetFreeSlotC"); + AI_Movement_Track_Append(kActorOfficerLeary, 413, 10); + AI_Movement_Track_Append(kActorOfficerLeary, 414, 0); + AI_Movement_Track_Append_With_Facing(kActorOfficerLeary, 431, 0, 1017); + AI_Movement_Track_Append(kActorOfficerLeary, 432, 10); + AI_Movement_Track_Append(kActorOfficerLeary, 35, 30); // kSetFreeSlotC + AI_Movement_Track_Repeat(kActorOfficerLeary); + break; + } +#endif // BLADERUNNER_ORIGINAL_BUGS + // fall through + case 6: // kSetUG07 -> kSetFreeSlotC // debug("leary 8-6 kSetUG07 -> kSetFreeSlotC"); |