diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/bladerunner/script/ai/gordo.cpp | 46 |
1 files changed, 39 insertions, 7 deletions
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp index 7d47623af2..804c1da389 100644 --- a/engines/bladerunner/script/ai/gordo.cpp +++ b/engines/bladerunner/script/ai/gordo.cpp @@ -21,7 +21,6 @@ */ #include "bladerunner/script/ai_script.h" - namespace BladeRunner { AIScriptGordo::AIScriptGordo(BladeRunnerEngine *vm) : AIScriptBase(vm) { @@ -1575,12 +1574,23 @@ void AIScriptGordo::FledCombat() { void AIScriptGordo::talkToMcCoyInCity() { Player_Loses_Control(); Actor_Face_Actor(kActorMcCoy, kActorGordo, true); - if (!Game_Flag_Query(kFlagGordoTalk1)) { + if (!Game_Flag_Query(kFlagGordoTalk1) + && (!_vm->_cutContent + || Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorGordo) <= 330) + ) { +#if BLADERUNNER_ORIGINAL_BUGS Actor_Says(kActorMcCoy, 6460, 12); AI_Movement_Track_Pause(kActorGordo); Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 36, false, false); Actor_Face_Actor(kActorGordo, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorGordo, true); +#else + Actor_Face_Actor(kActorMcCoy, kActorGordo, true); + AI_Movement_Track_Pause(kActorGordo); + Actor_Face_Actor(kActorGordo, kActorMcCoy, true); + Actor_Says(kActorMcCoy, 6460, 12); + Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 36, false, false); +#endif // BLADERUNNER_ORIGINAL_BUGS Actor_Says(kActorGordo, 890, 14); Actor_Says(kActorMcCoy, 6465, 15); Actor_Says(kActorGordo, 900, 13); @@ -1596,15 +1606,26 @@ void AIScriptGordo::talkToMcCoyInCity() { Actor_Says(kActorGordo, 970, 12); AI_Movement_Track_Unpause(kActorGordo); Game_Flag_Set(kFlagGordoTalk1); - } else if ( Game_Flag_Query(kFlagDR05BombExploded) - && !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1) - && !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2) + } else if (Game_Flag_Query(kFlagDR05BombExploded) + && !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview1) + && !Actor_Clue_Query(kActorMcCoy, kClueGordoInterview2) + && (!_vm->_cutContent + || Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorGordo) <= 330) ) { +#if BLADERUNNER_ORIGINAL_BUGS Actor_Says(kActorMcCoy, 6485, 12); AI_Movement_Track_Pause(kActorGordo); Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 48, false, false); Actor_Face_Actor(kActorGordo, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorGordo, true); +#else + Actor_Face_Actor(kActorMcCoy, kActorGordo, true); + AI_Movement_Track_Pause(kActorGordo); + Actor_Says(kActorMcCoy, 6485, 12); + // better for Gordo to turn delayed (after McCoy asks about the bombing) in this question + Actor_Face_Actor(kActorGordo, kActorMcCoy, true); + Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 48, false, false); +#endif // BLADERUNNER_ORIGINAL_BUGS if (Game_Flag_Query(kFlagGordoIsReplicant)) { Actor_Says(kActorGordo, 1010, 12); Actor_Says(kActorMcCoy, 6495, 14); @@ -1623,12 +1644,23 @@ void AIScriptGordo::talkToMcCoyInCity() { Actor_Clue_Acquire(kActorMcCoy, kClueGordoInterview2, false, kActorGordo); } AI_Movement_Track_Unpause(kActorGordo); - } else if (!Game_Flag_Query(kFlagGordoTalk2)) { - Actor_Says(kActorMcCoy, 6490, 14); + } else if (!Game_Flag_Query(kFlagGordoTalk2) + && (!_vm->_cutContent + || Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorGordo) <= 330) + ) { +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Says(kActorMcCoy, 6490, 12); AI_Movement_Track_Pause(kActorGordo); Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 60, false, false); Actor_Face_Actor(kActorGordo, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorGordo, true); +#else + Actor_Face_Actor(kActorMcCoy, kActorGordo, true); + AI_Movement_Track_Pause(kActorGordo); + Actor_Face_Actor(kActorGordo, kActorMcCoy, true); + Actor_Says(kActorMcCoy, 6490, 12); + Loop_Actor_Walk_To_Actor(kActorGordo, kActorMcCoy, 60, false, false); +#endif // BLADERUNNER_ORIGINAL_BUGS Actor_Says(kActorGordo, 990, 13); Actor_Says(kActorGordo, 1000, 15); Game_Flag_Set(kFlagGordoTalk2); |