aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene/kp07.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/scene/kp07.cpp')
-rw-r--r--engines/bladerunner/script/scene/kp07.cpp37
1 files changed, 21 insertions, 16 deletions
diff --git a/engines/bladerunner/script/scene/kp07.cpp b/engines/bladerunner/script/scene/kp07.cpp
index 4574252015..c087e4fb9d 100644
--- a/engines/bladerunner/script/scene/kp07.cpp
+++ b/engines/bladerunner/script/scene/kp07.cpp
@@ -85,7 +85,7 @@ void SceneScriptKP07::InitializeScene() {
Ambient_Sounds_Add_Looping_Sound(586, 52, 1, 1);
Ambient_Sounds_Add_Looping_Sound(109, 38, 1, 1);
- if (Game_Flag_Query(582)) {
+ if (Game_Flag_Query(kFlagKP07BusActive)) {
Scene_Loop_Set_Default(2);
} else {
Scene_Loop_Set_Default(0);
@@ -114,20 +114,25 @@ bool SceneScriptKP07::ClickedOn3DObject(const char *objectName, bool a2) {
bool SceneScriptKP07::ClickedOnActor(int actorId) {
if (actorId == kActorClovis) {
- if (Game_Flag_Query(697) || actorId != kActorClovis || Actor_Query_Goal_Number(kActorClovis) == 599 || Actor_Query_Goal_Number(kActorClovis) == 515) {
- return false;
- }
- if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
- Actor_Set_Goal_Number(kActorClovis, 516);
- } else {
- Music_Play(20, 31, 0, 0, -1, 1, 0);
- Actor_Set_Goal_Number(kActorClovis, 514);
+ if (!Game_Flag_Query(kFlagKP07McCoyPulledGun)
+ && Actor_Query_Goal_Number(kActorClovis) != kGoalClovisGone
+ && Actor_Query_Goal_Number(kActorClovis) != kGoalClovisKP07SayFinalWords
+ ) {
+ if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07FlyAway);
+ } else {
+ Music_Play(20, 31, 0, 0, -1, 1, 0);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07TalkToMcCoy);
+ }
+ return true;
}
} else {
Actor_Face_Actor(kActorMcCoy, actorId, true);
Actor_Says(kActorMcCoy, 8590, 14);
+ return true;
}
- return true;
+
+ return false;
}
bool SceneScriptKP07::ClickedOnItem(int itemId, bool a2) {
@@ -159,7 +164,7 @@ void SceneScriptKP07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptKP07::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 9.0f, -41.88f, -81.0f, 0, 0, false, 0);
- if (!Game_Flag_Query(658)) {
+ if (!Game_Flag_Query(kFlagKP07Entered)) {
if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
Actor_Says(kActorClovis, 1240, 3);
@@ -176,7 +181,7 @@ void SceneScriptKP07::PlayerWalkedIn() {
Actor_Says(kActorClovis, 160, 3);
Actor_Retired_Here(kActorClovis, 72, 60, 0, -1);
}
- Game_Flag_Set(658);
+ Game_Flag_Set(kFlagKP07Entered);
}
}
@@ -185,11 +190,11 @@ void SceneScriptKP07::PlayerWalkedOut() {
}
void SceneScriptKP07::DialogueQueueFlushed(int a1) {
- if (Actor_Query_Goal_Number(kActorClovis) == 515) {
+ if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07SayFinalWords) {
Actor_Set_Targetable(kActorClovis, false);
- Actor_Change_Animation_Mode(kActorClovis, 21);
- Actor_Retired_Here(kActorClovis, 12, 48, 1, -1);
- Actor_Set_Goal_Number(kActorClovis, 599);
+ Actor_Change_Animation_Mode(kActorClovis, kAnimationModeHit);
+ Actor_Retired_Here(kActorClovis, 12, 48, true, -1);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
}
}