aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
authorThanasis Antoniou2019-09-09 20:37:02 +0300
committerThanasis Antoniou2019-09-09 20:37:02 +0300
commite3ebca78dcb36652324b260cfe28de0903fa9b40 (patch)
tree1ff803425a63d897e53bd5e229e7d43a98a470f3 /engines/bladerunner
parent8f4d3654f2b66c21711eccb73df65e797236a9d2 (diff)
downloadscummvm-rg350-e3ebca78dcb36652324b260cfe28de0903fa9b40.tar.gz
scummvm-rg350-e3ebca78dcb36652324b260cfe28de0903fa9b40.tar.bz2
scummvm-rg350-e3ebca78dcb36652324b260cfe28de0903fa9b40.zip
BLADERUNNER: Improve interaction with Gordo in the city
Diffstat (limited to 'engines/bladerunner')
-rw-r--r--engines/bladerunner/script/ai/gordo.cpp46
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);