aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene/tb06.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/scene/tb06.cpp')
-rw-r--r--engines/bladerunner/script/scene/tb06.cpp31
1 files changed, 23 insertions, 8 deletions
diff --git a/engines/bladerunner/script/scene/tb06.cpp b/engines/bladerunner/script/scene/tb06.cpp
index 4720989fad..68f5bbd39f 100644
--- a/engines/bladerunner/script/scene/tb06.cpp
+++ b/engines/bladerunner/script/scene/tb06.cpp
@@ -177,14 +177,29 @@ void SceneScriptTB06::PlayerWalkedIn() {
Actor_Face_Actor(kActorMcCoy, kActorMarcus, true);
Actor_Says(kActorMcCoy, 5290, kAnimationModeTalk);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.0f, 149.0f, -631.0f, 0, false, false, false);
- AI_Movement_Track_Pause(kActorPhotographer);
- Actor_Face_Actor(kActorMcCoy, kActorPhotographer, true);
- Actor_Face_Actor(kActorPhotographer, kActorMcCoy, true);
- Actor_Says(kActorPhotographer, 0, kAnimationModeTalk);
- Actor_Says(kActorMcCoy, 5295, kAnimationModeTalk);
- Actor_Face_Actor(kActorPhotographer, kActorMarcus, true);
- Actor_Says(kActorPhotographer, 10, kAnimationModeTalk);
- AI_Movement_Track_Unpause(kActorPhotographer);
+
+ bool talkWithPhotographer = false;
+#if BLADERUNNER_ORIGINAL_BUGS
+ talkWithPhotographer = true;
+#else
+ // It's possible for McCoy to go to AR01 (so the kActorPhotographer will go away from TB06)
+ // without ever going into this scene (TB06)
+ // so later on in the Act, if McCoy visits this scene the Photographer would be gone
+ // but the dialogue would play as if he was there. This fixes that bug.
+ if (Actor_Query_Is_In_Current_Set(kActorPhotographer)) {
+ talkWithPhotographer = true;
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
+ if (talkWithPhotographer) {
+ AI_Movement_Track_Pause(kActorPhotographer);
+ Actor_Face_Actor(kActorMcCoy, kActorPhotographer, true);
+ Actor_Face_Actor(kActorPhotographer, kActorMcCoy, true);
+ Actor_Says(kActorPhotographer, 0, kAnimationModeTalk);
+ Actor_Says(kActorMcCoy, 5295, kAnimationModeTalk);
+ Actor_Face_Actor(kActorPhotographer, kActorMarcus, true);
+ Actor_Says(kActorPhotographer, 10, kAnimationModeTalk);
+ AI_Movement_Track_Unpause(kActorPhotographer);
+ }
Game_Flag_Set(kFlagTB06Introduction);
//return true;
return;