[Scummvm-git-logs] scummvm master -> 95f42fde63ad09a6684ce62659273228f0b83e46
peterkohaut
peterkohaut at users.noreply.github.com
Sun Feb 3 00:14:43 CET 2019
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1df1eefc3e BLADERUNNER: Fixed Rat interaction at UG15
ce3b731656 BLADERUNNER: Cleanup Luther & Lance related scripts
cee294137a BLADERUNNER: Cleanup for scene at UG18
f2d76c2d71 BLADERUNNER: Cleanup of scripts at start of chapter 5
95f42fde63 BLADERUNNER: Initial cleanup of Kipple scripts
Commit: 1df1eefc3e9584516fec7d7b4f09f5216f84de00
https://github.com/scummvm/scummvm/commit/1df1eefc3e9584516fec7d7b4f09f5216f84de00
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-03T00:14:09+01:00
Commit Message:
BLADERUNNER: Fixed Rat interaction at UG15
Changed paths:
engines/bladerunner/bladerunner.cpp
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/free_slot_a.cpp
engines/bladerunner/script/ai/mccoy.cpp
engines/bladerunner/script/ai_script.h
engines/bladerunner/script/kia_script.cpp
engines/bladerunner/script/scene/dr06.cpp
engines/bladerunner/script/scene/nr02.cpp
engines/bladerunner/script/scene/nr11.cpp
engines/bladerunner/script/scene/ug05.cpp
engines/bladerunner/script/scene/ug15.cpp
engines/bladerunner/script/scene/ug16.cpp
engines/bladerunner/script/scene/ug18.cpp
engines/bladerunner/script/scene_script.h
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 9b0ffaf..4768ca5 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -982,19 +982,26 @@ void BladeRunnerEngine::actorsUpdate() {
int actorCount = (int)_gameInfo->getActorCount();
int setId = _scene->getSetId();
- if (setId != kSetUG18 || _gameVars[kVariableChapter] != 4 || !_gameFlags->query(670) || !_aiScripts->isInsideScript()) {
- for (int i = 0; i < actorCount; i++) {
- Actor *actor = _actors[i];
- if (actor->getSetId() == setId || i == _actorUpdateCounter) {
- _aiScripts->update(i);
- actor->timersUpdate();
- }
- }
- ++_actorUpdateCounter;
- if (_actorUpdateCounter >= actorCount) {
- _actorUpdateCounter = 0;
+ // what a "nice" last minute fix...
+ if ( setId == kSetUG18
+ && _gameVars[kVariableChapter] == 4
+ && _gameFlags->query(kFlagCallWithGuzza)
+ && _aiScripts->isInsideScript()
+ ) {
+ return;
+ }
+
+ for (int i = 0; i < actorCount; i++) {
+ Actor *actor = _actors[i];
+ if (actor->getSetId() == setId || i == _actorUpdateCounter) {
+ _aiScripts->update(i);
+ actor->timersUpdate();
}
}
+ ++_actorUpdateCounter;
+ if (_actorUpdateCounter >= actorCount) {
+ _actorUpdateCounter = 0;
+ }
}
void BladeRunnerEngine::walkingReset() {
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 7aabef9..70d0923 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -90,7 +90,7 @@ enum Actors {
kActorNewscaster = 61,
kActorLeon = 62,
kActorMaleAnnouncer = 63,
- kActorFreeSlotA = 64,
+ kActorFreeSlotA = 64, // Rat
kActorFreeSlotB = 65,
kActorMaggie = 66,
kActorGenwalkerA = 67,
@@ -1010,6 +1010,7 @@ enum Flags {
kFlagUG07Empty = 623,
kFlagTB07TyrellMeeting = 625,
kFlagNR01McCoyIsDrugged = 627,
+ kFlagRatWalkingAround = 631,
kFlagNR01DektoraFall = 632,
kFlagNR11DektoraBurning = 633,
kFlagNR11BurnedUp = 634,
@@ -1035,11 +1036,15 @@ enum Flags {
kFlagDNARowAvailableTalk = 660,
kFlagTB07ShadeDown = 661, // is never set
kFlagUG19Available = 665,
+ kFlagCallWithGuzza = 670,
kFlagMA07toPS14 = 672,
kFlagPS14toMA07 = 673,
+ kFlagUG15RatShot = 676,
+ kFlagUG15BridgeWillBreak = 677,
kFlagChapter2Intro = 678,
kFlagChapter3Intro = 679,
kFlagChapter4Intro = 680,
+ kFlagUG15BridgeBroken = 682,
kFlagNotUsed686 = 686,
kFlagPS05TV0 = 688,
kFlagPS05TV1 = 689,
@@ -1065,6 +1070,7 @@ enum Flags {
kFlagCT02McCoyCombatReady = 720,
kFlagChapter4Starting = 722,
kFlagZubenBountyPaid = 723,
+ kFlagUG15BridgeBreaks = 724,
kFlagCT11DogWrapperAvailable = 725,
kFlagAR02Entered = 726,
kFlagPS04WeaponsOrderForm = 727,
@@ -1106,8 +1112,8 @@ enum Variables {
kVariableAffectionTowards = 45, // 0 none, 1 steele, 2 dektora, 3 lucy
kVariableGunPulledInFrontOfSebastian = 46,
kVariableNR01GetUpCounter = 47,
- kVariableDNAEvidences = 48,
-
+ kVariableDNAEvidence = 48,
+ kVariableCorruptedGuzzaEvidence = 49,
kVariableTaffyLewisMusic = 50,
kVariableReplicants = 51,
kVariableNextTvNews = 52,
@@ -1629,9 +1635,13 @@ enum GoalMcCoy {
kGoalMcCoyNR01LayDrugged = 212,
kGoalMcCoyNR04Drink = 220,
kGoalMcCoyNR04PassOut = 221,
-
+ kGoalMcCoyNR11Shoot = 230,
kGoalMcCoyNR10Fall = 231,
- kGoalMcCoyArrested = 500
+ kGoalMcCoyCallWithGuzza = 350,
+ kGoalMcCoyUG15Fall = 390,
+ kGoalMcCoyUG15Die = 391,
+ kGoalMcCoyArrested = 500,
+ kGoalMcCoyGone = 599
};
enum GoalSteele {
@@ -2017,6 +2027,21 @@ enum GoalLeon {
kGoalLeonGone = 8
};
+enum GoalFreeSlotA { // Rat
+ kGoalFreeSlotAUG15Wait = 300,
+ kGoalFreeSlotAUG15WalkOut = 301,
+ kGoalFreeSlotAUG15RunToOtherSide = 302,
+ kGoalFreeSlotAUG15RunBack = 303,
+ kGoalFreeSlotAUG15Attack = 304,
+ kGoalFreeSlotAWalkAround = 306,
+ kGoalFreeSlotAWalkAroundRestart = 307,
+ kGoalFreeSlotAAttackMcCoy = 308,
+ kGoalFreeSlotAUG15Die = 305,
+ kGoalFreeSlotAUG15Fall = 309,
+ kGoalFreeSlotAUG15Prepare = 310,
+ kGoalFreeSlotAGone = 599
+};
+
} // End of namespace BladeRunner
#endif
diff --git a/engines/bladerunner/script/ai/free_slot_a.cpp b/engines/bladerunner/script/ai/free_slot_a.cpp
index 6c3e9e2..f31fbaa 100644
--- a/engines/bladerunner/script/ai/free_slot_a.cpp
+++ b/engines/bladerunner/script/ai/free_slot_a.cpp
@@ -27,9 +27,9 @@ namespace BladeRunner {
AIScriptFreeSlotA::AIScriptFreeSlotA(BladeRunnerEngine *vm) : AIScriptBase(vm) {
_var1 = 0;
_var2 = 1;
- _var3 = 0.0f;
- _var4 = 0.0f; // not initialized in original
- _var5 = 0.0f; // not initialized in original
+ _fallSpeed = 0.0f;
+ _fallHeightCurrent = 0.0f; // not initialized in original
+ _fallHeightTarget = 0.0f; // not initialized in original
}
void AIScriptFreeSlotA::Initialize() {
@@ -40,9 +40,9 @@ void AIScriptFreeSlotA::Initialize() {
_var1 = 0;
_var2 = 1;
- _var3 = 0.0f;
- _var4 = 0.0f; // not initialized in original
- _var5 = 0.0f; // not initialized in original
+ _fallSpeed = 0.0f;
+ _fallHeightCurrent = 0.0f; // not initialized in original
+ _fallHeightTarget = 0.0f; // not initialized in original
World_Waypoint_Set(525, 45, -780.0f, -615.49f, 2611.0f);
World_Waypoint_Set(526, 45, -780.0f, -615.49f, 2759.0f);
@@ -51,68 +51,73 @@ void AIScriptFreeSlotA::Initialize() {
bool AIScriptFreeSlotA::Update() {
switch (Global_Variable_Query(kVariableChapter)) {
case 4:
- if (Actor_Query_Which_Set_In(kActorMcCoy) == kSceneUG02
- && Actor_Query_Which_Set_In(kActorFreeSlotA) == kSceneUG02
+ if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetUG15
+ && Actor_Query_Which_Set_In(kActorFreeSlotA) == kSetUG15
) {
int goal = Actor_Query_Goal_Number(kActorFreeSlotA);
- if ((goal == 302
- || goal == 303
+ if ((goal == kGoalFreeSlotAUG15RunToOtherSide
+ || goal == kGoalFreeSlotAUG15RunBack
)
&& Actor_Query_Inch_Distance_From_Actor(kActorFreeSlotA, kActorMcCoy) <= 48
) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 304);
- } else if (goal == 309) {
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Attack);
+ } else if (goal == kGoalFreeSlotAUG15Fall) {
float x, y, z;
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
- _var4 += _var3;
- if (_var5 < _var4) {
- _var3 -= 0.2f;
+ _fallHeightCurrent += _fallSpeed;
+ if (_fallHeightTarget < _fallHeightCurrent) {
+ _fallSpeed -= 0.2f;
} else {
- _var4 = _var5;
+ _fallHeightCurrent = _fallHeightTarget;
Actor_Set_Goal_Number(kActorFreeSlotA, 0);
}
- Actor_Set_At_XYZ(kActorFreeSlotA, x, _var4, z, Actor_Query_Facing_1024(kActorFreeSlotA));
+ Actor_Set_At_XYZ(kActorFreeSlotA, x, _fallHeightCurrent, z, Actor_Query_Facing_1024(kActorFreeSlotA));
}
- } else {
- switch (Actor_Query_Goal_Number(kActorFreeSlotA)) {
- case 306:
- if (Actor_Query_Which_Set_In(kActorFreeSlotA) == Player_Query_Current_Set()
- && Actor_Query_Inch_Distance_From_Actor(kActorFreeSlotA, kActorMcCoy) <= 48
- ) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 308);
- }
- break;
- case 308:
- if (Actor_Query_Which_Set_In(kActorFreeSlotA) != Player_Query_Current_Set()) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 306);
- }
- break;
+ return true;
+ }
- case 599:
- if (Actor_Query_Which_Set_In(kActorFreeSlotA) != Player_Query_Current_Set()) {
- Game_Flag_Reset(631);
- Game_Flag_Reset(677);
- Actor_Set_Goal_Number(kActorFreeSlotA, 0);
- }
- break;
+ switch (Actor_Query_Goal_Number(kActorFreeSlotA)) {
+ case kGoalFreeSlotAWalkAround:
+ if (Actor_Query_Which_Set_In(kActorFreeSlotA) == Player_Query_Current_Set()
+ && Actor_Query_Inch_Distance_From_Actor(kActorFreeSlotA, kActorMcCoy) <= 48
+ ) {
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAAttackMcCoy);
+ }
+ break;
- default:
- if (!Game_Flag_Query(631)) {
- Game_Flag_Set(631);
- Actor_Set_Goal_Number(kActorFreeSlotA, 306);
- Actor_Set_Targetable(kActorFreeSlotA, 1);
- }
+ case kGoalFreeSlotAAttackMcCoy:
+ if (Actor_Query_Which_Set_In(kActorFreeSlotA) != Player_Query_Current_Set()) {
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAWalkAround);
+ }
+ break;
+
+ case kGoalFreeSlotAGone:
+ if (Actor_Query_Which_Set_In(kActorFreeSlotA) != Player_Query_Current_Set()) {
+ Game_Flag_Reset(kFlagRatWalkingAround);
+ Game_Flag_Reset(kFlagUG15BridgeWillBreak);
+ Actor_Set_Goal_Number(kActorFreeSlotA, false);
+ }
+ break;
+
+ default:
+ if (!Game_Flag_Query(kFlagRatWalkingAround)) {
+ Game_Flag_Set(kFlagRatWalkingAround);
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAWalkAround);
+ Actor_Set_Targetable(kActorFreeSlotA, true);
}
}
+
return true;
case 5:
if (Actor_Query_Goal_Number(kActorFreeSlotA) < 400) {
AI_Movement_Track_Flush(kActorFreeSlotA);
Actor_Set_Goal_Number(kActorFreeSlotA, 400);
- } else if (Actor_Query_Goal_Number(kActorFreeSlotA) == 405 && Actor_Query_Which_Set_In(kActorMcCoy) == kSceneKP05) {
+ } else if (Actor_Query_Goal_Number(kActorFreeSlotA) == 405
+ && Actor_Query_Which_Set_In(kActorMcCoy) == kSceneKP05
+ ) {
Actor_Set_Targetable(kActorFreeSlotA, 1);
Actor_Set_Goal_Number(kActorFreeSlotA, 406);
}
@@ -129,24 +134,24 @@ void AIScriptFreeSlotA::TimerExpired(int timer) {
void AIScriptFreeSlotA::CompletedMovementTrack() {
switch (Actor_Query_Goal_Number(kActorFreeSlotA)) {
- case 301:
- Actor_Set_Goal_Number(kActorFreeSlotA, 302);
+ case kGoalFreeSlotAUG15WalkOut:
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15RunToOtherSide);
break;
- case 302:
- Actor_Set_Goal_Number(kActorFreeSlotA, 303);
+ case kGoalFreeSlotAUG15RunToOtherSide:
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15RunBack);
break;
- case 303:
- Actor_Set_Goal_Number(kActorFreeSlotA, 300);
+ case kGoalFreeSlotAUG15RunBack:
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Wait);
break;
- case 306:
- Actor_Set_Goal_Number(kActorFreeSlotA, 307);
+ case kGoalFreeSlotAWalkAround:
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAWalkAroundRestart);
break;
- case 307:
- Actor_Set_Goal_Number(kActorFreeSlotA, 306);
+ case kGoalFreeSlotAWalkAroundRestart:
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAWalkAround);
break;
case 400:
@@ -169,16 +174,15 @@ void AIScriptFreeSlotA::ReceivedClue(int clueId, int fromActorId) {
}
void AIScriptFreeSlotA::ClickedByPlayer() {
- if (Actor_Query_Goal_Number(kActorFreeSlotA) != 599) {
- return; //false;
- }
-
- Actor_Face_Actor(kActorMcCoy, kActorFreeSlotA, 1);
- if (Random_Query(1, 2) == 1) {
- Actor_Says(kActorMcCoy, 8655, 16);
- } else {
- Actor_Says(kActorMcCoy, 8665, 16);
+ if (Actor_Query_Goal_Number(kActorFreeSlotA) == kGoalFreeSlotAGone) {
+ Actor_Face_Actor(kActorMcCoy, kActorFreeSlotA, true);
+ if (Random_Query(1, 2) == 1) {
+ Actor_Says(kActorMcCoy, 8655, 16);
+ } else {
+ Actor_Says(kActorMcCoy, 8665, 16);
+ }
}
+ //return false;
}
void AIScriptFreeSlotA::EnteredScene(int sceneId) {
@@ -205,7 +209,7 @@ void AIScriptFreeSlotA::ShotAtAndMissed() {
bool AIScriptFreeSlotA::ShotAtAndHit() {
if (Actor_Query_In_Set(kActorFreeSlotA, kSetUG15)) {
calcHit();
- Actor_Set_Goal_Number(kActorFreeSlotA, 305);
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Die);
return true;
}
@@ -213,7 +217,7 @@ bool AIScriptFreeSlotA::ShotAtAndHit() {
}
void AIScriptFreeSlotA::Retired(int byActorId) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 599);
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAGone);
}
int AIScriptFreeSlotA::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) {
@@ -222,13 +226,13 @@ int AIScriptFreeSlotA::GetFriendlinessModifierIfGetsClue(int otherActorId, int c
bool AIScriptFreeSlotA::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) {
- case 300:
+ case kGoalFreeSlotAUG15Wait:
AI_Movement_Track_Flush(kActorFreeSlotA);
- Actor_Change_Animation_Mode(kActorFreeSlotA, 0);
- Actor_Set_Targetable(kActorFreeSlotA, 0);
+ Actor_Change_Animation_Mode(kActorFreeSlotA, kAnimationModeIdle);
+ Actor_Set_Targetable(kActorFreeSlotA, false);
break;
- case 301:
+ case kGoalFreeSlotAUG15WalkOut:
Actor_Force_Stop_Walking(kActorMcCoy);
AI_Movement_Track_Flush(kActorFreeSlotA);
World_Waypoint_Set(444, 87, -48.75f, 44.66f, 87.57f);
@@ -236,72 +240,74 @@ bool AIScriptFreeSlotA::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorFreeSlotA);
break;
- case 302:
+ case kGoalFreeSlotAUG15RunToOtherSide:
AI_Movement_Track_Flush(kActorFreeSlotA);
World_Waypoint_Set(444, 87, -237.0f, 48.07f, 208.0f);
AI_Movement_Track_Append(kActorFreeSlotA, 444, 1);
AI_Movement_Track_Repeat(kActorFreeSlotA);
- Actor_Set_Targetable(kActorFreeSlotA, 1);
+ Actor_Set_Targetable(kActorFreeSlotA, true);
break;
- case 303:
+ case kGoalFreeSlotAUG15RunBack:
AI_Movement_Track_Flush(kActorFreeSlotA);
World_Waypoint_Set(444, 87, 3.52f, 52.28f, 90.68f);
AI_Movement_Track_Append(kActorFreeSlotA, 444, 0);
AI_Movement_Track_Repeat(kActorFreeSlotA);
break;
- case 304:
+ case kGoalFreeSlotAUG15Attack:
Player_Loses_Control();
Actor_Force_Stop_Walking(kActorMcCoy);
AI_Movement_Track_Flush(kActorFreeSlotA);
- Actor_Face_Actor(kActorFreeSlotA, kActorMcCoy, 1);
- Actor_Change_Animation_Mode(kActorFreeSlotA, 6);
- Actor_Change_Animation_Mode(kActorMcCoy, 48);
+ Actor_Face_Actor(kActorFreeSlotA, kActorMcCoy, true);
+ Actor_Change_Animation_Mode(kActorFreeSlotA, kAnimationModeCombatAttack);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
break;
- case 305:
+ case kGoalFreeSlotAUG15Die:
AI_Movement_Track_Flush(kActorFreeSlotA);
- Actor_Set_Targetable(kActorFreeSlotA, 0);
- Game_Flag_Set(676);
+ Actor_Set_Targetable(kActorFreeSlotA, false);
+ Game_Flag_Set(kFlagUG15RatShot);
_animationState = 7;
_animationFrame = 0;
break;
- case 306:
+ case kGoalFreeSlotAWalkAround:
AI_Movement_Track_Flush(kActorFreeSlotA);
- processGoal306();
+ goToRandomUGxx();
AI_Movement_Track_Repeat(kActorFreeSlotA);
break;
- case 307:
+ case kGoalFreeSlotAWalkAroundRestart:
AI_Movement_Track_Flush(kActorFreeSlotA);
AI_Movement_Track_Append(kActorFreeSlotA, 39, 1);
AI_Movement_Track_Repeat(kActorFreeSlotA);
break;
- case 308:
- Actor_Set_Targetable(kActorFreeSlotA, 1);
+ case kGoalFreeSlotAAttackMcCoy:
+ Actor_Set_Targetable(kActorFreeSlotA, true);
Non_Player_Actor_Combat_Mode_On(kActorFreeSlotA, 0, 0, 0, 8, 4, 7, 8, 25, 0, 75, 5, 300, 0);
break;
- case 309:
+ case kGoalFreeSlotAUG15Fall:
Actor_Force_Stop_Walking(kActorFreeSlotA);
AI_Movement_Track_Flush(kActorFreeSlotA);
- _var4 = 52.46f;
- _var3 = -4.0f;
- _var5 = -10.0f;
- if (_animationState != 7 && _animationState != 8) {
+ _fallHeightCurrent = 52.46f;
+ _fallSpeed = -4.0f;
+ _fallHeightTarget = -10.0f;
+ if (_animationState != 7
+ && _animationState != 8
+ ) {
_animationState = 7;
_animationFrame = 0;
}
break;
- case 310:
+ case kGoalFreeSlotAUG15Prepare:
AI_Movement_Track_Flush(kActorFreeSlotA);
Actor_Put_In_Set(kActorFreeSlotA, kSetUG15);
Actor_Set_At_XYZ(kActorFreeSlotA, 3.52f, 52.28f, 90.68f, 700);
- Actor_Set_Goal_Number(kActorFreeSlotA, 300);
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Wait);
break;
case 400:
@@ -315,7 +321,7 @@ bool AIScriptFreeSlotA::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorFreeSlotA);
break;
- case 599:
+ case kGoalFreeSlotAGone:
Actor_Set_Health(kActorFreeSlotA, 20, 20);
Actor_Set_Friendliness_To_Other(kActorFreeSlotA, kActorMcCoy, 40);
break;
@@ -395,7 +401,7 @@ bool AIScriptFreeSlotA::UpdateAnimation(int *animation, int *frame) {
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(857)) {
_animationState = 0;
_animationFrame = 0;
- Actor_Change_Animation_Mode(kActorFreeSlotA, 4);
+ Actor_Change_Animation_Mode(kActorFreeSlotA, kAnimationModeCombatIdle);
}
break;
@@ -403,7 +409,7 @@ bool AIScriptFreeSlotA::UpdateAnimation(int *animation, int *frame) {
*animation = 874;
_animationFrame++;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(874) - 1) { // bug? shuld not be '-1'
- Actor_Change_Animation_Mode(kActorFreeSlotA, 0);
+ Actor_Change_Animation_Mode(kActorFreeSlotA, kAnimationModeIdle);
}
break;
@@ -416,7 +422,7 @@ bool AIScriptFreeSlotA::UpdateAnimation(int *animation, int *frame) {
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(860)) {
_animationFrame = 0;
_animationState = 0;
- Actor_Change_Animation_Mode(kActorFreeSlotA, 0);
+ Actor_Change_Animation_Mode(kActorFreeSlotA, kAnimationModeIdle);
}
break;
@@ -429,7 +435,7 @@ bool AIScriptFreeSlotA::UpdateAnimation(int *animation, int *frame) {
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(859) - 1) { // bug? shuld not be '-1'
_animationFrame = Slice_Animation_Query_Number_Of_Frames(859) - 1;
_animationState = 8;
- Actor_Set_Goal_Number(kActorFreeSlotA, 599);
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAGone);
}
break;
@@ -523,7 +529,7 @@ bool AIScriptFreeSlotA::ReachedMovementTrackWaypoint(int waypointId) {
Actor_Change_Animation_Mode(kActorFreeSlotA, 43);
}
} else if (Actor_Query_Goal_Number(kActorFreeSlotA) == 302) {
- Actor_Face_Actor(kActorFreeSlotA, kActorMcCoy, 1);
+ Actor_Face_Actor(kActorFreeSlotA, kActorMcCoy, true);
}
return true;
@@ -538,12 +544,14 @@ void AIScriptFreeSlotA::calcHit() {
Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z);
- if (x >= -30.0f && x < -150.0f) {
- Game_Flag_Set(677);
+ if (x >= -30.0f
+ && x < -150.0f
+ ) {
+ Game_Flag_Set(kFlagUG15BridgeWillBreak);
}
}
-void AIScriptFreeSlotA::processGoal306() {
+void AIScriptFreeSlotA::goToRandomUGxx() {
switch (Random_Query(1, 14)) {
case 1:
AI_Movement_Track_Append(kActorFreeSlotA, 450, 1);
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp
index 7edb639..d5fb581 100644
--- a/engines/bladerunner/script/ai/mccoy.cpp
+++ b/engines/bladerunner/script/ai/mccoy.cpp
@@ -33,7 +33,7 @@ AIScriptMcCoy::AIScriptMcCoy(BladeRunnerEngine *vm) : AIScriptBase(vm) {
dword_45A0E8 = 0;
_animationStateNextSpecial = 0;
_animationNextSpecial = 0;
- dword_45A0F8 = 0;
+ _nextSoundId = 0;
_NR10SteeleShooting = false;
_fallSpeed = 0.0f;
_fallHeightCurrent = 0.0f;
@@ -51,16 +51,16 @@ void AIScriptMcCoy::Initialize() {
dword_45A0E8 = 3;
_animationStateNextSpecial = 3;
_animationNextSpecial = 20;
- dword_45A0F8 = -1;
+ _nextSoundId = -1;
_NR10SteeleShooting = false;
_fallSpeed = 0;
Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyDefault);
}
bool AIScriptMcCoy::Update() {
- if (dword_45A0F8 != -1) {
- Sound_Play(dword_45A0F8, 100, 0, 0, 50);
- dword_45A0F8 = -1;
+ if (_nextSoundId != -1) {
+ Sound_Play(_nextSoundId, 100, 0, 0, 50);
+ _nextSoundId = -1;
}
switch (Actor_Query_Goal_Number(kActorMcCoy)) {
@@ -109,13 +109,13 @@ bool AIScriptMcCoy::Update() {
fallDown();
break;
- case 309:
+ case kGoalMcCoyUG15Fall:
fallDown();
break;
- case 391:
- Actor_Retired_Here(kActorMcCoy, 12, 48, 1, -1);
- Actor_Set_Goal_Number(kActorMcCoy, 599);
+ case kGoalMcCoyUG15Die:
+ Actor_Retired_Here(kActorMcCoy, 12, 48, true, -1);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyGone);
break;
}
return false;
@@ -163,21 +163,21 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) {
case kClueWeaponsOrderForm:
case kClueShippingForm:
case kCluePoliceIssueWeapons:
- Global_Variable_Increment(49, 1);
+ Global_Variable_Increment(kVariableCorruptedGuzzaEvidence, 1);
break;
case kClueFolder:
- Global_Variable_Increment(49, 5);
+ Global_Variable_Increment(kVariableCorruptedGuzzaEvidence, 5);
break;
case kClueHomelessManKid:
case kClueOriginalRequisitionForm:
- Global_Variable_Increment(49, 3);
+ Global_Variable_Increment(kVariableCorruptedGuzzaEvidence, 3);
break;
case kClueScaryChair:
case kClueIzosStashRaided:
- Global_Variable_Increment(49, 2);
+ Global_Variable_Increment(kVariableCorruptedGuzzaEvidence, 2);
break;
case kClueDNATyrell:
@@ -186,11 +186,11 @@ void AIScriptMcCoy::ReceivedClue(int clueId, int fromActorId) {
case kClueDNAMoraji:
case kClueDNALutherLance:
case kClueDNAMarcus:
- Global_Variable_Increment(kVariableDNAEvidences, 1);
+ Global_Variable_Increment(kVariableDNAEvidence, 1);
break;
}
- if ( Global_Variable_Query(49) > 6
+ if ( Global_Variable_Query(kVariableCorruptedGuzzaEvidence) > 6
&& Global_Variable_Query(kVariableChapter) > 3
&& !Actor_Clue_Query(kActorMcCoy, kClueGuzzaFramedMcCoy)
) {
@@ -328,7 +328,8 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 2:
- sub_405920();
+ _animationFrame = 0;
+ _animationState = 47;
return true;
case kGoalMcCoyBB11GetUp:
@@ -391,7 +392,7 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Change_Animation_Mode(kActorMcCoy, 75);
return true;
- case 230:
+ case kGoalMcCoyNR11Shoot:
_NR10SteeleShooting = Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleNR11Shoot;
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack);
return true;
@@ -427,7 +428,7 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
_animationFrame = 0;
return true;
- case 350:
+ case kGoalMcCoyCallWithGuzza:
Sound_Play(123, 50, 0, 0, 50);
Delay(1000);
Sound_Play(403, 30, 0, 0, 50);
@@ -465,13 +466,15 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Sound_Play(123, 50, 0, 0, 50);
return true;
- case 390:
+ case kGoalMcCoyUG15Fall:
Actor_Force_Stop_Walking(kActorMcCoy);
Player_Loses_Control();
_fallHeightCurrent = 48.07f;
_fallSpeed = -4.0f;
_fallHeightTarget = -20.0f;
- if (_animationState != 27 && _animationState != 50) {
+ if (_animationState != 27
+ && _animationState != 50
+ ) {
_animationState = 50;
_animationFrame = Slice_Animation_Query_Number_Of_Frames(18) - 1;
}
@@ -1004,7 +1007,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(5)) {
_animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
_animationState = 50;
- sub_4054F0();
+ UG15fall();
}
break;
case 27:
@@ -1013,7 +1016,7 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(18)) {
_animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
_animationState = 50;
- sub_4054F0();
+ UG15fall();
if (Actor_Query_Goal_Number(kActorMcCoy) == kGoalMcCoyNR04Drink) {
Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyNR04PassOut);
}
@@ -1068,16 +1071,16 @@ bool AIScriptMcCoy::UpdateAnimation(int *animation, int *frame) {
*animation = 12;
_animationFrame++;
if (_animationFrame == 1
- && Actor_Query_Goal_Number(kActorMcCoy) == 230
+ && Actor_Query_Goal_Number(kActorMcCoy) == kGoalMcCoyNR11Shoot
&& _NR10SteeleShooting
) {
- dword_45A0F8 = 27;
+ _nextSoundId = 27;
}
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(12)) {
_animationState = 17;
_animationFrame = 0;
*animation = 12;
- if (Actor_Query_Goal_Number(kActorMcCoy) == 230) {
+ if (Actor_Query_Goal_Number(kActorMcCoy) == kGoalMcCoyNR11Shoot) {
_animationFrame = 0;
_animationState = 21;
_NR10SteeleShooting = true;
@@ -1790,24 +1793,29 @@ void AIScriptMcCoy::fallDown() {
return Actor_Set_At_XYZ(kActorMcCoy, x, _fallHeightCurrent, z, Actor_Query_Facing_1024(kActorMcCoy));
}
-void AIScriptMcCoy::sub_4054F0() {
- if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetUG15
- && Actor_Query_Goal_Number(kActorMcCoy) != 390
- && !Game_Flag_Query(682)
+void AIScriptMcCoy::UG15fall() {
+ if ( Actor_Query_Which_Set_In(kActorMcCoy) == kSetUG15
+ && Actor_Query_Goal_Number(kActorMcCoy) != kGoalMcCoyUG15Fall
+ && !Game_Flag_Query(kFlagUG15BridgeBroken)
) {
float x, y, z;
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
- if ((z < 220.0f) && (-210.0f < x) && (-70.0f > x)) {
- Game_Flag_Set(682);
- Scene_Loop_Set_Default(3);
- Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
- Actor_Set_Goal_Number(kActorMcCoy, 390);
+ if ( 220.0f > z
+ && -210.0f < x
+ && -70.0f > x
+ ) {
+ Game_Flag_Set(kFlagUG15BridgeBroken);
+ Scene_Loop_Set_Default(3); // kUG15LoopMainLoopBridgeBroken
+ Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true); // kUG15LoopBridgeBreaks
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG15Fall);
Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z);
- if (-200.0 < x && -62.0f > x) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 309);
+ if (-200.0 < x
+ && -62.0f > x
+ ) {
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Fall);
}
} else {
- Actor_Set_Goal_Number(kActorMcCoy, 391);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG15Die);
}
}
}
@@ -1929,11 +1937,6 @@ void AIScriptMcCoy::dodge() {
}
}
-void AIScriptMcCoy::sub_405920() {
- _animationFrame = 0;
- _animationState = 47;
-}
-
void AIScriptMcCoy::sub_405940(float a1) {
float x, y, z;
int currentAngle = Actor_Query_Facing_1024(kActorMcCoy);
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index de09f87..73cc4c5 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -104,18 +104,17 @@ DECLARE_SCRIPT(McCoy)
int dword_45A0E8;
int _animationStateNextSpecial;
int _animationNextSpecial;
- int dword_45A0F8;
+ int _nextSoundId;
bool _NR10SteeleShooting;
float _fallSpeed;
float _fallHeightCurrent;
float _fallHeightTarget;
void fallDown();
- void sub_4054F0();
+ void UG15fall();
void sub_405660();
void sub_405800();
void dodge();
- void sub_405920();
void sub_405940(float a1);
void sub_4059D0(float a1);
END_SCRIPT
@@ -459,12 +458,12 @@ END_SCRIPT
DECLARE_SCRIPT(FreeSlotA)
int _var1;
int _var2;
- float _var3;
- float _var4;
- float _var5;
+ float _fallSpeed;
+ float _fallHeightCurrent;
+ float _fallHeightTarget;
void calcHit();
- void processGoal306();
+ void goToRandomUGxx();
END_SCRIPT
DECLARE_SCRIPT(FreeSlotB)
diff --git a/engines/bladerunner/script/kia_script.cpp b/engines/bladerunner/script/kia_script.cpp
index 13c5300..56a2e48 100644
--- a/engines/bladerunner/script/kia_script.cpp
+++ b/engines/bladerunner/script/kia_script.cpp
@@ -654,7 +654,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
case kClueDNALutherLance:
case kClueDNAMarcus:
{
- int dnaEvidences = Global_Variable_Query(kVariableDNAEvidences);
+ int dnaEvidences = Global_Variable_Query(kVariableDNAEvidence);
if (dnaEvidences == 1) {
KIA_Play_Slice_Model(988);
} else if (dnaEvidences == 2) {
diff --git a/engines/bladerunner/script/scene/dr06.cpp b/engines/bladerunner/script/scene/dr06.cpp
index afbdf7c..d2317b2 100644
--- a/engines/bladerunner/script/scene/dr06.cpp
+++ b/engines/bladerunner/script/scene/dr06.cpp
@@ -117,10 +117,10 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Face_Heading(kActorMcCoy, 329, false);
if ( Actor_Clue_Query(kActorMcCoy, kClueFolder)
&& Actor_Clue_Query(kActorMcCoy, kClueGuzzaFramedMcCoy)
- && !Game_Flag_Query(670)
+ && !Game_Flag_Query(kFlagCallWithGuzza)
) {
- Actor_Set_Goal_Number(kActorMcCoy, 350);
- Game_Flag_Set(670);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyCallWithGuzza);
+ Game_Flag_Set(kFlagCallWithGuzza);
} else if (!Game_Flag_Query(kFlagDR06VidphoneChecked)) {
Actor_Voice_Over(770, kActorVoiceOver);
Actor_Voice_Over(780, kActorVoiceOver);
diff --git a/engines/bladerunner/script/scene/nr02.cpp b/engines/bladerunner/script/scene/nr02.cpp
index 38851b4..f485fdf 100644
--- a/engines/bladerunner/script/scene/nr02.cpp
+++ b/engines/bladerunner/script/scene/nr02.cpp
@@ -81,10 +81,10 @@ bool SceneScriptNR02::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Face_Heading(kActorMcCoy, 13, false);
if ( Actor_Clue_Query(kActorMcCoy, kClueFolder)
&& Actor_Clue_Query(kActorMcCoy, kClueGuzzaFramedMcCoy)
- && !Game_Flag_Query(670)
+ && !Game_Flag_Query(kFlagCallWithGuzza)
) {
- Actor_Set_Goal_Number(kActorMcCoy, 350);
- Game_Flag_Set(670);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyCallWithGuzza);
+ Game_Flag_Set(kFlagCallWithGuzza);
} else {
Sound_Play(123, 50, 0, 0, 50);
Delay(1000);
diff --git a/engines/bladerunner/script/scene/nr11.cpp b/engines/bladerunner/script/scene/nr11.cpp
index 447dfda..99f2bc7 100644
--- a/engines/bladerunner/script/scene/nr11.cpp
+++ b/engines/bladerunner/script/scene/nr11.cpp
@@ -146,7 +146,7 @@ bool SceneScriptNR11::ClickedOn3DObject(const char *objectName, bool combatMode)
if (!Player_Query_Combat_Mode()) {
Player_Set_Combat_Mode(true);
}
- Actor_Set_Goal_Number(kActorMcCoy, 230);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyNR11Shoot);
Scene_Loop_Set_Default(kNR11LoopMainLoopFires);
Scene_Loop_Start_Special(kSceneLoopModeOnce, kNR11LoopGunshots, true);
} else if (Actor_Query_Goal_Number(kActorDektora) == kGoalDektoraNR11Hiding) {
@@ -162,7 +162,7 @@ bool SceneScriptNR11::ClickedOn3DObject(const char *objectName, bool combatMode)
Delay(500);
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
Delay(2000);
- Actor_Set_Goal_Number(kActorMcCoy, 231);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyNR10Fall);
} else {
Actor_Says(kActorMcCoy, 3840, 18);
Delay(1000);
@@ -298,7 +298,7 @@ void SceneScriptNR11::SceneFrameAdvanced(int frame) {
if (!Player_Query_Combat_Mode()) {
Player_Set_Combat_Mode(true);
}
- Actor_Set_Goal_Number(kActorMcCoy, 230);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyNR11Shoot);
Scene_Loop_Set_Default(kNR11LoopMainLoopFires);
Scene_Loop_Start_Special(kSceneLoopModeOnce, kNR11LoopGunshots, true);
Game_Flag_Reset(kFlagNR11SteeleShoot);
diff --git a/engines/bladerunner/script/scene/ug05.cpp b/engines/bladerunner/script/scene/ug05.cpp
index cbce58e..1062f45 100644
--- a/engines/bladerunner/script/scene/ug05.cpp
+++ b/engines/bladerunner/script/scene/ug05.cpp
@@ -269,7 +269,7 @@ void SceneScriptUG05::sub_402218() {
if (affectionTowardsActor == kActorLucy) {
if (Game_Flag_Query(kFlagLucyIsReplicant)) {
- if (Global_Variable_Query(kVariableDNAEvidences) > 3) {
+ if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
Outtake_Play(kOuttakeEnd1B, false, -1);
} else {
Outtake_Play(kOuttakeEnd1C, false, -1);
@@ -279,7 +279,7 @@ void SceneScriptUG05::sub_402218() {
}
} else if (affectionTowardsActor == kActorDektora) {
if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
- if (Global_Variable_Query(kVariableDNAEvidences) > 3) {
+ if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
Outtake_Play(kOuttakeEnd1E, false, -1);
} else {
Outtake_Play(kOuttakeEnd1F, false, -1);
diff --git a/engines/bladerunner/script/scene/ug15.cpp b/engines/bladerunner/script/scene/ug15.cpp
index ef1ca2f..436c6f2 100644
--- a/engines/bladerunner/script/scene/ug15.cpp
+++ b/engines/bladerunner/script/scene/ug15.cpp
@@ -24,6 +24,12 @@
namespace BladeRunner {
+enum UG15Loops {
+ kUG15LoopMainLoop = 0,
+ kUG15LoopBridgeBreaks = 2,
+ kUG15LoopMainLoopBridgeBroken = 3
+};
+
void SceneScriptUG15::InitializeScene() {
if (Game_Flag_Query(kFlagUG17toUG15)) {
Setup_Scene_Information( -25.0f, 26.31f, -434.0f, 520);
@@ -33,14 +39,15 @@ void SceneScriptUG15::InitializeScene() {
Setup_Scene_Information( -18.0f, 48.07f, 62.0f, 650);
} else {
Setup_Scene_Information(-238.0f, 48.07f, 222.0f, 180);
- if (Game_Flag_Query(676)
+ if (Game_Flag_Query(kFlagUG15RatShot)
&& Random_Query(1, 10) == 10
) {
- Game_Flag_Reset(676);
+ Game_Flag_Reset(kFlagUG15RatShot);
}
}
- if (Game_Flag_Query(682)) {
- Scene_Loop_Set_Default(3);
+
+ if (Game_Flag_Query(kFlagUG15BridgeBroken)) {
+ Scene_Loop_Set_Default(kUG15LoopMainLoopBridgeBroken);
}
if (Game_Flag_Query(kFlagUG17toUG15)
@@ -107,7 +114,6 @@ bool SceneScriptUG15::ClickedOnItem(int itemId, bool a2) {
}
bool SceneScriptUG15::ClickedOnExit(int exitId) {
-
if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -25.0f, 26.31f, -434.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
@@ -160,39 +166,40 @@ bool SceneScriptUG15::ClickedOn2DRegion(int region) {
}
void SceneScriptUG15::SceneFrameAdvanced(int frame) {
- if (Actor_Query_Goal_Number(kActorFreeSlotA) == 300) {
+ if (Actor_Query_Goal_Number(kActorFreeSlotA) == kGoalFreeSlotAUG15Wait) {
float x, y, z;
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
if (-160.0f <= x
&& 220.0f > z
) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 301);
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15WalkOut);
}
}
+
if (frame == 61) {
Ambient_Sounds_Play_Sound(583, 80, 0, 0, 99);
}
- if ( Game_Flag_Query(677)
- && !Game_Flag_Query(682)
+ if ( Game_Flag_Query(kFlagUG15BridgeWillBreak)
+ && !Game_Flag_Query(kFlagUG15BridgeBroken)
) {
float x, y, z;
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
if ( -180.0f <= x
&& 220.0f > z
- && !Game_Flag_Query(724)
+ && !Game_Flag_Query(kFlagUG15BridgeBreaks)
) {
- Game_Flag_Set(724);
- Game_Flag_Set(682);
- Scene_Loop_Set_Default(3);
- Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
- Actor_Set_Goal_Number(kActorMcCoy, 390);
+ Game_Flag_Set(kFlagUG15BridgeBreaks);
+ Game_Flag_Set(kFlagUG15BridgeBroken);
+ Scene_Loop_Set_Default(kUG15LoopMainLoopBridgeBroken);
+ Scene_Loop_Start_Special(kSceneLoopModeOnce, kUG15LoopBridgeBreaks, true);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG15Fall);
Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z);
if (-200.0f < x
&& -62.0f > x
) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 309);
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Fall);
}
}
}
@@ -208,8 +215,8 @@ void SceneScriptUG15::PlayerWalkedIn() {
Game_Flag_Reset(kFlagUG16toUG15b);
} else if (Game_Flag_Query(kFlagUG13toUG15)) {
Game_Flag_Reset(kFlagUG13toUG15);
- if (!Game_Flag_Query(676)) {
- Actor_Set_Goal_Number(kActorFreeSlotA, 310);
+ if (!Game_Flag_Query(kFlagUG15RatShot)) {
+ Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Prepare);
}
}
}
diff --git a/engines/bladerunner/script/scene/ug16.cpp b/engines/bladerunner/script/scene/ug16.cpp
index 6d075ab..dc2f5da 100644
--- a/engines/bladerunner/script/scene/ug16.cpp
+++ b/engines/bladerunner/script/scene/ug16.cpp
@@ -135,7 +135,7 @@ bool SceneScriptUG16::ClickedOn3DObject(const char *objectName, bool a2) {
bool SceneScriptUG16::ClickedOnActor(int actorId) {
if (Actor_Query_Goal_Number(kActorLuther) < 490) {
- sub_401D78();
+ dialogueWithLuther();
return true;
}
return false;
@@ -234,7 +234,7 @@ void SceneScriptUG16::PlayerWalkedOut() {
void SceneScriptUG16::DialogueQueueFlushed(int a1) {
}
-void SceneScriptUG16::sub_401D78() {
+void SceneScriptUG16::dialogueWithLuther() {
Dialogue_Menu_Clear_List();
DM_Add_To_List_Never_Repeat_Once_Selected(1400, 5, 6, 2);
DM_Add_To_List_Never_Repeat_Once_Selected(1410, 5, 4, 8);
@@ -245,7 +245,7 @@ void SceneScriptUG16::sub_401D78() {
DM_Add_To_List_Never_Repeat_Once_Selected(1430, 6, 4, 5);
DM_Add_To_List_Never_Repeat_Once_Selected(1440, 6, 4, 5);
}
- if ( Global_Variable_Query(49) > 1
+ if ( Global_Variable_Query(kVariableCorruptedGuzzaEvidence) > 1
&& !Actor_Clue_Query(kActorMcCoy, kClueFolder)
) {
DM_Add_To_List_Never_Repeat_Once_Selected(1450, 6, 4, 5);
diff --git a/engines/bladerunner/script/scene/ug18.cpp b/engines/bladerunner/script/scene/ug18.cpp
index 7d45274..35b4661 100644
--- a/engines/bladerunner/script/scene/ug18.cpp
+++ b/engines/bladerunner/script/scene/ug18.cpp
@@ -59,7 +59,7 @@ void SceneScriptUG18::InitializeScene() {
Scene_Loop_Set_Default(4);
- if ( Game_Flag_Query(670)
+ if ( Game_Flag_Query(kFlagCallWithGuzza)
&& !Game_Flag_Query(671)
&& Global_Variable_Query(kVariableChapter) == 4
) {
@@ -85,7 +85,7 @@ void SceneScriptUG18::SceneLoaded() {
Actor_Set_At_Waypoint(kActorSadik, 33, 0);
}
}
- if ( Game_Flag_Query(670)
+ if ( Game_Flag_Query(kFlagCallWithGuzza)
&& !Game_Flag_Query(671)
&& Global_Variable_Query(kVariableChapter) == 4
) {
@@ -192,7 +192,7 @@ void SceneScriptUG18::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptUG18::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -488.71f, 0.0f, 123.59f, 0, false, false, 0);
- if ( Game_Flag_Query(670)
+ if ( Game_Flag_Query(kFlagCallWithGuzza)
&& !Game_Flag_Query(671)
&& Actor_Query_Is_In_Current_Set(kActorGuzza)
) {
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index 8d45053..a1899a3 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -497,7 +497,7 @@ DECLARE_SCRIPT(UG15)
END_SCRIPT
DECLARE_SCRIPT(UG16)
- void sub_401D78();
+ void dialogueWithLuther();
END_SCRIPT
DECLARE_SCRIPT(UG17)
Commit: ce3b7316568b10bcfc21b314b4d2658bc75e29d1
https://github.com/scummvm/scummvm/commit/ce3b7316568b10bcfc21b314b4d2658bc75e29d1
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-03T00:14:09+01:00
Commit Message:
BLADERUNNER: Cleanup Luther & Lance related scripts
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/clovis.cpp
engines/bladerunner/script/ai/luther.cpp
engines/bladerunner/script/ai/tyrell_guard.cpp
engines/bladerunner/script/init_script.cpp
engines/bladerunner/script/scene/dr06.cpp
engines/bladerunner/script/scene/kp07.cpp
engines/bladerunner/script/scene/ps14.cpp
engines/bladerunner/script/scene/tb02.cpp
engines/bladerunner/script/scene/tb03.cpp
engines/bladerunner/script/scene/tb07.cpp
engines/bladerunner/script/scene/ug06.cpp
engines/bladerunner/script/scene/ug16.cpp
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 70d0923..b5d21e0 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -960,7 +960,10 @@ enum Flags {
kFlagUG16toDR06 = 551, // is never checked
kFlagDR06toUG16 = 552,
kFlagUG13Entered = 553,
+ kFlagUG16LutherLanceTalk1 = 556,
+ kFlagNotUsed557, // is never checked
kFlagDR01toCT11 = 558,
+ kFlagLutherLanceIsReplicant = 560,
kFlagNR02GordoLeaveLighter = 561,
kFlagHF05CrazyLegsTalk1 = 562,
kFlagHF05CrazyLegsTalk2 = 563,
@@ -968,6 +971,7 @@ enum Flags {
kFlagNotUsed565 = 565, // has no use
kFlagHF03toHF04 = 566, // is never checked
kFlagHF04toHF03 = 567,
+ kFlagUG16ComputerOff = 568,
kFlagNR04EarlyQWalkedIn = 569,
// 570 is never used
// 571 is never used
@@ -979,6 +983,7 @@ enum Flags {
kFlagHF04DoorsClosed = 584,
kFlagHF04CloseDoors = 585,
kFlagHF04OpenDoors = 586,
+ kFlagUG15LutherLanceStartedDying = 587,
kFlagNR05BartenderTalk1 = 588,
kFlagNR05BartenderTalk2 = 589,
kFlagNR05EarlyQTalk = 590,
@@ -986,12 +991,18 @@ enum Flags {
kFlagGordoRanAway = 592,
kFlagLucyRanAway = 593,
kFlagNR02GordoJumpDown = 594,
+ kFlagLutherLanceAreDead = 595,
+ kFlagUG16PulledGun = 596,
+ kFlagUG16FolderFound = 597,
kFlagKIAPrivacyAddonIntro = 599,
+ kFlagUG16LutherLanceTalkReplicants1 = 600,
+ kFlagUG16LutherLanceTalkReplicants2 = 601,
// 602 is never used
kFlagSteeleAimingAtGordo = 603,
kFlagNR03McCoyThrownOut = 604,
kFlagNR04DiscFound = 605,
kFlagNR04EarlyQStungByScorpions = 606,
+
kFlagTB07toTB02 = 608,
kFlagNR04McCoyAimedAtEarlyQ = 609,
kFlagUG08Entered = 610,
@@ -1053,6 +1064,7 @@ enum Flags {
kFlagPS05TV4 = 692,
kFlagUG03DeadHomeless = 693,
kFlagUG14DeadHomeless = 694,
+ kFlagUG15LanceLuthorTrade = 698,
kFlagBulletBobDead = 702,
kFlagRC02EnteredChapter4 = 704,
kFlagRC02RunciterTalkWithGun = 705,
@@ -1064,6 +1076,7 @@ enum Flags {
kFlagMA04WatchedTV = 711,
kFlagMcCoyShotAtZuben = 712,
kFlagDR04McCoyShotMoraji = 713,
+ kFlagDR06UnlockedToUG16 = 715,
kFlagRC04BobTalk3 = 717,
kflagPS01toPS02 = 718,
kFlagCT02McCoyFell = 719,
@@ -1094,7 +1107,7 @@ enum Variables {
kVariableBobShot = 24, // has no use
kVariableGeneralDollShot = 25, // has no use
// variables 26 - 28 are not used
-
+ kVariableLutherLanceShot = 29,
// variables 30 - 31 are not used
kVariableGenericWalkerAModel = 32,
kVariableGenericWalkerBModel = 33,
@@ -1509,12 +1522,23 @@ enum GameItems {
kItemCandy = 79,
kItemCheese = 81,
kItemChopstickWrapper = 82,
+ kItemDNATyrell = 83,
kItemDogCollar = 84,
kItemRagDoll = 85,
+ // 86 is never used
+ // 87 is never used
kItemRadiationGoogles = 88,
kItemGordosLighter1 = 89,
kItemGordosLighter2 = 90,
+
+ // 92 is never used
+ // 93 is never used
+ // 94 is never used
+ // 95 is never used
+ // 96 is never used
+ // 97 is never used
kItemToyDog = 98,
+ // 99 is never used
kItemShellCasingA = 100,
kItemShellCasingB = 101,
kItemShellCasingC = 102,
@@ -1527,7 +1551,13 @@ enum GameItems {
kItemChair = 109,
kItemWeaponsCrate = 110,
kItemWeaponsOrderForm = 111,
+ // 112 is never used
+ // 113 is never used
+ // 114 is never used
kItemDogWrapper = 115,
+ // 116 is never used
+ // 117 is never used
+
kItemTyrellSalesPamphlet = 119,
kItemMoonbusPhoto = 120,
kItemGreenPawnLock = 121,
@@ -1870,6 +1900,20 @@ enum GoalSadik {
kGoalSadikBB11TalkWithClovis = 107
};
+enum GoalLuther {
+ kGoalLutherDefault = 400,
+ kGoalLutherMoveAround = 401,
+ kGoalLutherMoveAroundRestart = 402,
+ kGoalLutherStop = 403,
+ kGoalLutherShot = 494,
+ kGoalLutherDyingStarted = 495,
+ kGoalLutherDyingWait = 496,
+ kGoalLutherDyingCheck = 497,
+ kGoalLutherDie = 498,
+ kGoalLutherDead = 499,
+ kGoalLutherGone = 599
+};
+
enum GoalTransient {
kGoalTransientDefault = 0,
kGoalTransientCT04Leave = 2
@@ -1893,10 +1937,17 @@ enum GoalRunciter {
kGoalRunciterDead = 599
};
+enum GoalTyrellGuard {
+ kGoalTyrellGuardSleeping = 300,
+ kGoalTyrellGuardWakeUpAndArrestMcCoy = 301,
+ kGoalTyrellGuardWakeUp = 302,
+ kGoalTyrellGuardArrestMcCoy = 303,
+ kGoalTyrellGuardWait = 304
+};
+
enum GoalEarlyQ {
// cut feature? goals 0 - 200 has no use as EarlyQ is walking around NR which is not accessible
kGoalEarlyQWalkAround = 200,
-
kGoalEarlyQNR04Enter = 201,
kGoalEarlyQNR04Talk1 = 202,
kGoalEarlyQNR04GoToBar = 203,
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 41d188e..c8a57ee 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -453,7 +453,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Global_Variable_Decrement(kVariableReplicants, 1);
}
if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLuther, kSetKP07)) {
- Actor_Set_Goal_Number(kActorLuther, 599);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherGone);
Global_Variable_Decrement(kVariableReplicants, 1);
}
if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorDektora, kSetKP07)) {
diff --git a/engines/bladerunner/script/ai/luther.cpp b/engines/bladerunner/script/ai/luther.cpp
index 21df880..696bfc0 100644
--- a/engines/bladerunner/script/ai/luther.cpp
+++ b/engines/bladerunner/script/ai/luther.cpp
@@ -38,84 +38,98 @@ void AIScriptLuther::Initialize() {
Actor_Put_In_Set(kActorLuther, kSetUG16);
Actor_Set_At_XYZ(kActorLuther, 176.91f, -40.67f, 225.92f, 486);
- Actor_Set_Goal_Number(kActorLuther, 400);
- Actor_Set_Targetable(kActorLuther, 1);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherDefault);
+ Actor_Set_Targetable(kActorLuther, true);
}
bool AIScriptLuther::Update() {
- if (!Actor_Query_Is_In_Current_Set(kActorLuther)
- || Player_Query_Combat_Mode() != 1
- || Global_Variable_Query(29)
- || Game_Flag_Query(596)
- || Global_Variable_Query(kVariableChapter) != 4) {
- if (Actor_Query_Goal_Number(kActorLuther) == 400 && Actor_Query_Goal_Number(kActorLuther) != 499) {
- Actor_Set_Goal_Number(kActorLuther, 401);
- } else if (Actor_Query_Goal_Number(kActorLuther) == 494) {
- Actor_Set_Goal_Number(kActorLuther, 495);
- ChangeAnimationMode(48);
- } else if (Actor_Query_Goal_Number(kActorLuther) != 495 || Game_Flag_Query(587)) {
- if (Actor_Query_Goal_Number(kActorLuther) != 497
- || Global_Variable_Query(29) >= 2
- || Game_Flag_Query(568)) {
- if (Actor_Query_Goal_Number(kActorLuther) != 497
- || Global_Variable_Query(29) <= 1
- || Game_Flag_Query(568)) {
- if (Actor_Query_Goal_Number(kActorLuther) == 498) {
- Game_Flag_Set(595);
- Actor_Set_Goal_Number(kActorLuther, 499);
- Actor_Set_Targetable(kActorLuther, 0);
- } else {
- return false;
- }
- } else {
- Actor_Set_Targetable(kActorLuther, 0);
- Actor_Set_Goal_Number(kActorLuther, 498);
- Actor_Set_Targetable(kActorLuther, 0);
- }
- } else {
- Game_Flag_Set(568);
- ChangeAnimationMode(50);
- ChangeAnimationMode(48);
- Actor_Set_Goal_Number(kActorLuther, 498);
- Actor_Set_Targetable(kActorLuther, 0);
- Scene_Loop_Set_Default(5);
- Scene_Loop_Start_Special(2, 4, 1);
- Ambient_Sounds_Play_Sound(559, 50, 0, 0, 99);
- Ambient_Sounds_Remove_Looping_Sound(516, 1);
- }
- } else {
- AI_Countdown_Timer_Reset(kActorLuther, 2);
- AI_Countdown_Timer_Start(kActorLuther, 2, 5);
- Actor_Set_Goal_Number(kActorLuther, 496);
- Game_Flag_Set(587);
- }
- } else {
+ if ( Actor_Query_Is_In_Current_Set(kActorLuther)
+ && Player_Query_Combat_Mode()
+ && Global_Variable_Query(kVariableLutherLanceShot) == 0
+ && !Game_Flag_Query(kFlagUG16PulledGun)
+ && Global_Variable_Query(kVariableChapter) == 4
+ ) {
Actor_Says(kActorMcCoy, 5720, 12);
Actor_Says(kActorLuther, 80, 13);
Actor_Says(kActorLance, 40, 12);
- Game_Flag_Set(596);
+ Game_Flag_Set(kFlagUG16PulledGun);
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorLuther) == kGoalLutherDefault
+ && Actor_Query_Goal_Number(kActorLuther) != kGoalLutherDead
+ ) {
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherMoveAround);
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorLuther) == kGoalLutherShot) {
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherDyingStarted);
+ ChangeAnimationMode(kAnimationModeDie);
+ return false;
+ }
+
+ if ( Actor_Query_Goal_Number(kActorLuther) == kGoalLutherDyingStarted
+ && !Game_Flag_Query(kFlagUG15LutherLanceStartedDying)
+ ) {
+ AI_Countdown_Timer_Reset(kActorLuther, 2);
+ AI_Countdown_Timer_Start(kActorLuther, 2, 5);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherDyingWait);
+ Game_Flag_Set(kFlagUG15LutherLanceStartedDying);
+ return false;
+ }
+
+ if ( Actor_Query_Goal_Number(kActorLuther) == kGoalLutherDyingCheck
+ && Global_Variable_Query(kVariableLutherLanceShot) < 2
+ && !Game_Flag_Query(kFlagUG16ComputerOff)
+ ) {
+ Game_Flag_Set(kFlagUG16ComputerOff);
+ ChangeAnimationMode(50);
+ ChangeAnimationMode(kAnimationModeDie);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherDie);
+ Actor_Set_Targetable(kActorLuther, false);
+ Scene_Loop_Set_Default(5); // UG16MainLoopNoComputerLight
+ Scene_Loop_Start_Special(kSceneLoopModeOnce, 4, true); // UG16SparkLoop
+ Ambient_Sounds_Play_Sound(559, 50, 0, 0, 99);
+ Ambient_Sounds_Remove_Looping_Sound(516, 1);
+ return false;
+ }
+
+ if ( Actor_Query_Goal_Number(kActorLuther) == kGoalLutherDyingCheck
+ && Global_Variable_Query(kVariableLutherLanceShot) > 1
+ && !Game_Flag_Query(kFlagUG16ComputerOff)
+ ) {
+ Actor_Set_Targetable(kActorLuther, false);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherDie);
+ Actor_Set_Targetable(kActorLuther, false);
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorLuther) == kGoalLutherDie) {
+ Game_Flag_Set(kFlagLutherLanceAreDead);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherDead);
+ Actor_Set_Targetable(kActorLuther, false);
+ return false;
}
return false;
}
void AIScriptLuther::TimerExpired(int timer) {
- if (timer != 2)
- return; //false;
-
- AI_Countdown_Timer_Reset(kActorLuther, 2);
- Actor_Set_Goal_Number(kActorLuther, 497);
-
- return; //true;
+ if (timer == 2) {
+ AI_Countdown_Timer_Reset(kActorLuther, 2);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherDyingCheck);
+ // return true;
+ }
+ // return false;
}
void AIScriptLuther::CompletedMovementTrack() {
- if (Actor_Query_Goal_Number(kActorLuther) != 401)
- return; //false;
-
- Actor_Set_Goal_Number(kActorLuther, 402);
-
- return; //true;
+ if (Actor_Query_Goal_Number(kActorLuther) == kGoalLutherMoveAround) {
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherMoveAroundRestart);
+ // return true;
+ }
+ //return false;
}
void AIScriptLuther::ReceivedClue(int clueId, int fromActorId) {
@@ -147,24 +161,26 @@ void AIScriptLuther::ShotAtAndMissed() {
}
bool AIScriptLuther::ShotAtAndHit() {
- if (Actor_Query_Which_Set_In(kActorLuther) == 19) {
+ if (Actor_Query_Which_Set_In(kActorLuther) == kSetUG16) {
Actor_Set_Health(kActorLuther, 50, 50);
}
- Global_Variable_Increment(29, 1);
+
+ Global_Variable_Increment(kVariableLutherLanceShot, 1);
Music_Stop(2);
- if (Global_Variable_Query(29) <= 0) {
- return false;
- }
- if (!Game_Flag_Query(560)) {
- Game_Flag_Set(557);
+
+ if (Global_Variable_Query(kVariableLutherLanceShot) > 0) {
+ if (!Game_Flag_Query(kFlagLutherLanceIsReplicant)) {
+ Game_Flag_Set(kFlagNotUsed557);
+ }
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherShot);
+ return true;
}
- Actor_Set_Goal_Number(kActorLuther, 494);
- return true;
+ return false;
}
void AIScriptLuther::Retired(int byActorId) {
- Actor_Set_Goal_Number(kActorLuther, 599);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherGone);
}
int AIScriptLuther::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) {
@@ -173,7 +189,7 @@ int AIScriptLuther::GetFriendlinessModifierIfGetsClue(int otherActorId, int clue
bool AIScriptLuther::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) {
- case 401:
+ case kGoalLutherMoveAround:
AI_Movement_Track_Flush(kActorLuther);
AI_Movement_Track_Append(kActorLuther, 39, 20);
AI_Movement_Track_Append_With_Facing(kActorLuther, 368, 120, 486);
@@ -181,16 +197,16 @@ bool AIScriptLuther::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorLuther);
break;
- case 402:
- Actor_Set_Goal_Number(kActorLuther, 401);
+ case kGoalLutherMoveAroundRestart:
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherMoveAround);
break;
- case 403:
+ case kGoalLutherStop:
AI_Movement_Track_Flush(kActorLuther);
break;
case 499:
- Actor_Set_Goal_Number(kActorLuther, 599);
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherGone);
break;
}
@@ -202,7 +218,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 0:
*animation = 346;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(346) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
}
break;
@@ -210,7 +226,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 1:
*animation = 348;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(348) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
*animation = 346;
_animationFrame = 0;
_animationState = 0;
@@ -219,13 +235,15 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
break;
case 2:
- if (!_animationFrame && _flag) {
+ if (_animationFrame == 0
+ && _flag
+ ) {
*animation = 346;
_animationState = 0;
} else {
*animation = 349;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(349) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
}
}
@@ -234,7 +252,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 3:
*animation = 350;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(350) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
_animationState = 2;
*animation = 349;
@@ -244,7 +262,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 4:
*animation = 351;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(351) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
_animationState = 2;
*animation = 349;
@@ -254,7 +272,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 5:
*animation = 352;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(352) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
_animationState = 2;
*animation = 349;
@@ -264,7 +282,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 6:
*animation = 353;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(353) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
_animationState = 2;
*animation = 349;
@@ -274,7 +292,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 7:
*animation = 354;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(354) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
_animationState = 2;
*animation = 349;
@@ -284,7 +302,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 8:
*animation = 355;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(355) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
_animationState = 2;
*animation = 349;
@@ -294,7 +312,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 9:
*animation = 356;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(356) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
*animation = 346;
_animationFrame = 0;
_animationState = 0;
@@ -305,7 +323,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 10:
*animation = 357;
_animationFrame++;
- if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(357) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
Actor_Change_Animation_Mode(kActorLuther, 50);
*animation = 358;
_animationFrame = 0;
@@ -314,7 +332,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
case 11:
*animation = 358;
- if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(358) - 1) {
+ if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(*animation) - 1) {
_animationFrame++;
}
break;
@@ -329,8 +347,6 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
}
break;
- default:
- break;
}
*frame = _animationFrame;
@@ -338,6 +354,7 @@ bool AIScriptLuther::UpdateAnimation(int *animation, int *frame) {
}
bool AIScriptLuther::ChangeAnimationMode(int mode) {
+ // these modes are differnent that other actors
switch (mode) {
case 0:
if ((unsigned int)(_animationState - 2) > 6) {
diff --git a/engines/bladerunner/script/ai/tyrell_guard.cpp b/engines/bladerunner/script/ai/tyrell_guard.cpp
index 5e40453..a7b9e31 100644
--- a/engines/bladerunner/script/ai/tyrell_guard.cpp
+++ b/engines/bladerunner/script/ai/tyrell_guard.cpp
@@ -49,12 +49,13 @@ void AIScriptTyrellGuard::TimerExpired(int timer) {
case 0:
AI_Countdown_Timer_Reset(kActorTyrellGuard, 0);
if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetTB02_TB03) {
- Actor_Set_Goal_Number(kActorTyrellGuard, 301);
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardWakeUpAndArrestMcCoy);
}
break;
+
case 1:
AI_Countdown_Timer_Reset(kActorTyrellGuard, 1);
- Actor_Set_Goal_Number(kActorTyrellGuard, 303);
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardArrestMcCoy);
break;
}
}
@@ -105,13 +106,14 @@ int AIScriptTyrellGuard::GetFriendlinessModifierIfGetsClue(int otherActorId, int
bool AIScriptTyrellGuard::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) {
- case 300:
+ case kGoalTyrellGuardSleeping:
if (currentGoalNumber != newGoalNumber) {
Actor_Change_Animation_Mode(kActorTyrellGuard, 55);
AI_Countdown_Timer_Start(kActorTyrellGuard, 0, 30);
}
return true;
- case 301:
+
+ case kGoalTyrellGuardWakeUpAndArrestMcCoy:
Actor_Change_Animation_Mode(kActorTyrellGuard, kAnimationModeIdle);
Delay(1000);
Actor_Says(kActorTyrellGuard, 320, 14);
@@ -121,19 +123,22 @@ bool AIScriptTyrellGuard::GoalChanged(int currentGoalNumber, int newGoalNumber)
Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyArrested);
return true;
- case 302:
+
+ case kGoalTyrellGuardWakeUp:
AI_Countdown_Timer_Reset(kActorTyrellGuard, 0);
Actor_Says(kActorTyrellGuard, 310, 14);
AI_Countdown_Timer_Start(kActorTyrellGuard, 1, 20);
return true;
- case 303:
+
+ case kGoalTyrellGuardArrestMcCoy:
Actor_Change_Animation_Mode(kActorTyrellGuard, 50);
Ambient_Sounds_Play_Sound(590, 100, 0, 0, 0);
Delay(1000);
Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyArrested);
return true;
- case 304:
+
+ case kGoalTyrellGuardWait:
AI_Countdown_Timer_Reset(kActorTyrellGuard, 1);
return true;
}
@@ -149,6 +154,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
_animationFrame = 0;
}
break;
+
case 1:
*animation = 564;
if (_animationFrame <= 5) {
@@ -158,6 +164,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
}
_animationFrame += _frameDelta;
break;
+
case 2:
*animation = 564;
_animationFrame++;
@@ -166,9 +173,12 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
_animationState = 0;
}
break;
+
case 3:
*animation = 558;
- if (_animationFrame == 0 && _flag1) {
+ if (_animationFrame == 0
+ && _flag1
+ ) {
*animation = 555;
_animationState = 0;
} else {
@@ -178,6 +188,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
}
}
break;
+
case 4:
*animation = 559;
_animationFrame++;
@@ -187,6 +198,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
_animationState = 3;
}
break;
+
case 5:
*animation = 560;
_animationFrame++;
@@ -196,6 +208,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
_animationState = 3;
}
break;
+
case 6:
*animation = 561;
_animationFrame++;
@@ -205,6 +218,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
_animationState = 3;
}
break;
+
case 7:
*animation = 562;
_animationFrame++;
@@ -232,6 +246,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
_animationState = 0;
}
break;
+
case 10:
*animation = 564;
_animationFrame++;
@@ -241,6 +256,7 @@ bool AIScriptTyrellGuard::UpdateAnimation(int *animation, int *frame) {
_animationState = 0;
}
break;
+
case 11:
*animation = 565;
_animationFrame++;
@@ -282,6 +298,7 @@ bool AIScriptTyrellGuard::ChangeAnimationMode(int mode) {
break;
}
break;
+
case kAnimationModeTalk:
if (_animationState == 1) {
_animationState = 2;
@@ -291,6 +308,7 @@ bool AIScriptTyrellGuard::ChangeAnimationMode(int mode) {
_flag1 = false;
}
break;
+
case 12:
if (_animationState == 1) {
_animationState = 2;
@@ -300,6 +318,7 @@ bool AIScriptTyrellGuard::ChangeAnimationMode(int mode) {
_flag1 = false;
}
break;
+
case 13:
if (_animationState == 1) {
_animationState = 2;
@@ -309,6 +328,7 @@ bool AIScriptTyrellGuard::ChangeAnimationMode(int mode) {
_flag1 = false;
}
break;
+
case 14:
if (_animationState == 1) {
_animationState = 2;
@@ -318,6 +338,7 @@ bool AIScriptTyrellGuard::ChangeAnimationMode(int mode) {
_flag1 = false;
}
break;
+
case 15:
if (_animationState == 1) {
_animationState = 2;
@@ -327,14 +348,17 @@ bool AIScriptTyrellGuard::ChangeAnimationMode(int mode) {
_flag1 = false;
}
break;
+
case 23:
_animationState = 8;
_animationFrame = 0;
break;
+
case 50:
_animationState = 11;
_animationFrame = 0;
break;
+
case 43:
case 55:
if (_animationState != 1) {
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 9133873..4cd634e 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -97,7 +97,7 @@ void InitScript::Init_Game_Flags() {
}
if (Random_Query(1, 2) == 1) {
- Game_Flag_Set(560);
+ Game_Flag_Set(kFlagLutherLanceIsReplicant);
}
if (!Game_Flag_Query(kFlagGordoIsReplicant)
diff --git a/engines/bladerunner/script/scene/dr06.cpp b/engines/bladerunner/script/scene/dr06.cpp
index d2317b2..0d549f5 100644
--- a/engines/bladerunner/script/scene/dr06.cpp
+++ b/engines/bladerunner/script/scene/dr06.cpp
@@ -33,7 +33,7 @@ void SceneScriptDR06::InitializeScene() {
Scene_Exit_Add_2D_Exit(0, 601, 11, 639, 479, 1);
if (Global_Variable_Query(kVariableChapter) > 3
- && Game_Flag_Query(715)
+ && Game_Flag_Query(kFlagDR06UnlockedToUG16)
) {
Scene_Exit_Add_2D_Exit(1, 0, 272, 46, 477, 2);
}
diff --git a/engines/bladerunner/script/scene/kp07.cpp b/engines/bladerunner/script/scene/kp07.cpp
index 486120f..d6d1a88 100644
--- a/engines/bladerunner/script/scene/kp07.cpp
+++ b/engines/bladerunner/script/scene/kp07.cpp
@@ -71,7 +71,7 @@ void SceneScriptKP07::InitializeScene() {
Actor_Set_At_XYZ(kActorLucy, 78.0f, -41.52f, -119.0f, 659);
}
- if (Actor_Query_Goal_Number(kActorLuther) < 599) {
+ if (Actor_Query_Goal_Number(kActorLuther) < kGoalLutherGone) {
Global_Variable_Increment(kVariableReplicants, 1);
Actor_Put_In_Set(kActorLuther, kSetKP07);
Actor_Set_At_XYZ(kActorLuther, -47.0f, 0.0f, 151.0f, 531);
diff --git a/engines/bladerunner/script/scene/ps14.cpp b/engines/bladerunner/script/scene/ps14.cpp
index 73b87e7..bd22dff 100644
--- a/engines/bladerunner/script/scene/ps14.cpp
+++ b/engines/bladerunner/script/scene/ps14.cpp
@@ -69,9 +69,10 @@ bool SceneScriptPS14::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptPS14::ClickedOnExit(int exitId) {
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -2101.0f, 508.14f, -1361.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -2101.0f, 508.14f, -1361.0f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 819, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 3, true, kAnimationModeIdle);
+
if (Global_Variable_Query(kVariableChapter) == 4
&& Game_Flag_Query(671)
) {
diff --git a/engines/bladerunner/script/scene/tb02.cpp b/engines/bladerunner/script/scene/tb02.cpp
index 7a68812..a82f88d 100644
--- a/engines/bladerunner/script/scene/tb02.cpp
+++ b/engines/bladerunner/script/scene/tb02.cpp
@@ -40,6 +40,7 @@ void SceneScriptTB02::InitializeScene() {
if (Global_Variable_Query(kVariableChapter) > 3) {
Scene_Exit_Add_2D_Exit(0, 0, 455, 639, 479, 2);
}
+
Ambient_Sounds_Add_Looping_Sound(211, 20, 0, 1);
Ambient_Sounds_Add_Sound(212, 2, 15, 16, 20, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(213, 2, 15, 16, 20, 0, 0, -101, -101, 0, 0);
@@ -63,22 +64,25 @@ void SceneScriptTB02::InitializeScene() {
Ambient_Sounds_Add_Sound(194, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
}
+
if (Game_Flag_Query(kFlagSpinnerAtTB02)
&& Global_Variable_Query(kVariableChapter) < 4
) {
Scene_Exit_Add_2D_Exit(2, 67, 0, 233, 362, 3);
}
+
if (Game_Flag_Query(kFlagTB03toTB02)) {
- Scene_Loop_Start_Special(0, 0, 0);
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1);
} else {
Scene_Loop_Set_Default(1);
}
+
Actor_Put_In_Set(kActorTyrellGuard, kSetTB02_TB03);
Actor_Set_At_XYZ(kActorTyrellGuard, -38.53f, 2.93f, 1475.97f, 673);
if (Global_Variable_Query(kVariableChapter) == 4) {
- if (Actor_Query_Goal_Number(kActorTyrellGuard) < 300) {
- Actor_Set_Goal_Number(kActorTyrellGuard, 300);
+ if (Actor_Query_Goal_Number(kActorTyrellGuard) < kGoalTyrellGuardSleeping) {
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardSleeping);
}
Scene_Exit_Add_2D_Exit(1, 430, 235, 487, 396, 0);
}
@@ -148,8 +152,8 @@ bool SceneScriptTB02::ClickedOnActor(int actorId) {
}
if (chapter == 4) {
- if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) {
- Actor_Set_Goal_Number(kActorTyrellGuard, 301);
+ if (Actor_Query_Goal_Number(kActorTyrellGuard) == kGoalTyrellGuardSleeping) {
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardWakeUpAndArrestMcCoy);
}
}
}
@@ -173,6 +177,7 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -32.0f, 0.0f, 1578.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
@@ -187,12 +192,13 @@ bool SceneScriptTB02::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -192.0f, 0.0f, 1430.0f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 800, false);
Loop_Actor_Travel_Stairs(kActorMcCoy, 9, false, kAnimationModeIdle);
- if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) {
- Actor_Set_Goal_Number(kActorTyrellGuard, 301);
+ if (Actor_Query_Goal_Number(kActorTyrellGuard) == kGoalTyrellGuardSleeping) {
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardWakeUpAndArrestMcCoy);
} else {
Game_Flag_Reset(kFlagMcCoyInChinaTown);
Game_Flag_Reset(kFlagMcCoyInRunciters);
@@ -295,8 +301,8 @@ void SceneScriptTB02::PlayerWalkedIn() {
Game_Flag_Reset(kFlagTB05toTB02);
} else if (Game_Flag_Query(kFlagTB07toTB02)) {
Game_Flag_Reset(kFlagTB07toTB02);
- if (Actor_Query_Goal_Number(kActorTyrellGuard) == 300) {
- Actor_Set_Goal_Number(kActorTyrellGuard, 302);
+ if (Actor_Query_Goal_Number(kActorTyrellGuard) == kGoalTyrellGuardSleeping) {
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardWakeUp);
}
Music_Play(1, 50, 0, 2, -1, 0, 0);
} else {
diff --git a/engines/bladerunner/script/scene/tb03.cpp b/engines/bladerunner/script/scene/tb03.cpp
index fb26584..27ac0f0 100644
--- a/engines/bladerunner/script/scene/tb03.cpp
+++ b/engines/bladerunner/script/scene/tb03.cpp
@@ -62,11 +62,11 @@ void SceneScriptTB03::InitializeScene() {
Actor_Set_At_XYZ(kActorTyrellGuard, -38.53f, 2.93f, 1475.97f, 673);
if (Global_Variable_Query(kVariableChapter) == 4) {
int goal = Actor_Query_Goal_Number(kActorTyrellGuard);
- if (goal == 304) {
- Actor_Change_Animation_Mode(kActorTyrellGuard, 0);
+ if (goal == kGoalTyrellGuardWait) {
+ Actor_Change_Animation_Mode(kActorTyrellGuard, kAnimationModeIdle);
Actor_Set_Goal_Number(kActorOfficerGrayford, 399);
- } else if (goal != 302) {
- Actor_Set_Goal_Number(kActorTyrellGuard, 300);
+ } else if (goal != kGoalTyrellGuardWakeUp) {
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardSleeping);
}
}
@@ -107,8 +107,8 @@ bool SceneScriptTB03::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptTB03::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -260.0f, 0.15f, 2014.0f, 0, 1, false, 0)) {
- Actor_Set_Goal_Number(kActorTyrellGuard, 304);
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -260.0f, 0.15f, 2014.0f, 0, true, false, 0)) {
+ Actor_Set_Goal_Number(kActorTyrellGuard, kGoalTyrellGuardWait);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagTB03toUG17);
@@ -118,7 +118,7 @@ bool SceneScriptTB03::ClickedOnExit(int exitId) {
}
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -152.0f, 0.0f, 1774.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -152.0f, 0.0f, 1774.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagTB03toTB02);
@@ -141,7 +141,7 @@ void SceneScriptTB03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptTB03::PlayerWalkedIn() {
- if (Actor_Query_Goal_Number(kActorTyrellGuard) == 304) {
+ if (Actor_Query_Goal_Number(kActorTyrellGuard) == kGoalTyrellGuardWait) {
Player_Set_Combat_Mode(false);
Actor_Says(kActorOfficerGrayford, 260, -1);
Actor_Says(kActorMcCoy, 170, 14);
diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp
index cc14203..6290ad7 100644
--- a/engines/bladerunner/script/scene/tb07.cpp
+++ b/engines/bladerunner/script/scene/tb07.cpp
@@ -49,7 +49,7 @@ void SceneScriptTB07::InitializeScene() {
if ( Global_Variable_Query(kVariableChapter) == 4
&& !Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)
) {
- Item_Add_To_World(83, 941, kSetTB07, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true);
+ Item_Add_To_World(kItemDNATyrell, 941, kSetTB07, 9.7f, 48.7f, -174.22f, 0, 12, 12, false, true, false, true);
}
if (Game_Flag_Query(kFlagTB07ShadeDown)) {
Scene_Loop_Set_Default(kTB07LoopMainShadeDown);
@@ -78,7 +78,7 @@ bool SceneScriptTB07::ClickedOnActor(int actorId) {
bool SceneScriptTB07::ClickedOnItem(int itemId, bool a2) {
if (!Loop_Actor_Walk_To_Item(kActorMcCoy, itemId, 36, true, false)) {
Actor_Face_Item(kActorMcCoy, itemId, true);
- if (itemId == 83) {
+ if (itemId == kItemDNATyrell) {
Item_Pickup_Spin_Effect(941, 331, 296);
Actor_Clue_Acquire(kActorMcCoy, kClueDNATyrell, false, -1);
}
diff --git a/engines/bladerunner/script/scene/ug06.cpp b/engines/bladerunner/script/scene/ug06.cpp
index 9ac5bca..3209d4b 100644
--- a/engines/bladerunner/script/scene/ug06.cpp
+++ b/engines/bladerunner/script/scene/ug06.cpp
@@ -29,7 +29,7 @@ void SceneScriptUG06::InitializeScene() {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Outtake_Play(kOuttakeMovieC1, false, -1);
- if (Game_Flag_Query(560)) {
+ if (Game_Flag_Query(kFlagLutherLanceIsReplicant)) {
Outtake_Play(kOuttakeMovieC3, false, -1);
} else {
Outtake_Play(kOuttakeMovieC2, false, -1);
diff --git a/engines/bladerunner/script/scene/ug16.cpp b/engines/bladerunner/script/scene/ug16.cpp
index dc2f5da..ff14e4b 100644
--- a/engines/bladerunner/script/scene/ug16.cpp
+++ b/engines/bladerunner/script/scene/ug16.cpp
@@ -44,7 +44,7 @@ void SceneScriptUG16::InitializeScene() {
Ambient_Sounds_Add_Looping_Sound(332, 40, 0, 1);
Ambient_Sounds_Add_Looping_Sound(333, 40, 0, 1);
- if (Game_Flag_Query(568)) {
+ if (Game_Flag_Query(kFlagUG16ComputerOff)) {
Scene_Loop_Set_Default(5);
} else {
Scene_Loop_Set_Default(0);
@@ -81,10 +81,10 @@ bool SceneScriptUG16::ClickedOn3DObject(const char *objectName, bool a2) {
if (Object_Query_Click("QUADPATCH05", objectName)) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 194.0f, -35.0f, 160.8f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 870, false);
- if (!Game_Flag_Query(597)
- && Game_Flag_Query(595)
+ if (!Game_Flag_Query(kFlagUG16FolderFound)
+ && Game_Flag_Query(kFlagLutherLanceAreDead)
) {
- Game_Flag_Set(597);
+ Game_Flag_Set(kFlagUG16FolderFound);
Delay(1000);
Actor_Voice_Over(3480, kActorVoiceOver);
Actor_Change_Animation_Mode(kActorMcCoy, 38);
@@ -109,32 +109,31 @@ bool SceneScriptUG16::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Face_Heading(kActorMcCoy, 870, false);
- if ((!Game_Flag_Query(595)
- && Actor_Query_Is_In_Current_Set(kActorLuther)
+ if (( Game_Flag_Query(kFlagLutherLanceAreDead)
+ || !Actor_Query_Is_In_Current_Set(kActorLuther)
)
- || Actor_Clue_Query(kActorMcCoy, kClueDNALutherLance)
- || Game_Flag_Query(568)
+ && !Actor_Clue_Query(kActorMcCoy, kClueDNALutherLance)
+ && !Game_Flag_Query(kFlagUG16ComputerOff)
) {
- Actor_Says(kActorMcCoy, 8525, 12);
- Actor_Says(kActorMcCoy, 8526, 12);
- return false;
+ Delay(2000);
+ Actor_Face_Heading(kActorMcCoy, 1016, false);
+ Delay(2000);
+ Actor_Says(kActorMcCoy, 5725, 14);
+ Delay(1000);
+ Item_Pickup_Spin_Effect(941, 418, 305);
+ Actor_Clue_Acquire(kActorMcCoy, kClueDNALutherLance, true, -1);
+ return true;
}
- Delay(2000);
- Actor_Face_Heading(kActorMcCoy, 1016, false);
- Delay(2000);
- Actor_Says(kActorMcCoy, 5725, 14);
- Delay(1000);
- Item_Pickup_Spin_Effect(941, 418, 305);
- Actor_Clue_Acquire(kActorMcCoy, kClueDNALutherLance, true, -1);
- return true;
+ Actor_Says(kActorMcCoy, 8525, 12);
+ Actor_Says(kActorMcCoy, 8526, 12);
}
}
return false;
}
bool SceneScriptUG16::ClickedOnActor(int actorId) {
- if (Actor_Query_Goal_Number(kActorLuther) < 490) {
+ if (Actor_Query_Goal_Number(kActorLuther) < 490) { // Luther & Lance are alive
dialogueWithLuther();
return true;
}
@@ -194,17 +193,17 @@ void SceneScriptUG16::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptUG16::PlayerWalkedIn() {
- Game_Flag_Set(715);
+ Game_Flag_Set(kFlagDR06UnlockedToUG16);
- if (!Game_Flag_Query(595)) {
- Actor_Set_Goal_Number(kActorLuther, 403);
+ if (!Game_Flag_Query(kFlagLutherLanceAreDead)) {
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherStop);
}
- if (!Game_Flag_Query(556)
+ if (!Game_Flag_Query(kFlagUG16LutherLanceTalk1)
&& Actor_Query_Is_In_Current_Set(kActorLuther)
) {
Player_Loses_Control();
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 120.29f, -35.67f, 214.8f, 310, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 120.29f, -35.67f, 214.8f, 310, false, false, 0);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLuther, 0, 6);
Actor_Says(kActorLuther, 30, 13);
@@ -219,13 +218,13 @@ void SceneScriptUG16::PlayerWalkedIn() {
Actor_Says(kActorLance, 30, 16);
Actor_Says(kActorLuther, 70, 6);
Player_Gains_Control();
- Game_Flag_Set(556);
+ Game_Flag_Set(kFlagUG16LutherLanceTalk1);
}
}
void SceneScriptUG16::PlayerWalkedOut() {
- if (!Game_Flag_Query(595)) {
- Actor_Set_Goal_Number(kActorLuther, 401);
+ if (!Game_Flag_Query(kFlagLutherLanceAreDead)) {
+ Actor_Set_Goal_Number(kActorLuther, kGoalLutherMoveAround);
//return true;
}
//return false;
@@ -236,37 +235,37 @@ void SceneScriptUG16::DialogueQueueFlushed(int a1) {
void SceneScriptUG16::dialogueWithLuther() {
Dialogue_Menu_Clear_List();
- DM_Add_To_List_Never_Repeat_Once_Selected(1400, 5, 6, 2);
- DM_Add_To_List_Never_Repeat_Once_Selected(1410, 5, 4, 8);
- if (Game_Flag_Query(600)
- || Game_Flag_Query(601)
+ DM_Add_To_List_Never_Repeat_Once_Selected(1400, 5, 6, 2); // REPLICANTS
+ DM_Add_To_List_Never_Repeat_Once_Selected(1410, 5, 4, 8); // WORK
+ if (Game_Flag_Query(kFlagUG16LutherLanceTalkReplicants1)
+ || Game_Flag_Query(kFlagUG16LutherLanceTalkReplicants2)
) {
- DM_Add_To_List_Never_Repeat_Once_Selected(1420, 6, 4, 5);
- DM_Add_To_List_Never_Repeat_Once_Selected(1430, 6, 4, 5);
- DM_Add_To_List_Never_Repeat_Once_Selected(1440, 6, 4, 5);
+ DM_Add_To_List_Never_Repeat_Once_Selected(1420, 6, 4, 5); // LIFESPAN
+ DM_Add_To_List_Never_Repeat_Once_Selected(1430, 6, 4, 5); // CLOVIS
+ DM_Add_To_List_Never_Repeat_Once_Selected(1440, 6, 4, 5); // VOIGT-KAMPFF
}
if ( Global_Variable_Query(kVariableCorruptedGuzzaEvidence) > 1
&& !Actor_Clue_Query(kActorMcCoy, kClueFolder)
) {
- DM_Add_To_List_Never_Repeat_Once_Selected(1450, 6, 4, 5);
+ DM_Add_To_List_Never_Repeat_Once_Selected(1450, 6, 4, 5); // GUZZA
}
if (Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) {
- DM_Add_To_List_Never_Repeat_Once_Selected(1460, 6, 4, 5);
+ DM_Add_To_List_Never_Repeat_Once_Selected(1460, 6, 4, 5); // RUNCITER
}
if ( Actor_Clue_Query(kActorMcCoy, kClueDNATyrell)
&& !Actor_Clue_Query(kActorMcCoy, kClueFolder)
- && Game_Flag_Query(698)
+ && Game_Flag_Query(kFlagUG15LanceLuthorTrade)
) {
- DM_Add_To_List_Never_Repeat_Once_Selected(1470, 6, 4, 5);
+ DM_Add_To_List_Never_Repeat_Once_Selected(1470, 6, 4, 5); // TRADE
}
- Dialogue_Menu_Add_DONE_To_List(1480);
+ Dialogue_Menu_Add_DONE_To_List(1480); // DONE
Dialogue_Menu_Appear(320, 240);
int answer = Dialogue_Menu_Query_Input();
Dialogue_Menu_Disappear();
switch (answer) {
- case 1400:
+ case 1400: // REPLICANTS
Actor_Says(kActorMcCoy, 5730, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLuther, 100, 18);
@@ -281,14 +280,14 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Says(kActorLuther, 130, 6);
Actor_Says(kActorMcCoy, 5825, 13);
Actor_Modify_Friendliness_To_Other(kActorLuther, kActorMcCoy, -5);
- if (Game_Flag_Query(560)) {
+ if (Game_Flag_Query(kFlagLutherLanceIsReplicant)) {
Actor_Says(kActorLuther, 140, 13);
Actor_Says(kActorLuther, 150, 14);
Actor_Says(kActorLuther, 160, 13);
Actor_Says(kActorLance, 140, 16);
Actor_Says(kActorMcCoy, 5790, 13);
Actor_Says(kActorLuther, 170, 14);
- Game_Flag_Set(600);
+ Game_Flag_Set(kFlagUG16LutherLanceTalkReplicants1);
Actor_Modify_Friendliness_To_Other(kActorLuther, kActorMcCoy, 5);
} else {
Actor_Says(kActorLuther, 180, 14);
@@ -296,19 +295,19 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Says(kActorLance, 150, 17);
Actor_Says(kActorMcCoy, 5800, 13);
Actor_Says(kActorLuther, 190, 15);
- Game_Flag_Set(601);
+ Game_Flag_Set(kFlagUG16LutherLanceTalkReplicants2);
Actor_Modify_Friendliness_To_Other(kActorLuther, kActorMcCoy, -10);
}
break;
- case 1410:
+ case 1410: // WORK
Actor_Says(kActorMcCoy, 5735, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLance, 160, 17);
Actor_Says(kActorLuther, 200, 14);
break;
- case 1420:
+ case 1420: // LIFESPAN
Actor_Says(kActorMcCoy, 5740, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLance, 180, 15);
@@ -327,7 +326,7 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Clue_Acquire(kActorMcCoy, kClueLutherLanceInterview, true, kActorLuther);
break;
- case 1430:
+ case 1430: // CLOVIS
Actor_Says(kActorMcCoy, 5745, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLance, 240, 15);
@@ -337,7 +336,7 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Says(kActorLance, 260, 15);
break;
- case 1440:
+ case 1440: // VOIGT-KAMPFF
Actor_Says(kActorMcCoy, 5750, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLance, 280, 6);
@@ -346,7 +345,7 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Modify_Friendliness_To_Other(kActorLuther, kActorMcCoy, -5);
break;
- case 1450:
+ case 1450: // GUZZA
Actor_Says(kActorMcCoy, 5755, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLance, 290, 17);
@@ -362,10 +361,10 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Says(kActorMcCoy, 5830, 13);
Actor_Says(kActorLance, 320, 16);
Actor_Says(kActorLance, 330, 15);
- Game_Flag_Set(698);
+ Game_Flag_Set(kFlagUG15LanceLuthorTrade);
break;
- case 1460:
+ case 1460: // RUNCITER
Actor_Says(kActorMcCoy, 5760, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLuther, 370, 15);
@@ -377,7 +376,7 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Says(kActorLance, 380, 13);
break;
- case 1470:
+ case 1470: // TRADE
Actor_Says(kActorMcCoy, 5765, 13);
Actor_Face_Actor(kActorMcCoy, kActorLuther, true);
Actor_Says(kActorLance, 400, 15);
@@ -397,11 +396,11 @@ void SceneScriptUG16::dialogueWithLuther() {
Actor_Says(kActorLance, 430, 6);
Actor_Says(kActorMcCoy, 5855, 13);
Actor_Says(kActorLuther, 410, 14);
- Game_Flag_Set(597);
+ Game_Flag_Set(kFlagUG16FolderFound);
Actor_Clue_Acquire(kActorMcCoy, kClueFolder, true, kActorLuther);
break;
- case 1480:
+ case 1480: // DONE
Actor_Says(kActorMcCoy, 4595, 14);
break;
}
Commit: cee294137a95742a7be711c23bc4a3dcc7a6465e
https://github.com/scummvm/scummvm/commit/cee294137a95742a7be711c23bc4a3dcc7a6465e
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-03T00:14:09+01:00
Commit Message:
BLADERUNNER: Cleanup for scene at UG18
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/clovis.cpp
engines/bladerunner/script/ai/guzza.cpp
engines/bladerunner/script/ai/officer_grayford.cpp
engines/bladerunner/script/ai/officer_leary.cpp
engines/bladerunner/script/ai/sadik.cpp
engines/bladerunner/script/ai/transient.cpp
engines/bladerunner/script/scene/ct12.cpp
engines/bladerunner/script/scene/ma07.cpp
engines/bladerunner/script/scene/ps14.cpp
engines/bladerunner/script/scene/ug07.cpp
engines/bladerunner/script/scene/ug18.cpp
engines/bladerunner/script/scene_script.h
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index b5d21e0..f775b07 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1002,7 +1002,7 @@ enum Flags {
kFlagNR03McCoyThrownOut = 604,
kFlagNR04DiscFound = 605,
kFlagNR04EarlyQStungByScorpions = 606,
-
+ kFlagMcCoyRetiredHuman = 607,
kFlagTB07toTB02 = 608,
kFlagNR04McCoyAimedAtEarlyQ = 609,
kFlagUG08Entered = 610,
@@ -1048,6 +1048,7 @@ enum Flags {
kFlagTB07ShadeDown = 661, // is never set
kFlagUG19Available = 665,
kFlagCallWithGuzza = 670,
+ kFlagUG18GuzzaScene = 671,
kFlagMA07toPS14 = 672,
kFlagPS14toMA07 = 673,
kFlagUG15RatShot = 676,
@@ -1066,6 +1067,7 @@ enum Flags {
kFlagUG14DeadHomeless = 694,
kFlagUG15LanceLuthorTrade = 698,
kFlagBulletBobDead = 702,
+ kFlagUG18BriefcaseTaken = 703,
kFlagRC02EnteredChapter4 = 704,
kFlagRC02RunciterTalkWithGun = 705,
kFlagRC02RunciterTalk2 = 706,
@@ -1530,7 +1532,7 @@ enum GameItems {
kItemRadiationGoogles = 88,
kItemGordosLighter1 = 89,
kItemGordosLighter2 = 90,
-
+ kItemBriefcase = 91,
// 92 is never used
// 93 is never used
// 94 is never used
@@ -1829,7 +1831,17 @@ enum GoalGuzza {
kGoalGuzzaGoToHawkersCircle2 = 103,
kGoalGuzzaGoToFreeSlotB = 104,
kGoalGuzzaGoToFreeSlotG = 105,
- kGoalGuzzaSitAtNR03 = 201
+ kGoalGuzzaSitAtNR03 = 201,
+ kGoalGuzzaUG18Wait = 300,
+ kGoalGuzzaUG18Target = 301,
+ kGoalGuzzaUG18WillGetShotBySadik = 302,
+ kGoalGuzzaUG18HitByMcCoy = 303,
+ kGoalGuzzaUG18MissedByMcCoy = 304,
+ kGoalGuzzaUG18ShotByMcCoy = 305,
+ kGoalGuzzaUG18ShootMcCoy = 306,
+ kGoalGuzzaUG18FallDown = 307,
+ kGoalGuzzaUG18ShotBySadik = 390,
+ kGoalGuzzaGone = 599
};
enum GoalClovis {
@@ -1838,7 +1850,12 @@ enum GoalClovis {
kGoalClovisBB11StopSadik = 102,
kGoalClovisBB11TalkWithSadik = 103,
kGoalClovisBB11PrepareTalkToMcCoy = 104, // bug? this is not triggered when player skips dialogue too fast
- kGoalClovisBB11TalkToMcCoy = 105 // ends Chapter 2
+ kGoalClovisBB11TalkToMcCoy = 105, // ends Chapter 2
+ kGoalClovisUG18Wait = 300,
+ kGoalClovisUG18SadikWillShootGuzza = 301,
+ kGoalClovisUG18SadikIsShootingGuzza = 302,
+ kGoalClovisUG18GuzzaDied = 303,
+ kGoalClovisUG18Leave = 310
};
enum GoalLucy {
@@ -1897,7 +1914,15 @@ enum GoalSadik {
kGoalSadikBB11CatchMcCoy = 104,
kGoalSadikBB11KnockOutMcCoy = 105,
kGoalSadikBB11KickMcCoy = 106,
- kGoalSadikBB11TalkWithClovis = 107
+ kGoalSadikBB11TalkWithClovis = 107,
+ kGoalSadikUG18Wait = 300,
+ kGoalSadikUG18Move = 301,
+ kGoalSadikUG18Decide = 302,
+ // 303, 304 and 305 are never set or used
+ kGoalSadikUG18WillShootMcCoy = 306,
+ kGoalSadikUG18PrepareShootMcCoy = 307,
+ kGoalSadikUG18ShootMcCoy = 308,
+ kGoalSadikUG18Leave = 310
};
enum GoalLuther {
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index c8a57ee..653dd3e 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -305,16 +305,16 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Game_Flag_Set(kFlagChapter3Intro);
return true;
- case 300:
+ case kGoalClovisUG18Wait:
Actor_Put_In_Set(kActorClovis, kSetUG18);
Actor_Set_At_XYZ(kActorClovis, -52.26f, 0.0f, 611.02f, 900);
Actor_Change_Animation_Mode(kActorClovis, kAnimationModeIdle);
return true;
- case 301:
- case 302:
+ case kGoalClovisUG18SadikWillShootGuzza:
+ case kGoalClovisUG18SadikIsShootingGuzza:
case 303:
- case 310:
+ case kGoalClovisUG18Leave:
return true;
case 350:
diff --git a/engines/bladerunner/script/ai/guzza.cpp b/engines/bladerunner/script/ai/guzza.cpp
index f715c0b..d76ee3e 100644
--- a/engines/bladerunner/script/ai/guzza.cpp
+++ b/engines/bladerunner/script/ai/guzza.cpp
@@ -111,7 +111,7 @@ void AIScriptGuzza::ClickedByPlayer() {
Actor_Says(kActorMcCoy, 3970, 13);
Actor_Says(kActorGuzza, 780, -1);
}
- //TODO: test this, seems like a bug in game
+ //TODO: test this, looks like a bug in game
if (Random_Query(1, 4) == 1) {
AI_Movement_Track_Pause(4);
Actor_Says(kActorMcCoy, 4005, 15);
@@ -148,23 +148,23 @@ void AIScriptGuzza::OtherAgentEnteredCombatMode(int otherActorId, int combatMode
}
void AIScriptGuzza::ShotAtAndMissed() {
- if (Actor_Query_Goal_Number(kActorGuzza) == 301) {
+ if (Actor_Query_Goal_Number(kActorGuzza) == kGoalGuzzaUG18Target) {
Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit);
- Actor_Set_Goal_Number(kActorGuzza, 304);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18MissedByMcCoy);
}
// return false;
}
bool AIScriptGuzza::ShotAtAndHit() {
- if (Actor_Query_Goal_Number(kActorGuzza) == 301) {
+ if (Actor_Query_Goal_Number(kActorGuzza) == kGoalGuzzaUG18Target) {
Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit);
- Actor_Set_Goal_Number(kActorGuzza, 303);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18HitByMcCoy);
}
return false;
}
void AIScriptGuzza::Retired(int byActorId) {
- Actor_Set_Goal_Number(kActorGuzza, 599);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaGone);
// return false;
}
@@ -218,34 +218,34 @@ bool AIScriptGuzza::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorGuzza);
return true;
- case 201:
- Actor_Change_Animation_Mode(kActorGuzza, 53);
+ case kGoalGuzzaSitAtNR03:
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeSit);
_animationState = 1;
_animationFrame = 0;
Actor_Put_In_Set(kActorGuzza, kSetNR03);
Actor_Set_At_XYZ(kActorGuzza, -229.0f, -70.19f, -469.0f, 400);
return true;
- case 300:
+ case kGoalGuzzaUG18Wait:
Actor_Put_In_Set(kActorGuzza, kSetUG18);
Actor_Set_At_XYZ(kActorGuzza, 10.79f, 0.0f, -354.17f, 400);
Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeIdle);
return true;
- case 301:
+ case kGoalGuzzaUG18Target:
Actor_Set_Targetable(kActorGuzza, true);
return true;
- case 302:
- case 303:
- case 304:
+ case kGoalGuzzaUG18WillGetShotBySadik:
+ case kGoalGuzzaUG18HitByMcCoy:
+ case kGoalGuzzaUG18MissedByMcCoy:
Actor_Set_Targetable(kActorGuzza, false);
return true;
- case 305:
- case 306:
- case 307:
- case 390:
+ case kGoalGuzzaUG18ShotByMcCoy:
+ case kGoalGuzzaUG18ShootMcCoy:
+ case kGoalGuzzaUG18FallDown:
+ case kGoalGuzzaUG18ShotBySadik:
return true;
}
return false;
@@ -568,7 +568,7 @@ bool AIScriptGuzza::UpdateAnimation(int *animation, int *frame) {
*animation = 172;
_animationState = 24;
_flag = false;
- Actor_Change_Animation_Mode(kActorGuzza, 4);
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatIdle);
_state = 0;
_counter = 0;
_frameDelta = 1;
@@ -877,12 +877,12 @@ bool AIScriptGuzza::ChangeAnimationMode(int mode) {
}
_animationFrame = 0;
break;
-
+
case 23:
_animationState = 32;
_animationFrame = 0;
break;
-
+
case 30:
if (_animationState == 1) {
_animationState = 3;
@@ -894,6 +894,7 @@ bool AIScriptGuzza::ChangeAnimationMode(int mode) {
_flag = false;
}
break;
+
case 31:
if (_animationState == 1) {
_animationState = 3;
@@ -905,6 +906,7 @@ bool AIScriptGuzza::ChangeAnimationMode(int mode) {
_flag = false;
}
break;
+
case 32:
if (_animationState == 1) {
_animationState = 3;
@@ -916,6 +918,7 @@ bool AIScriptGuzza::ChangeAnimationMode(int mode) {
_flag = false;
}
break;
+
case 33:
if (_animationState == 1) {
_animationState = 3;
@@ -927,6 +930,7 @@ bool AIScriptGuzza::ChangeAnimationMode(int mode) {
_flag = false;
}
break;
+
case 34:
if (_animationState == 1) {
_animationState = 3;
@@ -938,32 +942,39 @@ bool AIScriptGuzza::ChangeAnimationMode(int mode) {
_flag = false;
}
break;
+
case kAnimationModeWalkUp:
_animationState = 9;
_animationFrame = 0;
break;
+
case kAnimationModeWalkDown:
_animationState = 10;
_animationFrame = 0;
break;
+
case 48:
_animationState = 28;
_animationFrame = 0;
break;
+
case 53:
_animationState = 1;
_animationFrame = 0;
break;
+
case 58:
_animationState = 22;
_animationFrame = 0;
_flag = false;
break;
+
case 59:
_animationState = 23;
_animationFrame = 0;
_flag = false;
break;
+
case 61:
_animationState = 33;
_animationFrame = 0;
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp
index da21d21..a4680c4 100644
--- a/engines/bladerunner/script/ai/officer_grayford.cpp
+++ b/engines/bladerunner/script/ai/officer_grayford.cpp
@@ -394,7 +394,7 @@ bool AIScriptOfficerGrayford::ShotAtAndHit() {
void AIScriptOfficerGrayford::Retired(int byActorId) {
Actor_Set_Goal_Number(kActorOfficerGrayford, 599);
- Game_Flag_Set(607);
+ Game_Flag_Set(kFlagMcCoyRetiredHuman);
}
int AIScriptOfficerGrayford::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) {
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index 718a39a..2aa3fec 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -264,7 +264,7 @@ bool AIScriptOfficerLeary::ShotAtAndHit() {
void AIScriptOfficerLeary::Retired(int byActorId) {
Actor_Set_Goal_Number(kActorOfficerLeary, 599);
- Game_Flag_Set(607);
+ Game_Flag_Set(kFlagMcCoyRetiredHuman);
}
int AIScriptOfficerLeary::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) {
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index 250e090..109f8d0 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -90,8 +90,9 @@ void AIScriptSadik::TimerExpired(int timer) {
if (timer == 0) {
AI_Countdown_Timer_Reset(kActorSadik, 0);
+ // goals 303, 304 and 305 are never set, cut out part of game?
switch (Actor_Query_Goal_Number(kActorSadik)) {
- case 302:
+ case kGoalSadikUG18Decide:
Actor_Set_Goal_Number(kActorSadik, 305);
break;
@@ -99,8 +100,8 @@ void AIScriptSadik::TimerExpired(int timer) {
Actor_Set_Goal_Number(kActorSadik, 305);
break;
- case 307:
- Actor_Set_Goal_Number(kActorSadik, 308);
+ case kGoalSadikUG18PrepareShootMcCoy:
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18ShootMcCoy);
break;
}
}
@@ -120,8 +121,8 @@ void AIScriptSadik::CompletedMovementTrack() {
Actor_Set_Goal_Number(kActorSadik, kGoalSadikBB11KickMcCoy);
break;
- case 301:
- Actor_Set_Goal_Number(kActorSadik, 302);
+ case kGoalSadikUG18Move:
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18Decide);
break;
default:
@@ -171,8 +172,7 @@ void AIScriptSadik::ShotAtAndMissed() {
}
bool AIScriptSadik::ShotAtAndHit() {
-
- if (Actor_Query_Goal_Number(kActorSadik) == 301) {
+ if (Actor_Query_Goal_Number(kActorSadik) == kGoalSadikUG18Move) {
if (Game_Flag_Query(kFlagSadikIsReplicant)) {
Actor_Set_Health(kActorSadik, 60, 60);
} else {
@@ -289,13 +289,13 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Goal_Number(kActorMcCoy, 199);
return true;
- case 300:
+ case kGoalSadikUG18Wait:
Actor_Put_In_Set(kActorSadik, kSetUG18);
Actor_Set_At_XYZ(kActorSadik, 111.89f, 0.0f, 408.42f, 0);
Actor_Change_Animation_Mode(kActorSadik, 4);
return true;
- case 301:
+ case kGoalSadikUG18Move:
Actor_Set_Targetable(kActorSadik, true);
World_Waypoint_Set(436, 89, -356.11f, 0.0f, 652.42f);
AI_Movement_Track_Flush(kActorSadik);
@@ -303,10 +303,11 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorSadik);
return true;
- case 302:
+ case kGoalSadikUG18Decide:
Actor_Set_Targetable(kActorSadik, false);
return true;
+ // goals 303, 304 and 305 are never set, cut out part of game?
case 303:
AI_Countdown_Timer_Reset(kActorSadik, 0);
AI_Countdown_Timer_Start(kActorSadik, 0, 5);
@@ -318,16 +319,16 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 305:
- case 306:
- case 310:
+ case kGoalSadikUG18WillShootMcCoy:
+ case kGoalSadikUG18Leave:
return true;
- case 307:
+ case kGoalSadikUG18PrepareShootMcCoy:
Sound_Play(12, 100, 0, 0, 50);
AI_Countdown_Timer_Start(kActorSadik, 0, 2);
return true;
- case 308:
+ case kGoalSadikUG18ShootMcCoy:
if (Player_Query_Current_Scene() == kSceneUG18) {
Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack);
diff --git a/engines/bladerunner/script/ai/transient.cpp b/engines/bladerunner/script/ai/transient.cpp
index 62d3c02..c5dc4ca 100644
--- a/engines/bladerunner/script/ai/transient.cpp
+++ b/engines/bladerunner/script/ai/transient.cpp
@@ -172,7 +172,7 @@ void AIScriptTransient::Retired(int byActorId) {
Actor_Set_Goal_Number(kActorTransient, 599);
if (Global_Variable_Query(kVariableChapter) == 4) {
- Game_Flag_Set(607);
+ Game_Flag_Set(kFlagMcCoyRetiredHuman);
}
}
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index 5bd35d8..cab008d 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -128,8 +128,8 @@ bool SceneScriptCT12::ClickedOnActor(int actorId) {
if (actorId == kActorOfficerGrayford
&& Global_Variable_Query(kVariableChapter) == 4
- && Game_Flag_Query(671)
- && Game_Flag_Query(703)
+ && Game_Flag_Query(kFlagUG18GuzzaScene)
+ && Game_Flag_Query(kFlagUG18BriefcaseTaken)
) {
Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true);
diff --git a/engines/bladerunner/script/scene/ma07.cpp b/engines/bladerunner/script/scene/ma07.cpp
index 27b4897..f943f46 100644
--- a/engines/bladerunner/script/scene/ma07.cpp
+++ b/engines/bladerunner/script/scene/ma07.cpp
@@ -76,7 +76,7 @@ bool SceneScriptMA07::ClickedOnExit(int exitId) {
if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 104.0f, -162.0f, 56.0f, 12, true, false, 0)) {
if (Global_Variable_Query(kVariableChapter) == 4
- && Game_Flag_Query(671)
+ && Game_Flag_Query(kFlagUG18GuzzaScene)
) {
Actor_Set_Goal_Number(kActorMcCoy, 400);
} else {
@@ -141,7 +141,7 @@ void SceneScriptMA07::PlayerWalkedIn() {
}
if (!Game_Flag_Query(648)
- && Game_Flag_Query(671)
+ && Game_Flag_Query(kFlagUG18GuzzaScene)
&& Global_Variable_Query(kVariableChapter) == 4
) {
Scene_Exits_Disable();
diff --git a/engines/bladerunner/script/scene/ps14.cpp b/engines/bladerunner/script/scene/ps14.cpp
index bd22dff..392776a 100644
--- a/engines/bladerunner/script/scene/ps14.cpp
+++ b/engines/bladerunner/script/scene/ps14.cpp
@@ -74,7 +74,7 @@ bool SceneScriptPS14::ClickedOnExit(int exitId) {
Loop_Actor_Travel_Stairs(kActorMcCoy, 3, true, kAnimationModeIdle);
if (Global_Variable_Query(kVariableChapter) == 4
- && Game_Flag_Query(671)
+ && Game_Flag_Query(kFlagUG18GuzzaScene)
) {
if (Actor_Clue_Query(kActorMcCoy, kClueBriefcase)) {
Game_Flag_Set(666);
diff --git a/engines/bladerunner/script/scene/ug07.cpp b/engines/bladerunner/script/scene/ug07.cpp
index 9892d16..795ab2f 100644
--- a/engines/bladerunner/script/scene/ug07.cpp
+++ b/engines/bladerunner/script/scene/ug07.cpp
@@ -116,8 +116,8 @@ bool SceneScriptUG07::ClickedOnExit(int exitId) {
}
if (exitId == 2) {
- if (!Game_Flag_Query(607)
- && Game_Flag_Query(671)
+ if (!Game_Flag_Query(kFlagMcCoyRetiredHuman)
+ && Game_Flag_Query(kFlagUG18GuzzaScene)
&& Global_Variable_Query(kVariableChapter) == 4
&& !Game_Flag_Query(598)
) {
diff --git a/engines/bladerunner/script/scene/ug18.cpp b/engines/bladerunner/script/scene/ug18.cpp
index 35b4661..292062a 100644
--- a/engines/bladerunner/script/scene/ug18.cpp
+++ b/engines/bladerunner/script/scene/ug18.cpp
@@ -60,12 +60,12 @@ void SceneScriptUG18::InitializeScene() {
Scene_Loop_Set_Default(4);
if ( Game_Flag_Query(kFlagCallWithGuzza)
- && !Game_Flag_Query(671)
+ && !Game_Flag_Query(kFlagUG18GuzzaScene)
&& Global_Variable_Query(kVariableChapter) == 4
) {
- Actor_Set_Goal_Number(kActorGuzza, 300);
- Actor_Set_Goal_Number(kActorClovis, 300);
- Actor_Set_Goal_Number(kActorSadik, 300);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18Wait);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18Wait);
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18Wait);
}
}
@@ -77,7 +77,7 @@ void SceneScriptUG18::SceneLoaded() {
Clickable_Object("MACHINE_01");
Unclickable_Object("MACHINE_01");
- if (Game_Flag_Query(671)) {
+ if (Game_Flag_Query(kFlagUG18GuzzaScene)) {
Actor_Put_In_Set(kActorGuzza, kSetFreeSlotI);
Actor_Set_At_Waypoint(kActorGuzza, 41, 0);
if (Actor_Query_Which_Set_In(kActorSadik) == kSetUG18) {
@@ -85,11 +85,12 @@ void SceneScriptUG18::SceneLoaded() {
Actor_Set_At_Waypoint(kActorSadik, 33, 0);
}
}
+
if ( Game_Flag_Query(kFlagCallWithGuzza)
- && !Game_Flag_Query(671)
+ && !Game_Flag_Query(kFlagUG18GuzzaScene)
&& Global_Variable_Query(kVariableChapter) == 4
) {
- Item_Add_To_World(91, 987, 89, -55.21f, 0.0f, -302.17f, 0, 12, 12, false, true, false, true);
+ Item_Add_To_World(kItemBriefcase, 987, kSetUG18, -55.21f, 0.0f, -302.17f, 0, 12, 12, false, true, false, true);
}
}
@@ -106,13 +107,13 @@ bool SceneScriptUG18::ClickedOnActor(int actorId) {
}
bool SceneScriptUG18::ClickedOnItem(int itemId, bool combatMode) {
- if (itemId == 91) {
+ if (itemId == kItemBriefcase) {
if (combatMode) {
- Item_Remove_From_World(91);
- } else if (!Loop_Actor_Walk_To_Item(kActorMcCoy, 91, 12, true, false)) {
+ Item_Remove_From_World(kItemBriefcase);
+ } else if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemBriefcase, 12, true, false)) {
Item_Pickup_Spin_Effect(987, 368, 243);
Item_Remove_From_World(itemId);
- Game_Flag_Set(703);
+ Game_Flag_Set(kFlagUG18BriefcaseTaken);
Actor_Clue_Acquire(kActorMcCoy, kClueBriefcase, true, kActorGuzza);
}
}
@@ -141,8 +142,9 @@ void SceneScriptUG18::SceneFrameAdvanced(int frame) {
void SceneScriptUG18::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) {
if (actorId == kActorGuzza) {
- if (newGoal == 303) {
- Game_Flag_Set(607);
+ switch (newGoal) {
+ case kGoalGuzzaUG18HitByMcCoy:
+ Game_Flag_Set(kFlagMcCoyRetiredHuman);
ADQ_Flush();
Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 7);
Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, 10);
@@ -150,8 +152,10 @@ void SceneScriptUG18::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
Actor_Face_Actor(kActorGuzza, kActorMcCoy, true);
ADQ_Add(kActorGuzza, 1220, 58);
Scene_Exits_Enable();
- Actor_Set_Goal_Number(kActorGuzza, 305);
- } else if (newGoal == 304) {
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18ShotByMcCoy);
+ break;
+
+ case kGoalGuzzaUG18MissedByMcCoy:
ADQ_Flush();
Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 7);
Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, 10);
@@ -159,32 +163,48 @@ void SceneScriptUG18::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
Actor_Face_Actor(kActorGuzza, kActorMcCoy, true);
ADQ_Add(kActorGuzza, 1220, 58);
Scene_Exits_Enable();
- Actor_Set_Goal_Number(kActorGuzza, 306);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18ShootMcCoy);
+ break;
}
return;
}
if (actorId == kActorSadik) {
- if (newGoal == 302) {
+ switch (newGoal) {
+ case kGoalSadikUG18Decide:
if (Actor_Query_Friendliness_To_Other(kActorClovis, kActorMcCoy) > 55
- && Game_Flag_Query(607)
+ && Game_Flag_Query(kFlagMcCoyRetiredHuman)
) {
- sub_403588();
+ Actor_Says(kActorClovis, 660, 13);
+ Actor_Says(kActorMcCoy, 5995, 13);
+ Actor_Says(kActorClovis, 670, 13);
+ Actor_Says(kActorMcCoy, 6000, 13);
+ Actor_Says_With_Pause(kActorClovis, 680, 2.0f, 13);
+ Actor_Says(kActorClovis, 690, 13);
+ Actor_Says(kActorClovis, 700, 13);
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18Leave);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18Leave);
} else {
- Actor_Set_Goal_Number(kActorSadik, 307);
- Actor_Set_Goal_Number(kActorClovis, 310);
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18PrepareShootMcCoy);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18Leave);
}
- } else if (newGoal == 304) {
+ break;
+
+ // goals 303, 304 and 305 are never set, cut out part of game?
+ case 304:
Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, -3);
ADQ_Add(kActorSadik, 380, -1);
- Actor_Set_Goal_Number(kActorSadik, 306);
- } else if (newGoal == 305) {
- Actor_Change_Animation_Mode(kActorSadik, 6);
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18WillShootMcCoy);
+ break;
+
+ case 305:
+ Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack);
Sound_Play(12, 100, 0, 0, 50);
Actor_Force_Stop_Walking(kActorMcCoy);
- Actor_Change_Animation_Mode(kActorMcCoy, 48);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
Player_Loses_Control();
Actor_Retired_Here(kActorMcCoy, 6, 6, true, kActorSadik);
+ break;
}
}
}
@@ -193,13 +213,13 @@ void SceneScriptUG18::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -488.71f, 0.0f, 123.59f, 0, false, false, 0);
if ( Game_Flag_Query(kFlagCallWithGuzza)
- && !Game_Flag_Query(671)
+ && !Game_Flag_Query(kFlagUG18GuzzaScene)
&& Actor_Query_Is_In_Current_Set(kActorGuzza)
) {
Scene_Exits_Disable();
- sub_402734();
- sub_403278();
- Game_Flag_Set(671);
+ talkWithGuzza();
+ talkWithClovis();
+ Game_Flag_Set(kFlagUG18GuzzaScene);
}
}
@@ -207,32 +227,35 @@ void SceneScriptUG18::PlayerWalkedOut() {
}
void SceneScriptUG18::DialogueQueueFlushed(int a1) {
- int v0 = Actor_Query_Goal_Number(kActorGuzza);
- if (v0 == 301) {
- Actor_Set_Goal_Number(kActorGuzza, 302);
- Actor_Change_Animation_Mode(kActorSadik, 6);
+ switch (Actor_Query_Goal_Number(kActorGuzza)) {
+ case kGoalGuzzaUG18Target:
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18WillGetShotBySadik);
+ Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack);
Sound_Play(14, 100, 0, 0, 50);
- Actor_Change_Animation_Mode(kActorGuzza, 22);
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit);
ADQ_Add(kActorClovis, 630, 13);
- Actor_Set_Goal_Number(kActorClovis, 301);
- } else if (v0 == 305) {
- Actor_Change_Animation_Mode(kActorMcCoy, 6);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18SadikWillShootGuzza);
+ break;
+
+ case kGoalGuzzaUG18ShotByMcCoy:
+ // Bug in the game, shot animation is not reset so McCoy looks still while he is shooting
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack);
Sound_Play(13, 100, 0, 0, 50);
- Actor_Change_Animation_Mode(kActorGuzza, 22);
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit);
Delay(900);
- Actor_Change_Animation_Mode(kActorMcCoy, 6);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack);
Sound_Play(14, 100, 0, 0, 50);
- Actor_Change_Animation_Mode(kActorGuzza, 22);
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit);
Delay(1100);
- Actor_Change_Animation_Mode(kActorMcCoy, 6);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack);
Sound_Play(12, 100, 0, 0, 50);
- Actor_Change_Animation_Mode(kActorGuzza, 22);
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit);
Delay(900);
- Actor_Change_Animation_Mode(kActorMcCoy, 6);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack);
Sound_Play(14, 100, 0, 0, 50);
Actor_Change_Animation_Mode(kActorGuzza, 61);
- Overlay_Play("UG18over", 1, 0, 1, 0);
- Actor_Set_Goal_Number(kActorGuzza, 307);
+ Overlay_Play("UG18over", 1, false, true, 0);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18FallDown);
Player_Gains_Control();
ADQ_Add_Pause(2000);
ADQ_Add(kActorSadik, 360, -1);
@@ -240,48 +263,57 @@ void SceneScriptUG18::DialogueQueueFlushed(int a1) {
ADQ_Add(kActorClovis, 650, 14);
ADQ_Add(kActorSadik, 370, 14);
ADQ_Add(kActorClovis, 1320, 14);
- Actor_Set_Goal_Number(kActorClovis, 303);
- } else if (v0 == 306) {
- Actor_Change_Animation_Mode(kActorGuzza, 6);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18GuzzaDied);
+ break;
+
+ case kGoalGuzzaUG18ShootMcCoy:
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatAttack);
Sound_Play(13, 100, 0, 0, 50);
Actor_Force_Stop_Walking(kActorMcCoy);
- Actor_Change_Animation_Mode(kActorMcCoy, 48);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
Player_Loses_Control();
- Actor_Retired_Here(kActorMcCoy, 6, 6, 1, kActorGuzza);
- Actor_Set_Goal_Number(kActorGuzza, 307);
+ Actor_Retired_Here(kActorMcCoy, 6, 6, true, kActorGuzza);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18FallDown);
+ break;
}
- int v1 = Actor_Query_Goal_Number(kActorClovis);
- if (v1 == 301) {
- Actor_Change_Animation_Mode(kActorSadik, 6);
+ switch (Actor_Query_Goal_Number(kActorClovis)) {
+ case kGoalClovisUG18SadikWillShootGuzza:
+ Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack);
Sound_Play(14, 100, 0, 0, 50);
- Actor_Change_Animation_Mode(kActorGuzza, 22);
+ Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit);
ADQ_Add(kActorClovis, 640, 13);
ADQ_Add(kActorGuzza, 1210, 13);
- Actor_Set_Goal_Number(kActorClovis, 302);
- } else if (v1 == 302) {
- Actor_Change_Animation_Mode(kActorSadik, 6);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18SadikIsShootingGuzza);
+ break;
+
+ case kGoalClovisUG18SadikIsShootingGuzza:
+ Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack);
Sound_Play(14, 100, 0, 0, 50);
Actor_Change_Animation_Mode(kActorGuzza, 61);
ADQ_Add_Pause(2000);
ADQ_Add(kActorClovis, 650, 14);
ADQ_Add(kActorSadik, 370, 14);
ADQ_Add(kActorClovis, 1320, 14);
- Actor_Set_Goal_Number(kActorGuzza, 390);
- Actor_Retired_Here(kActorGuzza, 72, 32, 1, kActorSadik);
- Actor_Set_Goal_Number(kActorClovis, 303);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18ShotBySadik);
+ Actor_Retired_Here(kActorGuzza, 72, 32, true, kActorSadik);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18GuzzaDied);
Scene_Exits_Enable();
- } else if (v1 == 303) {
- Actor_Set_Goal_Number(kActorSadik, 301);
+ break;
+
+ case kGoalClovisUG18GuzzaDied:
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18Move);
+ break;
}
- if (Actor_Query_Goal_Number(kActorSadik) == 306) {
- Actor_Change_Animation_Mode(kActorSadik, 48);
- Actor_Set_Goal_Number(kActorSadik, 307);
- Actor_Set_Goal_Number(kActorClovis, 310);
+
+ if (Actor_Query_Goal_Number(kActorSadik) == kGoalSadikUG18WillShootMcCoy) {
+ Actor_Change_Animation_Mode(kActorSadik, kAnimationModeDie);
+ Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18PrepareShootMcCoy);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18Leave);
}
}
-void SceneScriptUG18::sub_402734() {
+void SceneScriptUG18::talkWithGuzza() {
Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
Actor_Says(kActorMcCoy, 5860, 9);
Delay(500);
@@ -325,7 +357,7 @@ void SceneScriptUG18::sub_402734() {
Actor_Says(kActorGuzza, 950, 14);
Actor_Says(kActorGuzza, 960, 13);
Actor_Says(kActorGuzza, 970, 3);
- if (Game_Flag_Query(607)) {
+ if (Game_Flag_Query(kFlagMcCoyRetiredHuman)) {
Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 3);
Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, 5);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -117.13f, 0.0f, -284.47f, 0, false, false, 0);
@@ -337,66 +369,50 @@ void SceneScriptUG18::sub_402734() {
Actor_Says(kActorMcCoy, 5970, 14);
Actor_Says(kActorGuzza, 1000, 3);
Actor_Says(kActorMcCoy, 5975, 15);
- } else {
- sub_402DE8();
- }
-}
-
-void SceneScriptUG18::sub_402DE8() {
- if (Player_Query_Agenda() != kPlayerAgendaPolite) {
- if (Global_Variable_Query(kVariableAffectionTowards) > 1
- || Player_Query_Agenda() == kPlayerAgendaSurly
- ) {
- sub_403114();
- } else {
- sub_402F8C();
- }
- } else {
+ } else if (Player_Query_Agenda() == kPlayerAgendaPolite) {
Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, -1);
Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, -1);
Actor_Says(kActorMcCoy, 5935, 14);
Actor_Says(kActorMcCoy, 5940, 18);
Actor_Says(kActorGuzza, 1020, 13);
Actor_Says(kActorGuzza, 1030, 14);
+ } else if (Global_Variable_Query(kVariableAffectionTowards) > 1
+ || Player_Query_Agenda() == kPlayerAgendaSurly
+ ) {
+ Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 20);
+ Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, 10);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -117.13f, 0.0f, -284.47f, 0, false, false, 0);
+ Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
+ Actor_Says(kActorMcCoy, 5950, 16);
+ Actor_Says(kActorMcCoy, 5955, 14);
+ Actor_Says(kActorGuzza, 1110, 13);
+ Actor_Says(kActorGuzza, 1120, 15);
+ Actor_Says(kActorMcCoy, 5990, 3);
+ Actor_Says(kActorGuzza, 1130, 15);
+ Actor_Says(kActorGuzza, 1140, 16);
+ } else {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -117.13f, 0.0f, -284.47f, 0, false, false, 0);
+ Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
+ Actor_Says(kActorMcCoy, 5945, 12);
+ Actor_Says(kActorGuzza, 1040, 15);
+ Actor_Says(kActorMcCoy, 5980, 15);
+ Actor_Says(kActorGuzza, 1050, 12);
+ Actor_Says(kActorGuzza, 1060, 13);
+ Actor_Says(kActorGuzza, 1070, 14);
+ Actor_Says(kActorMcCoy, 5985, 18);
+ Actor_Says(kActorGuzza, 1080, 3);
+ Actor_Says(kActorGuzza, 1090, 14);
+ Actor_Says(kActorGuzza, 1100, 13);
}
}
-void SceneScriptUG18::sub_402F8C() {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -117.13f, 0.0f, -284.47f, 0, false, false, 0);
- Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
- Actor_Says(kActorMcCoy, 5945, 12);
- Actor_Says(kActorGuzza, 1040, 15);
- Actor_Says(kActorMcCoy, 5980, 15);
- Actor_Says(kActorGuzza, 1050, 12);
- Actor_Says(kActorGuzza, 1060, 13);
- Actor_Says(kActorGuzza, 1070, 14);
- Actor_Says(kActorMcCoy, 5985, 18);
- Actor_Says(kActorGuzza, 1080, 3);
- Actor_Says(kActorGuzza, 1090, 14);
- Actor_Says(kActorGuzza, 1100, 13);
-}
-
-void SceneScriptUG18::sub_403114() {
- Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 20);
- Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, 10);
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -117.13f, 0.0f, -284.47f, 0, false, false, 0);
- Actor_Face_Actor(kActorMcCoy, kActorGuzza, true);
- Actor_Says(kActorMcCoy, 5950, 16);
- Actor_Says(kActorMcCoy, 5955, 14);
- Actor_Says(kActorGuzza, 1110, 13);
- Actor_Says(kActorGuzza, 1120, 15);
- Actor_Says(kActorMcCoy, 5990, 3);
- Actor_Says(kActorGuzza, 1130, 15);
- Actor_Says(kActorGuzza, 1140, 16);
-}
-
-void SceneScriptUG18::sub_403278() {
+void SceneScriptUG18::talkWithClovis() {
ADQ_Flush();
Actor_Start_Speech_Sample(kActorClovis, 590);
Delay(500);
Loop_Actor_Walk_To_XYZ(kActorGuzza, 126.79f, 0.0f, -362.17f, 0, false, false, 0);
Actor_Face_Heading(kActorGuzza, 729, false);
- Actor_Set_Goal_Number(kActorGuzza, 301);
+ Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18Target);
ADQ_Add(kActorSadik, 350, 13);
ADQ_Add_Pause(1500);
ADQ_Add(kActorGuzza, 1150, 58);
@@ -412,16 +428,4 @@ void SceneScriptUG18::sub_403278() {
ADQ_Add(kActorGuzza, 1200, 59);
}
-void SceneScriptUG18::sub_403588() {
- Actor_Says(kActorClovis, 660, 13);
- Actor_Says(kActorMcCoy, 5995, 13);
- Actor_Says(kActorClovis, 670, 13);
- Actor_Says(kActorMcCoy, 6000, 13);
- Actor_Says_With_Pause(kActorClovis, 680, 2.0f, 13);
- Actor_Says(kActorClovis, 690, 13);
- Actor_Says(kActorClovis, 700, 13);
- Actor_Set_Goal_Number(kActorSadik, 310);
- Actor_Set_Goal_Number(kActorClovis, 310);
-}
-
} // End of namespace BladeRunner
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index a1899a3..ca6f416 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -504,12 +504,8 @@ DECLARE_SCRIPT(UG17)
END_SCRIPT
DECLARE_SCRIPT(UG18)
- void sub_402734();
- void sub_402DE8();
- void sub_402F8C();
- void sub_403114();
- void sub_403278();
- void sub_403588();
+ void talkWithGuzza();
+ void talkWithClovis();
END_SCRIPT
DECLARE_SCRIPT(UG19)
Commit: f2d76c2d7162d8b3e514c6cb6f865ef527e037a2
https://github.com/scummvm/scummvm/commit/f2d76c2d7162d8b3e514c6cb6f865ef527e037a2
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-03T00:14:09+01:00
Commit Message:
BLADERUNNER: Cleanup of scripts at start of chapter 5
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/clovis.cpp
engines/bladerunner/script/ai/dektora.cpp
engines/bladerunner/script/ai/gordo.cpp
engines/bladerunner/script/ai/izo.cpp
engines/bladerunner/script/ai/maggie.cpp
engines/bladerunner/script/ai/mccoy.cpp
engines/bladerunner/script/ai/officer_grayford.cpp
engines/bladerunner/script/ai/officer_leary.cpp
engines/bladerunner/script/ai/sadik.cpp
engines/bladerunner/script/ai/steele.cpp
engines/bladerunner/script/ai/zuben.cpp
engines/bladerunner/script/scene/ct12.cpp
engines/bladerunner/script/scene/hf01.cpp
engines/bladerunner/script/scene/hf06.cpp
engines/bladerunner/script/scene/kp01.cpp
engines/bladerunner/script/scene/kp02.cpp
engines/bladerunner/script/scene/kp03.cpp
engines/bladerunner/script/scene/kp05.cpp
engines/bladerunner/script/scene/kp06.cpp
engines/bladerunner/script/scene/kp07.cpp
engines/bladerunner/script/scene/ma02.cpp
engines/bladerunner/script/scene/ma04.cpp
engines/bladerunner/script/scene/ma07.cpp
engines/bladerunner/script/scene/ps14.cpp
engines/bladerunner/script/scene/ug07.cpp
engines/bladerunner/script/scene/ug12.cpp
engines/bladerunner/script/scene/ug13.cpp
engines/bladerunner/script/scene_script.h
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index f775b07..70afd44 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -811,7 +811,7 @@ enum Flags {
kFlagNotUsed370 = 370, // is never checked
// 371 is never used
// 372 is never used
-
+ kFlagKP02Available = 373,
kFlagAR02DektoraBoughtScorpions = 374,
kFlagBB11SadikPunchedMcCoy = 375,
// 376 is never used
@@ -865,6 +865,7 @@ enum Flags {
kFlagCT12ToUG09 = 433,
kFlagUG13toUG18 = 434, // is never checked
kFlagUG18toUG13 = 435,
+ kFlagUG13CallElevator = 436,
kFlagNR04toNR03 = 437,
kFlagNR03toNR04 = 438,
kFlagNR06toNR08 = 439,
@@ -873,15 +874,21 @@ enum Flags {
kFlagNR07toNR06 = 442,
kFlagGenericWalkerWaiting = 443,
kFlagIzoShot = 444,
+ // 445 is never used
+ // 446 is never used
kFlagTB03toUG17 = 447,
kFlagUG17toTB03 = 448,
kFlagUG02WeaponsChecked = 449,
kFlagTB02ElevatorToTB05 = 450,
kFlagTB05Entered = 451,
+ // 452 is never used
kFlagTB02GuardTalk1 = 453,
+ // 454 is never used
kFlagTB02GuardTalk2 = 455,
kFlagTB02SteeleTalk = 456,
kFlagTB02SteeleEnter = 457,
+ // 458 is never used
+ // 459 is never used
kFlagSteeleWalkingAround = 460,
kFlagMaggieIsHurt = 461,
kFlagPS04GuzzaLeft = 462,
@@ -906,9 +913,11 @@ enum Flags {
// 481 is never used
kFlagSteeleSmoking = 482,
kFlagTB06Introduction = 483,
+
kFlagTB06Photographer = 485,
kFlagDNARowAvailable = 486,
kFlagKIAPrivacyAddon = 487,
+ // 488 is never used
kFlagDektoraChapter2Started = 489,
kFlagEarlyQStartedChapter1 = 490,
kFlagEarlyQStartedChapter2 = 491,
@@ -920,6 +929,10 @@ enum Flags {
kFlagBB12Entered = 497,
kFlagUG02FromUG01 = 498,
kFlagUG02Interactive = 499,
+ // 500 is never used
+ // 501 is never used
+ // 502 is never used
+ // 503 is never used
kFlagAR02DektoraWillBuyScorpions = 504,
kFlagDR03ChewTalkExplosion = 505,
kFlagBB08toBB12 = 506,
@@ -928,13 +941,20 @@ enum Flags {
kFlagBB11SadikFight = 509,
kFlagNotUsed510 = 510, // is never set
kFlagDR05ExplodedEntered = 511,
+ // 512 is never used
+ // 513 is never used
+ // 514 is never used
kFlagDR05ViewExplosion = 515,
kFlagCT07ZubenAttack = 516,
+ // 517 is never used
+ // 518 is never used
kFlagTB06DogCollarTaken = 519,
kFlagTB06KitchenBoxTaken = 520,
kFlagHC03TrapDoorOpened = 521,
+
kFlagUG06Chapter4Started = 524,
kFlagCT10Entered = 525,
+ // 526 is never used
kFlagHF02toHF03 = 527,
kFlagHF03toHF02 = 528,
kFlagHF05toHF06 = 529, // is never checked
@@ -949,6 +969,8 @@ enum Flags {
kFlagCT09Entered = 538,
kFlagCT09LeonInterrupted = 539,
kFlagCT09DeskClerkTalk = 540,
+ // 541 is never used
+ kFlagClovisChapter4Started = 542,
kFlagGordoTalk1 = 543,
kFlagGordoTalk2 = 544,
kFlagNotUsed545 = 545, // is never set
@@ -960,9 +982,12 @@ enum Flags {
kFlagUG16toDR06 = 551, // is never checked
kFlagDR06toUG16 = 552,
kFlagUG13Entered = 553,
+ kFlagUG13HomelessTalk1 = 554,
+ // 555 is never used
kFlagUG16LutherLanceTalk1 = 556,
kFlagNotUsed557, // is never checked
kFlagDR01toCT11 = 558,
+
kFlagLutherLanceIsReplicant = 560,
kFlagNR02GordoLeaveLighter = 561,
kFlagHF05CrazyLegsTalk1 = 562,
@@ -994,6 +1019,7 @@ enum Flags {
kFlagLutherLanceAreDead = 595,
kFlagUG16PulledGun = 596,
kFlagUG16FolderFound = 597,
+ kFlagUG07ClovisCaughtMcCoy = 598,
kFlagKIAPrivacyAddonIntro = 599,
kFlagUG16LutherLanceTalkReplicants1 = 600,
kFlagUG16LutherLanceTalkReplicants2 = 601,
@@ -1019,8 +1045,13 @@ enum Flags {
// 621 is never used
kFlagNR08TouchedDektora = 622,
kFlagUG07Empty = 623,
+ // 624 is never used
kFlagTB07TyrellMeeting = 625,
+ // 626 is never used
kFlagNR01McCoyIsDrugged = 627,
+ // 628 is never used
+ kFlagUnpaseGenWalkers = 629,
+
kFlagRatWalkingAround = 631,
kFlagNR01DektoraFall = 632,
kFlagNR11DektoraBurning = 633,
@@ -1034,30 +1065,45 @@ enum Flags {
kFlagNR10toNR11 = 641, // is never checked
kFlagNR10McCoyBlinded = 642,
kFlagSteeleKnowsBulletBobIsDead = 643,
+ kFlagNotUsed644 = 644, // is never checked
kFlagCT11DogWrapperTaken = 645,
kFlagSteeleDead = 646, // is never checked
kFlagMA04McCoySleeping = 647,
+
kFlagMA04PhoneMessageFromClovis = 649,
kFlagMA04PhoneMessageFromLucy = 650,
kFlagNR08McCoyWatchingShow = 651,
kFlagCrazylegsArrestedTalk = 652,
+ kFlagMcCoyIsNotHelpingReplicants = 653,
+
kFlagMA02RajifTalk = 655,
kFlagUG02RagiationGooglesTaken = 656,
+
kFlagNR11BreakWindow = 659,
kFlagDNARowAvailableTalk = 660,
kFlagTB07ShadeDown = 661, // is never set
+
kFlagUG19Available = 665,
+ kFlagMcCoyFreedOfAccusations = 666,
+ // 667 is never used
+ // 668 is never used
+ // 669 is never used
kFlagCallWithGuzza = 670,
kFlagUG18GuzzaScene = 671,
kFlagMA07toPS14 = 672,
kFlagPS14toMA07 = 673,
+
+ // 675 is never used
kFlagUG15RatShot = 676,
kFlagUG15BridgeWillBreak = 677,
kFlagChapter2Intro = 678,
kFlagChapter3Intro = 679,
kFlagChapter4Intro = 680,
+ // 681 is never used
kFlagUG15BridgeBroken = 682,
+
kFlagNotUsed686 = 686,
+ // 687 is never used
kFlagPS05TV0 = 688,
kFlagPS05TV1 = 689,
kFlagPS05TV2 = 690,
@@ -1065,7 +1111,12 @@ enum Flags {
kFlagPS05TV4 = 692,
kFlagUG03DeadHomeless = 693,
kFlagUG14DeadHomeless = 694,
+ // 695 is never used
+
kFlagUG15LanceLuthorTrade = 698,
+
+ // 700 is never used
+
kFlagBulletBobDead = 702,
kFlagUG18BriefcaseTaken = 703,
kFlagRC02EnteredChapter4 = 704,
@@ -1078,17 +1129,21 @@ enum Flags {
kFlagMA04WatchedTV = 711,
kFlagMcCoyShotAtZuben = 712,
kFlagDR04McCoyShotMoraji = 713,
+
kFlagDR06UnlockedToUG16 = 715,
+
kFlagRC04BobTalk3 = 717,
kflagPS01toPS02 = 718,
kFlagCT02McCoyFell = 719,
kFlagCT02McCoyCombatReady = 720,
+ kFlagNotUsed721 = 721,
kFlagChapter4Starting = 722,
kFlagZubenBountyPaid = 723,
kFlagUG15BridgeBreaks = 724,
kFlagCT11DogWrapperAvailable = 725,
kFlagAR02Entered = 726,
kFlagPS04WeaponsOrderForm = 727,
+ // 728 is never used
kFlagNR08DektoraShow = 729
};
@@ -1669,9 +1724,13 @@ enum GoalMcCoy {
kGoalMcCoyNR04PassOut = 221,
kGoalMcCoyNR11Shoot = 230,
kGoalMcCoyNR10Fall = 231,
+ kGoalMcCoyUG07Caught = 301,
+ kGoalMcCoyUG07BrokenFinger = 302,
+ kGoalMcCoyUG07Released = 303,
kGoalMcCoyCallWithGuzza = 350,
kGoalMcCoyUG15Fall = 390,
kGoalMcCoyUG15Die = 391,
+ kGoalMcCoyStartChapter5 = 400,
kGoalMcCoyArrested = 500,
kGoalMcCoyGone = 599
};
@@ -1855,7 +1914,10 @@ enum GoalClovis {
kGoalClovisUG18SadikWillShootGuzza = 301,
kGoalClovisUG18SadikIsShootingGuzza = 302,
kGoalClovisUG18GuzzaDied = 303,
- kGoalClovisUG18Leave = 310
+ kGoalClovisUG18Leave = 310,
+ kGoalClovisStartChapter4 = 400,
+ kGoalClovisUG07ChaseMcCoy = 401,
+ kGoalClovisUG07KillMcCoy = 402
};
enum GoalLucy {
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 653dd3e..a2d8cf3 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -63,10 +63,10 @@ bool AIScriptClovis::Update() {
}
if ( Global_Variable_Query(kVariableChapter) == 4
- && !Game_Flag_Query(542)
+ && !Game_Flag_Query(kFlagClovisChapter4Started)
) {
- Game_Flag_Set(542);
- Actor_Set_Goal_Number(kActorClovis, 400);
+ Game_Flag_Set(kFlagClovisChapter4Started);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisStartChapter4);
return true;
}
@@ -82,7 +82,7 @@ bool AIScriptClovis::Update() {
Actor_Set_Goal_Number(kActorClovis, 512);
}
- if ( Game_Flag_Query(653)
+ if ( Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& !Game_Flag_Query(696)
&& Game_Flag_Query(697)
) {
@@ -108,13 +108,13 @@ void AIScriptClovis::CompletedMovementTrack() {
Actor_Set_Goal_Number(kActorClovis, kGoalClovisBB11TalkWithSadik);
break;
- case 401:
+ case kGoalClovisUG07ChaseMcCoy:
AI_Movement_Track_Flush(kActorClovis);
- if (Player_Query_Current_Scene() == 92) {
- Actor_Set_Goal_Number(kActorClovis, 402);
+ if (Player_Query_Current_Scene() == kSceneUG07) {
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG07KillMcCoy);
} else {
- Actor_Set_Goal_Number(kActorClovis, 400);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisStartChapter4);
}
break;
@@ -149,7 +149,7 @@ void AIScriptClovis::OtherAgentExitedThisScene(int otherActorId) {
}
void AIScriptClovis::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
- if (Game_Flag_Query(653) && Actor_Query_In_Set(kActorMcCoy, kSetKP07)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && Actor_Query_In_Set(kActorMcCoy, kSetKP07)) {
Game_Flag_Set(697);
Game_Flag_Set(714);
// return true;
@@ -182,7 +182,7 @@ bool AIScriptClovis::ShotAtAndHit() {
}
void AIScriptClovis::Retired(int byActorId) {
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
if (Actor_Query_In_Set(kActorClovis, kSetKP07)) {
Global_Variable_Decrement(kVariableReplicants, 1);
Actor_Set_Goal_Number(kActorClovis, 599);
@@ -195,7 +195,7 @@ void AIScriptClovis::Retired(int byActorId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(579);
- Game_Flag_Reset(653);
+ Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
}
}
@@ -313,7 +313,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case kGoalClovisUG18SadikWillShootGuzza:
case kGoalClovisUG18SadikIsShootingGuzza:
- case 303:
+ case kGoalClovisUG18GuzzaDied:
case kGoalClovisUG18Leave:
return true;
@@ -322,33 +322,33 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_At_Waypoint(kActorClovis, 33, 0);
return true;
- case 400:
+ case kGoalClovisStartChapter4:
AI_Movement_Track_Flush(kActorClovis);
Actor_Put_In_Set(kActorClovis, kSetFreeSlotA);
Actor_Set_At_Waypoint(kActorClovis, 33, 0);
return true;
- case 401:
+ case kGoalClovisUG07ChaseMcCoy:
AI_Movement_Track_Flush(kActorClovis);
AI_Movement_Track_Append(kActorClovis, 341, 0);
AI_Movement_Track_Append(kActorClovis, 342, 0);
AI_Movement_Track_Repeat(kActorClovis);
return true;
- case 402:
+ case kGoalClovisUG07KillMcCoy:
Player_Loses_Control();
Actor_Force_Stop_Walking(kActorMcCoy);
- Actor_Face_Actor(kActorMcCoy, kActorClovis, 1);
- Loop_Actor_Walk_To_Actor(kActorClovis, kActorMcCoy, 48, 0, 1);
- Actor_Face_Actor(kActorClovis, kActorMcCoy, 1);
- Actor_Change_Animation_Mode(kActorClovis, 6);
+ Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
+ Loop_Actor_Walk_To_Actor(kActorClovis, kActorMcCoy, 48, false, true);
+ Actor_Face_Actor(kActorClovis, kActorMcCoy, true);
+ Actor_Change_Animation_Mode(kActorClovis, kAnimationModeCombatAttack);
if (Player_Query_Combat_Mode()) {
- Actor_Change_Animation_Mode(kActorMcCoy, 49);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatDie);
} else {
- Actor_Change_Animation_Mode(kActorMcCoy, 48);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
}
Delay(3000);
- Actor_Retired_Here(kActorMcCoy, 12, 48, 1, kActorClovis);
+ Actor_Retired_Here(kActorMcCoy, 12, 48, true, kActorClovis);
return true;
case 500:
@@ -356,7 +356,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 510:
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Actor_Set_Goal_Number(kActorClovis, 513);
} else {
Actor_Set_Goal_Number(kActorClovis, 511);
@@ -383,7 +383,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case 513:
Actor_Put_In_Set(kActorClovis, kSetKP07);
Actor_Set_Targetable(kActorClovis, true);
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Global_Variable_Set(kVariableReplicants, 0);
Global_Variable_Increment(kVariableReplicants, 1);
Actor_Set_At_XYZ(kActorClovis, 45.0f, -41.52f, -85.0f, 750);
diff --git a/engines/bladerunner/script/ai/dektora.cpp b/engines/bladerunner/script/ai/dektora.cpp
index 8ec9740..3f58af3 100644
--- a/engines/bladerunner/script/ai/dektora.cpp
+++ b/engines/bladerunner/script/ai/dektora.cpp
@@ -305,7 +305,7 @@ void AIScriptDektora::Retired(int byActorId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(579);
- Game_Flag_Reset(653);
+ Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
return; //true;
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 742e818..0aab3d2 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -299,7 +299,7 @@ void AIScriptGordo::Retired(int byActorId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(579);
- Game_Flag_Reset(653);
+ Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
return;// true;
}
diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp
index f7bbfce..2717db6 100644
--- a/engines/bladerunner/script/ai/izo.cpp
+++ b/engines/bladerunner/script/ai/izo.cpp
@@ -249,7 +249,7 @@ void AIScriptIzo::Retired(int byActorId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(579);
- Game_Flag_Reset(653);
+ Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
return; //true;
}
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index 7d56e12..5b045d5 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -142,7 +142,7 @@ void AIScriptMaggie::ReceivedClue(int clueId, int fromActorId) {
}
void AIScriptMaggie::ClickedByPlayer() {
- if (!Game_Flag_Query(653) && Global_Variable_Query(kVariableChapter) == 5) {
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && Global_Variable_Query(kVariableChapter) == 5) {
if (Actor_Query_Goal_Number(kActorMaggie) == 413) {
Actor_Set_Targetable(kActorMaggie, true);
AI_Movement_Track_Flush(kActorMaggie);
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp
index d5fb581..866ee65 100644
--- a/engines/bladerunner/script/ai/mccoy.cpp
+++ b/engines/bladerunner/script/ai/mccoy.cpp
@@ -413,17 +413,17 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
_fallSpeed = -6.0f;
return true;
- case 301:
+ case kGoalMcCoyUG07Caught:
_animationState = 62;
_animationFrame = 0;
return true;
- case 302:
+ case kGoalMcCoyUG07BrokenFinger:
_animationState = 64;
_animationFrame = 0;
return true;
- case 303:
+ case kGoalMcCoyUG07Released:
_animationState = 65;
_animationFrame = 0;
return true;
@@ -482,7 +482,7 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case 400:
Actor_Set_Health(kActorMcCoy, 50, 50);
- Game_Flag_Set(373);
+ Game_Flag_Set(kFlagKP02Available);
affectionTowards = Global_Variable_Query(kVariableAffectionTowards);
if (affectionTowards == kAffectionTowardsSteele) {
Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, 3);
@@ -493,32 +493,38 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, -5);
Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 5);
}
- if (Game_Flag_Query(666)) {
+
+ if (Game_Flag_Query(kFlagMcCoyFreedOfAccusations)) {
Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, 3);
}
+
if (Actor_Query_Friendliness_To_Other(kActorSteele, kActorMcCoy) < Actor_Query_Friendliness_To_Other(kActorClovis, kActorMcCoy)) {
- Game_Flag_Set(653);
+ Game_Flag_Set(kFlagMcCoyIsNotHelpingReplicants);
}
+
affectionTowards = Global_Variable_Query(kVariableAffectionTowards);
if (affectionTowards == kAffectionTowardsSteele) {
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Global_Variable_Set(kVariableAffectionTowards, kAffectionTowardsNone);
}
} else if (affectionTowards == kAffectionTowardsDektora
|| affectionTowards == kAffectionTowardsLucy
) {
- if (!Game_Flag_Query(653)) {
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Global_Variable_Set(kVariableAffectionTowards, kAffectionTowardsNone);
}
}
- if (!Game_Flag_Query(653)) {
+
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Game_Flag_Set(kFlagMaggieIsHurt);
}
+
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Global_Variable_Set(kVariableChapter, 5);
Outtake_Play(kOuttakeMovieD, false, -1);
- if (Game_Flag_Query(666)) {
+
+ if (Game_Flag_Query(kFlagMcCoyFreedOfAccusations)) {
Chapter_Enter(5, kSetMA07, kSceneMA07);
} else {
Game_Flag_Set(kFlagMA06ToMA02);
@@ -1804,7 +1810,7 @@ void AIScriptMcCoy::UG15fall() {
&& -210.0f < x
&& -70.0f > x
) {
- Game_Flag_Set(kFlagUG15BridgeBroken);
+ Game_Flag_Set(kFlagUG15BridgeBroken);
Scene_Loop_Set_Default(3); // kUG15LoopMainLoopBridgeBroken
Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true); // kUG15LoopBridgeBreaks
Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG15Fall);
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp
index a4680c4..1e7484c 100644
--- a/engines/bladerunner/script/ai/officer_grayford.cpp
+++ b/engines/bladerunner/script/ai/officer_grayford.cpp
@@ -46,36 +46,69 @@ void AIScriptOfficerGrayford::Initialize() {
}
bool AIScriptOfficerGrayford::Update() {
- if (Global_Variable_Query(kVariableChapter) == 4 && Actor_Query_Goal_Number(kActorOfficerGrayford) < 300) {
+ if (Global_Variable_Query(kVariableChapter) == 4
+ && Actor_Query_Goal_Number(kActorOfficerGrayford) < 300) {
AI_Movement_Track_Flush(kActorOfficerGrayford);
Actor_Set_Goal_Number(kActorOfficerGrayford, 300);
- } else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorOfficerGrayford) < 400) {
+ return false;
+ }
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_Goal_Number(kActorOfficerGrayford) < 400
+ ) {
AI_Movement_Track_Flush(kActorOfficerGrayford);
Actor_Set_Goal_Number(kActorOfficerGrayford, 400);
- } else if (!Game_Flag_Query(kFlagMcCoyInDNARow)
- && Actor_Query_Goal_Number(kActorOfficerGrayford) > 102
- && Actor_Query_Goal_Number(kActorOfficerGrayford) < 110) {
+ return false;
+ }
+
+ if (!Game_Flag_Query(kFlagMcCoyInDNARow)
+ && Actor_Query_Goal_Number(kActorOfficerGrayford) > 102
+ && Actor_Query_Goal_Number(kActorOfficerGrayford) < 110
+ ) {
Actor_Set_Goal_Number(kActorOfficerGrayford, 110);
- } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 0) {
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 0) {
Actor_Set_Goal_Number(kActorOfficerGrayford, 1);
- } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 10) {
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 10) {
AI_Movement_Track_Flush(kActorOfficerGrayford);
Actor_Set_Goal_Number(kActorOfficerGrayford, 0);
- } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 102) {
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 102) {
Actor_Set_Goal_Number(kActorOfficerGrayford, 103);
- } else if (Game_Flag_Query(629)) {
+ return false;
+ }
+
+ if (Game_Flag_Query(kFlagUnpaseGenWalkers)) {
AI_Movement_Track_Unpause(kActorGenwalkerA);
AI_Movement_Track_Unpause(kActorGenwalkerB);
AI_Movement_Track_Unpause(kActorGenwalkerC);
- } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 310
- && Actor_Query_Which_Set_In(kActorOfficerGrayford) != Player_Query_Current_Set()) {
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 310
+ && Actor_Query_Which_Set_In(kActorOfficerGrayford) != Player_Query_Current_Set()
+ ) {
Non_Player_Actor_Combat_Mode_Off(kActorOfficerGrayford);
Actor_Set_Goal_Number(kActorOfficerGrayford, 305);
- } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 599
- && Actor_Query_Which_Set_In(kActorOfficerGrayford) != Player_Query_Current_Set()) {
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 599
+ && Actor_Query_Which_Set_In(kActorOfficerGrayford) != Player_Query_Current_Set()
+ ) {
Actor_Set_Health(kActorOfficerGrayford, 50, 50);
Actor_Set_Goal_Number(kActorOfficerGrayford, 305);
- } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 305) {
+ return false;
+ }
+
+ if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 305) {
switch (Actor_Query_Which_Set_In(kActorOfficerGrayford)) {
case kSetRC03:
if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) {
@@ -164,6 +197,7 @@ bool AIScriptOfficerGrayford::Update() {
break;
}
+ return false;
}
return false;
}
@@ -534,7 +568,9 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb
AI_Movement_Track_Flush(kActorOfficerGrayford);
AI_Countdown_Timer_Reset(kActorOfficerGrayford, 2);
- if (_animationState == 35 || _animationState == 34) {
+ if (_animationState == 35
+ || _animationState == 34
+ ) {
_animationState = 37;
_animationFrame = 0;
}
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index 2aa3fec..ad94d2e 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -86,8 +86,8 @@ bool AIScriptOfficerLeary::Update() {
return false;
}
- if (Game_Flag_Query(629)) {
- Game_Flag_Reset(629);
+ if (Game_Flag_Query(kFlagUnpaseGenWalkers)) {
+ Game_Flag_Reset(kFlagUnpaseGenWalkers);
return false;
}
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index 109f8d0..4747d79 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -214,7 +214,7 @@ void AIScriptSadik::Retired(int byActorId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(579);
- Game_Flag_Reset(653);
+ Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
return; //true;
}
@@ -347,7 +347,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 410:
- if (Game_Flag_Query(653) == 1) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) == 1) {
Actor_Set_Goal_Number(kActorSadik, 414);
} else {
Actor_Set_Goal_Number(kActorSadik, 411);
@@ -430,7 +430,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 418:
- Game_Flag_Reset(653);
+ Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Actor_Set_Goal_Number(kActorClovis, 518);
Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false);
return true;
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index b07a039..2d6ce66 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -165,7 +165,7 @@ bool AIScriptSteele::Update() {
break;
case 5:
- if (Game_Flag_Query(653)
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& Actor_Query_Goal_Number(kActorSteele) < 400
) {
Actor_Set_Goal_Number(kActorSteele, 400);
@@ -1363,7 +1363,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_At_XYZ(kActorSteele, -48.83f, -36.55f, 69.98f, 280);
Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 36, false, true);
Actor_Face_Actor(kActorMcCoy, kActorSteele, true);
- if (Game_Flag_Query(653) == 1) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) == 1) {
Actor_Says(kActorSteele, 400, 3);
Actor_Says(kActorMcCoy, 2165, 14);
Actor_Says(kActorSteele, 410, 3);
diff --git a/engines/bladerunner/script/ai/zuben.cpp b/engines/bladerunner/script/ai/zuben.cpp
index 1cc2a54..5e7ca2d 100644
--- a/engines/bladerunner/script/ai/zuben.cpp
+++ b/engines/bladerunner/script/ai/zuben.cpp
@@ -161,7 +161,7 @@ void AIScriptZuben::CompletedMovementTrack() {
AI_Countdown_Timer_Reset(kActorZuben, 0);
Game_Flag_Reset(kFlagCT02McCoyFell);
Game_Flag_Set(kFlagCT02McCoyCombatReady);
- Game_Flag_Set(721); // not used anywhere
+ Game_Flag_Set(kFlagNotUsed721);
Music_Stop(2);
Actor_Set_Goal_Number(kActorZuben, kGoalZubenFled);
Set_Enter(kSetCT02, kSceneCT02);
@@ -298,7 +298,7 @@ void AIScriptZuben::Retired(int byActorId) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(579);
- Game_Flag_Reset(653);
+ Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
// return true;
return;
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index cab008d..e7171b9 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -126,6 +126,7 @@ bool SceneScriptCT12::ClickedOnActor(int actorId) {
Actor_Says(kActorMcCoy, 8910, 16);
}
+ // cut off feature? grayford never visit CT12 as goal 308 is never triggered
if (actorId == kActorOfficerGrayford
&& Global_Variable_Query(kVariableChapter) == 4
&& Game_Flag_Query(kFlagUG18GuzzaScene)
@@ -147,9 +148,9 @@ bool SceneScriptCT12::ClickedOnActor(int actorId) {
Actor_Says(kActorOfficerGrayford, 90, kAnimationModeTalk);
Actor_Says(kActorOfficerGrayford, 100, kAnimationModeTalk);
Actor_Says(kActorOfficerGrayford, 110, kAnimationModeTalk);
- Game_Flag_Set(629);
- Game_Flag_Set(666);
- Actor_Set_Goal_Number(kActorMcCoy, 400);
+ Game_Flag_Set(kFlagUnpaseGenWalkers);
+ Game_Flag_Set(kFlagMcCoyFreedOfAccusations);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyStartChapter5);
}
return false;
}
@@ -201,7 +202,7 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
if (exitId == 4) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -292.0f, -6.5f, 990.0f, 0, true, false, 0)) {
if (Global_Variable_Query(kVariableChapter) == 4) {
- Game_Flag_Set(629);
+ Game_Flag_Set(kFlagUnpaseGenWalkers);
}
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp
index c0e5530..d01d6d8 100644
--- a/engines/bladerunner/script/scene/hf01.cpp
+++ b/engines/bladerunner/script/scene/hf01.cpp
@@ -158,7 +158,7 @@ bool SceneScriptHF01::ClickedOnActor(int actorId) {
)
&& !Game_Flag_Query(kFlagCrazylegsArrested)
&& Actor_Query_Goal_Number(kActorCrazylegs) != 2
- && Game_Flag_Query(653)
+ && Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& !Game_Flag_Query(662)
) {
Game_Flag_Set(662);
diff --git a/engines/bladerunner/script/scene/hf06.cpp b/engines/bladerunner/script/scene/hf06.cpp
index 83d96a5..19c1048 100644
--- a/engines/bladerunner/script/scene/hf06.cpp
+++ b/engines/bladerunner/script/scene/hf06.cpp
@@ -294,7 +294,7 @@ void SceneScriptHF06::sub_401EF4() {
Actor_Says(kActorSteele, 340, 58);
Actor_Says(kActorSteele, 350, 58);
Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle);
- Game_Flag_Set(644);
+ Game_Flag_Set(kFlagNotUsed644);
Actor_Set_Goal_Number(kActorSteele, 402);
Actor_Face_Actor(kActorSteele, actorId, true);
Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatAttack);
diff --git a/engines/bladerunner/script/scene/kp01.cpp b/engines/bladerunner/script/scene/kp01.cpp
index 273fa58..e0f2dbd 100644
--- a/engines/bladerunner/script/scene/kp01.cpp
+++ b/engines/bladerunner/script/scene/kp01.cpp
@@ -32,7 +32,7 @@ void SceneScriptKP01::InitializeScene() {
} else {
Setup_Scene_Information(239.0f, -12.2f, -146.0f, 820);
Game_Flag_Reset(413);
- if (!Game_Flag_Query(674) && !Game_Flag_Query(653)) {
+ if (!Game_Flag_Query(674) && !Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Game_Flag_Set(674);
Actor_Set_Goal_Number(kActorSteele, 420);
}
@@ -152,7 +152,7 @@ void SceneScriptKP01::PlayerWalkedIn() {
Game_Flag_Reset(418);
} else {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 211.0f, -12.2f, -146.0f, 0, 0, false, 0);
- if (!Game_Flag_Query(653)
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& !Game_Flag_Query(714)
&& Actor_Query_Goal_Number(kActorSteele) == 420
&& Actor_Query_Goal_Number(kActorSteele) != 599) {
diff --git a/engines/bladerunner/script/scene/kp02.cpp b/engines/bladerunner/script/scene/kp02.cpp
index 3db4056..a19f0e8 100644
--- a/engines/bladerunner/script/scene/kp02.cpp
+++ b/engines/bladerunner/script/scene/kp02.cpp
@@ -132,7 +132,7 @@ void SceneScriptKP02::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -884.0f, -615.49f, 3035.0f, 0, 0, false, 0);
Game_Flag_Reset(414);
}
- if (Game_Flag_Query(653)
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& Actor_Query_Goal_Number(kActorSteele) != 599
) {
Actor_Set_Goal_Number(kActorSteele, 450);
diff --git a/engines/bladerunner/script/scene/kp03.cpp b/engines/bladerunner/script/scene/kp03.cpp
index ca4e665..fca41a0 100644
--- a/engines/bladerunner/script/scene/kp03.cpp
+++ b/engines/bladerunner/script/scene/kp03.cpp
@@ -52,10 +52,10 @@ void SceneScriptKP03::InitializeScene() {
&& !Game_Flag_Query(422)
&& !Game_Flag_Query(484)
)
- && ((Game_Flag_Query(653)
+ && ((Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& Game_Flag_Query(420)
)
- || (!Game_Flag_Query(653)
+ || (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& Game_Flag_Query(417)
)
)
@@ -183,7 +183,7 @@ void SceneScriptKP03::SceneFrameAdvanced(int frame) {
}
if (!Game_Flag_Query(422)) { //todo ? same condition as before
Actor_Query_XYZ(kActorSteele, &x, &y, &z);
- if (Game_Flag_Query(653) && Actor_Query_Which_Set_In(kActorSteele) == 46) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && Actor_Query_Which_Set_In(kActorSteele) == 46) {
if ((Game_Flag_Query(417) && -130.0f > x) || (Game_Flag_Query(420) && -130.0f < x)) {
v1 = 1;
}
@@ -224,7 +224,7 @@ void SceneScriptKP03::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1.0f, -36.55f, 87.0f, 0, 0, false, 0);
}
if (Actor_Query_Is_In_Current_Set(kActorSteele) && Actor_Query_Goal_Number(kActorSteele) != 419) {
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
if (Game_Flag_Query(420)) {
Actor_Set_Goal_Number(kActorSteele, 410);
}
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index c46b739..d272606 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -53,7 +53,7 @@ void SceneScriptKP05::SceneLoaded() {
Unobstacle_Object("OBSTACLEBOX20", true);
Clickable_Object("BRIDGE02");
Unclickable_Object("BRIDGE02");
- if (!Actor_Clue_Query(kActorMcCoy, kCluePowerSource) && Game_Flag_Query(653)) {
+ if (!Actor_Clue_Query(kActorMcCoy, kCluePowerSource) && Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Item_Add_To_World(118, 960, 9, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
}
}
diff --git a/engines/bladerunner/script/scene/kp06.cpp b/engines/bladerunner/script/scene/kp06.cpp
index ad0bb99..e1a1e56 100644
--- a/engines/bladerunner/script/scene/kp06.cpp
+++ b/engines/bladerunner/script/scene/kp06.cpp
@@ -108,7 +108,7 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
if (exitId == 1) {
if (Actor_Clue_Query(kActorSadik, kCluePowerSource) || Actor_Query_Goal_Number(kActorSadik) != 416) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 1, false, 0)) {
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
if (!Game_Flag_Query(714)) {
Player_Set_Combat_Mode(false);
}
@@ -151,7 +151,7 @@ void SceneScriptKP06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptKP06::PlayerWalkedIn() {
- if (!Game_Flag_Query(653) && Game_Flag_Query(579)) {
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && Game_Flag_Query(579)) {
Game_Flag_Reset(579);
if (Actor_Query_Goal_Number(kActorSteele) == 499) {
Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
diff --git a/engines/bladerunner/script/scene/kp07.cpp b/engines/bladerunner/script/scene/kp07.cpp
index d6d1a88..a4ed0ce 100644
--- a/engines/bladerunner/script/scene/kp07.cpp
+++ b/engines/bladerunner/script/scene/kp07.cpp
@@ -28,7 +28,7 @@ void SceneScriptKP07::InitializeScene() {
Setup_Scene_Information(-12.0f, -41.58f, 72.0f, 0);
Game_Flag_Reset(578);
Scene_Exit_Add_2D_Exit(0, 315, 185, 381, 285, 0);
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
if (Game_Flag_Query(kFlagDektoraIsReplicant)
&& Actor_Query_Goal_Number(kActorDektora) < kGoalDektoraGone
) {
@@ -88,12 +88,12 @@ void SceneScriptKP07::InitializeScene() {
}
void SceneScriptKP07::SceneLoaded() {
- if (!Game_Flag_Query(653)) {
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Music_Play(19, 25, 0, 0, -1, 1, 0);
}
Obstacle_Object("BUNK_TRAY01", true);
Unobstacle_Object("BUNK_TRAY01", true);
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Player_Set_Combat_Mode(false);
Scene_Exits_Disable();
}
@@ -112,7 +112,7 @@ bool SceneScriptKP07::ClickedOnActor(int actorId) {
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(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Actor_Set_Goal_Number(kActorClovis, 516);
} else {
Music_Play(20, 31, 0, 0, -1, 1, 0);
@@ -155,7 +155,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(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
Actor_Says(kActorClovis, 1240, 3);
Actor_Says(kActorMcCoy, 8500, 3);
diff --git a/engines/bladerunner/script/scene/ma02.cpp b/engines/bladerunner/script/scene/ma02.cpp
index 74eaedb..29a14a9 100644
--- a/engines/bladerunner/script/scene/ma02.cpp
+++ b/engines/bladerunner/script/scene/ma02.cpp
@@ -44,7 +44,7 @@ void SceneScriptMA02::InitializeScene() {
if (Global_Variable_Query(kVariableChapter) >= 4
&& Global_Variable_Query(kVariableChapter) == 5
- && Game_Flag_Query(653)
+ && Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
) {
Actor_Set_Goal_Number(kActorMaggie, 599);
Actor_Change_Animation_Mode(kActorMaggie, 88);
@@ -68,7 +68,7 @@ void SceneScriptMA02::InitializeScene() {
}
if ( Global_Variable_Query(kVariableChapter) == 5
- && Game_Flag_Query(653)
+ && Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& !Actor_Clue_Query(kActorMcCoy, kClueCrystalsCigarette)
) {
Overlay_Play("MA02OVER", 0, 1, 0, 0);
@@ -98,7 +98,7 @@ bool SceneScriptMA02::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Face_Object(kActorMcCoy, "BAR-MAIN", true);
if (Global_Variable_Query(kVariableChapter) < 4) {
Actor_Set_Goal_Number(kActorMaggie, 3);
- } else if (Global_Variable_Query(kVariableChapter) == 5 && Game_Flag_Query(653) && !Actor_Clue_Query(kActorMcCoy, kClueCrystalsCigarette)) {
+ } else if (Global_Variable_Query(kVariableChapter) == 5 && Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && !Actor_Clue_Query(kActorMcCoy, kClueCrystalsCigarette)) {
Overlay_Remove("MA02OVER");
Item_Pickup_Spin_Effect(985, 480, 240);
Actor_Voice_Over(1150, kActorVoiceOver);
@@ -188,7 +188,7 @@ void SceneScriptMA02::PlayerWalkedIn() {
if ( Global_Variable_Query(kVariableChapter) == 5
&& !Game_Flag_Query(654)
) {
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
Actor_Says(kActorMcCoy, 2390, kAnimationModeIdle);
Music_Play(2, 25, 0, 3, -1, 0, 0);
} else {
diff --git a/engines/bladerunner/script/scene/ma04.cpp b/engines/bladerunner/script/scene/ma04.cpp
index c3c26f6..d750d88 100644
--- a/engines/bladerunner/script/scene/ma04.cpp
+++ b/engines/bladerunner/script/scene/ma04.cpp
@@ -175,7 +175,7 @@ bool SceneScriptMA04::ClickedOn2DRegion(int region) {
Sound_Play(123, 100, 0, 0, 50);
Overlay_Remove("MA04OVER");
Delay(500);
- if (Game_Flag_Query(653)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsDektora) {
phoneCallWithDektora();
} else if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy) {
diff --git a/engines/bladerunner/script/scene/ma07.cpp b/engines/bladerunner/script/scene/ma07.cpp
index f943f46..2b5c0f4 100644
--- a/engines/bladerunner/script/scene/ma07.cpp
+++ b/engines/bladerunner/script/scene/ma07.cpp
@@ -78,7 +78,7 @@ bool SceneScriptMA07::ClickedOnExit(int exitId) {
if (Global_Variable_Query(kVariableChapter) == 4
&& Game_Flag_Query(kFlagUG18GuzzaScene)
) {
- Actor_Set_Goal_Number(kActorMcCoy, 400);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyStartChapter5);
} else {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -148,14 +148,14 @@ void SceneScriptMA07::PlayerWalkedIn() {
Actor_Set_Goal_Number(kActorGaff, 300);
}
- if (Game_Flag_Query(666)) {
+ if (Game_Flag_Query(kFlagMcCoyFreedOfAccusations)) {
Actor_Voice_Over(1360, kActorVoiceOver);
Actor_Voice_Over(1370, kActorVoiceOver);
Actor_Voice_Over(1380, kActorVoiceOver);
Actor_Voice_Over(1390, kActorVoiceOver);
Actor_Voice_Over(1400, kActorVoiceOver);
Delay(1000);
- Game_Flag_Reset(666);
+ Game_Flag_Reset(kFlagMcCoyFreedOfAccusations);
Game_Flag_Set(kFlagMA06ToMA02);
Set_Enter(kSetMA02_MA04, kSceneMA02);
}
diff --git a/engines/bladerunner/script/scene/ps14.cpp b/engines/bladerunner/script/scene/ps14.cpp
index 392776a..4bbfa3a 100644
--- a/engines/bladerunner/script/scene/ps14.cpp
+++ b/engines/bladerunner/script/scene/ps14.cpp
@@ -77,8 +77,8 @@ bool SceneScriptPS14::ClickedOnExit(int exitId) {
&& Game_Flag_Query(kFlagUG18GuzzaScene)
) {
if (Actor_Clue_Query(kActorMcCoy, kClueBriefcase)) {
- Game_Flag_Set(666);
- Actor_Set_Goal_Number(kActorMcCoy, 400);
+ Game_Flag_Set(kFlagMcCoyFreedOfAccusations);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyStartChapter5);
} else {
Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyArrested);
}
diff --git a/engines/bladerunner/script/scene/ug07.cpp b/engines/bladerunner/script/scene/ug07.cpp
index 795ab2f..7683437 100644
--- a/engines/bladerunner/script/scene/ug07.cpp
+++ b/engines/bladerunner/script/scene/ug07.cpp
@@ -119,33 +119,33 @@ bool SceneScriptUG07::ClickedOnExit(int exitId) {
if (!Game_Flag_Query(kFlagMcCoyRetiredHuman)
&& Game_Flag_Query(kFlagUG18GuzzaScene)
&& Global_Variable_Query(kVariableChapter) == 4
- && !Game_Flag_Query(598)
+ && !Game_Flag_Query(kFlagUG07ClovisCaughtMcCoy)
) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 49.0f, -12.21f, -130.0f, 0, true, false, 0)) {
- Game_Flag_Set(598);
+ Game_Flag_Set(kFlagUG07ClovisCaughtMcCoy);
Actor_Put_In_Set(kActorClovis, kSetUG07);
Actor_Set_At_XYZ(kActorClovis, 118.02f, -12.21f, -154.0f, 768);
Player_Set_Combat_Mode(true);
Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
Loop_Actor_Walk_To_XYZ(kActorClovis, 98.02f, -12.21f, -154.0f, 0, false, false, 0);
Actor_Face_Actor(kActorClovis, kActorMcCoy, true);
- Actor_Set_Goal_Number(kActorMcCoy, 301);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG07Caught);
Actor_Face_Heading(kActorMcCoy, 0, true);
Delay(1500);
Actor_Says_With_Pause(kActorClovis, 550, 1.0f, 3);
if (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredDektora)) {
Actor_Says(kActorClovis, 560, 3);
- Actor_Set_Goal_Number(kActorMcCoy, 302);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG07BrokenFinger);
Sound_Play(561, 100, 0, 0, 50);
Delay(2000);
}
if (Actor_Clue_Query(kActorClovis, kClueMcCoyRetiredLucy)) {
Actor_Says(kActorClovis, 570, 3);
- Actor_Set_Goal_Number(kActorMcCoy, 302);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG07BrokenFinger);
Sound_Play(561, 100, 0, 0, 50);
Delay(2000);
}
- Actor_Set_Goal_Number(kActorMcCoy, 303);
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG07Released);
Delay(1000);
Actor_Set_Goal_Number(kActorClovis, 401);
}
diff --git a/engines/bladerunner/script/scene/ug12.cpp b/engines/bladerunner/script/scene/ug12.cpp
index f30f56c..58d2e8e 100644
--- a/engines/bladerunner/script/scene/ug12.cpp
+++ b/engines/bladerunner/script/scene/ug12.cpp
@@ -34,7 +34,7 @@ void SceneScriptUG12::InitializeScene() {
}
Scene_Exit_Add_2D_Exit(0, 538, 222, 615, 346, 1);
- if (Game_Flag_Query(373)) {
+ if (Game_Flag_Query(kFlagKP02Available)) {
Scene_Exit_Add_2D_Exit(1, 334, 176, 426, 266, 0);
}
@@ -53,7 +53,7 @@ void SceneScriptUG12::InitializeScene() {
Ambient_Sounds_Add_Sound(304, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 50, 17, 37, -100, 100, -101, -101, 0, 0);
- if (Game_Flag_Query(373)) {
+ if (Game_Flag_Query(kFlagKP02Available)) {
Scene_Loop_Set_Default(2);
} else {
Scene_Loop_Set_Default(0);
diff --git a/engines/bladerunner/script/scene/ug13.cpp b/engines/bladerunner/script/scene/ug13.cpp
index da212b7..63eb767 100644
--- a/engines/bladerunner/script/scene/ug13.cpp
+++ b/engines/bladerunner/script/scene/ug13.cpp
@@ -102,7 +102,7 @@ bool SceneScriptUG13::ClickedOn3DObject(const char *objectName, bool a2) {
Scene_Loop_Set_Default(1);
Scene_Loop_Start_Special(kSceneLoopModeOnce, 0, false);
Game_Flag_Reset(kFlagUB08ElevatorUp);
- Game_Flag_Set(436);
+ Game_Flag_Set(kFlagUG13CallElevator);
return true;
} else {
Scene_Loop_Set_Default(4);
@@ -125,9 +125,9 @@ bool SceneScriptUG13::ClickedOnActor(int actorId) {
if (Actor_Query_Goal_Number(kActorTransient) != 6
&& Actor_Query_Goal_Number(kActorTransient) != 599
) {
- if (!Game_Flag_Query(554)) {
+ if (!Game_Flag_Query(kFlagUG13HomelessTalk1)) {
Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
- Game_Flag_Set(554);
+ Game_Flag_Set(kFlagUG13HomelessTalk1);
Actor_Says(kActorMcCoy, 5560, 13);
Actor_Says_With_Pause(kActorMcCoy, 5565, 3.0f, 18);
Actor_Says(kActorTransient, 70, 31);
@@ -204,17 +204,16 @@ bool SceneScriptUG13::ClickedOnExit(int exitId) {
Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 11, true, kAnimationModeIdle);
Footstep_Sound_Override_Off();
- if (!sub_402AD0()) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0f, 141.9f, -870.0f, 0, false, false, 0);
- Game_Flag_Set(kFlagUG13toUG18);
- Set_Enter(kSetUG18, kSceneUG18);
- return true;
- }
- Actor_Face_Heading(kActorMcCoy, 325, false);
- Loop_Actor_Travel_Stairs(kActorMcCoy, 11, true, kAnimationModeIdle);
- } else {
- return true;
+ // This is path in unreachable in the orginal game
+ // if (false) {
+ // Actor_Face_Heading(kActorMcCoy, 325, false);
+ // Loop_Actor_Travel_Stairs(kActorMcCoy, 11, true, kAnimationModeIdle);
+ // }
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0f, 141.9f, -870.0f, 0, false, false, 0);
+ Game_Flag_Set(kFlagUG13toUG18);
+ Set_Enter(kSetUG18, kSceneUG18);
}
+ return true;
}
return false;
@@ -229,12 +228,12 @@ void SceneScriptUG13::SceneFrameAdvanced(int frame) {
Ambient_Sounds_Play_Sound(372, 90, 0, 0, 100);
}
- if (Game_Flag_Query(436)
+ if (Game_Flag_Query(kFlagUG13CallElevator)
&& frame > 29
&& frame < 91
) {
Scene_Exit_Add_2D_Exit(0, 394, 205, 464, 281, 0);
- Game_Flag_Reset(436);
+ Game_Flag_Reset(kFlagUG13CallElevator);
//return true;
return;
}
@@ -307,27 +306,7 @@ void SceneScriptUG13::PlayerWalkedOut() {
void SceneScriptUG13::DialogueQueueFlushed(int a1) {
}
-void SceneScriptUG13::sub_4023D8() {
- Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
- Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManInterview1, false, kActorTransient);
- Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, -5);
- Actor_Says(kActorMcCoy, 5575, 16);
- Actor_Says(kActorTransient, 120, 31);
- Actor_Says(kActorMcCoy, 5610, 15);
- Actor_Says(kActorTransient, 140, 32);
- Actor_Says(kActorMcCoy, 5615, 18);
- Actor_Says(kActorTransient, 160, 33);
- Actor_Says(kActorMcCoy, 5620, 9);
- Actor_Says(kActorTransient, 170, 30);
- Actor_Says(kActorMcCoy, 5625, 12);
- Actor_Says(kActorTransient, 180, 32);
- Actor_Says(kActorMcCoy, 5630, 18);
- Actor_Says(kActorTransient, 190, 32);
- Actor_Says(kActorMcCoy, 5635, 15);
- Actor_Says(kActorTransient, 200, 31);
-}
-
-void SceneScriptUG13::sub_4025E0() {
+void SceneScriptUG13::talkAboutGuzza() {
Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManInterview2, false, kActorTransient);
Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, -10);
Actor_Says(kActorTransient, 220, 30);
@@ -340,10 +319,6 @@ void SceneScriptUG13::sub_4025E0() {
Actor_Says(kActorTransient, 260, 32);
}
-int SceneScriptUG13::sub_402AD0() {
- return 0;
-}
-
void SceneScriptUG13::dialogueWithHomeless1() {
Dialogue_Menu_Clear_List();
DM_Add_To_List_Never_Repeat_Once_Selected(1320, 6, 3, 1); // OTHERS
@@ -362,12 +337,28 @@ void SceneScriptUG13::dialogueWithHomeless1() {
switch (answer) {
case 1320: // OTHERS
- sub_4023D8();
+ Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
+ Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManInterview1, false, kActorTransient);
+ Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, -5);
+ Actor_Says(kActorMcCoy, 5575, 16);
+ Actor_Says(kActorTransient, 120, 31);
+ Actor_Says(kActorMcCoy, 5610, 15);
+ Actor_Says(kActorTransient, 140, 32);
+ Actor_Says(kActorMcCoy, 5615, 18);
+ Actor_Says(kActorTransient, 160, 33);
+ Actor_Says(kActorMcCoy, 5620, 9);
+ Actor_Says(kActorTransient, 170, 30);
+ Actor_Says(kActorMcCoy, 5625, 12);
+ Actor_Says(kActorTransient, 180, 32);
+ Actor_Says(kActorMcCoy, 5630, 18);
+ Actor_Says(kActorTransient, 190, 32);
+ Actor_Says(kActorMcCoy, 5635, 15);
+ Actor_Says(kActorTransient, 200, 31);
break;
case 1330: // FAT MAN
Actor_Says(kActorMcCoy, 5585, 16);
- sub_4025E0();
+ talkAboutGuzza();
break;
case 1340: // SEWERS
@@ -413,7 +404,8 @@ void SceneScriptUG13::dialogueWithHomeless2() {
int answer = Dialogue_Menu_Query_Input();
Dialogue_Menu_Disappear();
- if (answer == 1370) { // DIRECTIONS
+ switch (answer) {
+ case 1370: // DIRECTIONS
Actor_Says(kActorMcCoy, 5665, 16);
Actor_Says(kActorTransient, 300, 32);
Actor_Says(kActorMcCoy, 5680, 19);
@@ -422,7 +414,9 @@ void SceneScriptUG13::dialogueWithHomeless2() {
Actor_Start_Speech_Sample(kActorTransient, 110);
Actor_Set_Goal_Number(kActorTransient, 395);
Actor_Says(kActorMcCoy, 5685, 18);
- } else if (answer == 1380) { // FAT MAN
+ break;
+
+ case 1380: // FAT MAN
if (Actor_Clue_Query(kActorMcCoy, kClueHomelessManInterview2)) {
Actor_Says(kActorMcCoy, 5670, 9);
Actor_Says(kActorTransient, 340, 31);
@@ -435,12 +429,15 @@ void SceneScriptUG13::dialogueWithHomeless2() {
Actor_Clue_Acquire(kActorMcCoy, kClueHomelessManKid, false, kActorTransient);
} else {
Actor_Says(kActorMcCoy, 5700, 15);
- sub_4025E0();
+ talkAboutGuzza();
}
- } else if (answer == 1390) { // REPLICANTS
+ break;
+
+ case 1390: // REPLICANTS
Actor_Says(kActorMcCoy, 5675, 9);
Actor_Says(kActorTransient, 370, 32);
Actor_Says(kActorMcCoy, 5705, 10);
+ break;
}
}
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index ca6f416..1212371 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -483,9 +483,7 @@ DECLARE_SCRIPT(UG12)
END_SCRIPT
DECLARE_SCRIPT(UG13)
- void sub_4023D8();
- void sub_4025E0();
- int sub_402AD0();
+ void talkAboutGuzza();
void dialogueWithHomeless1();
void dialogueWithHomeless2();
END_SCRIPT
Commit: 95f42fde63ad09a6684ce62659273228f0b83e46
https://github.com/scummvm/scummvm/commit/95f42fde63ad09a6684ce62659273228f0b83e46
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-03T00:14:09+01:00
Commit Message:
BLADERUNNER: Initial cleanup of Kipple scripts
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/clovis.cpp
engines/bladerunner/script/ai/dektora.cpp
engines/bladerunner/script/ai/gordo.cpp
engines/bladerunner/script/ai/izo.cpp
engines/bladerunner/script/ai/maggie.cpp
engines/bladerunner/script/ai/sadik.cpp
engines/bladerunner/script/ai/steele.cpp
engines/bladerunner/script/ai/zuben.cpp
engines/bladerunner/script/scene/kp01.cpp
engines/bladerunner/script/scene/kp02.cpp
engines/bladerunner/script/scene/kp03.cpp
engines/bladerunner/script/scene/kp04.cpp
engines/bladerunner/script/scene/kp05.cpp
engines/bladerunner/script/scene/kp06.cpp
engines/bladerunner/script/scene/kp07.cpp
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 70afd44..217c594 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -851,6 +851,14 @@ enum Flags {
kFlagBB06AndroidDestroyed = 410,
kFlagKP02toUG12 = 411,
kFlagUG12toKP02 = 412, // is never checked
+ kFlagKP02toKP01 = 413, // is never checked
+ kFlagKP01toKP02 = 414,
+ kFlagKP01toKP04 = 415, // is never checked
+ kFlagKP04toKP01 = 416,
+ kFlagKP01toKP03 = 417,
+ kFlagKP03toKP01 = 418,
+ kFlagKP03toKP05 = 419,
+ kFlagKP05toKP03 = 420,
kFlagUG07toUG10 = 423,
kFlagUG10toUG07 = 424, // is never checked
@@ -1002,6 +1010,12 @@ enum Flags {
// 571 is never used
// 572 is never used
kFlagNR03Entered = 573,
+ kFlagKP04toKP05 = 574,
+ kFlagKP05toKP04 = 575,
+ kFlagKP05toKP06 = 576,
+ kFlagKP06toKP05 = 577, // has no use
+ kFlagKP06toKP07 = 578,
+ kFlagKP07toKP06 = 579,
// 580 is never used
// 581 is never used
// 583 is never used
@@ -1092,7 +1106,7 @@ enum Flags {
kFlagUG18GuzzaScene = 671,
kFlagMA07toPS14 = 672,
kFlagPS14toMA07 = 673,
-
+ kFlagKP01Entered = 674,
// 675 is never used
kFlagUG15RatShot = 676,
kFlagUG15BridgeWillBreak = 677,
@@ -1317,11 +1331,11 @@ enum Scenes {
kSceneHF05 = 38, // Hysteria Hall - Crazy Legs Larry Autos - Inside
kSceneHF06 = 39, // Hysteria Hall - Crazy Legs Larry Autos - Root
kSceneHF07 = 40, // Hysteria Hall - Crazy Legs Larry Autos - Underground
- kSceneKP01 = 41,
- kSceneKP02 = 42,
- kSceneKP03 = 43,
+ kSceneKP01 = 41, // Kipple - Rubble
+ kSceneKP02 = 42, // Kipple - Entry / Gate
+ kSceneKP03 = 43, // Kipple - Bomb
kSceneKP04 = 44,
- kSceneKP05 = 45,
+ kSceneKP05 = 45, // Kipple - Moonbus - Far
kSceneKP06 = 46,
kSceneKP07 = 47, // Kipple - Moonbus - Inside
kSceneMA01 = 48, // McCoy's Apartment - Roof
@@ -1798,6 +1812,10 @@ enum GoalSteele {
kGoalSteeleImmediatelyStartChapter4 = 285,
kGoalSteeleNR01StartChapter4 = 290,
kGoalSteeleHF01StartChapter4 = 291,
+ // chapter 5
+ kGoalSteeleKP01Wait = 420,
+ kGoalSteeleKP01TalkToMcCoy = 421,
+ kGoalSteeleKP01Leave = 422,
kGoalSteeleGone = 599
};
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index a2d8cf3..a8f0cf2 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -194,7 +194,7 @@ void AIScriptClovis::Retired(int byActorId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(579);
+ Game_Flag_Set(kFlagKP07toKP06);
Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
}
diff --git a/engines/bladerunner/script/ai/dektora.cpp b/engines/bladerunner/script/ai/dektora.cpp
index 3f58af3..8054bc8 100644
--- a/engines/bladerunner/script/ai/dektora.cpp
+++ b/engines/bladerunner/script/ai/dektora.cpp
@@ -304,7 +304,7 @@ void AIScriptDektora::Retired(int byActorId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(579);
+ Game_Flag_Set(kFlagKP07toKP06);
Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 0aab3d2..1765657 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -298,7 +298,7 @@ void AIScriptGordo::Retired(int byActorId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(579);
+ Game_Flag_Set(kFlagKP07toKP06);
Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
return;// true;
diff --git a/engines/bladerunner/script/ai/izo.cpp b/engines/bladerunner/script/ai/izo.cpp
index 2717db6..ede8b68 100644
--- a/engines/bladerunner/script/ai/izo.cpp
+++ b/engines/bladerunner/script/ai/izo.cpp
@@ -248,7 +248,7 @@ void AIScriptIzo::Retired(int byActorId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(579);
+ Game_Flag_Set(kFlagKP07toKP06);
Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
return; //true;
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index 5b045d5..a1661ea 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -68,15 +68,22 @@ void AIScriptMaggie::Initialize() {
bool AIScriptMaggie::Update() {
int goal = Actor_Query_Goal_Number(kActorMaggie);
- if (Actor_Query_Which_Set_In(kActorMaggie) == kSetMA02_MA04 && Global_Variable_Query(kVariableChapter) == 4) {
+
+ if (Actor_Query_Which_Set_In(kActorMaggie) == kSetMA02_MA04
+ && Global_Variable_Query(kVariableChapter) == 4
+ ) {
Actor_Put_In_Set(kActorMaggie, kSetFreeSlotG);
Actor_Set_At_Waypoint(kActorMaggie, 39, 0);
}
+
if (goal == 414) {
Actor_Set_Goal_Number(kActorMaggie, 415);
- } else if (goal == 413 && Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorMaggie) < 60) {
+ } else if (goal == 413
+ && Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorMaggie) < 60
+ ) {
Actor_Set_Goal_Number(kActorMaggie, 415);
}
+
if (Global_Variable_Query(kVariableChapter) == 5) {
if (Actor_Query_Goal_Number(kActorMaggie) < 400) {
Actor_Set_Goal_Number(kActorMaggie, 400);
@@ -142,7 +149,9 @@ void AIScriptMaggie::ReceivedClue(int clueId, int fromActorId) {
}
void AIScriptMaggie::ClickedByPlayer() {
- if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && Global_Variable_Query(kVariableChapter) == 5) {
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
+ && Global_Variable_Query(kVariableChapter) == 5
+ ) {
if (Actor_Query_Goal_Number(kActorMaggie) == 413) {
Actor_Set_Targetable(kActorMaggie, true);
AI_Movement_Track_Flush(kActorMaggie);
@@ -151,6 +160,7 @@ void AIScriptMaggie::ClickedByPlayer() {
}
return; // true
}
+
if (_animationState == kMaggieStateDead) {
return; // false
}
@@ -187,14 +197,17 @@ void AIScriptMaggie::ClickedByPlayer() {
AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(3, 9));
return; // true
}
+
if (goal == 10) {
Actor_Change_Animation_Mode(kActorMaggie, kAnimationModeIdle);
return; // true
}
+
if (goal == 11) {
Actor_Change_Animation_Mode(kActorMaggie, 54);
return; // true
}
+
Actor_Set_Goal_Number(kActorMaggie, 8);
return; // true
}
@@ -206,7 +219,10 @@ void AIScriptMaggie::OtherAgentEnteredThisScene(int otherActorId) {
}
void AIScriptMaggie::OtherAgentExitedThisScene(int otherActorId) {
- if (otherActorId == kActorMcCoy && Actor_Query_Which_Set_In(kActorMaggie) == kSetMA02_MA04 && Global_Variable_Query(kVariableChapter) < 4) {
+ if (otherActorId == kActorMcCoy
+ && Actor_Query_Which_Set_In(kActorMaggie) == kSetMA02_MA04
+ && Global_Variable_Query(kVariableChapter) < 4
+ ) {
AI_Movement_Track_Flush(kActorMaggie);
Actor_Set_Goal_Number(kActorMaggie, 0);
}
@@ -236,6 +252,7 @@ bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
if (currentGoalNumber == 599) {
return true;
}
+
switch (newGoalNumber) {
case 11:
Actor_Change_Animation_Mode(kActorMaggie, 55);
@@ -335,7 +352,7 @@ bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
Actor_Change_Animation_Mode(kActorMaggie, 56);
Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
- Actor_Says(kActorMcCoy, 2225, 3);
+ Actor_Says(kActorMcCoy, 2225, kAnimationModeTalk);
Actor_Set_Goal_Number(kActorMaggie, 413);
break;
case 411:
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index 4747d79..fb5e725 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -213,7 +213,7 @@ void AIScriptSadik::Retired(int byActorId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(579);
+ Game_Flag_Set(kFlagKP07toKP06);
Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
return; //true;
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index 2d6ce66..58ef115 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -309,15 +309,7 @@ void AIScriptSteele::CompletedMovementTrack() {
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleHF02LucyShotBySteele);
break;
- case 423:
- case 424:
- case 425:
- case 426:
- case 427:
- case 428:
- case 429:
- case 430:
- case 431:
+ case 422:
Actor_Set_Goal_Number(kActorSteele, 423);
break;
@@ -337,7 +329,7 @@ void AIScriptSteele::CompletedMovementTrack() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, false, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(578);
+ Game_Flag_Set(kFlagKP06toKP07);
Set_Enter(kSetKP07, kSceneKP07);
break;
@@ -1393,16 +1385,16 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Retired_Here(kActorSteele, 60, 12, true, -1);
return true;
- case 420:
+ case kGoalSteeleKP01Wait:
Actor_Put_In_Set(kActorSteele, kSetKP01);
Actor_Set_At_XYZ(kActorSteele, 20.0f, -12.2f, -97.0f, 907);
Actor_Change_Animation_Mode(kActorSteele, 43);
return true;
- case 421:
+ case kGoalSteeleKP01TalkToMcCoy:
Game_Flag_Reset(kFlagSteeleSmoking);
Delay(2000);
- Actor_Face_Actor(kActorSteele, kActorMcCoy, 1);
+ Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
Actor_Says(kActorSteele, 360, -1);
Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 48, false, false);
Actor_Says(kActorMcCoy, 2150, 14);
diff --git a/engines/bladerunner/script/ai/zuben.cpp b/engines/bladerunner/script/ai/zuben.cpp
index 5e7ca2d..3214cb6 100644
--- a/engines/bladerunner/script/ai/zuben.cpp
+++ b/engines/bladerunner/script/ai/zuben.cpp
@@ -297,7 +297,7 @@ void AIScriptZuben::Retired(int byActorId) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(579);
+ Game_Flag_Set(kFlagKP07toKP06);
Game_Flag_Reset(kFlagMcCoyIsNotHelpingReplicants);
Set_Enter(kSetKP05_KP06, kSceneKP06);
// return true;
diff --git a/engines/bladerunner/script/scene/kp01.cpp b/engines/bladerunner/script/scene/kp01.cpp
index e0f2dbd..80109af 100644
--- a/engines/bladerunner/script/scene/kp01.cpp
+++ b/engines/bladerunner/script/scene/kp01.cpp
@@ -25,32 +25,36 @@
namespace BladeRunner {
void SceneScriptKP01::InitializeScene() {
- if (Game_Flag_Query(416)) {
- Setup_Scene_Information(-125.0f, -12.2f, -61.0f, 400);
- } else if (Game_Flag_Query(418)) {
+ if (Game_Flag_Query(kFlagKP04toKP01)) {
+ Setup_Scene_Information(-125.0f, -12.2f, -61.0f, 400);
+ } else if (Game_Flag_Query(kFlagKP03toKP01)) {
Setup_Scene_Information(-284.0f, -12.2f, -789.0f, 445);
} else {
- Setup_Scene_Information(239.0f, -12.2f, -146.0f, 820);
- Game_Flag_Reset(413);
- if (!Game_Flag_Query(674) && !Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
- Game_Flag_Set(674);
- Actor_Set_Goal_Number(kActorSteele, 420);
+ Setup_Scene_Information( 239.0f, -12.2f, -146.0f, 820);
+ Game_Flag_Reset(kFlagKP02toKP01);
+ if (!Game_Flag_Query(kFlagKP01Entered)
+ && !Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
+ ) {
+ Game_Flag_Set(kFlagKP01Entered);
+ Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP01Wait);
}
}
- Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
+
+ Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
Scene_Exit_Add_2D_Exit(1, 150, 0, 200, 276, 0);
Scene_Exit_Add_2D_Exit(2, 589, 0, 639, 479, 1);
+
Ambient_Sounds_Add_Looping_Sound(464, 34, 1, 1);
Ambient_Sounds_Add_Looping_Sound(383, 27, 1, 1);
Ambient_Sounds_Add_Looping_Sound(384, 90, 1, 1);
- Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
}
void SceneScriptKP01::SceneLoaded() {
@@ -79,28 +83,30 @@ bool SceneScriptKP01::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptKP01::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -125.0f, -12.2f, -61.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -125.0f, -12.2f, -61.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(415);
+ Game_Flag_Set(kFlagKP01toKP04);
Set_Enter(kSetKP04, kSceneKP04);
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -284.0f, -12.2f, -789.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -284.0f, -12.2f, -789.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(417);
+ Game_Flag_Set(kFlagKP01toKP03);
Set_Enter(kSetKP03, kSceneKP03);
}
return true;
}
+
if (exitId == 2) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 239.0f, 12.2f, -146.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 239.0f, 12.2f, -146.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(414);
+ Game_Flag_Set(kFlagKP01toKP02);
Set_Enter(kSetKP02, kSceneKP02);
}
return true;
@@ -135,7 +141,7 @@ void SceneScriptKP01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
Actor_Force_Stop_Walking(kActorMcCoy);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(417);
+ Game_Flag_Set(kFlagKP01toKP03);
Set_Enter(kSetKP03, kSceneKP03);
//return true;
}
@@ -144,21 +150,26 @@ void SceneScriptKP01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptKP01::PlayerWalkedIn() {
- if (Game_Flag_Query(416)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -93.0f, -12.2f, -61.0f, 0, 0, false, 0);
- Game_Flag_Reset(416);
- } else if (Game_Flag_Query(418)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -240.0f, -12.2f, -789.0f, 0, 0, false, 0);
- Game_Flag_Reset(418);
- } else {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 211.0f, -12.2f, -146.0f, 0, 0, false, 0);
- if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
- && !Game_Flag_Query(714)
- && Actor_Query_Goal_Number(kActorSteele) == 420
- && Actor_Query_Goal_Number(kActorSteele) != 599) {
- Player_Loses_Control();
- Actor_Set_Goal_Number(kActorSteele, 421);
- }
+ if (Game_Flag_Query(kFlagKP04toKP01)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -93.0f, -12.2f, -61.0f, 0, false, false, 0);
+ Game_Flag_Reset(kFlagKP04toKP01);
+ return;
+ }
+
+ if (Game_Flag_Query(kFlagKP03toKP01)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -240.0f, -12.2f, -789.0f, 0, false, false, 0);
+ Game_Flag_Reset(kFlagKP03toKP01);
+ return;
+ }
+
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 211.0f, -12.2f, -146.0f, 0, false, false, 0);
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
+ && !Game_Flag_Query(714)
+ && Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP01Wait
+ && Actor_Query_Goal_Number(kActorSteele) != 599
+ ) {
+ Player_Loses_Control();
+ Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP01TalkToMcCoy);
}
}
diff --git a/engines/bladerunner/script/scene/kp02.cpp b/engines/bladerunner/script/scene/kp02.cpp
index a19f0e8..9759a9f 100644
--- a/engines/bladerunner/script/scene/kp02.cpp
+++ b/engines/bladerunner/script/scene/kp02.cpp
@@ -25,25 +25,29 @@
namespace BladeRunner {
void SceneScriptKP02::InitializeScene() {
- if (Game_Flag_Query(414)) {
- Setup_Scene_Information(-884.0f, -615.49f, 3065.0f, 20);
+ if (Game_Flag_Query(kFlagKP01toKP02)) {
+ Setup_Scene_Information( -884.0f, -615.49f, 3065.0f, 20);
} else {
Setup_Scene_Information(-1040.0f, -615.49f, 2903.0f, 339);
Game_Flag_Reset(kFlagUG12toKP02);
}
+
+ // exit 0 is missing the game, no way back
Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
+
Ambient_Sounds_Add_Looping_Sound(464, 34, 1, 1);
Ambient_Sounds_Add_Looping_Sound(383, 27, 1, 1);
Ambient_Sounds_Add_Looping_Sound(384, 90, 1, 1);
- Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+
+ Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
}
void SceneScriptKP02::SceneLoaded() {
@@ -76,7 +80,9 @@ bool SceneScriptKP02::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptKP02::ClickedOnExit(int exitId) {
if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1040.0f, -615.49f, 2903.0f, 0, 1, false, 0)) {
- if (Actor_Query_Goal_Number(kActorFreeSlotB) == 406 || Actor_Query_Goal_Number(kActorFreeSlotA) == 406) {
+ if (Actor_Query_Goal_Number(kActorFreeSlotB) == 406
+ || Actor_Query_Goal_Number(kActorFreeSlotA) == 406
+ ) {
Non_Player_Actor_Combat_Mode_Off(kActorFreeSlotB);
Non_Player_Actor_Combat_Mode_Off(kActorFreeSlotA);
Actor_Set_Goal_Number(kActorFreeSlotB, 400);
@@ -94,21 +100,24 @@ bool SceneScriptKP02::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -884.0f, -615.49f, 3065.0f, 0, 1, false, 0)) {
- if (Actor_Query_Goal_Number(kActorFreeSlotB) == 406 || Actor_Query_Goal_Number(kActorFreeSlotA) == 406) {
+ if (Actor_Query_Goal_Number(kActorFreeSlotB) == 406
+ || Actor_Query_Goal_Number(kActorFreeSlotA) == 406
+ ) {
Non_Player_Actor_Combat_Mode_Off(kActorFreeSlotB);
Non_Player_Actor_Combat_Mode_Off(kActorFreeSlotA);
Actor_Set_Goal_Number(kActorFreeSlotB, 400);
Actor_Set_Goal_Number(kActorFreeSlotA, 400);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(413);
+ Game_Flag_Set(kFlagKP02toKP01);
Set_Enter(kSetKP01, kSceneKP01);
} else {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(413);
+ Game_Flag_Set(kFlagKP02toKP01);
Set_Enter(kSetKP01, kSceneKP01);
}
}
@@ -128,10 +137,11 @@ void SceneScriptKP02::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptKP02::PlayerWalkedIn() {
- if (Game_Flag_Query(414)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -884.0f, -615.49f, 3035.0f, 0, 0, false, 0);
- Game_Flag_Reset(414);
+ if (Game_Flag_Query(kFlagKP01toKP02)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -884.0f, -615.49f, 3035.0f, 0, false, false, 0);
+ Game_Flag_Reset(kFlagKP01toKP02);
}
+
if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
&& Actor_Query_Goal_Number(kActorSteele) != 599
) {
diff --git a/engines/bladerunner/script/scene/kp03.cpp b/engines/bladerunner/script/scene/kp03.cpp
index fca41a0..1888380 100644
--- a/engines/bladerunner/script/scene/kp03.cpp
+++ b/engines/bladerunner/script/scene/kp03.cpp
@@ -25,7 +25,7 @@
namespace BladeRunner {
void SceneScriptKP03::InitializeScene() {
- if (Game_Flag_Query(420)) {
+ if (Game_Flag_Query(kFlagKP05toKP03)) {
Setup_Scene_Information( 1.0f, -36.55f, 111.0f, 200);
} else {
Setup_Scene_Information(-321.0f, -36.55f, 26.0f, 350);
@@ -53,10 +53,10 @@ void SceneScriptKP03::InitializeScene() {
&& !Game_Flag_Query(484)
)
&& ((Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
- && Game_Flag_Query(420)
+ && Game_Flag_Query(kFlagKP05toKP03)
)
|| (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
- && Game_Flag_Query(417)
+ && Game_Flag_Query(kFlagKP01toKP03)
)
)
) {
@@ -93,9 +93,9 @@ bool SceneScriptKP03::ClickedOn3DObject(const char *objectName, bool combatMode)
Scene_Exits_Enable();
sub_401E54();
} else {
- if (Game_Flag_Query(417)) {
+ if (Game_Flag_Query(kFlagKP01toKP03)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -137.0f, -36.55f, 26.0f, 0, 0, true, 0);
- } else if (Game_Flag_Query(420)) {
+ } else if (Game_Flag_Query(kFlagKP05toKP03)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, -36.55f, 78.0f, 0, 0, true, 0);
}
if (Game_Flag_Query(421)) {
@@ -135,25 +135,26 @@ bool SceneScriptKP03::ClickedOnExit(int exitId) {
Actor_Set_Goal_Number(kActorSteele, 418);
} else {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1.0f, -36.55f, 111.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1.0f, -36.55f, 111.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Music_Stop(2);
- Game_Flag_Reset(417);
- Game_Flag_Reset(420);
- Game_Flag_Set(419);
+ Game_Flag_Reset(kFlagKP01toKP03);
+ Game_Flag_Reset(kFlagKP05toKP03);
+ Game_Flag_Set(kFlagKP03toKP05);
Set_Enter(kSetKP05_KP06, kSceneKP05);
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -321.0f, -36.55f, 26.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -321.0f, -36.55f, 26.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Music_Stop(2);
- Game_Flag_Reset(417);
- Game_Flag_Reset(420);
- Game_Flag_Set(418);
+ Game_Flag_Reset(kFlagKP01toKP03);
+ Game_Flag_Reset(kFlagKP05toKP03);
+ Game_Flag_Set(kFlagKP03toKP01);
Set_Enter(kSetKP01, kSceneKP01);
}
return true;
@@ -173,21 +174,44 @@ void SceneScriptKP03::SceneFrameAdvanced(int frame) {
if (frame == 123) {
Ambient_Sounds_Play_Sound(491, 99, -60, 100, 99);
}
- if (Game_Flag_Query(421) && !Game_Flag_Query(484)) {
+
+ if ( Game_Flag_Query(421)
+ && !Game_Flag_Query(484)
+ ) {
v1 = -1;
if (!Game_Flag_Query(422)) {
Actor_Query_XYZ(kActorMcCoy, &x, &y, &z);
- if ((Game_Flag_Query(417) && -130.0f < x) || (Game_Flag_Query(420) && -130.0f > x)) {
+ if ((Game_Flag_Query(kFlagKP01toKP03)
+ && -130.0f < x
+ )
+ || (Game_Flag_Query(kFlagKP05toKP03)
+ && -130.0f > x
+ )
+ ) {
v1 = 0;
}
}
if (!Game_Flag_Query(422)) { //todo ? same condition as before
Actor_Query_XYZ(kActorSteele, &x, &y, &z);
- if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && Actor_Query_Which_Set_In(kActorSteele) == 46) {
- if ((Game_Flag_Query(417) && -130.0f > x) || (Game_Flag_Query(420) && -130.0f < x)) {
+ if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
+ && Actor_Query_Which_Set_In(kActorSteele) == 46
+ ) {
+ if ((Game_Flag_Query(kFlagKP01toKP03)
+ && -130.0f > x
+ )
+ || (Game_Flag_Query(kFlagKP05toKP03)
+ && -130.0f < x
+ )
+ ) {
v1 = 1;
}
- } else if ((Game_Flag_Query(417) && -130.0f < x) || (Game_Flag_Query(420) && -130.0f > x)) {
+ } else if ((Game_Flag_Query(kFlagKP01toKP03)
+ && -130.0f < x
+ )
+ || (Game_Flag_Query(kFlagKP05toKP03)
+ && -130.0f > x
+ )
+ ) {
v1 = 1;
}
}
@@ -220,15 +244,24 @@ void SceneScriptKP03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptKP03::PlayerWalkedIn() {
- if (Game_Flag_Query(420)) {
+ if (Game_Flag_Query(kFlagKP05toKP03)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1.0f, -36.55f, 87.0f, 0, 0, false, 0);
}
- if (Actor_Query_Is_In_Current_Set(kActorSteele) && Actor_Query_Goal_Number(kActorSteele) != 419) {
+
+ if (Actor_Query_Is_In_Current_Set(kActorSteele)
+ && Actor_Query_Goal_Number(kActorSteele) != 419
+ ) {
if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
- if (Game_Flag_Query(420)) {
+ if (Game_Flag_Query(kFlagKP05toKP03)) {
Actor_Set_Goal_Number(kActorSteele, 410);
}
- } else if (!Game_Flag_Query(422) && !Game_Flag_Query(484) && Game_Flag_Query(417)) {
+ return;
+ }
+
+ if (!Game_Flag_Query(422)
+ && !Game_Flag_Query(484)
+ && Game_Flag_Query(kFlagKP01toKP03)
+ ) {
Scene_Exits_Disable();
Delay(1000);
Actor_Set_Goal_Number(kActorSteele, 411);
@@ -267,9 +300,9 @@ void SceneScriptKP03::sub_401E54() {
Actor_Set_Goal_Number(kActorSteele, 430);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Reset(417);
- Game_Flag_Reset(420);
- Game_Flag_Set(419);
+ Game_Flag_Reset(kFlagKP01toKP03);
+ Game_Flag_Reset(kFlagKP05toKP03);
+ Game_Flag_Set(kFlagKP03toKP05);
Set_Enter(kSetKP05_KP06, kSceneKP05);
Player_Gains_Control();
}
diff --git a/engines/bladerunner/script/scene/kp04.cpp b/engines/bladerunner/script/scene/kp04.cpp
index 4c138a1..4de125d 100644
--- a/engines/bladerunner/script/scene/kp04.cpp
+++ b/engines/bladerunner/script/scene/kp04.cpp
@@ -25,25 +25,26 @@
namespace BladeRunner {
void SceneScriptKP04::InitializeScene() {
- if (Game_Flag_Query(575)) {
- Setup_Scene_Information(-544.0f, 94.89f, 288.0f, 700);
+ if (Game_Flag_Query(kFlagKP05toKP04)) {
+ Setup_Scene_Information(-544.0f, 94.89f, 288.0f, 700);
} else {
Setup_Scene_Information(-905.0f, 94.89f, 1357.0f, 970);
}
- Scene_Exit_Add_2D_Exit(0, 0, 455, 639, 479, 2);
+ Scene_Exit_Add_2D_Exit(0, 0, 455, 639, 479, 2);
Scene_Exit_Add_2D_Exit(1, 475, 247, 514, 416, 1);
+
Ambient_Sounds_Add_Looping_Sound(464, 34, 1, 1);
Ambient_Sounds_Add_Looping_Sound(383, 27, 1, 1);
Ambient_Sounds_Add_Looping_Sound(384, 90, 1, 1);
- Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
}
void SceneScriptKP04::SceneLoaded() {
@@ -70,7 +71,7 @@ bool SceneScriptKP04::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptKP04::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -905.0f, 94.89f, 1357.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -905.0f, 94.89f, 1357.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(416);
@@ -78,11 +79,12 @@ bool SceneScriptKP04::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -544.0f, 94.89f, 288.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -544.0f, 94.89f, 288.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(574);
+ Game_Flag_Set(kFlagKP04toKP05);
Set_Enter(kSetKP05_KP06, kSceneKP05);
}
return true;
@@ -101,11 +103,11 @@ void SceneScriptKP04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptKP04::PlayerWalkedIn() {
- if (Game_Flag_Query(575)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -584.0f, 94.89f, 288.0f, 0, 0, false, 0);
- Game_Flag_Reset(575);
+ if (Game_Flag_Query(kFlagKP05toKP04)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -584.0f, 94.89f, 288.0f, 0, false, false, 0);
+ Game_Flag_Reset(kFlagKP05toKP04);
} else {
- Game_Flag_Reset(415);
+ Game_Flag_Reset(kFlagKP01toKP04);
}
}
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index d272606..03f3fb2 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -25,28 +25,30 @@
namespace BladeRunner {
void SceneScriptKP05::InitializeScene() {
- if (Game_Flag_Query(577)) {
- Setup_Scene_Information(-868.0f, 0.0f, -68.0f, 520);
- } else if (Game_Flag_Query(574)) {
+ if (Game_Flag_Query(kFlagKP06toKP05)) {
+ Setup_Scene_Information( -868.0f, 0.0f, -68.0f, 520);
+ } else if (Game_Flag_Query(kFlagKP04toKP05)) {
Setup_Scene_Information(-1142.0f, 0.0f, 932.0f, 276);
} else {
- Setup_Scene_Information(-802.0f, 0.0f, 972.0f, 800);
+ Setup_Scene_Information( -802.0f, 0.0f, 972.0f, 800);
}
+
Scene_Exit_Add_2D_Exit(0, 589, 0, 639, 479, 1);
- Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
- Scene_Exit_Add_2D_Exit(2, 0, 0, 257, 204, 0);
+ Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
+ Scene_Exit_Add_2D_Exit(2, 0, 0, 257, 204, 0);
+
Ambient_Sounds_Add_Looping_Sound(464, 34, 1, 1);
Ambient_Sounds_Add_Looping_Sound(383, 27, 1, 1);
Ambient_Sounds_Add_Looping_Sound(384, 90, 1, 1);
- Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
}
void SceneScriptKP05::SceneLoaded() {
@@ -72,7 +74,7 @@ bool SceneScriptKP05::ClickedOnActor(int actorId) {
bool SceneScriptKP05::ClickedOnItem(int itemId, bool a2) {
if (itemId == 118) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1058.0f, 0.0f, 852.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1058.0f, 0.0f, 852.0f, 0, true, false, 0)) {
Actor_Face_Item(kActorMcCoy, 118, true);
Actor_Clue_Acquire(kActorMcCoy, kCluePowerSource, true, -1);
Item_Remove_From_World(118);
@@ -84,28 +86,30 @@ bool SceneScriptKP05::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptKP05::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -802.0f, 0.0f, 972.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -802.0f, 0.0f, 972.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(420);
+ Game_Flag_Set(kFlagKP05toKP03);
Set_Enter(kSetKP03, kSceneKP03);
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1142.0f, 0.0f, 932.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1142.0f, 0.0f, 932.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(575);
+ Game_Flag_Set(kFlagKP05toKP04);
Set_Enter(kSetKP04, kSceneKP04);
}
return true;
}
+
if (exitId == 2) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -868.0f, 0.0f, -68.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -868.0f, 0.0f, -68.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(576);
+ Game_Flag_Set(kFlagKP05toKP06);
Async_Actor_Walk_To_XYZ(kActorMcCoy, -868.0f, 0.0f, -216.0f, 0, false);
Set_Enter(kSetKP05_KP06, kSceneKP06);
}
@@ -125,18 +129,20 @@ void SceneScriptKP05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptKP05::PlayerWalkedIn() {
- if (Game_Flag_Query(577)) {
- Game_Flag_Reset(577);
- } else if (Game_Flag_Query(574)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1110.0f, 0.0f, 932.0f, 0, 0, false, 0);
- Game_Flag_Reset(574);
+ if (Game_Flag_Query(kFlagKP06toKP05)) {
+ Game_Flag_Reset(kFlagKP06toKP05);
+ } else if (Game_Flag_Query(kFlagKP04toKP05)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1110.0f, 0.0f, 932.0f, 0, false, false, 0);
+ Game_Flag_Reset(kFlagKP04toKP05);
} else {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -846.0f, 0.0f, 972.0f, 0, 0, false, 0);
- Game_Flag_Query(419); // bug in game?
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -846.0f, 0.0f, 972.0f, 0, false, false, 0);
+ Game_Flag_Query(kFlagKP03toKP05); // bug in game?
}
+
if (Actor_Query_Goal_Number(kActorMaggie) == 411) {
Actor_Set_Goal_Number(kActorMaggie, 412);
}
+
if (Actor_Query_Goal_Number(kActorSteele) == 450) {
Scene_Exits_Disable();
Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
diff --git a/engines/bladerunner/script/scene/kp06.cpp b/engines/bladerunner/script/scene/kp06.cpp
index e1a1e56..2a2d2b4 100644
--- a/engines/bladerunner/script/scene/kp06.cpp
+++ b/engines/bladerunner/script/scene/kp06.cpp
@@ -25,29 +25,32 @@
namespace BladeRunner {
void SceneScriptKP06::InitializeScene() {
- if (Game_Flag_Query(579) ) {
+ if (Game_Flag_Query(kFlagKP07toKP06) ) {
Setup_Scene_Information(-755.0f, 8.26f, -665.0f, 640);
} else {
- Setup_Scene_Information(-868.0f, 8.26f, -8.0f, 0);
+ Setup_Scene_Information(-868.0f, 8.26f, -8.0f, 0);
}
+
Scene_Exit_Add_2D_Exit(0, 270, 445, 639, 479, 2);
Scene_Exit_Add_2D_Exit(1, 320, 158, 352, 220, 0);
+
Ambient_Sounds_Add_Looping_Sound(464, 34, 1, 1);
Ambient_Sounds_Add_Looping_Sound(383, 27, 1, 1);
Ambient_Sounds_Add_Looping_Sound(384, 90, 1, 1);
- Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(440, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(441, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(442, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
- if (Game_Flag_Query(576) ) {
- Scene_Loop_Start_Special(0, 0, 0);
+ Ambient_Sounds_Add_Sound(443, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(444, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(445, 2, 100, 25, 33, -100, 100, -101, -101, 0, 0);
+
+ if (Game_Flag_Query(kFlagKP05toKP06) ) {
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1);
- Game_Flag_Reset(576);
+ Game_Flag_Reset(kFlagKP05toKP06);
} else {
Scene_Loop_Set_Default(1);
}
@@ -76,16 +79,16 @@ bool SceneScriptKP06::ClickedOnActor(int actorId) {
if (Actor_Clue_Query(kActorSadik, kCluePowerSource)) {
Actor_Face_Actor(kActorMcCoy, kActorSadik, true);
Actor_Says(kActorMcCoy, 8610, 15);
- Actor_Says(kActorSadik, 290, 3);
+ Actor_Says(kActorSadik, 290, kAnimationModeTalk);
} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource) ) {
- Actor_Says(kActorSadik, 280, 3);
- Actor_Says(kActorSadik, 290, 3);
+ Actor_Says(kActorSadik, 280, kAnimationModeTalk);
+ Actor_Says(kActorSadik, 290, kAnimationModeTalk);
Actor_Clue_Acquire(kActorSadik, kCluePowerSource, true, kActorMcCoy);
} else {
- Actor_Says(kActorMcCoy, 2320, 3);
- Actor_Says(kActorMcCoy, 2325, 3);
- Actor_Says(kActorSadik, 300, 3);
- Actor_Says(kActorSadik, 310, 3);
+ Actor_Says(kActorMcCoy, 2320, kAnimationModeTalk);
+ Actor_Says(kActorMcCoy, 2325, kAnimationModeTalk);
+ Actor_Says(kActorSadik, 300, kAnimationModeTalk);
+ Actor_Says(kActorSadik, 310, kAnimationModeTalk);
}
}
return false;
@@ -100,11 +103,12 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -868.0f, 8.26f, -68.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(577);
+ Game_Flag_Set(kFlagKP06toKP05);
Set_Enter(kSetKP05_KP06, kSceneKP05);
}
return true;
}
+
if (exitId == 1) {
if (Actor_Clue_Query(kActorSadik, kCluePowerSource) || Actor_Query_Goal_Number(kActorSadik) != 416) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 1, false, 0)) {
@@ -119,7 +123,7 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
}
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(578);
+ Game_Flag_Set(kFlagKP06toKP07);
Set_Enter(kSetKP07, kSceneKP07);
}
} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource) ) {
@@ -130,7 +134,7 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
Player_Set_Combat_Mode(false);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(578);
+ Game_Flag_Set(kFlagKP06toKP07);
Set_Enter(kSetKP07, kSceneKP07);
} else {
Actor_Set_Goal_Number(kActorSadik, 417);
@@ -151,8 +155,11 @@ void SceneScriptKP06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptKP06::PlayerWalkedIn() {
- if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants) && Game_Flag_Query(579)) {
- Game_Flag_Reset(579);
+ if (!Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)
+ && Game_Flag_Query(kFlagKP07toKP06)
+ ) {
+ Game_Flag_Reset(kFlagKP07toKP06);
+
if (Actor_Query_Goal_Number(kActorSteele) == 499) {
Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
Actor_Says(kActorSteele, 2530, 13);
@@ -226,7 +233,9 @@ void SceneScriptKP06::PlayerWalkedIn() {
}
void SceneScriptKP06::PlayerWalkedOut() {
- if (Game_Flag_Query(578) && Actor_Query_Goal_Number(kActorSteele) == 433) {
+ if (Game_Flag_Query(kFlagKP06toKP07)
+ && Actor_Query_Goal_Number(kActorSteele) == 433
+ ) {
Actor_Set_Goal_Number(kActorSteele, 499);
}
}
diff --git a/engines/bladerunner/script/scene/kp07.cpp b/engines/bladerunner/script/scene/kp07.cpp
index a4ed0ce..9ad6f8d 100644
--- a/engines/bladerunner/script/scene/kp07.cpp
+++ b/engines/bladerunner/script/scene/kp07.cpp
@@ -26,8 +26,11 @@ namespace BladeRunner {
void SceneScriptKP07::InitializeScene() {
Setup_Scene_Information(-12.0f, -41.58f, 72.0f, 0);
- Game_Flag_Reset(578);
+
+ Game_Flag_Reset(kFlagKP06toKP07);
+
Scene_Exit_Add_2D_Exit(0, 315, 185, 381, 285, 0);
+
if (Game_Flag_Query(kFlagMcCoyIsNotHelpingReplicants)) {
if (Game_Flag_Query(kFlagDektoraIsReplicant)
&& Actor_Query_Goal_Number(kActorDektora) < kGoalDektoraGone
@@ -77,9 +80,11 @@ void SceneScriptKP07::InitializeScene() {
Actor_Set_At_XYZ(kActorLuther, -47.0f, 0.0f, 151.0f, 531);
}
}
- Ambient_Sounds_Add_Looping_Sound(585, 7, 1, 1);
+
+ Ambient_Sounds_Add_Looping_Sound(585, 7, 1, 1);
Ambient_Sounds_Add_Looping_Sound(586, 52, 1, 1);
Ambient_Sounds_Add_Looping_Sound(109, 38, 1, 1);
+
if (Game_Flag_Query(582)) {
Scene_Loop_Set_Default(2);
} else {
@@ -131,10 +136,10 @@ bool SceneScriptKP07::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptKP07::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(579);
+ Game_Flag_Set(kFlagKP07toKP06);
Set_Enter(kSetKP05_KP06, kSceneKP06);
}
return true;
More information about the Scummvm-git-logs
mailing list