[Scummvm-git-logs] scummvm master -> 7061f7cb173871e84d26010b9742fcec8a0ece1a
peterkohaut
peterkohaut at users.noreply.github.com
Thu Feb 7 23:49:18 CET 2019
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c99d3ea132 BLADERUNNER: Cleanup of Clovis scripts for chapter 5
b3b6f6eaa3 BLADERUNNER: Cleanup of Mutants scripts
7061f7cb17 BLADERUNNER: Cleanup for drive away endings scripts
Commit: c99d3ea132f9ac451d4b69b56b66061f3e337ce5
https://github.com/scummvm/scummvm/commit/c99d3ea132f9ac451d4b69b56b66061f3e337ce5
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-07T23:45:19+01:00
Commit Message:
BLADERUNNER: Cleanup of Clovis scripts for chapter 5
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/clovis.cpp
engines/bladerunner/script/ai/maggie.cpp
engines/bladerunner/script/ai/mutant1.cpp
engines/bladerunner/script/ai/sadik.cpp
engines/bladerunner/script/ai/steele.cpp
engines/bladerunner/script/scene/kp01.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 06c6ae9..7248cca 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -960,7 +960,7 @@ enum Flags {
kFlagTB06DogCollarTaken = 519,
kFlagTB06KitchenBoxTaken = 520,
kFlagHC03TrapDoorOpened = 521,
-
+ kFlagMutantsActive = 523,
kFlagUG06Chapter4Started = 524,
kFlagCT10Entered = 525,
// 526 is never used
@@ -1019,6 +1019,7 @@ enum Flags {
kFlagKP07toKP06 = 579,
// 580 is never used
// 581 is never used
+ kFlagKP07BusActive = 582, // is never set
// 583 is never used
kFlagHF04DoorsClosed = 584,
kFlagHF04CloseDoors = 585,
@@ -1093,7 +1094,8 @@ enum Flags {
kFlagMA02Chapter5Started = 654,
kFlagMA02RajifTalk = 655,
kFlagUG02RagiationGooglesTaken = 656,
-
+ kFlagNotUsed657 = 657, // is never set
+ kFlagKP07Entered = 658,
kFlagNR11BreakWindow = 659,
kFlagDNARowAvailableTalk = 660,
kFlagTB07ShadeDown = 661, // is never set
@@ -1116,7 +1118,7 @@ enum Flags {
kFlagChapter4Intro = 680,
// 681 is never used
kFlagUG15BridgeBroken = 682,
-
+ kFlagClovisLyingDown = 685,
kFlagNotUsed686 = 686,
// 687 is never used
kFlagPS05TV0 = 688,
@@ -1127,7 +1129,8 @@ enum Flags {
kFlagUG03DeadHomeless = 693,
kFlagUG14DeadHomeless = 694,
// 695 is never used
-
+ kFlagKP07ReplicantsAttackMcCoy = 696,
+ kFlagKP07McCoyPulledGun = 697,
kFlagUG15LanceLuthorTrade = 698,
// 700 is never used
@@ -1144,7 +1147,7 @@ enum Flags {
kFlagMA04WatchedTV = 711,
kFlagMcCoyShotAtZuben = 712,
kFlagDR04McCoyShotMoraji = 713,
-
+ kFlagMcCoyAttackedReplicants = 714,
kFlagDR06UnlockedToUG16 = 715,
kFlagRC04BobTalk3 = 717,
@@ -1629,7 +1632,7 @@ enum GameItems {
kItemDogWrapper = 115,
// 116 is never used
// 117 is never used
-
+ kItemPowerSource = 118,
kItemTyrellSalesPamphlet = 119,
kItemMoonbusPhoto = 120,
kItemGreenPawnLock = 121,
@@ -1945,14 +1948,28 @@ enum GoalClovis {
kGoalClovisBB11TalkWithSadik = 103,
kGoalClovisBB11PrepareTalkToMcCoy = 104, // bug? this is not triggered when player skips dialogue too fast
kGoalClovisBB11TalkToMcCoy = 105, // ends Chapter 2
+ // chapter 4
kGoalClovisUG18Wait = 300,
kGoalClovisUG18SadikWillShootGuzza = 301,
kGoalClovisUG18SadikIsShootingGuzza = 302,
kGoalClovisUG18GuzzaDied = 303,
kGoalClovisUG18Leave = 310,
+ kGoalClovisStartChapter3 = 350,
kGoalClovisStartChapter4 = 400,
kGoalClovisUG07ChaseMcCoy = 401,
- kGoalClovisUG07KillMcCoy = 402
+ kGoalClovisUG07KillMcCoy = 402,
+ // chapter 5
+ kGoalClovisStartChapter5 = 500,
+ kGoalClovisDecide = 510,
+ kGoalClovisKP06Wait = 511, // this immediately reset to kGoalClovisKP07Wait by Sadik at start of chapter 5
+ kGoalClovisKP06TalkToMcCoy = 512, // never triggered
+ kGoalClovisKP07Wait = 513,
+ kGoalClovisKP07TalkToMcCoy = 514,
+ kGoalClovisKP07SayFinalWords = 515,
+ kGoalClovisKP07FlyAway = 516, // and game over
+ kGoalClovisKP07ReplicantsAttackMcCoy = 517,
+ kGoalClovisKP07LayDown = 518,
+ kGoalClovisGone = 599
};
enum GoalLucy {
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 1ab80ab..a991781 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -56,9 +56,9 @@ bool AIScriptClovis::Update() {
}
if (Global_Variable_Query(kVariableChapter) == 3
- && Actor_Query_Goal_Number(kActorClovis) < 350
+ && Actor_Query_Goal_Number(kActorClovis) < kGoalClovisStartChapter3
) {
- Actor_Set_Goal_Number(kActorClovis, 350);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisStartChapter3);
return true;
}
@@ -71,23 +71,23 @@ bool AIScriptClovis::Update() {
}
if (Global_Variable_Query(kVariableChapter) == 5
- && Actor_Query_Goal_Number(kActorClovis) < 500
+ && Actor_Query_Goal_Number(kActorClovis) < kGoalClovisStartChapter5
) {
- Actor_Set_Goal_Number(kActorClovis, 500);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisStartChapter5);
}
- if (Actor_Query_Goal_Number(kActorClovis) == 511
- && Game_Flag_Query(657)
+ if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP06Wait
+ && Game_Flag_Query(kFlagNotUsed657)
) {
- Actor_Set_Goal_Number(kActorClovis, 512);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP06TalkToMcCoy);
}
if ( Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
- && !Game_Flag_Query(696)
- && Game_Flag_Query(697)
+ && !Game_Flag_Query(kFlagKP07ReplicantsAttackMcCoy)
+ && Game_Flag_Query(kFlagKP07McCoyPulledGun)
) {
- Actor_Set_Goal_Number(kActorClovis, 517);
- Game_Flag_Set(696);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07ReplicantsAttackMcCoy);
+ Game_Flag_Set(kFlagKP07ReplicantsAttackMcCoy);
return true;
}
return false;
@@ -130,7 +130,7 @@ void AIScriptClovis::ReceivedClue(int clueId, int fromActorId) {
}
void AIScriptClovis::ClickedByPlayer() {
- if (Actor_Query_Goal_Number(kActorClovis) == 599) {
+ if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisGone) {
Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
Actor_Says(kActorMcCoy, 8630, 16);
}
@@ -152,8 +152,8 @@ void AIScriptClovis::OtherAgentEnteredCombatMode(int otherActorId, int combatMod
if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
&& Actor_Query_In_Set(kActorMcCoy, kSetKP07)
) {
- Game_Flag_Set(697);
- Game_Flag_Set(714);
+ Game_Flag_Set(kFlagKP07McCoyPulledGun);
+ Game_Flag_Set(kFlagMcCoyAttackedReplicants);
// return true;
}
// return false;
@@ -164,17 +164,19 @@ void AIScriptClovis::ShotAtAndMissed() {
}
bool AIScriptClovis::ShotAtAndHit() {
- if (!Game_Flag_Query(697)) {
- if (Actor_Query_Goal_Number(kActorClovis) == 515) {
+ if (!Game_Flag_Query(kFlagKP07McCoyPulledGun)) {
+ if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07SayFinalWords) {
ADQ_Flush();
- Actor_Set_Goal_Number(kActorClovis, 599);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
shotAnim();
Actor_Set_Targetable(kActorClovis, false);
ADQ_Add(kActorMcCoy, 2340, -1);
Music_Stop(3);
- } else if (Actor_Query_Goal_Number(kActorClovis) == 513 || Actor_Query_Goal_Number(kActorClovis) == 518) {
+ } else if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07Wait
+ || Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07LayDown
+ ) {
ADQ_Flush();
- Actor_Set_Goal_Number(kActorClovis, 599);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
shotAnim();
Actor_Set_Targetable(kActorClovis, false);
Music_Stop(3);
@@ -187,7 +189,7 @@ void AIScriptClovis::Retired(int byActorId) {
if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
if (Actor_Query_In_Set(kActorClovis, kSetKP07)) {
Global_Variable_Decrement(kVariableReplicants, 1);
- Actor_Set_Goal_Number(kActorClovis, 599);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
if (Global_Variable_Query(kVariableReplicants) == 0) {
Player_Loses_Control();
@@ -319,7 +321,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case kGoalClovisUG18Leave:
return true;
- case 350:
+ case kGoalClovisStartChapter3:
Actor_Put_In_Set(kActorClovis, kSetFreeSlotA);
Actor_Set_At_Waypoint(kActorClovis, 33, 0);
return true;
@@ -353,25 +355,25 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Retired_Here(kActorMcCoy, 12, 48, true, kActorClovis);
return true;
- case 500:
- Actor_Set_Goal_Number(kActorClovis, 510);
+ case kGoalClovisStartChapter5:
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisDecide);
return true;
- case 510:
+ case kGoalClovisDecide:
if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
- Actor_Set_Goal_Number(kActorClovis, 513);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait);
} else {
- Actor_Set_Goal_Number(kActorClovis, 511);
- Game_Flag_Set(685);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP06Wait);
+ Game_Flag_Set(kFlagClovisLyingDown);
}
return true;
- case 511:
+ case kGoalClovisKP06Wait:
Actor_Put_In_Set(kActorClovis, kSetKP05_KP06);
Actor_Set_At_XYZ(kActorClovis, -1072.0f, 8.26f, -708.0f, 530);
return true;
- case 512:
+ case kGoalClovisKP06TalkToMcCoy:
Actor_Says(kActorClovis, 110, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 2255, kAnimationModeTalk);
Actor_Says(kActorClovis, 120, kAnimationModeTalk);
@@ -379,10 +381,10 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Says(kActorClovis, 140, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 2260, kAnimationModeTalk);
Actor_Says(kActorClovis, 150, kAnimationModeTalk);
- Actor_Set_Goal_Number(kActorClovis, 513);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait);
return true;
- case 513:
+ case kGoalClovisKP07Wait:
Actor_Put_In_Set(kActorClovis, kSetKP07);
Actor_Set_Targetable(kActorClovis, true);
if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
@@ -396,12 +398,12 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
someAnim();
return true;
- case 514:
+ case kGoalClovisKP07TalkToMcCoy:
Actor_Says(kActorMcCoy, 2345, 16);
Actor_Says(kActorClovis, 170, -1);
Actor_Says(kActorClovis, 180, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 2350, 17);
- if (!Game_Flag_Query(714)) {
+ if (!Game_Flag_Query(kFlagMcCoyAttackedReplicants)) {
Actor_Says(kActorMcCoy, 2355, 11);
}
Actor_Says(kActorClovis, 190, -1);
@@ -409,10 +411,10 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Says(kActorMcCoy, 2360, 18);
Actor_Says(kActorClovis, 210, kAnimationModeTalk);
Actor_Says(kActorClovis, 220, -1);
- Actor_Set_Goal_Number(kActorClovis, 515);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07SayFinalWords);
return true;
- case 515:
+ case kGoalClovisKP07SayFinalWords:
ADQ_Add(kActorClovis, 240, -1);
ADQ_Add(kActorClovis, 250, -1);
ADQ_Add(kActorClovis, 260, -1);
@@ -423,7 +425,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
ADQ_Add(kActorClovis, 300, -1);
return true;
- case 516:
+ case kGoalClovisKP07FlyAway:
Actor_Says(kActorMcCoy, 8501, kAnimationModeTalk);
Actor_Says(kActorClovis, 1260, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 8502, kAnimationModeTalk);
@@ -449,31 +451,54 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Game_Over();
return true;
- case 517:
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLucy, kSetKP07)) {
+ case kGoalClovisKP07ReplicantsAttackMcCoy:
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorLucy, kSetKP07)
+ ) {
Actor_Set_Goal_Number(kActorLucy, kGoalLucyGone);
Global_Variable_Decrement(kVariableReplicants, 1);
}
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLuther, kSetKP07)) {
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorLuther, kSetKP07)
+ ) {
Actor_Set_Goal_Number(kActorLuther, kGoalLutherGone);
Global_Variable_Decrement(kVariableReplicants, 1);
}
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorDektora, kSetKP07)) {
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorDektora, kSetKP07)
+ ) {
Non_Player_Actor_Combat_Mode_On(kActorDektora, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
}
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorZuben, kSetKP07)) {
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorZuben, kSetKP07)
+ ) {
Non_Player_Actor_Combat_Mode_On(kActorZuben, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
}
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorSadik, kSetKP07)) {
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorSadik, kSetKP07)
+ ) {
Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
}
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorIzo, kSetKP07)) {
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorIzo, kSetKP07)
+ ) {
Non_Player_Actor_Combat_Mode_On(kActorIzo, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
}
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorGordo, kSetKP07)) {
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorGordo, kSetKP07)
+ ) {
Non_Player_Actor_Combat_Mode_On(kActorGordo, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
}
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorClovis, kSetKP07)) {
+
+ if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_In_Set(kActorClovis, kSetKP07)
+ ) {
Non_Player_Actor_Combat_Mode_On(kActorClovis, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
}
return true;
@@ -482,7 +507,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800);
Actor_Face_Heading(kActorClovis, 1022, false);
Actor_Set_Targetable(kActorClovis, true);
- Game_Flag_Set(685);
+ Game_Flag_Set(kFlagClovisLyingDown);
someAnim();
return true;
@@ -1073,7 +1098,9 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
case 33:
*animation = 244;
- if (!_animationFrame && _flag) {
+ if (_animationFrame == 0
+ && _flag
+ ) {
_animationState = 32;
_animationFrame = 0;
Actor_Change_Animation_Mode(kActorClovis, 54);
@@ -1183,39 +1210,40 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
bool AIScriptClovis::ChangeAnimationMode(int mode) {
switch (mode) {
case kAnimationModeIdle:
- if (!Game_Flag_Query(685)) {
- switch (_animationState) {
- case 2:
- Actor_Change_Animation_Mode(kActorClovis, kAnimationModeSit);
- break;
- case 4:
- break;
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- _flag = 1;
- break;
- case 12:
- _flag = 1;
- break;
- case 13:
- _animationState = 15;
- _animationFrame = 0;
- break;
- default:
- _animationState = 0;
- _animationFrame = 0;
- _var1 = 0;
- break;
- }
+ if (Game_Flag_Query(kFlagClovisLyingDown)) {
+ _animationState = 32;
+ _animationFrame = 0;
+ break;
+ }
+
+ switch (_animationState) {
+ case 2:
+ Actor_Change_Animation_Mode(kActorClovis, kAnimationModeSit);
+ break;
+ case 4:
+ break;
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ _flag = 1;
+ break;
+ case 12:
+ _flag = 1;
+ break;
+ case 13:
+ _animationState = 15;
+ _animationFrame = 0;
+ break;
+ default:
+ _animationState = 0;
+ _animationFrame = 0;
+ _var1 = 0;
break;
}
- _animationState = 32;
- _animationFrame = 0;
break;
case kAnimationModeWalk:
@@ -1230,7 +1258,7 @@ bool AIScriptClovis::ChangeAnimationMode(int mode) {
case kAnimationModeTalk:
case 9:
- if (Game_Flag_Query(685)) {
+ if (Game_Flag_Query(kFlagClovisLyingDown)) {
_animationFrame = 0;
_animationState = 34;
} else {
@@ -1465,7 +1493,7 @@ void AIScriptClovis::shotAnim() {
}
void AIScriptClovis::someAnim() {
- if (Game_Flag_Query(685)) {
+ if (Game_Flag_Query(kFlagClovisLyingDown)) {
_animationState = 32;
_animationFrame = 0;
return;
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index 9928835..c1ff0e2 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -373,8 +373,8 @@ bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Says(kActorMcCoy, 2390, 13);
if (Actor_Query_Goal_Number(kActorSadik) == 411) {
Actor_Set_Goal_Number(kActorSadik, 412);
- } else {
- Actor_Set_Goal_Number(kActorClovis, 512);
+ } else { // there is no way how Maggie can explode and Sadik's goal is not 411
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP06TalkToMcCoy);
}
}
break;
diff --git a/engines/bladerunner/script/ai/mutant1.cpp b/engines/bladerunner/script/ai/mutant1.cpp
index 3849cfc..1ae338f 100644
--- a/engines/bladerunner/script/ai/mutant1.cpp
+++ b/engines/bladerunner/script/ai/mutant1.cpp
@@ -56,21 +56,25 @@ bool AIScriptMutant1::Update() {
switch (Actor_Query_Goal_Number(kActorMutant1)) {
case 400:
- if (!Game_Flag_Query(523) && Game_Flag_Query(524) == 1) {
+ if (!Game_Flag_Query(kFlagMutantsActive)
+ && Game_Flag_Query(kFlagUG06Chapter4Started)
+ ) {
Actor_Set_Goal_Number(kActorMutant1, 401);
Actor_Set_Goal_Number(kActorMutant2, 401);
Actor_Set_Goal_Number(kActorMutant3, 401);
Actor_Set_Targetable(kActorMutant1, 1);
Actor_Set_Targetable(kActorMutant2, 1);
Actor_Set_Targetable(kActorMutant3, 1);
- Game_Flag_Set(523);
+ Game_Flag_Set(kFlagMutantsActive);
}
break;
case 401:
if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
- && (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
- || Actor_Query_Combat_Aggressiveness(70) >= 60)) {
+ && (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
+ || Actor_Query_Combat_Aggressiveness(kActorMutant1) >= 60
+ )
+ ) {
Actor_Set_Goal_Number(kActorMutant1, 410);
}
break;
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index 0d6e40b..7a86c1d 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -79,7 +79,7 @@ bool AIScriptSadik::Update() {
}
if (Actor_Query_Goal_Number(kActorSadik) == 411) {
- if (Game_Flag_Query(657)) {
+ if (Game_Flag_Query(kFlagNotUsed657)) {
Actor_Set_Goal_Number(kActorSadik, 412);
}
}
@@ -163,7 +163,7 @@ void AIScriptSadik::ShotAtAndMissed() {
if (Actor_Query_Goal_Number(kActorSadik) == 414
|| Actor_Query_Goal_Number(kActorSadik) == 416
) {
- Game_Flag_Set(714);
+ Game_Flag_Set(kFlagMcCoyAttackedReplicants);
if (Actor_Query_Which_Set_In(kActorSadik) != kSetKP07) {
Actor_Set_Goal_Number(kActorSadik, 418);
Scene_Exits_Disable();
@@ -184,7 +184,7 @@ bool AIScriptSadik::ShotAtAndHit() {
if (Actor_Query_Goal_Number(kActorSadik) == 414
|| Actor_Query_Goal_Number(kActorSadik) == 416
) {
- Game_Flag_Set(714);
+ Game_Flag_Set(kFlagMcCoyAttackedReplicants);
if (Actor_Query_Which_Set_In(kActorSadik) != kSetKP07) {
Actor_Set_Goal_Number(kActorSadik, 418);
Scene_Exits_Disable();
@@ -357,7 +357,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case 411:
Actor_Put_In_Set(kActorSadik, kSetKP05_KP06);
Actor_Set_At_XYZ(kActorSadik, -1134.0f, 0.0f, 73.45f, 398);
- Actor_Set_Goal_Number(kActorClovis, 513);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait);
Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05Wait);
return true;
@@ -431,7 +431,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case 418:
Game_Flag_Reset(kFlagMcCoyIsHelpingReplicants);
- Actor_Set_Goal_Number(kActorClovis, 518);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07LayDown);
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 9435195..1715f6d 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -1279,7 +1279,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Global_Variable_Set(kVariableChapter, 4);
Scene_Exits_Enable();
Actor_Set_Health(kActorMcCoy, 50, 50);
- Game_Flag_Set(523);
+ Game_Flag_Set(kFlagMutantsActive);
Game_Flag_Set(kFlagNR01toUG06);
Game_Flag_Set(kFlagChapter4Intro);
Chapter_Enter(4, kSetUG06, kSceneUG06);
@@ -1289,7 +1289,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Game_Flag_Set(kFlagChapter4Starting);
Global_Variable_Set(kVariableChapter, 4);
Scene_Exits_Enable();
- Game_Flag_Set(523);
+ Game_Flag_Set(kFlagMutantsActive);
Game_Flag_Set(kFlagChapter4Intro);
Chapter_Enter(4, kSetUG06, kSceneUG06);
return true;
diff --git a/engines/bladerunner/script/scene/kp01.cpp b/engines/bladerunner/script/scene/kp01.cpp
index 52f7bfb..ab432a3 100644
--- a/engines/bladerunner/script/scene/kp01.cpp
+++ b/engines/bladerunner/script/scene/kp01.cpp
@@ -164,7 +164,7 @@ void SceneScriptKP01::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 211.0f, -12.2f, -146.0f, 0, false, false, 0);
if (!Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
- && !Game_Flag_Query(714)
+ && !Game_Flag_Query(kFlagMcCoyAttackedReplicants)
&& Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP01Wait
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleGone
) {
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index 69de280..91cfa07 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -59,7 +59,7 @@ void SceneScriptKP05::SceneLoaded() {
if (!Actor_Clue_Query(kActorMcCoy, kCluePowerSource)
&& Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
) {
- Item_Add_To_World(118, 960, 9, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
+ Item_Add_To_World(kItemPowerSource, 960, kSetKP05_KP06, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
}
}
@@ -76,11 +76,11 @@ bool SceneScriptKP05::ClickedOnActor(int actorId) {
}
bool SceneScriptKP05::ClickedOnItem(int itemId, bool a2) {
- if (itemId == 118) {
+ if (itemId == kItemPowerSource) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1058.0f, 0.0f, 852.0f, 0, true, false, 0)) {
- Actor_Face_Item(kActorMcCoy, 118, true);
+ Actor_Face_Item(kActorMcCoy, kItemPowerSource, true);
Actor_Clue_Acquire(kActorMcCoy, kCluePowerSource, true, -1);
- Item_Remove_From_World(118);
+ Item_Remove_From_World(kItemPowerSource);
Item_Pickup_Spin_Effect(960, 58, 321);
}
}
diff --git a/engines/bladerunner/script/scene/kp06.cpp b/engines/bladerunner/script/scene/kp06.cpp
index 5087e33..466b957 100644
--- a/engines/bladerunner/script/scene/kp06.cpp
+++ b/engines/bladerunner/script/scene/kp06.cpp
@@ -76,7 +76,7 @@ bool SceneScriptKP06::ClickedOn3DObject(const char *objectName, bool a2) {
bool SceneScriptKP06::ClickedOnActor(int actorId) {
if ( actorId == kActorSadik
- && !Game_Flag_Query(714)
+ && !Game_Flag_Query(kFlagMcCoyAttackedReplicants)
) {
if (Actor_Clue_Query(kActorSadik, kCluePowerSource)) {
Actor_Face_Actor(kActorMcCoy, kActorSadik, true);
@@ -115,9 +115,9 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
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 (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, true, false, 0)) {
if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
- if (!Game_Flag_Query(714)) {
+ if (!Game_Flag_Query(kFlagMcCoyAttackedReplicants)) {
Player_Set_Combat_Mode(false);
}
} else if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP06Leave) {
@@ -130,11 +130,11 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
Game_Flag_Set(kFlagKP06toKP07);
Set_Enter(kSetKP07, kSceneKP07);
}
- } else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource) ) {
- Actor_Says(kActorSadik, 280, 3);
- Actor_Says(kActorSadik, 290, 3);
+ } else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource)) {
+ Actor_Says(kActorSadik, 280, kAnimationModeTalk);
+ Actor_Says(kActorSadik, 290, kAnimationModeTalk);
Actor_Clue_Acquire(kActorSadik, kCluePowerSource, true, kActorMcCoy);
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 0, true, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, false, true, 0);
Player_Set_Combat_Mode(false);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -196,7 +196,7 @@ void SceneScriptKP06::PlayerWalkedIn() {
Actor_Face_Actor(kActorMcCoy, kActorGaff, true);
Actor_Says(kActorMcCoy, 6245, 11);
Actor_Says(kActorGaff, 230, 14);
- if (Game_Flag_Query(714)) {
+ if (Game_Flag_Query(kFlagMcCoyAttackedReplicants)) {
Actor_Says(kActorMcCoy, 6250, 15);
Actor_Says(kActorGaff, 240, 13);
Delay(1000);
diff --git a/engines/bladerunner/script/scene/kp07.cpp b/engines/bladerunner/script/scene/kp07.cpp
index 4574252..c087e4f 100644
--- a/engines/bladerunner/script/scene/kp07.cpp
+++ b/engines/bladerunner/script/scene/kp07.cpp
@@ -85,7 +85,7 @@ void SceneScriptKP07::InitializeScene() {
Ambient_Sounds_Add_Looping_Sound(586, 52, 1, 1);
Ambient_Sounds_Add_Looping_Sound(109, 38, 1, 1);
- if (Game_Flag_Query(582)) {
+ if (Game_Flag_Query(kFlagKP07BusActive)) {
Scene_Loop_Set_Default(2);
} else {
Scene_Loop_Set_Default(0);
@@ -114,20 +114,25 @@ bool SceneScriptKP07::ClickedOn3DObject(const char *objectName, bool a2) {
bool SceneScriptKP07::ClickedOnActor(int actorId) {
if (actorId == kActorClovis) {
- if (Game_Flag_Query(697) || actorId != kActorClovis || Actor_Query_Goal_Number(kActorClovis) == 599 || Actor_Query_Goal_Number(kActorClovis) == 515) {
- return false;
- }
- if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
- Actor_Set_Goal_Number(kActorClovis, 516);
- } else {
- Music_Play(20, 31, 0, 0, -1, 1, 0);
- Actor_Set_Goal_Number(kActorClovis, 514);
+ if (!Game_Flag_Query(kFlagKP07McCoyPulledGun)
+ && Actor_Query_Goal_Number(kActorClovis) != kGoalClovisGone
+ && Actor_Query_Goal_Number(kActorClovis) != kGoalClovisKP07SayFinalWords
+ ) {
+ if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07FlyAway);
+ } else {
+ Music_Play(20, 31, 0, 0, -1, 1, 0);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07TalkToMcCoy);
+ }
+ return true;
}
} else {
Actor_Face_Actor(kActorMcCoy, actorId, true);
Actor_Says(kActorMcCoy, 8590, 14);
+ return true;
}
- return true;
+
+ return false;
}
bool SceneScriptKP07::ClickedOnItem(int itemId, bool a2) {
@@ -159,7 +164,7 @@ void SceneScriptKP07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptKP07::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 9.0f, -41.88f, -81.0f, 0, 0, false, 0);
- if (!Game_Flag_Query(658)) {
+ if (!Game_Flag_Query(kFlagKP07Entered)) {
if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
Actor_Says(kActorClovis, 1240, 3);
@@ -176,7 +181,7 @@ void SceneScriptKP07::PlayerWalkedIn() {
Actor_Says(kActorClovis, 160, 3);
Actor_Retired_Here(kActorClovis, 72, 60, 0, -1);
}
- Game_Flag_Set(658);
+ Game_Flag_Set(kFlagKP07Entered);
}
}
@@ -185,11 +190,11 @@ void SceneScriptKP07::PlayerWalkedOut() {
}
void SceneScriptKP07::DialogueQueueFlushed(int a1) {
- if (Actor_Query_Goal_Number(kActorClovis) == 515) {
+ if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07SayFinalWords) {
Actor_Set_Targetable(kActorClovis, false);
- Actor_Change_Animation_Mode(kActorClovis, 21);
- Actor_Retired_Here(kActorClovis, 12, 48, 1, -1);
- Actor_Set_Goal_Number(kActorClovis, 599);
+ Actor_Change_Animation_Mode(kActorClovis, kAnimationModeHit);
+ Actor_Retired_Here(kActorClovis, 12, 48, true, -1);
+ Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
}
}
Commit: b3b6f6eaa36ef8651d3a7192f07223699b7055a9
https://github.com/scummvm/scummvm/commit/b3b6f6eaa36ef8651d3a7192f07223699b7055a9
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-07T23:45:19+01:00
Commit Message:
BLADERUNNER: Cleanup of Mutants scripts
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/mutant1.cpp
engines/bladerunner/script/ai/mutant2.cpp
engines/bladerunner/script/ai/mutant3.cpp
engines/bladerunner/script/ai/officer_grayford.cpp
engines/bladerunner/script/ai/officer_leary.cpp
engines/bladerunner/script/scene/ct12.cpp
engines/bladerunner/script/scene/ug09.cpp
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 7248cca..2686993 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1066,8 +1066,8 @@ enum Flags {
// 626 is never used
kFlagNR01McCoyIsDrugged = 627,
// 628 is never used
- kFlagUnpaseGenWalkers = 629,
-
+ kFlagUnpauseGenWalkers = 629,
+ kFlagMutantsPaused = 630,
kFlagRatWalkingAround = 631,
kFlagNR01DektoraFall = 632,
kFlagNR11DektoraBurning = 633,
diff --git a/engines/bladerunner/script/ai/mutant1.cpp b/engines/bladerunner/script/ai/mutant1.cpp
index 1ae338f..bdd2548 100644
--- a/engines/bladerunner/script/ai/mutant1.cpp
+++ b/engines/bladerunner/script/ai/mutant1.cpp
@@ -42,65 +42,63 @@ void AIScriptMutant1::Initialize() {
}
bool AIScriptMutant1::Update() {
- if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorMutant1) != 590) {
- if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
- Actor_Set_Goal_Number(kActorMutant1, 590);
- }
-
- return false;
- }
+ if (Global_Variable_Query(kVariableChapter) == 4) {
+ switch (Actor_Query_Goal_Number(kActorMutant1)) {
+ case 400:
+ if (!Game_Flag_Query(kFlagMutantsActive)
+ && Game_Flag_Query(kFlagUG06Chapter4Started)
+ ) {
+ Actor_Set_Goal_Number(kActorMutant1, 401);
+ Actor_Set_Goal_Number(kActorMutant2, 401);
+ Actor_Set_Goal_Number(kActorMutant3, 401);
+ Actor_Set_Targetable(kActorMutant1, true);
+ Actor_Set_Targetable(kActorMutant2, true);
+ Actor_Set_Targetable(kActorMutant3, true);
+ Game_Flag_Set(kFlagMutantsActive);
+ }
+ break;
- if (Global_Variable_Query(kVariableChapter) != 4) {
- return false;
- }
+ case 401:
+ if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
+ && (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
+ || Actor_Query_Combat_Aggressiveness(kActorMutant1) >= 60
+ )
+ ) {
+ Actor_Set_Goal_Number(kActorMutant1, 410);
+ }
+ break;
- switch (Actor_Query_Goal_Number(kActorMutant1)) {
- case 400:
- if (!Game_Flag_Query(kFlagMutantsActive)
- && Game_Flag_Query(kFlagUG06Chapter4Started)
- ) {
- Actor_Set_Goal_Number(kActorMutant1, 401);
- Actor_Set_Goal_Number(kActorMutant2, 401);
- Actor_Set_Goal_Number(kActorMutant3, 401);
- Actor_Set_Targetable(kActorMutant1, 1);
- Actor_Set_Targetable(kActorMutant2, 1);
- Actor_Set_Targetable(kActorMutant3, 1);
- Game_Flag_Set(kFlagMutantsActive);
- }
- break;
+ case 404:
+ if (!Game_Flag_Query(kFlagMutantsPaused)) {
+ Actor_Set_Goal_Number(kActorMutant1, 403);
+ }
+ break;
- case 401:
- if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
- && (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
- || Actor_Query_Combat_Aggressiveness(kActorMutant1) >= 60
- )
- ) {
- Actor_Set_Goal_Number(kActorMutant1, 410);
- }
- break;
+ case 410:
+ if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
+ Non_Player_Actor_Combat_Mode_Off(kActorMutant1);
+ Actor_Set_Goal_Number(kActorMutant1, 403);
+ }
+ break;
- case 404:
- if (!Game_Flag_Query(630)) {
- Actor_Set_Goal_Number(kActorMutant1, 403);
+ case 599:
+ if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
+ Actor_Set_Goal_Number(kActorMutant1, 411);
+ }
+ break;
}
- break;
- case 410:
- if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
- Non_Player_Actor_Combat_Mode_Off(kActorMutant1);
- Actor_Set_Goal_Number(kActorMutant1, 403);
+ if (Game_Flag_Query(kFlagMutantsPaused)
+ && Actor_Query_Goal_Number(kActorMutant1) != 599
+ ) {
+ Actor_Set_Goal_Number(kActorMutant1, 404);
}
- break;
-
- case 599:
+ } else if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_Goal_Number(kActorMutant1) != 590
+ ) {
if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
- Actor_Set_Goal_Number(kActorMutant1, 411);
+ Actor_Set_Goal_Number(kActorMutant1, 590);
}
- break;
- }
-
- if (Game_Flag_Query(630) == 1 && Actor_Query_Goal_Number(kActorMutant1) != 599) {
- Actor_Set_Goal_Number(kActorMutant1, 404);
}
return false;
@@ -111,8 +109,9 @@ void AIScriptMutant1::TimerExpired(int timer) {
}
void AIScriptMutant1::CompletedMovementTrack() {
- if (Actor_Query_Goal_Number(kActorMutant1) == 401)
+ if (Actor_Query_Goal_Number(kActorMutant1) == 401) {
Actor_Set_Goal_Number(kActorMutant1, 403);
+ }
}
void AIScriptMutant1::ReceivedClue(int clueId, int fromActorId) {
@@ -136,31 +135,36 @@ void AIScriptMutant1::OtherAgentExitedThisScene(int otherActorId) {
}
void AIScriptMutant1::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
- if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set() && Actor_Query_Goal_Number(kActorMutant1) != 599) {
- if (otherActorId != kActorMcCoy) {
- if (otherActorId > 72 || (otherActorId != kActorFreeSlotA && otherActorId != kActorMutant2 && otherActorId != kActorMutant3)) {
- Actor_Modify_Combat_Aggressiveness(70, -10);
+ if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
+ && Actor_Query_Goal_Number(kActorMutant1) != 599
+ ) {
+ if (otherActorId == kActorMcCoy) {
+ if (combatMode) {
+ Actor_Modify_Combat_Aggressiveness(kActorMutant1, 10);
} else {
- Actor_Modify_Combat_Aggressiveness(70, 10);
+ Actor_Modify_Combat_Aggressiveness(kActorMutant1, -10);
}
- } else if (combatMode) {
- Actor_Modify_Combat_Aggressiveness(70, 10);
+ } else if (otherActorId == kActorFreeSlotA
+ || otherActorId == kActorMutant2
+ || otherActorId == kActorMutant3
+ ) {
+ Actor_Modify_Combat_Aggressiveness(kActorMutant1, 10);
} else {
- Actor_Modify_Combat_Aggressiveness(70, -10);
+ Actor_Modify_Combat_Aggressiveness(kActorMutant1, -10);
}
}
}
void AIScriptMutant1::ShotAtAndMissed() {
if (Actor_Query_Goal_Number(kActorMutant1) != 410) {
- Actor_Modify_Combat_Aggressiveness(70, 10);
+ Actor_Modify_Combat_Aggressiveness(kActorMutant1, 10);
Actor_Modify_Friendliness_To_Other(kActorMutant1, kActorMcCoy, -10);
}
}
bool AIScriptMutant1::ShotAtAndHit() {
if (Actor_Query_Goal_Number(kActorMutant1) != 410) {
- Actor_Modify_Combat_Aggressiveness(70, 15);
+ Actor_Modify_Combat_Aggressiveness(kActorMutant1, 15);
Actor_Modify_Friendliness_To_Other(kActorMutant1, kActorMcCoy, -15);
}
@@ -189,7 +193,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 401:
- Actor_Set_Targetable(kActorMutant1, 1);
+ Actor_Set_Targetable(kActorMutant1, true);
AI_Movement_Track_Flush(kActorMutant1);
AI_Movement_Track_Append(kActorMutant1, 39, 0);
@@ -317,7 +321,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 403:
- Actor_Set_Targetable(kActorMutant1, 0);
+ Actor_Set_Targetable(kActorMutant1, false);
Actor_Set_Goal_Number(kActorMutant1, 401);
return true;
diff --git a/engines/bladerunner/script/ai/mutant2.cpp b/engines/bladerunner/script/ai/mutant2.cpp
index 3e837b6..512f207 100644
--- a/engines/bladerunner/script/ai/mutant2.cpp
+++ b/engines/bladerunner/script/ai/mutant2.cpp
@@ -46,22 +46,18 @@ void AIScriptMutant2::Initialize() {
bool AIScriptMutant2::Update() {
if (Global_Variable_Query(kVariableChapter) == 4) {
switch (Actor_Query_Goal_Number(kActorMutant2)) {
- case 599:
- if (Actor_Query_Which_Set_In(kActorMutant2) != Player_Query_Current_Set()) {
- Actor_Set_Goal_Number(kActorMutant2, 403);
- }
- break;
-
case 401:
if (Actor_Query_Which_Set_In(kActorMutant2) == Player_Query_Current_Set()
- && (Actor_Query_Friendliness_To_Other(kActorMutant2, kActorMcCoy) < 20
- || Actor_Query_Combat_Aggressiveness(kActorMutant2) >= 60)) {
+ && (Actor_Query_Friendliness_To_Other(kActorMutant2, kActorMcCoy) < 20
+ || Actor_Query_Combat_Aggressiveness(kActorMutant2) >= 60
+ )
+ ) {
Actor_Set_Goal_Number(kActorMutant2, 410);
}
break;
case 404:
- if (!Game_Flag_Query(630)) {
+ if (!Game_Flag_Query(kFlagMutantsPaused)) {
Actor_Set_Goal_Number(kActorMutant2, 403);
}
break;
@@ -72,12 +68,22 @@ bool AIScriptMutant2::Update() {
Actor_Set_Goal_Number(kActorMutant2, 403);
}
break;
+
+ case 599:
+ if (Actor_Query_Which_Set_In(kActorMutant2) != Player_Query_Current_Set()) {
+ Actor_Set_Goal_Number(kActorMutant2, 403);
+ }
+ break;
}
- if (Game_Flag_Query(630) == 1 && Actor_Query_Goal_Number(kActorMutant2) != 599) {
+ if (Game_Flag_Query(kFlagMutantsPaused)
+ && Actor_Query_Goal_Number(kActorMutant2) != 599
+ ) {
Actor_Set_Goal_Number(kActorMutant2, 404);
}
- } else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorMutant2) != 590) {
+ } else if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_Goal_Number(kActorMutant2) != 590
+ ) {
if (Actor_Query_Which_Set_In(kActorMutant2) != Player_Query_Current_Set()) {
Actor_Set_Goal_Number(kActorMutant2, 590);
}
@@ -116,17 +122,22 @@ void AIScriptMutant2::OtherAgentExitedThisScene(int otherActorId) {
}
void AIScriptMutant2::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
- if (Actor_Query_Which_Set_In(kActorMutant2) == Player_Query_Current_Set() && Actor_Query_Goal_Number(kActorMutant2) != 599) {
- if (otherActorId != kActorMcCoy) {
- if (otherActorId > 72 || (otherActorId != kActorFreeSlotA && otherActorId != kActorMutant1 && otherActorId != kActorMutant3)) {
- Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
+ if (Actor_Query_Which_Set_In(kActorMutant2) == Player_Query_Current_Set()
+ && Actor_Query_Goal_Number(kActorMutant2) != 599
+ ) {
+ if (otherActorId == kActorMcCoy) {
+ if (combatMode) {
+ Actor_Modify_Combat_Aggressiveness(kActorMutant2, 10);
} else {
- Actor_Modify_Combat_Aggressiveness(kActorMutant2, 5);
+ Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
}
- } else if (combatMode) {
- Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
+ } else if (otherActorId == kActorFreeSlotA
+ || otherActorId == kActorMutant1
+ || otherActorId == kActorMutant3
+ ) {
+ Actor_Modify_Combat_Aggressiveness(kActorMutant2, 5);
} else {
- Actor_Modify_Combat_Aggressiveness(kActorMutant2, 10);
+ Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
}
}
}
@@ -169,7 +180,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 401:
- Actor_Set_Targetable(kActorMutant2, 1);
+ Actor_Set_Targetable(kActorMutant2, true);
AI_Movement_Track_Flush(kActorMutant2);
AI_Movement_Track_Append(kActorMutant2, 39, 0);
@@ -292,7 +303,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
return true;
case 403:
- Actor_Set_Targetable(kActorMutant2, 0);
+ Actor_Set_Targetable(kActorMutant2, false);
Actor_Set_Goal_Number(kActorMutant2, 401);
return true;
diff --git a/engines/bladerunner/script/ai/mutant3.cpp b/engines/bladerunner/script/ai/mutant3.cpp
index 848dd6c..990ed8c 100644
--- a/engines/bladerunner/script/ai/mutant3.cpp
+++ b/engines/bladerunner/script/ai/mutant3.cpp
@@ -46,22 +46,18 @@ void AIScriptMutant3::Initialize() {
bool AIScriptMutant3::Update() {
if (Global_Variable_Query(kVariableChapter) == 4) {
switch (Actor_Query_Goal_Number(kActorMutant3)) {
- case 599:
- if (Actor_Query_Which_Set_In(kActorMutant3) != Player_Query_Current_Set()) {
- Actor_Set_Goal_Number(kActorMutant3, 403);
- }
- break;
-
case 401:
if (Actor_Query_Which_Set_In(kActorMutant3) == Player_Query_Current_Set()
- && (Actor_Query_Friendliness_To_Other(kActorMutant3, kActorMcCoy) < 40
- || Actor_Query_Combat_Aggressiveness(kActorMutant3) >= 60)) {
+ && (Actor_Query_Friendliness_To_Other(kActorMutant3, kActorMcCoy) < 40
+ || Actor_Query_Combat_Aggressiveness(kActorMutant3) >= 60
+ )
+ ) {
Actor_Set_Goal_Number(kActorMutant3, 410);
}
break;
case 404:
- if (!Game_Flag_Query(630)) {
+ if (!Game_Flag_Query(kFlagMutantsPaused)) {
Actor_Set_Goal_Number(kActorMutant3, 401);
}
break;
@@ -72,12 +68,22 @@ bool AIScriptMutant3::Update() {
Actor_Set_Goal_Number(kActorMutant3, 403);
}
break;
+
+ case 599:
+ if (Actor_Query_Which_Set_In(kActorMutant3) != Player_Query_Current_Set()) {
+ Actor_Set_Goal_Number(kActorMutant3, 403);
+ }
+ break;
}
- if (Game_Flag_Query(630) == 1 && Actor_Query_Goal_Number(kActorMutant3) != 599) {
+ if (Game_Flag_Query(kFlagMutantsPaused)
+ && Actor_Query_Goal_Number(kActorMutant3) != 599
+ ) {
Actor_Set_Goal_Number(kActorMutant3, 404);
}
- } else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorMutant3) != 590) {
+ } else if (Global_Variable_Query(kVariableChapter) == 5
+ && Actor_Query_Goal_Number(kActorMutant3) != 590
+ ) {
if (Actor_Query_Which_Set_In(kActorMutant3) != Player_Query_Current_Set()) {
Actor_Set_Goal_Number(kActorMutant3, 590);
}
@@ -122,15 +128,20 @@ void AIScriptMutant3::OtherAgentExitedThisScene(int otherActorId) {
}
void AIScriptMutant3::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
- if (Actor_Query_Which_Set_In(kActorMutant3) == Player_Query_Current_Set() && Actor_Query_Goal_Number(kActorMutant3) != 599) {
- if (otherActorId != kActorMcCoy) {
- if (otherActorId > 72 || (otherActorId != kActorFreeSlotA && otherActorId != kActorMutant1 && otherActorId != kActorMutant2)) {
- Actor_Modify_Combat_Aggressiveness(kActorMutant3, -10);
+ if (Actor_Query_Which_Set_In(kActorMutant3) == Player_Query_Current_Set()
+ && Actor_Query_Goal_Number(kActorMutant3) != 599
+ ) {
+ if (otherActorId == kActorMcCoy) {
+ if (combatMode) {
+ Actor_Modify_Combat_Aggressiveness(kActorMutant3, 10);
} else {
- Actor_Modify_Combat_Aggressiveness(kActorMutant3, 5);
+ Actor_Modify_Combat_Aggressiveness(kActorMutant3, -10);
}
- } else if (combatMode) {
- Actor_Modify_Combat_Aggressiveness(kActorMutant3, 10);
+ } else if (otherActorId == kActorFreeSlotA
+ || otherActorId == kActorMutant1
+ || otherActorId == kActorMutant2
+ ) {
+ Actor_Modify_Combat_Aggressiveness(kActorMutant3, 5);
} else {
Actor_Modify_Combat_Aggressiveness(kActorMutant3, -10);
}
@@ -182,7 +193,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
break;
case 401:
- Actor_Set_Targetable(kActorMutant3, 1);
+ Actor_Set_Targetable(kActorMutant3, true);
AI_Movement_Track_Flush(kActorMutant3);
AI_Movement_Track_Append(kActorMutant3, 39, 0);
@@ -303,7 +314,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
break;
case 403:
- Actor_Set_Targetable(kActorMutant3, 0);
+ Actor_Set_Targetable(kActorMutant3, false);
Actor_Set_Goal_Number(kActorMutant3, 401);
break;
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp
index 1e7484c..cdf1b1a 100644
--- a/engines/bladerunner/script/ai/officer_grayford.cpp
+++ b/engines/bladerunner/script/ai/officer_grayford.cpp
@@ -85,7 +85,7 @@ bool AIScriptOfficerGrayford::Update() {
return false;
}
- if (Game_Flag_Query(kFlagUnpaseGenWalkers)) {
+ if (Game_Flag_Query(kFlagUnpauseGenWalkers)) {
AI_Movement_Track_Unpause(kActorGenwalkerA);
AI_Movement_Track_Unpause(kActorGenwalkerB);
AI_Movement_Track_Unpause(kActorGenwalkerC);
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index ad94d2e..a8edf10 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(kFlagUnpaseGenWalkers)) {
- Game_Flag_Reset(kFlagUnpaseGenWalkers);
+ if (Game_Flag_Query(kFlagUnpauseGenWalkers)) {
+ Game_Flag_Reset(kFlagUnpauseGenWalkers);
return false;
}
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index e7171b9..8160b9a 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -148,7 +148,7 @@ bool SceneScriptCT12::ClickedOnActor(int actorId) {
Actor_Says(kActorOfficerGrayford, 90, kAnimationModeTalk);
Actor_Says(kActorOfficerGrayford, 100, kAnimationModeTalk);
Actor_Says(kActorOfficerGrayford, 110, kAnimationModeTalk);
- Game_Flag_Set(kFlagUnpaseGenWalkers);
+ Game_Flag_Set(kFlagUnpauseGenWalkers);
Game_Flag_Set(kFlagMcCoyFreedOfAccusations);
Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyStartChapter5);
}
@@ -202,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(kFlagUnpaseGenWalkers);
+ Game_Flag_Set(kFlagUnpauseGenWalkers);
}
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
diff --git a/engines/bladerunner/script/scene/ug09.cpp b/engines/bladerunner/script/scene/ug09.cpp
index 3348272..678190d 100644
--- a/engines/bladerunner/script/scene/ug09.cpp
+++ b/engines/bladerunner/script/scene/ug09.cpp
@@ -138,15 +138,13 @@ void SceneScriptUG09::PlayerWalkedIn() {
if (Global_Variable_Query(kVariableChapter) == 4
&& Game_Flag_Query(kFlagUG07Empty)
) {
- Game_Flag_Set(630);
+ Game_Flag_Set(kFlagMutantsPaused);
}
}
void SceneScriptUG09::PlayerWalkedOut() {
- if (Global_Variable_Query(kVariableChapter) == 4
- && Global_Variable_Query(kVariableChapter) != 5
- ) {
- Game_Flag_Reset(630);
+ if (Global_Variable_Query(kVariableChapter) == 4) {
+ Game_Flag_Reset(kFlagMutantsPaused);
}
if (Game_Flag_Query(kFlagUG09toCT12)) {
Commit: 7061f7cb173871e84d26010b9742fcec8a0ece1a
https://github.com/scummvm/scummvm/commit/7061f7cb173871e84d26010b9742fcec8a0ece1a
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-07T23:45:41+01:00
Commit Message:
BLADERUNNER: Cleanup for drive away endings scripts
All ending are achievable
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/generic_walker_a.cpp
engines/bladerunner/script/ai/generic_walker_b.cpp
engines/bladerunner/script/ai/generic_walker_c.cpp
engines/bladerunner/script/ai/lucy.cpp
engines/bladerunner/script/ai/officer_leary.cpp
engines/bladerunner/script/ai/transient.cpp
engines/bladerunner/script/ai/zuben.cpp
engines/bladerunner/script/init_script.cpp
engines/bladerunner/script/scene/hf01.cpp
engines/bladerunner/script/scene/hf05.cpp
engines/bladerunner/script/scene/hf06.cpp
engines/bladerunner/script/scene/hf07.cpp
engines/bladerunner/script/scene/ma04.cpp
engines/bladerunner/script/scene/ug01.cpp
engines/bladerunner/script/scene/ug05.cpp
engines/bladerunner/script/scene_script.h
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 2686993..85481a8 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -807,7 +807,8 @@ enum Flags {
kFlagBB12toBB07 = 365,
kFlagAR02InsectDealerTalk = 366,
kFlagAR02StungByScorpion = 367,
-
+ kFlagHF07Hole = 368,
+ kFlagHF05Hole = 369,
kFlagNotUsed370 = 370, // is never checked
// 371 is never used
// 372 is never used
@@ -960,6 +961,7 @@ enum Flags {
kFlagTB06DogCollarTaken = 519,
kFlagTB06KitchenBoxTaken = 520,
kFlagHC03TrapDoorOpened = 521,
+ kFlagUG05TalkAboutTunnel = 522,
kFlagMutantsActive = 523,
kFlagUG06Chapter4Started = 524,
kFlagCT10Entered = 525,
@@ -996,7 +998,7 @@ enum Flags {
kFlagUG16LutherLanceTalk1 = 556,
kFlagNotUsed557, // is never checked
kFlagDR01toCT11 = 558,
-
+ kFlagHF06SteelInterruption = 559,
kFlagLutherLanceIsReplicant = 560,
kFlagNR02GordoLeaveLighter = 561,
kFlagHF05CrazyLegsTalk1 = 562,
@@ -1099,7 +1101,9 @@ enum Flags {
kFlagNR11BreakWindow = 659,
kFlagDNARowAvailableTalk = 660,
kFlagTB07ShadeDown = 661, // is never set
-
+ kFlagHF01TalkToLovedOne = 662,
+ kFlagHF05PoliceArrived = 663,
+ kFlagUG07PoliceLeave = 664,
kFlagUG19Available = 665,
kFlagMcCoyFreedOfAccusations = 666,
// 667 is never used
@@ -1118,6 +1122,8 @@ enum Flags {
kFlagChapter4Intro = 680,
// 681 is never used
kFlagUG15BridgeBroken = 682,
+ kFlagUG05TalkToPolice = 683,
+ kFlagHF05PoliceAttacked = 684,
kFlagClovisLyingDown = 685,
kFlagNotUsed686 = 686,
// 687 is never used
@@ -1132,9 +1138,9 @@ enum Flags {
kFlagKP07ReplicantsAttackMcCoy = 696,
kFlagKP07McCoyPulledGun = 697,
kFlagUG15LanceLuthorTrade = 698,
-
+ kFlagTalkToZuben = 699,
// 700 is never used
-
+ kFlagMcCoyAttackedLucy = 701,
kFlagBulletBobDead = 702,
kFlagUG18BriefcaseTaken = 703,
kFlagRC02EnteredChapter4 = 704,
@@ -1149,7 +1155,7 @@ enum Flags {
kFlagDR04McCoyShotMoraji = 713,
kFlagMcCoyAttackedReplicants = 714,
kFlagDR06UnlockedToUG16 = 715,
-
+ kFlagUG13HomelessLayingdown = 716,
kFlagRC04BobTalk3 = 717,
kflagPS01toPS02 = 718,
kFlagCT02McCoyFell = 719,
@@ -1187,7 +1193,7 @@ enum Variables {
kVariableGenericWalkerAModel = 32,
kVariableGenericWalkerBModel = 33,
kVariableGenericWalkerCModel = 34,
-
+ kVariableGenericWalkerConfig = 35, // has no use
kVariableBB10ShelvesAvailable = 36,
kVariableWalkLoopActor = 37,
kVariableWalkLoopRun = 38,
@@ -1356,7 +1362,7 @@ enum Scenes {
kSceneNR06 = 59, // Nightclub Row - Early Q's - Empty dressing room
kSceneNR07 = 60, // Nightclub Row - Early Q's - Dektora's dressing room
kSceneNR08 = 61, // Nightclub Row - Early Q's - Stage
- kSceneNR09 = 62, // Nightclub Row - Early Q's - Upstairs
+ kSceneNR09 = 62, // Nightclub Row - Early Q's - Balcony
kSceneNR10 = 63, // Nightclub Row - Early Q's - Projector room
kSceneNR11 = 64, // Nightclub Row - Early Q's - Loft
kScenePS01 = 65, // Police Station - Roof
@@ -1820,6 +1826,7 @@ enum GoalSteele {
kGoalSteeleStartChapter4 = 300,
// chapter 5
kGoalSteeleStartChapter5 = 400,
+ kGoalSteeleHF06Attack = 402, // has no use
// kGoalSteeleKP03WillShootMcCoy = 410,
kGoalSteeleKP03Walk = 411,
kGoalSteeleKP03StopWalking = 412,
@@ -1974,6 +1981,7 @@ enum GoalClovis {
enum GoalLucy {
kGoalLucyDefault = 0,
+ // chapter 3
kGoalLucyMoveAround = 200,
kGoalLucyWillReturnToHF03 = 201,
kGoalLucyGoToHF03 = 205,
@@ -1996,6 +2004,12 @@ enum GoalLucy {
kGoalLucyHF04WalkAway = 239,
kGoalLucyReturnToHF03 = 250,
kGoalLucyHF03RanAway = 299,
+ // chapter 4
+ kGoalLucyStartChapter4 = 300,
+ kGoalLucyUG01Wait = 310,
+ kGoalLucyUG01VoightKampff = 311,
+ kGoalLucyUG01RunAway = 312,
+
kGoalLucyGone = 599
};
diff --git a/engines/bladerunner/script/ai/generic_walker_a.cpp b/engines/bladerunner/script/ai/generic_walker_a.cpp
index c747251..32a66e6 100644
--- a/engines/bladerunner/script/ai/generic_walker_a.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_a.cpp
@@ -343,7 +343,7 @@ void AIScriptGenericWalkerA::movingUpdate() {
}
bool AIScriptGenericWalkerA::prepareWalker() {
- if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(35) < 0 || !preparePath()) {
+ if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(kVariableGenericWalkerConfig) < 0 || !preparePath()) {
return false;
}
diff --git a/engines/bladerunner/script/ai/generic_walker_b.cpp b/engines/bladerunner/script/ai/generic_walker_b.cpp
index 2a6c3a1..3bda0cf 100644
--- a/engines/bladerunner/script/ai/generic_walker_b.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_b.cpp
@@ -319,7 +319,7 @@ void AIScriptGenericWalkerB::movingUpdate() {
}
bool AIScriptGenericWalkerB::prepareWalker() {
- if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(35) < 0 || !preparePath()) {
+ if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(kVariableGenericWalkerConfig) < 0 || !preparePath()) {
return false;
}
diff --git a/engines/bladerunner/script/ai/generic_walker_c.cpp b/engines/bladerunner/script/ai/generic_walker_c.cpp
index 5c0478c..99c0736 100644
--- a/engines/bladerunner/script/ai/generic_walker_c.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_c.cpp
@@ -320,7 +320,7 @@ void AIScriptGenericWalkerC::movingUpdate() {
}
bool AIScriptGenericWalkerC::prepareWalker() {
- if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(35) < 2 || !preparePath()) {
+ if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(kVariableGenericWalkerConfig) < 2 || !preparePath()) {
return false;
}
diff --git a/engines/bladerunner/script/ai/lucy.cpp b/engines/bladerunner/script/ai/lucy.cpp
index 41e127f..3b37bd6 100644
--- a/engines/bladerunner/script/ai/lucy.cpp
+++ b/engines/bladerunner/script/ai/lucy.cpp
@@ -55,9 +55,9 @@ bool AIScriptLucy::Update() {
}
if (Global_Variable_Query(kVariableChapter) == 4
- && Actor_Query_Goal_Number(kActorLucy) < 300
+ && Actor_Query_Goal_Number(kActorLucy) < kGoalLucyStartChapter4
) {
- Actor_Set_Goal_Number(kActorLucy, 300);
+ Actor_Set_Goal_Number(kActorLucy, kGoalLucyStartChapter4);
}
if (Global_Variable_Query(kVariableChapter) == 4
@@ -83,7 +83,7 @@ bool AIScriptLucy::Update() {
&& Actor_Query_Goal_Number(kActorLucy) != kGoalLucyHF04TalkToMcCoy
&& Player_Query_Current_Scene() == kSceneHF04
&& Actor_Query_Which_Set_In(kActorLucy) == kSetHF04
- && !Game_Flag_Query(701)
+ && !Game_Flag_Query(kFlagMcCoyAttackedLucy)
&& Actor_Query_Inch_Distance_From_Actor(kActorLucy, kActorMcCoy) < 84
&& !Player_Query_Combat_Mode()
&& Actor_Query_Friendliness_To_Other(kActorLucy, kActorMcCoy) > 40
@@ -485,24 +485,24 @@ bool AIScriptLucy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Repeat(kActorLucy);
break;
- case 300:
+ case kGoalLucyStartChapter4:
Actor_Put_In_Set(kActorLucy, kSetFreeSlotA);
Actor_Set_At_Waypoint(kActorLucy, 33, 0);
if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy) {
- Actor_Set_Goal_Number(kActorLucy, 310);
+ Actor_Set_Goal_Number(kActorLucy, kGoalLucyUG01Wait);
}
break;
- case 310:
+ case kGoalLucyUG01Wait:
Actor_Put_In_Set(kActorLucy, kSetUG01);
Actor_Set_At_Waypoint(kActorLucy, 544, 651);
break;
- case 311:
+ case kGoalLucyUG01VoightKampff:
voightKampffTest();
break;
- case 312:
+ case kGoalLucyUG01RunAway:
AI_Movement_Track_Flush(kActorLucy);
AI_Movement_Track_Append_Run(kActorLucy, 545, 0);
AI_Movement_Track_Append(kActorLucy, 33, 0);
@@ -867,7 +867,7 @@ void AIScriptLucy::voightKampffTest() {
Voight_Kampff_Activate(kActorLucy, 40);
Player_Loses_Control();
- if (Actor_Clue_Query(kActorMcCoy, 271)) {
+ if (Actor_Clue_Query(kActorMcCoy, kClueVKLucyReplicant)) {
Actor_Says(kActorMcCoy, 6865, 13);
Actor_Says(kActorLucy, 1140, 14);
Actor_Says(kActorMcCoy, 6865, 14);
@@ -894,11 +894,12 @@ void AIScriptLucy::voightKampffTest() {
Actor_Says(kActorMcCoy, 6910, 13);
Delay(2000);
Player_Gains_Control();
- Actor_Set_Goal_Number(kActorLucy, 312);
+ Actor_Set_Goal_Number(kActorLucy, kGoalLucyUG01RunAway);
}
void AIScriptLucy::checkCombat() {
- Game_Flag_Set(701);
+ Game_Flag_Set(kFlagMcCoyAttackedLucy);
+
if (Actor_Query_In_Set(kActorLucy, kSetHF01)
&& Global_Variable_Query(kVariableChapter) == 5
&& Actor_Query_Goal_Number(kActorLucy) != 450
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index a8edf10..69ec583 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -92,9 +92,9 @@ bool AIScriptOfficerLeary::Update() {
}
if ( Game_Flag_Query(kFlagUG07Empty)
- && !Game_Flag_Query(664)
+ && !Game_Flag_Query(kFlagUG07PoliceLeave)
) {
- Game_Flag_Set(664);
+ Game_Flag_Set(kFlagUG07PoliceLeave);
Actor_Set_Goal_Number(kActorOfficerLeary, 305);
return false;
}
@@ -203,7 +203,7 @@ void AIScriptOfficerLeary::TimerExpired(int timer) {
Actor_Set_Goal_Number(kActorOfficerLeary, 430);
Actor_Set_Goal_Number(kActorOfficerGrayford, 430);
} else {
- Game_Flag_Set(684);
+ Game_Flag_Set(kFlagHF05PoliceAttacked);
}
} else if (timer == 2) {
AI_Countdown_Timer_Reset(kActorOfficerLeary, 2);
diff --git a/engines/bladerunner/script/ai/transient.cpp b/engines/bladerunner/script/ai/transient.cpp
index c5dc4ca..9fb2e87 100644
--- a/engines/bladerunner/script/ai/transient.cpp
+++ b/engines/bladerunner/script/ai/transient.cpp
@@ -148,7 +148,7 @@ void AIScriptTransient::ShotAtAndMissed() {
bool AIScriptTransient::ShotAtAndHit() {
Actor_Set_Frame_Rate_FPS(kActorTransient, 8);
- if (Game_Flag_Query(716)) {
+ if (Game_Flag_Query(kFlagUG13HomelessLayingdown)) {
_animationState = 11;
} else {
_animationState = 14;
@@ -203,7 +203,7 @@ bool AIScriptTransient::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_At_XYZ(kActorTransient, -310.0, 55.0, -350.0, 400);
Actor_Change_Animation_Mode(kActorTransient, 53);
Actor_Set_Targetable(kActorTransient, true);
- Game_Flag_Set(716);
+ Game_Flag_Set(kFlagUG13HomelessLayingdown);
return true;
case 391:
Actor_Change_Animation_Mode(kActorTransient, 53);
@@ -461,7 +461,7 @@ bool AIScriptTransient::ChangeAnimationMode(int mode) {
_animationFrame = 0;
break;
case 21:
- if (Game_Flag_Query(716)) {
+ if (Game_Flag_Query(kFlagUG13HomelessLayingdown)) {
_animationState = 11;
} else {
_animationState = 14;
diff --git a/engines/bladerunner/script/ai/zuben.cpp b/engines/bladerunner/script/ai/zuben.cpp
index 8413901..8e25da0 100644
--- a/engines/bladerunner/script/ai/zuben.cpp
+++ b/engines/bladerunner/script/ai/zuben.cpp
@@ -211,14 +211,14 @@ void AIScriptZuben::ClickedByPlayer() {
Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
Actor_Says(kActorMcCoy, 8529, 13);
}
- if (Global_Variable_Query(kVariableChapter) > 1 && Global_Variable_Query(kVariableChapter) < 5) {
+
+ if (Global_Variable_Query(kVariableChapter) > 1
+ && Global_Variable_Query(kVariableChapter) < 5
+ ) {
if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) <= 20) {
Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
Actor_Says(kActorMcCoy, 8910, 11);
- } else if (Game_Flag_Query(699)) {
- Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
- Actor_Says(kActorMcCoy, 8910, 11);
- } else {
+ } else if (!Game_Flag_Query(kFlagTalkToZuben)) {
AI_Movement_Track_Pause(kActorZuben);
Actor_Face_Actor(kActorZuben, kActorMcCoy, true);
Actor_Says(kActorZuben, 140, 14);
@@ -227,8 +227,11 @@ void AIScriptZuben::ClickedByPlayer() {
Actor_Says(kActorZuben, 150, 15);
Actor_Says(kActorMcCoy, 7285, 12);
dialogue();
- Game_Flag_Set(699);
+ Game_Flag_Set(kFlagTalkToZuben);
AI_Movement_Track_Unpause(kActorZuben);
+ } else {
+ Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
+ Actor_Says(kActorMcCoy, 8910, 11);
}
// return true;
}
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 4cd634e..a62ff81 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -58,7 +58,7 @@ void InitScript::Init_Globals() {
for (int i = 0; i != 55; ++i)
Global_Variable_Set(i, 0);
- Global_Variable_Set(35, 2);
+ Global_Variable_Set(kVariableGenericWalkerConfig, 2);
Global_Variable_Set(kVariableChapter, 1);
Global_Variable_Set(kVariableChinyen, 100);
diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp
index 2ceda56..9f871c4 100644
--- a/engines/bladerunner/script/scene/hf01.cpp
+++ b/engines/bladerunner/script/scene/hf01.cpp
@@ -46,7 +46,7 @@ void SceneScriptHF01::InitializeScene() {
}
Scene_Exit_Add_2D_Exit(0, 81, 226, 169, 321, 0);
- if (!Game_Flag_Query(663)) {
+ if (!Game_Flag_Query(kFlagHF05PoliceArrived)) {
Scene_Exit_Add_2D_Exit(1, 304, 239, 492, 339, 0);
Scene_Exit_Add_2D_Exit(2, 560, 231, 639, 360, 0);
if (Game_Flag_Query(kFlagSpinnerAtHF01)) {
@@ -80,7 +80,7 @@ void SceneScriptHF01::InitializeScene() {
Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kHF01LoopInshot, false);
}
Scene_Loop_Set_Default(kHF01LoopMainLoopSpinner);
- } else if (Game_Flag_Query(663)) {
+ } else if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
Scene_Loop_Set_Default(kHF01LoopMainLoopSpinner);
} else {
Scene_Loop_Set_Default(kHF01LoopMainLoopNoSpinner);
@@ -159,9 +159,9 @@ bool SceneScriptHF01::ClickedOnActor(int actorId) {
&& !Game_Flag_Query(kFlagCrazylegsArrested)
&& Actor_Query_Goal_Number(kActorCrazylegs) != 2
&& Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
- && !Game_Flag_Query(662)
+ && !Game_Flag_Query(kFlagHF01TalkToLovedOne)
) {
- Game_Flag_Set(662);
+ Game_Flag_Set(kFlagHF01TalkToLovedOne);
Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
Actor_Face_Actor(affectionTowardsActor, kActorMcCoy, true);
if (affectionTowardsActor == kActorDektora) {
@@ -328,7 +328,7 @@ void SceneScriptHF01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptHF01::PlayerWalkedIn() {
- if (Game_Flag_Query(663)) {
+ if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
ADQ_Flush();
ADQ_Add(kActorOfficerGrayford, 280, kAnimationModeTalk);
Actor_Put_In_Set(kActorOfficerLeary, kSetHF01);
@@ -340,7 +340,7 @@ void SceneScriptHF01::PlayerWalkedIn() {
}
if (!Game_Flag_Query(kFlagCrazylegsArrested)
- && Actor_Query_Goal_Number(kActorCrazylegs) != 2
+ && Actor_Query_Goal_Number(kActorCrazylegs) != 2
) {
if (Actor_Clue_Query(kActorMcCoy, kCluePhoneCallLucy1)
&& Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy
diff --git a/engines/bladerunner/script/scene/hf05.cpp b/engines/bladerunner/script/scene/hf05.cpp
index 88f9181..e5932a8 100644
--- a/engines/bladerunner/script/scene/hf05.cpp
+++ b/engines/bladerunner/script/scene/hf05.cpp
@@ -48,10 +48,10 @@ void SceneScriptHF05::InitializeScene() {
Ambient_Sounds_Add_Looping_Sound(103, 40, 1, 1);
- if (Game_Flag_Query(369)) {
+ if (Game_Flag_Query(kFlagHF05Hole)) {
Scene_Loop_Set_Default(kHF05LoopMainLoopHole);
addAmbientSounds();
- } else if (Game_Flag_Query(559)) {
+ } else if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
Scene_Loop_Set_Default(kHF05LoopMainLoopSpinner);
addAmbientSounds();
} else {
@@ -63,7 +63,7 @@ void SceneScriptHF05::SceneLoaded() {
Obstacle_Object("MAINBASE", true);
Unobstacle_Object("BTIRES02", true);
Unobstacle_Object("LFTIRE02", true);
- if (Game_Flag_Query(369)) {
+ if (Game_Flag_Query(kFlagHF05Hole)) {
Unobstacle_Object("MONTE CARLO DRY", true);
} else {
Unobstacle_Object("OBSTACLE_HOLE", true);
@@ -88,8 +88,8 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
return true;
}
- if (!Game_Flag_Query(662)
- || Game_Flag_Query(369)
+ if (!Game_Flag_Query(kFlagHF01TalkToLovedOne)
+ || Game_Flag_Query(kFlagHF05Hole)
) {
Actor_Change_Animation_Mode(kActorMcCoy, 23);
Sound_Play(412, 100, 0, 0, 50);
@@ -98,15 +98,15 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
Player_Loses_Control();
Actor_Set_Goal_Number(kActorOfficerLeary, 425);
- Game_Flag_Set(369);
- Game_Flag_Set(368);
+ Game_Flag_Set(kFlagHF05Hole);
+ Game_Flag_Set(kFlagHF07Hole);
Obstacle_Object("OBSTACLE_HOLE", true);
Unobstacle_Object("MONTE CARLO DRY", true);
- if (sub_4048C0() != kActorMcCoy) {
- Loop_Actor_Walk_To_XYZ(sub_4048C0(), 181.54f, 40.63f, 388.09f, 0, false, true, 0);
- Actor_Face_Actor(kActorMcCoy, sub_4048C0(), true);
- Actor_Face_Actor(sub_4048C0(), kActorMcCoy, true);
+ if (getCompanionActor() != kActorMcCoy) {
+ Loop_Actor_Walk_To_XYZ(getCompanionActor(), 181.54f, 40.63f, 388.09f, 0, false, true, 0);
+ Actor_Face_Actor(kActorMcCoy, getCompanionActor(), true);
+ Actor_Face_Actor(getCompanionActor(), kActorMcCoy, true);
Actor_Says(kActorMcCoy, 1785, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 1790, kAnimationModeTalk);
}
@@ -116,8 +116,18 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
Scene_Loop_Set_Default(kHF05LoopMainLoopHole);
Scene_Loop_Start_Special(kSceneLoopModeOnce, kHF05LoopArmAnimation, true);
- if (sub_4048C0() != kActorMcCoy) {
- if (sub_4048C0() == kActorDektora) {
+
+ if (getCompanionActor() == kActorMcCoy) {
+ ADQ_Flush();
+ ADQ_Add(kActorVoiceOver, 940, -1);
+ Ambient_Sounds_Play_Sound(147, 50, 99, 0, 0);
+ Delay(1500);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 181.54f, 40.63f, 388.09f, 0, false, true, 0);
+ Actor_Face_Heading(kActorMcCoy, 0, false);
+ Actor_Change_Animation_Mode(kActorMcCoy, 23);
+ Actor_Clue_Lose(kActorMcCoy, kClueBomb);
+ } else {
+ if (getCompanionActor() == kActorDektora) {
Actor_Face_Heading(kActorDektora, 0, false);
Ambient_Sounds_Play_Sound(147, 50, 99, 0, 0);
Delay(3000);
@@ -130,17 +140,8 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Face_Heading(kActorLucy, 0, false);
Actor_Change_Animation_Mode(kActorLucy, 13);
}
- Actor_Face_Actor(kActorMcCoy, sub_4048C0(), true);
+ Actor_Face_Actor(kActorMcCoy, getCompanionActor(), true);
Actor_Says(kActorMcCoy, 1805, kAnimationModeTalk);
- } else {
- ADQ_Flush();
- ADQ_Add(kActorVoiceOver, 940, -1);
- Ambient_Sounds_Play_Sound(147, 50, 99, 0, 0);
- Delay(1500);
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 181.54f, 40.63f, 388.09f, 0, false, true, 0);
- Actor_Face_Heading(kActorMcCoy, 0, false);
- Actor_Change_Animation_Mode(kActorMcCoy, 23);
- Actor_Clue_Lose(kActorMcCoy, kClueBomb);
}
Player_Gains_Control();
}
@@ -167,7 +168,7 @@ bool SceneScriptHF05::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptHF05::ClickedOnExit(int exitId) {
if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 483.0f, 40.63f, -189.0f, 0, true, false, 0)) {
- if (!Game_Flag_Query(684)) {
+ if (!Game_Flag_Query(kFlagHF05PoliceAttacked)) {
Game_Flag_Set(kFlagHF05toHF01);
Set_Enter(kSetHF01, kSceneHF01);
}
@@ -177,10 +178,10 @@ bool SceneScriptHF05::ClickedOnExit(int exitId) {
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 330.0f, 40.63f, -85.0f, 0, true, false, 0)) {
- if (!Game_Flag_Query(684)) {
+ if (!Game_Flag_Query(kFlagHF05PoliceAttacked)) {
int affectionTowardsActor = getAffectionTowardsActor();
- if (Game_Flag_Query(663)
- && Game_Flag_Query(368)
+ if (Game_Flag_Query(kFlagHF05PoliceArrived)
+ && Game_Flag_Query(kFlagHF07Hole)
&& affectionTowardsActor != -1
) {
Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
@@ -195,7 +196,7 @@ bool SceneScriptHF05::ClickedOnExit(int exitId) {
if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 277.0f, 40.63f, 410.0f, 0, true, false, 0)) {
- if (!Game_Flag_Query(684)) {
+ if (!Game_Flag_Query(kFlagHF05PoliceAttacked)) {
Game_Flag_Set(kFlagHF05toHF06);
Set_Enter(kSetHF06, kSceneHF06);
}
@@ -271,16 +272,16 @@ void SceneScriptHF05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
if (actorId == kActorOfficerLeary
&& newGoal == 430
) {
- Game_Flag_Set(684);
- sub_4042E4();
+ Game_Flag_Set(kFlagHF05PoliceAttacked);
+ policeAttack();
}
//return false;
}
void SceneScriptHF05::PlayerWalkedIn() {
- if (Game_Flag_Query(662)) {
+ if (Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
int affectionTowardsActor = getAffectionTowardsActor();
- if (Game_Flag_Query(662)
+ if (Game_Flag_Query(kFlagHF01TalkToLovedOne)
&& affectionTowardsActor != -1
) {
Actor_Put_In_Set(affectionTowardsActor, kSetHF05);
@@ -297,27 +298,27 @@ void SceneScriptHF05::PlayerWalkedIn() {
}
}
- if (Game_Flag_Query(684)) {
- sub_4042E4();
+ if (Game_Flag_Query(kFlagHF05PoliceAttacked)) {
+ policeAttack();
} else if (Actor_Clue_Query(kActorMcCoy, kClueSpinnerKeys)
- || Game_Flag_Query(559)
+ || Game_Flag_Query(kFlagHF06SteelInterruption)
) {
- if ( Game_Flag_Query(559)
- && !Game_Flag_Query(663)
+ if ( Game_Flag_Query(kFlagHF06SteelInterruption)
+ && !Game_Flag_Query(kFlagHF05PoliceArrived)
) {
- Game_Flag_Set(663);
+ Game_Flag_Set(kFlagHF05PoliceArrived);
Music_Play(1, 40, 0, 2, -1, 0, 0);
Actor_Says(kActorOfficerGrayford, 200, kAnimationModeTalk);
Actor_Says(kActorOfficerGrayford, 210, kAnimationModeTalk);
Actor_Set_Goal_Number(kActorOfficerLeary, 420);
- if (sub_4048C0() == 3) {
- sub_403F0C();
- } else if (sub_4048C0() == 6) {
- sub_40410C();
+ if (getCompanionActor() == kActorDektora) {
+ talkWithDektora();
+ } else if (getCompanionActor() == kActorLucy) {
+ talkWithLucy();
}
}
} else {
- sub_403A34(affectionTowardsActor);
+ talkWithCrazylegs3(affectionTowardsActor);
}
} else if (Game_Flag_Query(kFlagHF01toHF05)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 399.0f, 40.63f, -85.0f, 0, false, false, 0);
@@ -573,7 +574,7 @@ int SceneScriptHF05::getAffectionTowardsActor() {
return -1;
}
-void SceneScriptHF05::sub_4042E4() {
+void SceneScriptHF05::policeAttack() {
Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Put_In_Set(kActorOfficerLeary, kSetHF05);
Actor_Set_At_XYZ(kActorOfficerLeary, 430.4f, 40.63f, -258.18f, 300);
@@ -586,7 +587,7 @@ void SceneScriptHF05::sub_4042E4() {
Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateUncover, true, kActorMcCoy, 4, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 100, 300, true);
}
-void SceneScriptHF05::sub_403F0C() {
+void SceneScriptHF05::talkWithDektora() {
Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
Actor_Says(kActorDektora, 2660, 12);
@@ -605,7 +606,7 @@ void SceneScriptHF05::sub_403F0C() {
Actor_Says_With_Pause(kActorMcCoy, 1780, 1.0f, 18);
}
-void SceneScriptHF05::sub_40410C() {
+void SceneScriptHF05::talkWithLucy() {
Actor_Face_Actor(kActorMcCoy, kActorLucy, true);
Actor_Face_Actor(kActorLucy, kActorMcCoy, true);
Actor_Says(kActorLucy, 400, 16);
@@ -623,7 +624,7 @@ void SceneScriptHF05::sub_40410C() {
Actor_Says_With_Pause(kActorMcCoy, 1780, 1.0f, 18);
}
-void SceneScriptHF05::sub_403A34(int affectionTowardsActor) {
+void SceneScriptHF05::talkWithCrazylegs3(int affectionTowardsActor) {
if (affectionTowardsActor != -1
&& Actor_Query_In_Set(kActorCrazylegs, kSetHF05)
) {
@@ -743,7 +744,7 @@ void SceneScriptHF05::addAmbientSounds() {
Ambient_Sounds_Add_Speech_Sound(38, 280, 5, 70, 7, 10, -50, 50, -101, -101, 1, 1);
}
-int SceneScriptHF05::sub_4048C0() {
+int SceneScriptHF05::getCompanionActor() {
if (Actor_Query_In_Set(kActorDektora, kSetHF05)
&& Actor_Query_Goal_Number(kActorDektora) != kGoalDektoraGone
) {
@@ -755,6 +756,7 @@ int SceneScriptHF05::sub_4048C0() {
) {
return kActorLucy;
}
+
return kActorMcCoy;
}
diff --git a/engines/bladerunner/script/scene/hf06.cpp b/engines/bladerunner/script/scene/hf06.cpp
index 19c1048..8e806aa 100644
--- a/engines/bladerunner/script/scene/hf06.cpp
+++ b/engines/bladerunner/script/scene/hf06.cpp
@@ -38,7 +38,7 @@ void SceneScriptHF06::InitializeScene() {
Ambient_Sounds_Add_Sound(376, 10, 70, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 10, 70, 50, 100, 0, 0, -101, -101, 0, 0);
- if (Game_Flag_Query(559)) {
+ if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
Scene_Loop_Set_Default(3);
addAmbientSounds();
} else {
@@ -115,7 +115,7 @@ bool SceneScriptHF06::ClickedOnActor(int actorId) {
) {
Actor_Face_Actor(kActorLucy, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorLucy, true);
- if (Game_Flag_Query(559)) {
+ if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
Actor_Says(kActorLucy, 390, 18);
Actor_Says(kActorMcCoy, 2115, 17);
}
@@ -124,7 +124,7 @@ bool SceneScriptHF06::ClickedOnActor(int actorId) {
) {
Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
- if (Game_Flag_Query(559)) {
+ if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
Actor_Says(kActorDektora, 100, 3);
Actor_Says(kActorMcCoy, 2115, 17);
}
@@ -208,7 +208,7 @@ void SceneScriptHF06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptHF06::PlayerWalkedIn() {
- if (Game_Flag_Query(662)) {
+ if (Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
int actorId = -1;
if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy
&& Actor_Query_Goal_Number(kActorLucy) != kGoalLucyGone
@@ -222,7 +222,7 @@ void SceneScriptHF06::PlayerWalkedIn() {
if (actorId != -1) {
Actor_Put_In_Set(actorId, kSetHF06);
- if (Game_Flag_Query(559)) {
+ if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
Actor_Set_At_XYZ(actorId, 173.67f, 367.93f, 446.04f, 229);
Async_Actor_Walk_To_XYZ(actorId, 173.67f, 367.93f, 394.04f, 0, false);
} else {
@@ -235,10 +235,10 @@ void SceneScriptHF06::PlayerWalkedIn() {
Loop_Actor_Travel_Stairs(kActorMcCoy, 2, true, kAnimationModeIdle);
Footstep_Sound_Override_Off();
- if ( Game_Flag_Query(662)
- && !Game_Flag_Query(559)
+ if ( Game_Flag_Query(kFlagHF01TalkToLovedOne)
+ && !Game_Flag_Query(kFlagHF06SteelInterruption)
) {
- sub_401EF4();
+ steelInterruption();
}
}
@@ -249,7 +249,7 @@ void SceneScriptHF06::PlayerWalkedOut() {
void SceneScriptHF06::DialogueQueueFlushed(int a1) {
}
-void SceneScriptHF06::sub_401EF4() {
+void SceneScriptHF06::steelInterruption() {
int actorId;
if (Actor_Query_In_Set(kActorDektora, kSetHF06)) {
@@ -277,8 +277,8 @@ void SceneScriptHF06::sub_401EF4() {
Actor_Says(kActorSteele, 280, 58);
Actor_Face_Actor(kActorMcCoy, kActorSteele, true);
Player_Set_Combat_Mode(true);
- Actor_Change_Animation_Mode(kActorMcCoy, 5);
- Actor_Change_Animation_Mode(kActorSteele, 7);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAim);
+ Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatWalk);
Loop_Actor_Walk_To_XYZ(kActorSteele, 92.0f, 367.93f, 107.0f, 0, false, false, 0);
Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle);
@@ -295,14 +295,14 @@ void SceneScriptHF06::sub_401EF4() {
Actor_Says(kActorSteele, 350, 58);
Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle);
Game_Flag_Set(kFlagNotUsed644);
- Actor_Set_Goal_Number(kActorSteele, 402);
+ Actor_Set_Goal_Number(kActorSteele, kGoalSteeleHF06Attack);
Actor_Face_Actor(kActorSteele, actorId, true);
Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatAttack);
Delay(500);
Scene_Loop_Set_Default(3);
Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
Sound_Play(562, 50, 0, 0, 50);
- Game_Flag_Set(559);
+ Game_Flag_Set(kFlagHF06SteelInterruption);
Scene_Exits_Disable();
Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, actorId, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
}
diff --git a/engines/bladerunner/script/scene/hf07.cpp b/engines/bladerunner/script/scene/hf07.cpp
index e35c461..f4e8cee 100644
--- a/engines/bladerunner/script/scene/hf07.cpp
+++ b/engines/bladerunner/script/scene/hf07.cpp
@@ -40,7 +40,7 @@ void SceneScriptHF07::InitializeScene() {
Ambient_Sounds_Add_Sound(304, 5, 40, 20, 33, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(305, 5, 40, 20, 33, -100, 100, -101, -101, 0, 0);
- if (Game_Flag_Query(368)) {
+ if (Game_Flag_Query(kFlagHF07Hole)) {
Scene_Loop_Set_Default(2);
} else {
Scene_Loop_Set_Default(0);
@@ -79,7 +79,7 @@ bool SceneScriptHF07::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 318.0f, 71.43f, -102.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagHF07toHF05);
- if (!Game_Flag_Query(662)) {
+ if (!Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
Actor_Face_Heading(kActorMcCoy, 0, false);
Footstep_Sound_Override_On(3);
Loop_Actor_Travel_Stairs(kActorMcCoy, 30, true, kAnimationModeIdle);
@@ -121,9 +121,9 @@ void SceneScriptHF07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptHF07::PlayerWalkedIn() {
- if (Game_Flag_Query(662)) {
+ if (Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
int actorId = getAffectionTowardsActor();
- if (Game_Flag_Query(662)
+ if (Game_Flag_Query(kFlagHF01TalkToLovedOne)
&& actorId != -1
) {
Actor_Put_In_Set(actorId, kSetHF07);
diff --git a/engines/bladerunner/script/scene/ma04.cpp b/engines/bladerunner/script/scene/ma04.cpp
index 5013bb5..b99cfcb 100644
--- a/engines/bladerunner/script/scene/ma04.cpp
+++ b/engines/bladerunner/script/scene/ma04.cpp
@@ -365,17 +365,19 @@ void SceneScriptMA04::phoneCallWithDektora() {
Actor_Says(kActorMcCoy, 2495, 0);
Actor_Says(kActorDektora, 340, 3);
Actor_Says(kActorDektora, 350, 3);
- if (Game_Flag_Query(kFlagCrazylegsArrested) || Actor_Query_Goal_Number(kActorCrazylegs) == 2) {
- answer = 1170;
+ if (Game_Flag_Query(kFlagCrazylegsArrested)
+ || Actor_Query_Goal_Number(kActorCrazylegs) == 2
+ ) {
+ answer = 1170; // CLOVIS
} else {
Dialogue_Menu_Clear_List();
- DM_Add_To_List_Never_Repeat_Once_Selected(1160, 1, 1, 2);
- DM_Add_To_List_Never_Repeat_Once_Selected(1170, 2, 1, 1);
+ DM_Add_To_List_Never_Repeat_Once_Selected(1160, 1, 1, 2); // OK
+ DM_Add_To_List_Never_Repeat_Once_Selected(1170, 2, 1, 1); // CLOVIS
Dialogue_Menu_Appear(320, 240);
answer = Dialogue_Menu_Query_Input();
Dialogue_Menu_Disappear();
}
- if (answer == 1160) {
+ if (answer == 1160) { // OK
Actor_Says(kActorMcCoy, 2500, 19);
Actor_Says(kActorDektora, 360, 3);
Actor_Says(kActorMcCoy, 2510, 0);
@@ -418,7 +420,9 @@ void SceneScriptMA04::phoneCallWithLucy() {
Actor_Says(kActorLucy, 570, 3);
Actor_Says(kActorMcCoy, 2560, 17);
Actor_Says(kActorLucy, 580, 3);
- if (Game_Flag_Query(kFlagCrazylegsArrested) || Actor_Query_Goal_Number(kActorCrazylegs) == 2) {
+ if (Game_Flag_Query(kFlagCrazylegsArrested)
+ || Actor_Query_Goal_Number(kActorCrazylegs) == 2
+ ) {
Actor_Says(kActorLucy, 630, 3);
Actor_Says_With_Pause(kActorMcCoy, 2575, 0.0f, 15);
if (!Game_Flag_Query(kFlagDirectorsCut)) {
diff --git a/engines/bladerunner/script/scene/ug01.cpp b/engines/bladerunner/script/scene/ug01.cpp
index ced4378..e9652f5 100644
--- a/engines/bladerunner/script/scene/ug01.cpp
+++ b/engines/bladerunner/script/scene/ug01.cpp
@@ -170,7 +170,7 @@ void SceneScriptUG01::PlayerWalkedIn() {
Game_Flag_Reset(kFlagRC03toUG01);
}
- if (Actor_Query_Goal_Number(kActorLucy) == 310) {
+ if (Actor_Query_Goal_Number(kActorLucy) == kGoalLucyUG01Wait) {
Music_Play(21, 35, 0, 3, -1, 0, 0);
Actor_Set_Goal_Number(kActorLucy, 311);
}
diff --git a/engines/bladerunner/script/scene/ug05.cpp b/engines/bladerunner/script/scene/ug05.cpp
index 1062f45..a4b88ee 100644
--- a/engines/bladerunner/script/scene/ug05.cpp
+++ b/engines/bladerunner/script/scene/ug05.cpp
@@ -26,8 +26,8 @@ namespace BladeRunner {
void SceneScriptUG05::InitializeScene() {
if (Game_Flag_Query(kFlagHF07toUG06)) {
- if ( Game_Flag_Query(663)
- && !Game_Flag_Query(368)
+ if ( Game_Flag_Query(kFlagHF05PoliceArrived)
+ && !Game_Flag_Query(kFlagHF07Hole)
) {
Setup_Scene_Information(-356.35f, 132.77f, -1092.36f, 389);
} else {
@@ -39,11 +39,11 @@ void SceneScriptUG05::InitializeScene() {
}
Scene_Exit_Add_2D_Exit(0, 215, 240, 254, 331, 3);
- if (!Game_Flag_Query(663)) {
+ if (!Game_Flag_Query(kFlagHF05PoliceArrived)) {
Scene_Exit_Add_2D_Exit(1, 303, 422, 639, 479, 2);
}
- if (!Game_Flag_Query(663)
- || Game_Flag_Query(368)
+ if (!Game_Flag_Query(kFlagHF05PoliceArrived)
+ || Game_Flag_Query(kFlagHF07Hole)
) {
Scene_Exit_Add_2D_Exit(2, 352, 256, 393, 344, 0);
}
@@ -69,7 +69,7 @@ void SceneScriptUG05::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(368)) {
+ if (Game_Flag_Query(kFlagHF07Hole)) {
Scene_Loop_Set_Default(2);
} else {
Scene_Loop_Set_Default(0);
@@ -77,7 +77,7 @@ void SceneScriptUG05::InitializeScene() {
}
void SceneScriptUG05::SceneLoaded() {
- if (!Game_Flag_Query(368)) {
+ if (!Game_Flag_Query(kFlagHF07Hole)) {
Unobstacle_Object("DROPPED CAR OBSTACL", true);
}
Obstacle_Object("VANBODY", true);
@@ -94,10 +94,10 @@ bool SceneScriptUG05::ClickedOn3DObject(const char *objectName, bool a2) {
bool SceneScriptUG05::ClickedOnActor(int actorId) {
if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, actorId, 30, true, false)) {
Actor_Face_Actor(kActorMcCoy, actorId, true);
- int affectionTowardsActor = getAffectionTowardsActor();
+
if ( actorId == kActorOfficerGrayford
- && Game_Flag_Query(368)
- && !Game_Flag_Query(683)
+ && Game_Flag_Query(kFlagHF07Hole)
+ && !Game_Flag_Query(kFlagUG05TalkToPolice)
) {
Actor_Says(kActorOfficerGrayford, 220, -1);
Actor_Says(kActorMcCoy, 5540, 14);
@@ -105,11 +105,13 @@ bool SceneScriptUG05::ClickedOnActor(int actorId) {
Actor_Says(kActorMcCoy, 5545, 17);
Actor_Says(kActorOfficerGrayford, 240, -1);
Actor_Says(kActorMcCoy, 5550, 3);
- Game_Flag_Set(683);
+ Game_Flag_Set(kFlagUG05TalkToPolice);
return false;
}
+
+ int affectionTowardsActor = getAffectionTowardsActor();
if (actorId == affectionTowardsActor) {
- sub_402218();
+ endGame();
return true;
}
return false;
@@ -123,8 +125,8 @@ bool SceneScriptUG05::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptUG05::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if ( Game_Flag_Query(663)
- && !Game_Flag_Query(368)
+ if ( Game_Flag_Query(kFlagHF05PoliceArrived)
+ && !Game_Flag_Query(kFlagHF07Hole)
) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -356.35f, 132.77f, -1092.36f, 0, false, false, 0);
Game_Flag_Set(kFlagUG06toHF07);
@@ -147,12 +149,12 @@ bool SceneScriptUG05::ClickedOnExit(int exitId) {
}
if (exitId == 2) {
- if (!Game_Flag_Query(662)) {
+ if (!Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.37f, -1500.0f, 0, true, false, 0)) {
- if (!Game_Flag_Query(522)) {
+ if (!Game_Flag_Query(kFlagUG05TalkAboutTunnel)) {
Actor_Voice_Over(2600, kActorVoiceOver);
Actor_Voice_Over(2610, kActorVoiceOver);
- Game_Flag_Set(522);
+ Game_Flag_Set(kFlagUG05TalkAboutTunnel);
}
return true;
}
@@ -165,7 +167,7 @@ bool SceneScriptUG05::ClickedOnExit(int exitId) {
v2 = Loop_Actor_Walk_To_Actor(kActorMcCoy, affectionTowardsActor, 30, true, false) != 0;
}
if (!v2) {
- sub_402218();
+ endGame();
return true;
}
}
@@ -184,13 +186,15 @@ void SceneScriptUG05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptUG05::PlayerWalkedIn() {
- if (Game_Flag_Query(663)) {
- if (Game_Flag_Query(368)) {
+ if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
+ if (Game_Flag_Query(kFlagHF07Hole)) {
Music_Stop(2);
+
Actor_Put_In_Set(kActorOfficerGrayford, kSetUG05);
Actor_Set_At_XYZ(kActorOfficerGrayford, 4.22f, -1.37f, -925.0f, 750);
Actor_Set_Goal_Number(kActorOfficerGrayford, 599);
- Actor_Retired_Here(kActorOfficerGrayford, 70, 36, 1, -1);
+ Actor_Retired_Here(kActorOfficerGrayford, 70, 36, true, -1);
+
int affectionTowardsActor = getAffectionTowardsActor();
if (affectionTowardsActor == kActorDektora) {
Actor_Put_In_Set(kActorDektora, kSetUG05);
@@ -206,9 +210,10 @@ void SceneScriptUG05::PlayerWalkedIn() {
Actor_Put_In_Set(kActorOfficerLeary, kSetUG05);
Actor_Set_At_XYZ(kActorOfficerLeary, 0.0f, -1.37f, -1400.0f, 768);
}
+
if (!Actor_Query_In_Set(kActorOfficerGrayford, kSetUG05)) {
ADQ_Flush();
- ADQ_Add(kActorOfficerGrayford, 280, 3);
+ ADQ_Add(kActorOfficerGrayford, 280, kAnimationModeTalk);
Actor_Put_In_Set(kActorOfficerGrayford, kSetUG05);
Actor_Set_At_XYZ(kActorOfficerGrayford, -16.0f, -1.37f, -960.0f, 768);
}
@@ -216,15 +221,17 @@ void SceneScriptUG05::PlayerWalkedIn() {
}
if (Game_Flag_Query(kFlagHF07toUG06)) {
- if (Game_Flag_Query(663) && !Game_Flag_Query(368)) {
+ if ( Game_Flag_Query(kFlagHF05PoliceArrived)
+ && !Game_Flag_Query(kFlagHF07Hole)
+ ) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -288.35f, 132.77f, -1092.36f, 0, true, false, 0);
} else {
- Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 0, kAnimationModeIdle);
+ Loop_Actor_Travel_Stairs(kActorMcCoy, 2, false, kAnimationModeIdle);
}
}
- if (Game_Flag_Query(663)) {
- Game_Flag_Query(368); // bug in game?
+ if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
+ Game_Flag_Query(kFlagHF07Hole); // bug in game?
}
Game_Flag_Reset(kFlagHF07toUG06);
}
@@ -251,7 +258,7 @@ int SceneScriptUG05::getAffectionTowardsActor() {
return -1;
}
-void SceneScriptUG05::sub_402218() {
+void SceneScriptUG05::endGame() {
int affectionTowardsActor = getAffectionTowardsActor();
if (affectionTowardsActor != -1) {
Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
@@ -268,24 +275,20 @@ void SceneScriptUG05::sub_402218() {
Ambient_Sounds_Remove_All_Looping_Sounds(1);
if (affectionTowardsActor == kActorLucy) {
- if (Game_Flag_Query(kFlagLucyIsReplicant)) {
- if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
- Outtake_Play(kOuttakeEnd1B, false, -1);
- } else {
- Outtake_Play(kOuttakeEnd1C, false, -1);
- }
- } else {
+ if (!Game_Flag_Query(kFlagLucyIsReplicant)) {
Outtake_Play(kOuttakeEnd1A, false, -1);
+ } else if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
+ Outtake_Play(kOuttakeEnd1B, false, -1);
+ } else {
+ Outtake_Play(kOuttakeEnd1C, false, -1);
}
} else if (affectionTowardsActor == kActorDektora) {
- if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
- if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
- Outtake_Play(kOuttakeEnd1E, false, -1);
- } else {
- Outtake_Play(kOuttakeEnd1F, false, -1);
- }
- } else {
+ if (!Game_Flag_Query(kFlagDektoraIsReplicant)) {
Outtake_Play(kOuttakeEnd1D, false, -1);
+ } else if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
+ Outtake_Play(kOuttakeEnd1E, false, -1);
+ } else {
+ Outtake_Play(kOuttakeEnd1F, false, -1);
}
} else {
Outtake_Play(kOuttakeEnd3, false, -1);
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index df8fe1a..a28bee3 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -217,17 +217,17 @@ DECLARE_SCRIPT(HF05)
void talkWithCrazyLegs2();
void dialogueWithCrazylegs1();
void dialogueWithCrazylegs2();
- void sub_403A34(int actorId);
- void sub_403F0C();
- void sub_40410C();
- void sub_4042E4();
+ void talkWithCrazylegs3(int actorId);
+ void talkWithDektora();
+ void talkWithLucy();
+ void policeAttack();
void addAmbientSounds();
int getAffectionTowardsActor();
- int sub_4048C0();
+ int getCompanionActor();
END_SCRIPT
DECLARE_SCRIPT(HF06)
- void sub_401EF4();
+ void steelInterruption();
void addAmbientSounds();
END_SCRIPT
@@ -459,7 +459,7 @@ END_SCRIPT
DECLARE_SCRIPT(UG05)
int getAffectionTowardsActor();
- void sub_402218();
+ void endGame();
END_SCRIPT
DECLARE_SCRIPT(UG06)
More information about the Scummvm-git-logs
mailing list