[Scummvm-git-logs] scummvm master -> 0c7077cab93131a0902ccb3b5e1a85e2b5557908
peterkohaut
peterkohaut at users.noreply.github.com
Sat Jan 12 18:20:26 CET 2019
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2f0fb70a27 BLADERUNNER: Fixed enabling combat mode in scripts
0c7077cab9 BLADERUNNER: Added debugging output for scripts
Commit: 2f0fb70a27726d2c4a233d394c1cb8ad375ad09d
https://github.com/scummvm/scummvm/commit/2f0fb70a27726d2c4a233d394c1cb8ad375ad09d
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-12T18:16:52+01:00
Commit Message:
BLADERUNNER: Fixed enabling combat mode in scripts
Fixed Zuben chase.
Added name of some flags used in the China town.
Changed paths:
engines/bladerunner/bladerunner.h
engines/bladerunner/game_constants.h
engines/bladerunner/game_info.cpp
engines/bladerunner/script/ai/mccoy.cpp
engines/bladerunner/script/ai/transient.cpp
engines/bladerunner/script/ai/zuben.cpp
engines/bladerunner/script/ai_script.h
engines/bladerunner/script/init_script.cpp
engines/bladerunner/script/scene/ct01.cpp
engines/bladerunner/script/scene/ct02.cpp
engines/bladerunner/script/scene/ct03.cpp
engines/bladerunner/script/scene/ct04.cpp
engines/bladerunner/script/scene/ct05.cpp
engines/bladerunner/script/scene/ct06.cpp
engines/bladerunner/script/scene/ct07.cpp
engines/bladerunner/script/scene/ct08.cpp
engines/bladerunner/script/scene/ct12.cpp
engines/bladerunner/script/scene/ma01.cpp
engines/bladerunner/script/scene/nr01.cpp
engines/bladerunner/script/scene/ug09.cpp
engines/bladerunner/script/scene_script.h
engines/bladerunner/script/script.cpp
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 780c32b..bb721c8 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -37,7 +37,7 @@
//TODO: remove these when game is playable
#define BLADERUNNER_DEBUG_CONSOLE 0
-#define BLADERUNNER_DEBUG_GAME 0
+#define BLADERUNNER_DEBUG_GAME 1
namespace Common {
struct Event;
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 0a9082a..b584a80 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -451,6 +451,8 @@ enum Flags {
kFlagPS02toPS05 = 22,
kFlagPS06toPS05 = 23,
kFlagIntroPlayed = 24,
+ kFlagCT01Visited = 25,
+ kFlagCT01ZubenLeft = 29,
kFlagMA02toMA06 = 33,
kFlagMA06ToMA02 = 34,
kFlagMA02ToMA04 = 35,
@@ -466,10 +468,26 @@ enum Flags {
kFlagSadikIsReplicant = 48,
kFlagMA07toMA06 = 57,
kFlagMA06toMA07 = 58,
+ kFlagCT02ZubenTalk = 59,
kFlagChapter1Ended = 61,
kFlagMA04toMA05 = 62,
kFlagMA05toMA04 = 63,
+ kFlagCT02toCT01 = 68,
+ kFlagCT02toCT03 = 69,
+ kFlagCT03toCT02 = 70,
+ kFlagCT03toCT01 = 71,
+ kFlagCT03toCT04 = 72,
+ kFlagCT04toCT03 = 73,
+ kFlagCT04toCT05 = 74,
+ kFlagCT05toCT04 = 75,
kFlagCT05toCT12 = 76,
+ kFlagCT05toCT06 = 77,
+ kFlagCT06toCT05 = 78,
+ kFlagCT06toCT08 = 79,
+ kFlagCT12toCT01 = 88,
+ kFlagCT12toCT03 = 89,
+ kFlagCT12toCT05 = 90,
+ kFlagCT12toCT11 = 91,
kFlagWarehouseOpen = 94,
kFlagKleinTalkPaintTransfer = 104,
kFlagKleinTalkChromeDebris = 105,
@@ -481,6 +499,7 @@ enum Flags {
kFlagPlayerHasOfficersStatement = 126,
kFlagPlayerHasPaintTransfer = 127,
kFlagPlayerHasChromeDebris = 128,
+ kFlagZubenCheckOnMcCoy = 129,
kFlagPS02toPS01 = 130,
kFlagPS02toPS07 = 131,
kFlagPS02toPS03 = 132,
@@ -488,6 +507,7 @@ enum Flags {
kFlagPS05toPS06 = 136,
kFlagKleinInsulted = 138,
kFlagRC02LucyDeskAvailable = 141,
+ kFlagCT07toCT06 = 144,
kFlagChapter1Ending = 146,
kFlagChopstickWrapperTaken = 147,
kFlagCandyTaken = 148,
@@ -500,6 +520,9 @@ enum Flags {
kFlagShellCasingsTaken = 190,
kFlagBoughtHowieLeeFood = 192,
kFlagPS15toPS05 = 204,
+ kFlagCT02ZubenFled = 210,
+ kFlagCT02toCT01walk = 234,
+ kFlagArrivedFromSpinner = 247,
kFlagSpinnerToCT01 = 248,
kFlagSpinnerToRC01 = 249,
kFlagSpinnerToMA01 = 250,
@@ -509,14 +532,17 @@ enum Flags {
kFlagSpinnerToBB01 = 254,
kFlagSpinnerToNR01 = 255,
kFlagSpinnerToHF01 = 256,
+ kFlagCT02PotTipped = 293,
kFlagGaffSpinnerCT12 = 294,
kFlagSpinnerToTB02 = 307,
kFlagDirectorsCut = 378,
KFlagMcCoyAndOfficerLearyTalking = 392,
KFlagMcCoyAndOfficerLearyArtMetaphor = 397,
+ kFlagCT12ToUG09 = 443,
kFlagGenericWalkerWaiting = 443,
kFlagMaggieIsHurt = 461,
kFlagKIAPrivacyAddon = 487,
+ kFlagCT07ZubenAttack = 516,
kFlagKIAPrivacyAddonIntro = 599,
kFlagMcCoySleeping = 647,
kFlagPhoneMessageFromClovis = 649,
@@ -529,6 +555,8 @@ enum Flags {
kFlagPS05TV4 = 692,
kFlagRC51Discovered = 709,
kFlagMA04WatchedTV = 711,
+ kFlagCT02McCoyFell = 719,
+ kFlagCT02McCoyCombatReady = 720,
kFlagZubenBountyPaid = 723
};
@@ -642,11 +670,11 @@ enum Scenes {
kSceneBB11 = 12,
kSceneCT01 = 13, // Chinatown - Howie Lee Restaurant
kSceneCT02 = 14, // Chinatown - Kitchen
- kSceneCT03 = 15, // Chinatown - Back Alley
- kSceneCT04 = 16, // Chinatown - Dumpster
- kSceneCT05 = 17, // Chinatown - Warehouse
+ kSceneCT03 = 15, // Chinatown - Back alley
+ kSceneCT04 = 16, // Chinatown - Back alley - dumpster
+ kSceneCT05 = 17, // Chinatown - Warehouse - Inside
kSceneCT06 = 18, // Chinatown - Passage
- kSceneCT07 = 19,
+ kSceneCT07 = 19, // Chinatown - Passage form back
kSceneCT08 = 20, // Chinatown - Yukon Hotel - Backroom
kSceneCT09 = 21, // Chinatown - Yukon Hotel - Lobby
kSceneCT10 = 22, // Chinatown - Yukon Hotel - Room
@@ -927,6 +955,32 @@ enum PoliceMazeTrackInstruction {
kPMTI26 = 0
};
+enum GoalMcCoy {
+ kGoalMcCoyDefault = 0,
+ kGoalMcCoyDodge = 1,
+};
+
+enum GoalTransient {
+ kGoalTransientDefault = 0,
+};
+
+enum GoalZuben {
+ kGoalZubenDefault = 0,
+ kGoalZubenCT01Leave = 1,
+ kGoalZubenCT02Flee = 2,
+ kGoalZubenDie = 6,
+ kGoalZubenCT02PushPot = 8,
+ kGoalZubenCT02RunToDoor = 9,
+ kGoalZubenCT02OpenDoor = 10,
+ kGoalZubenCT06JumpDown = 11,
+ kGoalZubenCT06AttackMcCoy = 12,
+ kGoalZubenCT06Hide = 13,
+ kGoalZubenCT02PotDodgeCheck = 14,
+ kGoalZubenFled = 20,
+ kGoalZubenMA01AttackMcCoy = 21
+
+};
+
} // End of namespace BladeRunner
#endif
diff --git a/engines/bladerunner/game_info.cpp b/engines/bladerunner/game_info.cpp
index 9dc261b..f777a86 100644
--- a/engines/bladerunner/game_info.cpp
+++ b/engines/bladerunner/game_info.cpp
@@ -109,22 +109,22 @@ bool GameInfo::open(const Common::String &name) {
#if BLADERUNNER_DEBUG_CONSOLE
debug("\nScene names\n----------------");
for (uint32 i = 0; i != _sceneNamesCount; ++i) {
- debug("%3d: %s", i, _sceneNames[i]);
+ debug("%3d: %s", i, _sceneNames[i].c_str());
}
debug("\nSfx tracks\n----------------");
for (uint32 i = 0; i != _sfxTrackCount; ++i) {
- debug("%3d: %s", i, _sfxTracks[i]);
+ debug("%3d: %s", i, _sfxTracks[i].c_str());
}
debug("\nMusic tracks\n----------------");
for (uint32 i = 0; i != _musicTrackCount; ++i) {
- debug("%3d: %s", i, _musicTracks[i]);
+ debug("%3d: %s", i, _musicTracks[i].c_str());
}
debug("\nOuttakes\n----------------");
for (uint32 i = 0; i != _outtakeCount; ++i) {
- debug("%2d: %s.VQA", i, _outtakes[i]);
+ debug("%2d: %s.VQA", i, _outtakes[i].c_str());
}
#endif
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp
index 1e3dff8..98b7550 100644
--- a/engines/bladerunner/script/ai/mccoy.cpp
+++ b/engines/bladerunner/script/ai/mccoy.cpp
@@ -272,8 +272,8 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) {
case 0:
return true;
- case 1:
- sub_4058B0();
+ case kGoalMcCoyDodge:
+ dodge();
return true;
case 2:
sub_405920();
@@ -1258,7 +1258,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
return true;
case 15:
_animationState = 16;
- _animationFrame = 16 - 16 * _animationFrame / 12;
+ _animationFrame = 16 - ((16 * _animationFrame) / 12);
return true;
case 16:
case 25:
@@ -1276,16 +1276,16 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
}
} else {
if (_animationFrame <= 6) {
- int v3 = Random_Query(0, 2);
- int v4 = 0;
- if (v3 == 0) {
- v4 = 595;
- } else if (v3 == 1) {
- v4 = 594;
- } else if (v3 == 2) {
- v4 = 593;
+ int random = Random_Query(0, 2);
+ int soundId = 0;
+ if (random == 0) {
+ soundId = 595;
+ } else if (random == 1) {
+ soundId = 594;
+ } else if (random == 2) {
+ soundId = 593;
}
- Ambient_Sounds_Play_Sound(v4, 39, 0, 0, 99);
+ Ambient_Sounds_Play_Sound(soundId, 39, 0, 0, 99);
}
_animationState = 57;
_animationFrame = 0;
@@ -1333,7 +1333,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
break;
case 16:
_animationState = 15;
- _animationFrame = 12 - 12 * _animationFrame / 16;
+ _animationFrame = 12 - ((12 * _animationFrame) / 16);
break;
case 17:
case 20:
@@ -1490,18 +1490,7 @@ bool AIScriptMcCoy::ChangeAnimationMode(int mode) {
}
break;
case 20:
- {
- int setId = Actor_Query_Which_Set_In(kActorMcCoy);
- if (setId == kSetCT02) {
- _animationState = 51;
- _animationFrame = 0;
- Player_Loses_Control();
- Game_Flag_Set(210);
- } else if (setId == kSetRC03 || setId == kSetUG15) {
- _animationState = 56;
- _animationFrame = 0;
- }
- }
+ dodge();
break;
case kAnimationModeHit:
switch (_animationState) {
@@ -1815,13 +1804,13 @@ void AIScriptMcCoy::sub_405800() {
}
}
-void AIScriptMcCoy::sub_4058B0() {
+void AIScriptMcCoy::dodge() {
int setId = Actor_Query_Which_Set_In(kActorMcCoy);
if (setId == kSetCT02) {
_animationState = 51;
_animationFrame = 0;
Player_Loses_Control();
- Game_Flag_Set(210);
+ Game_Flag_Set(kFlagCT02ZubenFled);
} else if (setId == kSetRC03 || setId == kSetUG15) {
_animationState = 56;
_animationFrame = 0;
diff --git a/engines/bladerunner/script/ai/transient.cpp b/engines/bladerunner/script/ai/transient.cpp
index 980dddb..3c76e86 100644
--- a/engines/bladerunner/script/ai/transient.cpp
+++ b/engines/bladerunner/script/ai/transient.cpp
@@ -35,7 +35,7 @@ void AIScriptTransient::Initialize() {
Actor_Put_In_Set(kActorTransient, kSetCT03_CT04);
Actor_Set_At_XYZ(kActorTransient, -171.41f, -621.3f, 736.52f, 580);
- Actor_Set_Goal_Number(kActorTransient, 0);
+ Actor_Set_Goal_Number(kActorTransient, kGoalTransientDefault);
Actor_Set_Targetable(kActorTransient, true);
}
@@ -44,7 +44,7 @@ bool AIScriptTransient::Update() {
Actor_Put_In_Set(kActorTransient, kSetFreeSlotG);
Actor_Set_At_Waypoint(kActorTransient, 39, false);
}
- if (Global_Variable_Query(kVariableChapter) == 2 && (Actor_Query_Goal_Number(kActorTransient) == 0 || Actor_Query_Goal_Number(kActorTransient) == 10)) {
+ if (Global_Variable_Query(kVariableChapter) == 2 && (Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault || Actor_Query_Goal_Number(kActorTransient) == 10)) {
Actor_Set_Goal_Number(kActorTransient, 200);
}
if (Global_Variable_Query(kVariableChapter) == 3 && Game_Flag_Query(169) && Game_Flag_Query(170) && !Game_Flag_Query(171) && !Game_Flag_Query(172)) {
@@ -83,7 +83,7 @@ void AIScriptTransient::TimerExpired(int timer) {
}
}
if (timer == 1) {
- if (Actor_Query_Goal_Number(kActorTransient) == 0) {
+ if (Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault) {
Actor_Set_Goal_Number(kActorTransient, 10);
Actor_Change_Animation_Mode(kActorTransient, kAnimationModeIdle);
}
diff --git a/engines/bladerunner/script/ai/zuben.cpp b/engines/bladerunner/script/ai/zuben.cpp
index e0f69be..9b99e2c 100644
--- a/engines/bladerunner/script/ai/zuben.cpp
+++ b/engines/bladerunner/script/ai/zuben.cpp
@@ -42,7 +42,7 @@ void AIScriptZuben::Initialize() {
_animationFrameTarget1 = 2;
Actor_Put_In_Set(kActorZuben, kSetCT01_CT12);
Actor_Set_At_XYZ(kActorZuben, -165.01f, -6.5f, 413.12f, 103);
- Actor_Set_Goal_Number(kActorZuben, 0);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenDefault);
}
bool AIScriptZuben::Update() {
@@ -52,20 +52,20 @@ bool AIScriptZuben::Update() {
Actor_Set_At_Waypoint(kActorZuben, 41, 0);
}
}
- if (Actor_Query_Goal_Number(kActorZuben) == 0 && Player_Query_Current_Scene() == kSceneCT01 && !Game_Flag_Query(129) ) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault && Player_Query_Current_Scene() == kSceneCT01 && !Game_Flag_Query(kFlagZubenCheckOnMcCoy) ) {
AI_Countdown_Timer_Reset(kActorZuben, 2);
AI_Countdown_Timer_Start(kActorZuben, 2, 30);
- Game_Flag_Set(129);
+ Game_Flag_Set(kFlagZubenCheckOnMcCoy);
return true;
}
- if (Actor_Query_Goal_Number(kActorZuben) == 0 && Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 48 && Actor_Query_Is_In_Current_Set(kActorZuben)) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault && Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 48 && Actor_Query_Is_In_Current_Set(kActorZuben)) {
Actor_Face_Actor(kActorZuben, kActorHowieLee, true);
Actor_Says(kActorZuben, 0, 14);
if (Random_Query(1, 3) == 1) {
Actor_Clue_Acquire(kActorZuben, kClueMcCoysDescription, true, -1);
}
- Game_Flag_Set(29);
- Actor_Set_Goal_Number(kActorZuben, 1);
+ Game_Flag_Set(kFlagCT01ZubenLeft);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT01Leave);
return true;
}
if (Global_Variable_Query(kVariableChapter) >= 4 && !Game_Flag_Query(kFlagZubenRetired) && Actor_Query_Goal_Number(kActorZuben) < 200) {
@@ -78,7 +78,7 @@ bool AIScriptZuben::Update() {
Actor_Set_Goal_Number(kActorZuben, 400);
return true;
}
- if (Actor_Query_Goal_Number(kActorZuben) == 12 && Player_Query_Current_Scene() == kSceneCT07) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06AttackMcCoy && Player_Query_Current_Scene() == kSceneCT07) {
AI_Countdown_Timer_Reset(kActorZuben, 0);
Game_Flag_Set(kFlagWarehouseOpen);
Actor_Set_Targetable(kActorZuben, true);
@@ -87,32 +87,32 @@ bool AIScriptZuben::Update() {
}
return true;
}
- if (Actor_Query_Goal_Number(kActorZuben) == 14 && !Game_Flag_Query(210)) {
- Game_Flag_Set(210);
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02PotDodgeCheck && !Game_Flag_Query(kFlagCT02ZubenFled)) {
+ Game_Flag_Set(kFlagCT02ZubenFled);
return true;
}
return false;
}
void AIScriptZuben::TimerExpired(int timer) {
- if (timer == 2) {
- if (Actor_Query_Goal_Number(kActorZuben) == 0 && Player_Query_Current_Scene() == kSceneCT01 && Random_Query(1, 3) < 3) {
+ if (timer == 2) { // Check on McCoy every 30s
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault && Player_Query_Current_Scene() == kSceneCT01 && Random_Query(1, 3) < 3) {
Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -1);
}
- Game_Flag_Reset(129);
+ Game_Flag_Reset(kFlagZubenCheckOnMcCoy);
// return true;
} else if (timer == 1) {
- if (Actor_Query_Goal_Number(kActorZuben) == 2) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee) { // Zuben fleeing, after 10s
Music_Stop(10);
- Actor_Set_Goal_Number(kActorZuben, 13);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06Hide);
AI_Countdown_Timer_Reset(kActorZuben, 1);
// return true;
}
- } else if (timer == 0) {
+ } else if (timer == 0) { // Zuben fleeing, after 70s
if (Player_Query_Current_Set() != kSetCT01_CT12) {
Music_Stop(2);
}
- Actor_Set_Goal_Number(kActorZuben, 20);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenFled); // Let Zuben flee completly, he will catch McCoy on MA01
AI_Countdown_Timer_Reset(kActorZuben, 0);
// return true;
}
@@ -120,24 +120,24 @@ void AIScriptZuben::TimerExpired(int timer) {
}
void AIScriptZuben::CompletedMovementTrack() {
- if (Actor_Query_Goal_Number(kActorZuben) == 2 && Game_Flag_Query(719)) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee && Game_Flag_Query(kFlagCT02McCoyFell)) {
Set_Enter(kSetCT03_CT04, kSceneCT03);
}
if (Actor_Query_Goal_Number(kActorZuben) == 3) {
Actor_Set_Goal_Number(kActorZuben, 5);
//return true;
- } else if (Actor_Query_Goal_Number(kActorZuben) == 13 && Game_Flag_Query(719)) {
+ } else if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide && Game_Flag_Query(kFlagCT02McCoyFell)) {
AI_Countdown_Timer_Reset(kActorZuben, 0);
- Game_Flag_Reset(719);
- Game_Flag_Set(720);
- Game_Flag_Set(721);
+ Game_Flag_Reset(kFlagCT02McCoyFell);
+ Game_Flag_Set(kFlagCT02McCoyCombatReady);
+ Game_Flag_Set(721); // not used anywhere
Music_Stop(2);
- Actor_Set_Goal_Number(kActorZuben, 20);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenFled);
Set_Enter(kSetCT02, kSceneCT02);
//return true;
- } else if (Actor_Query_Goal_Number(kActorZuben) == 9) {
- Actor_Set_Goal_Number(kActorZuben, 10);
+ } else if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02RunToDoor) {
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02OpenDoor);
//return true;
} else {
if (Actor_Query_Goal_Number(kActorZuben) == 5) {
@@ -151,7 +151,7 @@ void AIScriptZuben::CompletedMovementTrack() {
Actor_Set_Goal_Number(kActorGaff, 1);
Set_Enter(kSetCT06, kSceneCT06);
}
- if (Actor_Query_Goal_Number(kActorZuben) == 21) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenMA01AttackMcCoy) {
Non_Player_Actor_Combat_Mode_On(kActorZuben, kActorCombatStateIdle, false, kActorMcCoy, 6, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 15, 300, false);
}
int goal = Actor_Query_Goal_Number(kActorZuben);
@@ -218,9 +218,9 @@ void AIScriptZuben::OtherAgentExitedThisScene(int otherActorId) {
}
void AIScriptZuben::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
- if (otherActorId == kActorMcCoy && !combatMode && Game_Flag_Query(516) && !Game_Flag_Query(712)) {
+ if (otherActorId == kActorMcCoy && !combatMode && Game_Flag_Query(kFlagCT07ZubenAttack) && !Game_Flag_Query(712)) {
Non_Player_Actor_Combat_Mode_Off(kActorZuben);
- Game_Flag_Reset(516);
+ Game_Flag_Reset(kFlagCT07ZubenAttack);
AI_Movement_Track_Flush(kActorZuben);
Actor_Says(kActorMcCoy, 455, 18);
Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, 5);
@@ -276,14 +276,14 @@ int AIScriptZuben::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) {
- case 1:
+ case kGoalZubenCT01Leave:
AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append(kActorZuben, 86, 0);
AI_Movement_Track_Append(kActorZuben, 106, 0);
AI_Movement_Track_Append_With_Facing(kActorZuben, 45, 0, 481);
AI_Movement_Track_Repeat(kActorZuben);
return false;
- case 2:
+ case kGoalZubenCT02Flee:
AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 84, 0);
AI_Movement_Track_Append_Run(kActorZuben, 85, 0);
@@ -321,11 +321,11 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append_Run(kActorZuben, 33, 0);
AI_Movement_Track_Repeat(kActorZuben);
return false;
- case 6:
+ case kGoalZubenDie:
Game_Flag_Set(kFlagZubenRetired);
Game_Flag_Set(31);
if (Actor_Query_In_Set(kActorZuben, kSetCT07)) {
- Game_Flag_Set(144);
+ Game_Flag_Set(kFlagCT07toCT06);
Actor_Set_Goal_Number(kActorGaff, 1);
Set_Enter(kSetCT06, kSceneCT06);
} else if (Actor_Query_In_Set(kActorZuben, kSetMA01)) {
@@ -334,28 +334,28 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
}
Actor_Set_Goal_Number(kActorZuben, 599);
return false;
- case 8:
+ case kGoalZubenCT02PushPot:
_animationFrame = 0;
_animationState = 26;
return false;
- case 9:
+ case kGoalZubenCT02RunToDoor:
AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 46, 0);
AI_Movement_Track_Repeat(kActorZuben);
return false;
- case 10:
+ case kGoalZubenCT02OpenDoor:
Actor_Face_Heading(kActorZuben, kActorMcCoy, false);
_animationFrame = 0;
_animationState = 27;
return false;
- case 11:
+ case kGoalZubenCT06JumpDown:
AI_Countdown_Timer_Reset(kActorZuben, 0);
Actor_Put_In_Set(kActorZuben, kSetCT06);
Actor_Set_At_XYZ(kActorZuben, 37.14f, -58.23f, 4.0f, 256);
_animationFrame = 0;
_animationState = 28;
return false;
- case 12:
+ case kGoalZubenCT06AttackMcCoy:
Player_Loses_Control();
if (!Player_Query_Combat_Mode()) {
Player_Set_Combat_Mode(true);
@@ -364,24 +364,24 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Game_Flag_Set(142);
Set_Enter(kSetCT07, kSceneCT07);
return false;
- case 13:
+ case kGoalZubenCT06Hide:
Actor_Set_Targetable(kActorZuben, true);
AI_Movement_Track_Flush(kActorZuben);
AI_Movement_Track_Append_Run(kActorZuben, 51, 0);
AI_Movement_Track_Append_Run(kActorZuben, 48, 0);
- AI_Movement_Track_Append(kActorZuben, 33, 1);
+ AI_Movement_Track_Append(kActorZuben, 33, 1); // Hide Zuben
AI_Movement_Track_Repeat(kActorZuben);
return false;
- case 14:
- if (Actor_Query_Goal_Number(kActorMcCoy) != 1) {
+ case kGoalZubenCT02PotDodgeCheck:
+ if (Actor_Query_Goal_Number(kActorMcCoy) != kGoalMcCoyDodge) {
Player_Loses_Control();
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
- Game_Flag_Set(210);
- Game_Flag_Set(719);
+ Game_Flag_Set(kFlagCT02ZubenFled);
+ Game_Flag_Set(kFlagCT02McCoyFell);
}
- Actor_Set_Goal_Number(kActorZuben, 9);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02RunToDoor);
return false;
- case 21:
+ case kGoalZubenMA01AttackMcCoy:
Game_Flag_Set(kFlagWarehouseOpen);
Actor_Set_Targetable(kActorZuben, true);
AI_Movement_Track_Flush(kActorZuben);
@@ -576,7 +576,7 @@ bool AIScriptZuben::GoalChanged(int currentGoalNumber, int newGoalNumber) {
bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
switch (_animationState) {
case 0:
- if (Actor_Query_Goal_Number(kActorZuben) != 0) {
+ if (Actor_Query_Goal_Number(kActorZuben) != kGoalZubenDefault) {
*animation = 408;
if (_var_45D258 < _var_45D25C) {
_animationFrame += _animationFrameDelta;
@@ -662,7 +662,7 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
_animationFrame++;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(396)) {
_animationFrame = 0;
- if (Actor_Query_Goal_Number(kActorZuben) == 14) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02PotDodgeCheck) {
_animationState = 8;
} else {
_animationState = 7;
@@ -700,8 +700,8 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
Actor_Combat_AI_Hit_Attempt(kActorZuben);
}
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(398)) {
- if (Actor_Query_Goal_Number(kActorZuben) == 14) {
- Actor_Set_Goal_Number(kActorZuben, 9);
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02PotDodgeCheck) {
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02RunToDoor);
_animationFrame = 0;
_animationState = 0;
} else {
@@ -787,7 +787,7 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
Sound_Play(207, 30, 0, 0, 50);
}
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
- Actor_Set_Goal_Number(kActorZuben, 6);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenDie);
_animationState = 15;
_animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
Actor_Set_Targetable(kActorZuben, false);
@@ -800,7 +800,7 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
Sound_Play(207, 30, 0, 0, 50);
}
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
- Actor_Set_Goal_Number(kActorZuben, 6);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenDie);
_animationState = 16;
_animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
Actor_Set_Targetable(kActorZuben, 0);
@@ -899,13 +899,14 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
*animation = 419;
_animationFrame++;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(419)) {
+ // Time for McCoy to react and avoid tipping pot
Actor_Set_Frame_Rate_FPS(kActorZuben, -2);
_animationState = 0;
_animationFrame = 0;
- Actor_Set_Goal_Number(kActorZuben, 14);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02PotDodgeCheck);
}
break;
- case 27:
+ case 27: // Opening the door
Actor_Set_Frame_Rate_FPS(kActorZuben, -1);
*animation = 420;
_animationFrame++;
@@ -919,7 +920,7 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
Actor_Set_Frame_Rate_FPS(kActorZuben, -2);
_animationState = 0;
_animationFrame = 0;
- Actor_Set_Goal_Number(kActorZuben, 2);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02Flee);
}
break;
case 28:
@@ -932,7 +933,7 @@ bool AIScriptZuben::UpdateAnimation(int *animation, int *frame) {
_animationFrame = 0;
_animationState = 5;
*animation = 396;
- Actor_Set_Goal_Number(kActorZuben, 12);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06AttackMcCoy);
}
break;
default:
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index 9cafa28..a5669dc 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -114,7 +114,7 @@ DECLARE_SCRIPT(McCoy)
void sub_4054F0();
void sub_405660();
void sub_405800();
- void sub_4058B0();
+ void dodge();
void sub_405920();
void sub_405940(float a1);
void sub_4059D0(float a1);
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index d1de07d..fc78269 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -1652,538 +1652,538 @@ void InitScript::Init_Clues2() {
}
void InitScript::Init_World_Waypoints() {
- World_Waypoint_Set(0, 7, -676.0f, -0.04f, -94.0f);
- World_Waypoint_Set(1, 7, -807.0f, -0.04f, 109.0f);
- World_Waypoint_Set(2, 15, 541.8f, 0.38f, -435.68f);
- World_Waypoint_Set(3, 66, 561.01f, 0.34f, -606.67f);
- World_Waypoint_Set(4, 14, -404.09f, -9.23f, 251.95f);
- World_Waypoint_Set(5, 14, -99.0f, -9.23f, 690.0f);
- World_Waypoint_Set(6, 14, -374.14f, -8.97f, 240.18f);
- World_Waypoint_Set(7, 14, -766.02f, -8.82f, 271.44f);
- World_Waypoint_Set(8, 14, -546.19f, -9.06f, 351.38f);
- World_Waypoint_Set(9, 14, -522.66f, -8.6f, 1409.29f);
- World_Waypoint_Set(10, 14, -324.21f, -9.01f, 1428.74f);
- World_Waypoint_Set(11, 14, 23.72f, -8.87f, 1335.19f);
- World_Waypoint_Set(12, 69, -132.0f, 6.09f, 91.0f);
- World_Waypoint_Set(13, 7, 21.4f, 0.22f, -201.68f);
- World_Waypoint_Set(14, 7, 164.44f, 0.29f, -265.69f);
- World_Waypoint_Set(15, 7, 279.7f, 7.23f, -888.43f);
- World_Waypoint_Set(16, 14, 41.35f, -8.98f, 556.2f);
- World_Waypoint_Set(17, 14, -697.86f, -0.73f, 21.89f);
- World_Waypoint_Set(18, 14, -678.17f, -0.77f, 1043.62f);
- World_Waypoint_Set(19, 14, 116.89f, -0.74f, 1581.12f);
- World_Waypoint_Set(20, 7, -312.92f, 0.17f, -345.2f);
- World_Waypoint_Set(21, 7, -290.04f, 0.23f, -513.79f);
- World_Waypoint_Set(22, 7, 6.97f, 0.54f, -759.56f);
- World_Waypoint_Set(23, 7, 280.48f, 11.58f, -941.15f);
- World_Waypoint_Set(24, 7, 231.14f, 7.14f, -688.96f);
- World_Waypoint_Set(25, 7, 54.92f, 0.2f, -171.75f);
- World_Waypoint_Set(26, 7, -56.77f, 0.18f, -166.99f);
- World_Waypoint_Set(27, 7, -78.12f, 0.34f, -449.92f);
- World_Waypoint_Set(28, 69, -30.0f, -625.51f, 366.15f);
- World_Waypoint_Set(29, 69, -51.81f, -622.47f, 286.93f);
- World_Waypoint_Set(30, 69, -320.58f, -625.53f, 301.58f);
- World_Waypoint_Set(31, 66, 421.01f, 0.22f, -566.67f);
- World_Waypoint_Set(32, 66, 336.0f, 0.22f, -520.0f);
- World_Waypoint_Set(33, 91, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(34, 92, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(35, 93, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(36, 94, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(37, 95, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(38, 96, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(39, 97, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(40, 98, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(41, 99, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(42, 100, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(43, 4, -427.0f, -6.5f, 1188.0f);
- World_Waypoint_Set(44, 4, -255.2f, -6.5f, 455.2f);
- World_Waypoint_Set(45, 27, -247.02f, -145.11f, 32.99f);
- World_Waypoint_Set(46, 27, -154.83f, -145.11f, 9.39f);
- World_Waypoint_Set(47, 5, -619.36f, -616.15f, 220.91f);
- World_Waypoint_Set(48, 5, -82.86f, -621.3f, 769.03f);
- World_Waypoint_Set(49, 29, -7.31f, -58.23f, 22.44f);
- World_Waypoint_Set(50, 29, 132.16f, -58.23f, 767.0f);
- World_Waypoint_Set(51, 5, -335.05f, -618.82f, 312.9f);
- World_Waypoint_Set(52, 30, 189.7f, -58.23f, -4.72f);
- World_Waypoint_Set(53, 4, -450.32f, -6.5f, 230.39f);
- World_Waypoint_Set(54, 4, -70.04f, -6.5f, 150.17f);
- World_Waypoint_Set(55, 66, 491.0f, 0.0f, -571.0f);
- World_Waypoint_Set(56, 4, -221.68f, -6.5f, 150.15f);
- World_Waypoint_Set(57, 69, -291.43f, -0.3f, 277.92f);
- World_Waypoint_Set(58, 69, -272.91f, -0.3f, 369.1f);
- World_Waypoint_Set(59, 7, -118.65f, 0.15f, -130.15f);
- World_Waypoint_Set(60, 7, 22.27f, 0.15f, -69.81f);
- World_Waypoint_Set(61, 16, -39.0f, -1238.0f, 108284.0f);
- World_Waypoint_Set(62, 62, -11.0f, -40.0f, -45.0f);
- World_Waypoint_Set(63, 5, -133.0f, -621.0f, 686.0f);
- World_Waypoint_Set(64, 4, -360.0f, -6.13f, 380.0f);
- World_Waypoint_Set(65, 15, 688.0f, 0.37f, -518.0f);
- World_Waypoint_Set(66, 5, -83.0f, -621.0f, 627.0f);
- World_Waypoint_Set(67, 4, -212.65f, -2.08f, 513.47f);
- World_Waypoint_Set(68, 4, -219.43f, -2.08f, 584.8f);
- World_Waypoint_Set(69, 4, -215.0f, -2.08f, 548.0f);
- World_Waypoint_Set(71, 69, 210.0f, 5.55f, 146.19f);
- World_Waypoint_Set(72, 69, -55.27f, 5.55f, 108.34f);
- World_Waypoint_Set(73, 66, 338.75f, 0.22f, -612.0f);
- World_Waypoint_Set(74, 66, 338.75f, 0.22f, -560.0f);
- World_Waypoint_Set(75, 5, -138.45f, -621.3f, 778.52f);
- World_Waypoint_Set(76, 63, -499.23f, -354.62f, -51.3f);
- World_Waypoint_Set(77, 63, -903.0f, -354.62f, 676.0f);
- World_Waypoint_Set(78, 63, -723.0f, -354.62f, -1272.0f);
- World_Waypoint_Set(79, 67, 207.36f, 0.67f, -96.42f);
- World_Waypoint_Set(80, 67, -134.43f, 0.43f, -180.46f);
- World_Waypoint_Set(81, 67, -559.0f, 0.15f, -100.0f);
- World_Waypoint_Set(82, 63, -1250.07f, -354.0f, -1186.9f);
- World_Waypoint_Set(83, 16, -55.11f, -1238.89f, 107995.87f);
- World_Waypoint_Set(84, 27, -161.62f, -145.11f, -53.73f);
- World_Waypoint_Set(85, 27, -201.62f, -145.11f, -85.73f);
- World_Waypoint_Set(86, 4, -171.55f, -2.08f, 361.01f);
- World_Waypoint_Set(87, 4, -523.51f, -9.23f, 1384.76f);
- World_Waypoint_Set(88, 4, -102.01f, -9.23f, 1375.38f);
- World_Waypoint_Set(89, 16, 14.54f, -1238.89f, 108280.85f);
- World_Waypoint_Set(91, 16, 9.68f, -1238.89f, 108427.73f);
- World_Waypoint_Set(92, 16, -153.29f, -1238.89f, 108473.52f);
- World_Waypoint_Set(93, 16, -104.0f, -1238.89f, 108413.0f);
- World_Waypoint_Set(90, 16, 37.59f, -1238.89f, 108449.29f);
- World_Waypoint_Set(94, 30, 302.32f, -58.23f, 35.14f);
- World_Waypoint_Set(95, 35, 62.0f, 0.3f, 129.0f);
- World_Waypoint_Set(96, 35, -134.63f, -0.3f, 171.41f);
- World_Waypoint_Set(97, 7, -1135.0f, 6.98f, 441.0f);
- World_Waypoint_Set(98, 7, -1015.0f, 7.18f, 354.75f);
- World_Waypoint_Set(99, 7, -975.0f, -0.04f, 316.0f);
- World_Waypoint_Set(100, 4, -334.46f, -6.5f, 500.64f);
- World_Waypoint_Set(101, 7, -334.46f, -6.5f, 500.64f);
- World_Waypoint_Set(102, 16, 27.89f, -1238.89f, 108288.73f);
- World_Waypoint_Set(103, 71, 48.31f, 0.15f, 17.11f);
- World_Waypoint_Set(104, 71, 4.31f, 0.15f, -39.0f);
- World_Waypoint_Set(105, 5, -764.58f, -616.31f, 229.6f);
- World_Waypoint_Set(106, 4, -25.0f, -6.5f, 352.28f);
- World_Waypoint_Set(107, 71, -3.6f, -621.79f, 164.09f);
- World_Waypoint_Set(108, 71, 86.03f, -622.47f, 73.21f);
- World_Waypoint_Set(109, 7, -793.0f, -0.04f, 164.0f);
- World_Waypoint_Set(110, 7, -665.0f, -0.04f, 304.0f);
- World_Waypoint_Set(111, 7, -765.0f, -0.04f, 232.0f);
- World_Waypoint_Set(112, 7, -817.0f, -0.04f, 300.0f);
- World_Waypoint_Set(113, 7, -907.0f, -0.04f, 304.0f);
- World_Waypoint_Set(114, 20, -4.0f, 0.0f, 880.0f);
- World_Waypoint_Set(115, 20, 174.0f, 0.0f, 890.15f);
- World_Waypoint_Set(116, 20, 69.0f, 0.0f, 695.0f);
- World_Waypoint_Set(117, 20, 0.0f, 0.0f, 0.0f);
- World_Waypoint_Set(118, 28, -376.35f, -109.91f, 604.4f);
- World_Waypoint_Set(119, 28, -375.0f, -109.91f, 750.0f);
- World_Waypoint_Set(120, 0, -50.81f, 2.5f, 233.0f);
- World_Waypoint_Set(121, 0, -50.81f, 2.5f, 31.03f);
- World_Waypoint_Set(122, 0, 28.12f, 2.5f, 100.64f);
- World_Waypoint_Set(123, 4, -474.28f, -6.5f, 979.59f);
- World_Waypoint_Set(124, 49, 8.74f, 0.0f, -282.81f);
- World_Waypoint_Set(125, 49, 978.98f, 0.0f, 145.64f);
- World_Waypoint_Set(126, 49, 477.18f, 0.0f, -287.21f);
- World_Waypoint_Set(127, 26, 31.39f, -10.27f, -64.52f);
- World_Waypoint_Set(128, 26, 7.39f, -10.27f, -136.52f);
- World_Waypoint_Set(129, 26, -136.61f, -10.27f, -136.52f);
- World_Waypoint_Set(130, 26, -36.61f, -10.27f, -136.52f);
- World_Waypoint_Set(131, 24, 435.45f, -9.0f, 166.0f);
- World_Waypoint_Set(132, 24, 619.45f, -9.0f, 234.0f);
- World_Waypoint_Set(133, 24, 619.45f, -9.0f, 270.0f);
- World_Waypoint_Set(134, 22, -80.59f, -60.31f, 256.35f);
- World_Waypoint_Set(135, 22, -48.0f, -60.31f, 183.0f);
- World_Waypoint_Set(136, 22, -24.59f, -60.31f, 64.35f);
- World_Waypoint_Set(137, 22, 99.41f, -60.31f, 4.35f);
- World_Waypoint_Set(138, 22, 99.41f, -60.34f, -115.65f);
- World_Waypoint_Set(139, 22, 147.41f, -60.34f, -115.65f);
- World_Waypoint_Set(144, 3, -654.56f, 252.59f, -1110.88f);
- World_Waypoint_Set(145, 3, -578.56f, 252.59f, -1010.88f);
- World_Waypoint_Set(146, 3, -470.56f, 252.59f, -1070.88f);
- World_Waypoint_Set(147, 3, -510.56f, 252.59f, -1006.88f);
- World_Waypoint_Set(148, 3, -646.56f, 252.59f, -1006.88f);
- World_Waypoint_Set(140, 2, -43.88f, -0.04f, 172.95f);
- World_Waypoint_Set(141, 2, 78.36f, -0.04f, 80.79f);
- World_Waypoint_Set(142, 2, 81.74f, -0.04f, -94.0f);
- World_Waypoint_Set(143, 2, -118.26f, -0.04f, -94.04f);
- World_Waypoint_Set(149, 8, 647.0f, 1.6f, -81.87f);
- World_Waypoint_Set(150, 75, -269.0f, 120.16f, -88.0f);
- World_Waypoint_Set(151, 75, -181.0f, 120.16f, -96.0f);
- World_Waypoint_Set(152, 75, -133.0f, 84.13f, -108.0f);
- World_Waypoint_Set(153, 75, -95.0f, 74.87f, -503.0f);
- World_Waypoint_Set(154, 70, -172.6f, 1.72f, 87.62f);
- World_Waypoint_Set(155, 0, -284.0f, 0.0f, 296.0f);
- World_Waypoint_Set(156, 0, -680.0f, 0.0f, -156.0f);
- World_Waypoint_Set(157, 0, -702.0f, 0.0f, -919.0f);
- World_Waypoint_Set(158, 0, 140.0f, 0.0f, -1233.0f);
- World_Waypoint_Set(159, 0, -228.0f, 0.0f, -92.0f);
- World_Waypoint_Set(160, 0, -274.0f, 0.0f, -627.0f);
- World_Waypoint_Set(161, 0, -329.27f, 0.0f, -1115.14f);
- World_Waypoint_Set(162, 8, 815.34f, 0.14f, 165.21f);
- World_Waypoint_Set(163, 8, -35.0f, 0.14f, 39.0f);
- World_Waypoint_Set(164, 8, -24.0f, 0.14f, -631.0f);
- World_Waypoint_Set(165, 8, -125.0f, 0.14f, -221.0f);
- World_Waypoint_Set(166, 8, 456.82f, 0.14f, 69.0f);
- World_Waypoint_Set(167, 70, -815.0f, -4.01f, 96.0f);
- World_Waypoint_Set(168, 70, -235.0f, 1.72f, 92.0f);
- World_Waypoint_Set(169, 70, 5.0f, 1.72f, 92.0f);
- World_Waypoint_Set(170, 70, 265.0f, 1.72f, 36.0f);
- World_Waypoint_Set(171, 70, -639.0f, 1.72f, -124.0f);
- World_Waypoint_Set(172, 8, -225.0f, 1.0f, 39.0f);
- World_Waypoint_Set(172, 8, -217.0f, 1.0f, 127.0f);
- World_Waypoint_Set(174, 70, 326.96f, -4.01f, 383.16f);
- World_Waypoint_Set(175, 70, 264.43f, -4.01f, 313.73f);
- World_Waypoint_Set(176, 79, -78.43f, 0.0f, 269.98f);
- World_Waypoint_Set(177, 79, 19.0f, 0.0f, 269.98f);
- World_Waypoint_Set(178, 79, 91.0f, 0.0f, 137.6f);
- World_Waypoint_Set(185, 82, 115.0f, 156.94f, -310.0f);
- World_Waypoint_Set(186, 82, 153.0f, 156.94f, -294.0f);
- World_Waypoint_Set(179, 79, 40.14f, 0.0f, 276.62f);
- World_Waypoint_Set(180, 79, -71.86f, 0.0f, 276.62f);
- World_Waypoint_Set(181, 79, -112.56f, 0.0f, 228.03f);
- World_Waypoint_Set(189, 86, 229.0f, 186.04f, -24.0f);
- World_Waypoint_Set(190, 86, 157.0f, 186.04f, -24.0f);
- World_Waypoint_Set(191, 86, 157.0f, 128.92f, -148.0f);
- World_Waypoint_Set(182, 74, 143.45f, -50.13f, -12.22f);
- World_Waypoint_Set(183, 74, 199.45f, -50.13f, -1400.22f);
- World_Waypoint_Set(184, 74, -112.55f, -50.13f, -2360.22f);
- World_Waypoint_Set(187, 86, -295.0f, 12.97f, -148.0f);
- World_Waypoint_Set(188, 86, 157.0f, 129.0f, -504.0f);
- World_Waypoint_Set(192, 17, -136.19f, 0.0f, 1580.03f);
- World_Waypoint_Set(193, 17, -308.0f, -81.46f, 1466.0f);
- World_Waypoint_Set(194, 21, 82.26f, 60.16f, -124.35f);
- World_Waypoint_Set(195, 21, 226.1f, 60.16f, -139.84f);
- World_Waypoint_Set(196, 22, 39.41f, -60.31f, 308.35f);
- World_Waypoint_Set(197, 22, 99.41f, -60.31f, 220.35f);
- World_Waypoint_Set(198, 22, 267.41f, -60.31f, 180.35f);
- World_Waypoint_Set(200, 2, -44.46f, -0.04f, 177.4f);
- World_Waypoint_Set(201, 2, 137.0f, -0.04f, 17.0f);
- World_Waypoint_Set(202, 70, -610.0f, -4.01f, 237.11f);
- World_Waypoint_Set(203, 70, -368.96f, -4.01f, 237.11f);
- World_Waypoint_Set(204, 8, 19.0f, 0.14f, 83.0f);
- World_Waypoint_Set(205, 8, -58.36f, 0.14f, 4.4f);
- World_Waypoint_Set(206, 8, -18.11f, 0.14f, -669.45f);
- World_Waypoint_Set(207, 8, -18.11f, 0.14f, -669.45f);
- World_Waypoint_Set(208, 8, -162.25f, 0.14f, -511.93f);
- World_Waypoint_Set(209, 8, -128.25f, 0.14f, -322.0f);
- World_Waypoint_Set(210, 8, 714.48f, 0.14f, 14.92f);
- World_Waypoint_Set(211, 8, 23.0f, 0.14f, -1.0f);
- World_Waypoint_Set(212, 8, 28.47f, 0.14f, 3.8f);
- World_Waypoint_Set(213, 8, 36.47f, 0.14f, 55.89f);
- World_Waypoint_Set(214, 8, 155.75f, 0.14f, 54.0f);
- World_Waypoint_Set(215, 0, -70.0f, 0.0f, -647.0f);
- World_Waypoint_Set(216, 0, -270.01f, 0.0f, -441.68f);
- World_Waypoint_Set(217, 0, -209.98f, 0.0f, -483.05f);
- World_Waypoint_Set(218, 0, -428.08f, 0.0f, -110.16f);
- World_Waypoint_Set(219, 0, 256.0f, 0.0f, -298.08f);
- World_Waypoint_Set(220, 0, -187.18f, 0.0f, -298.08f);
- World_Waypoint_Set(221, 0, -428.08f, 0.0f, -110.16f);
- World_Waypoint_Set(222, 0, -466.0f, 0.0f, -635.0f);
- World_Waypoint_Set(223, 0, -382.0f, 0.0f, -1099.0f);
- World_Waypoint_Set(224, 0, -227.0f, 0.0f, -1333.0f);
- World_Waypoint_Set(225, 0, 140.88f, 0.0f, -1362.34f);
- World_Waypoint_Set(226, 0, -448.18f, 0.0f, -626.38f);
- World_Waypoint_Set(227, 0, -444.18f, 0.0f, -730.38f);
- World_Waypoint_Set(228, 20, -198.02f, 9.04f, 487.7f);
- World_Waypoint_Set(229, 20, -147.4f, 9.04f, 918.08f);
- World_Waypoint_Set(230, 20, -201.67f, 9.04f, 829.09f);
- World_Waypoint_Set(231, 20, -177.67f, 9.04f, 829.09f);
- World_Waypoint_Set(232, 4, -92.52f, -6.5f, 714.44f);
- World_Waypoint_Set(233, 4, -352.52f, -6.5f, 714.44f);
- World_Waypoint_Set(234, 4, -352.52f, -6.5f, 666.44f);
- World_Waypoint_Set(235, 4, -136.41f, -6.5f, 735.26f);
- World_Waypoint_Set(236, 4, -248.41f, -6.5f, 747.26f);
- World_Waypoint_Set(237, 4, -352.52f, -6.5f, 252.0f);
- World_Waypoint_Set(238, 4, -190.25f, -6.5f, 274.58f);
- World_Waypoint_Set(239, 33, -371.87f, 0.0f, 275.89f);
- World_Waypoint_Set(240, 33, -371.87f, 0.0f, -60.11f);
- World_Waypoint_Set(241, 33, 588.5f, 0.0f, 254.19f);
- World_Waypoint_Set(242, 33, 560.5f, 0.0f, 254.19f);
- World_Waypoint_Set(243, 7, -153.77f, -0.01f, -1037.98f);
- World_Waypoint_Set(244, 7, 398.23f, 6.98f, -1037.98f);
- World_Waypoint_Set(245, 7, 40.78f, 7.22f, -943.72f);
- World_Waypoint_Set(246, 7, 68.78f, -0.01f, -943.72f);
- World_Waypoint_Set(247, 7, 96.78f, -0.01f, -973.72f);
- World_Waypoint_Set(248, 63, -897.38f, -354.62f, 704.77f);
- World_Waypoint_Set(249, 63, -914.76f, -354.62f, -312.43f);
- World_Waypoint_Set(250, 63, -457.54f, -354.62f, -820.15f);
- World_Waypoint_Set(251, 15, 556.72f, 0.37f, -141.26f);
- World_Waypoint_Set(252, 15, 635.66f, 0.37f, -594.11f);
- World_Waypoint_Set(253, 67, 130.42f, 0.0f, -79.98f);
- World_Waypoint_Set(254, 67, -311.15f, 0.0f, -161.06f);
- World_Waypoint_Set(255, 67, -403.15f, 0.0f, -161.06f);
- World_Waypoint_Set(256, 67, -487.15f, 0.0f, -137.11f);
- World_Waypoint_Set(257, 67, -611.15f, 0.0f, -73.06f);
- World_Waypoint_Set(258, 8, 37.64f, 0.14f, -48.02f);
- World_Waypoint_Set(259, 8, 109.64f, 0.14f, 91.98f);
- World_Waypoint_Set(260, 8, -149.0f, 0.14f, 79.0f);
- World_Waypoint_Set(261, 8, -129.0f, 0.14f, -237.0f);
- World_Waypoint_Set(262, 8, -1.0f, 0.14f, -671.0f);
- World_Waypoint_Set(263, 64, -728.0f, -354.0f, 1090.0f);
- World_Waypoint_Set(264, 10, -8.41f, -144.0f, 343.0f);
- World_Waypoint_Set(265, 10, -20.81f, -144.0f, 450.0f);
- World_Waypoint_Set(266, 10, -200.0f, -144.0f, 206.0f);
- World_Waypoint_Set(267, 10, -17.0f, -144.0f, 178.0f);
- World_Waypoint_Set(268, 50, -7207.0f, 955.5f, 1852.75f);
- World_Waypoint_Set(269, 50, -7191.0f, 955.5f, 1700.75f);
- World_Waypoint_Set(270, 50, 7116.0f, 955.5f, 1871.0f);
- World_Waypoint_Set(271, 7, -1139.89f, -0.04f, 67.89f);
- World_Waypoint_Set(272, 7, -690.5f, -0.04f, -210.48f);
- World_Waypoint_Set(273, 7, -495.89f, -0.04f, -204.11f);
- World_Waypoint_Set(274, 69, -511.75f, 5.55f, 55.63f);
- World_Waypoint_Set(275, 69, 296.21f, 5.55f, 59.63f);
- World_Waypoint_Set(276, 73, -34.57f, 149.42f, -502.83f);
- World_Waypoint_Set(277, 73, 51.0f, 149.42f, -487.27f);
- World_Waypoint_Set(278, 73, 82.0f, 149.42f, -519.0f);
- World_Waypoint_Set(279, 73, 95.97f, 149.42f, -549.51f);
- World_Waypoint_Set(280, 73, -34.0f, 149.42f, -551.0f);
- World_Waypoint_Set(281, 7, -2060.99f, -0.04f, -234.8f);
- World_Waypoint_Set(282, 54, -346.69f, 31.55f, -1476.41f);
- World_Waypoint_Set(283, 54, -298.69f, 31.55f, -1476.41f);
- World_Waypoint_Set(284, 54, -298.69f, 31.55f, -1260.41f);
- World_Waypoint_Set(285, 54, -418.69f, 31.55f, -1260.41f);
- World_Waypoint_Set(286, 12, -104.24f, 0.0f, 183.16f);
- World_Waypoint_Set(287, 57, -254.0f, -73.5f, -41.0f);
- World_Waypoint_Set(288, 6, -125.14f, 0.02f, -176.76f);
- World_Waypoint_Set(289, 0, -871.15f, 0.0f, -1081.93f);
- World_Waypoint_Set(290, 0, -411.15f, 0.0f, -1117.93f);
- World_Waypoint_Set(291, 54, 225.31f, 31.665f, -572.41f);
- World_Waypoint_Set(292, 12, -127.0f, 0.0f, 178.0f);
- World_Waypoint_Set(293, 12, 5.0f, 0.0f, 342.0f);
- World_Waypoint_Set(294, 12, 173.0f, 0.0f, 226.0f);
- World_Waypoint_Set(295, 12, 13.0f, 0.0f, -50.0f);
- World_Waypoint_Set(354, 12, 57.0f, 0.0f, 18.0f);
- World_Waypoint_Set(355, 12, 161.0f, 0.0f, 410.0f);
- World_Waypoint_Set(358, 12, 33.0f, 0.0f, 198.0f);
- World_Waypoint_Set(359, 12, 62.92f, 0.16f, 309.72f);
- World_Waypoint_Set(549, 12, -15.0f, 0.0f, 338.0f);
- World_Waypoint_Set(445, 12, 129.0f, 0.0f, 418.0f);
- World_Waypoint_Set(546, 12, 13.0f, 0.0f, 206.0f);
- World_Waypoint_Set(296, 77, 168.0f, 11.87f, -987.0f);
- World_Waypoint_Set(297, 77, -178.5f, 23.73f, -2176.05f);
- World_Waypoint_Set(298, 82, -145.0f, 156.94f, -370.0f);
- World_Waypoint_Set(299, 82, -37.0f, 156.94f, -506.0f);
- World_Waypoint_Set(300, 82, 75.0f, 156.94f, -506.0f);
- World_Waypoint_Set(301, 83, 60.3f, 81.33f, -647.7f);
- World_Waypoint_Set(302, 83, -271.0f, 81.33f, -647.7f);
- World_Waypoint_Set(303, 83, -11.7f, 81.33f, -647.7f);
- World_Waypoint_Set(304, 83, 10.94f, 115.0f, 59.67f);
- World_Waypoint_Set(305, 83, 0.3f, 115.0f, 404.3f);
- World_Waypoint_Set(306, 83, -329.38f, 115.0f, -385.84f);
- World_Waypoint_Set(307, 84, 131.0f, -126.21f, -224.0f);
- World_Waypoint_Set(308, 84, 103.0f, -126.21f, 152.0f);
- World_Waypoint_Set(309, 84, 19.0f, -126.21f, 152.0f);
- World_Waypoint_Set(310, 84, 459.0f, -126.21f, 152.0f);
- World_Waypoint_Set(311, 84, -29.0f, -126.21f, 556.0f);
- World_Waypoint_Set(312, 86, -311.0f, 129.0f, -488.0f);
- World_Waypoint_Set(322, 12, 121.0f, 0.0f, -82.0f);
- World_Waypoint_Set(323, 8, 600.58f, 0.14f, 32.82f);
- World_Waypoint_Set(127, 26, 102.98f, -30.89f, -121.02f);
- World_Waypoint_Set(128, 26, -20.0f, -30.89f, -121.02f);
- World_Waypoint_Set(313, 26, 102.98f, -31.0f, -149.0f);
- World_Waypoint_Set(314, 26, 20.0f, -31.0f, -109.0f);
- World_Waypoint_Set(315, 26, -60.6f, -31.0f, -109.0f);
- World_Waypoint_Set(316, 26, 87.35f, -31.0f, 74.0f);
- World_Waypoint_Set(317, 26, 74.0f, -31.0f, 42.0f);
- World_Waypoint_Set(318, 26, 74.0f, -31.0f, 98.0f);
- World_Waypoint_Set(319, 26, 115.35f, -31.0f, 302.36f);
- World_Waypoint_Set(320, 26, 104.38f, -31.0f, 260.0f);
- World_Waypoint_Set(321, 26, 120.0f, -31.0f, 115.0f);
- World_Waypoint_Set(336, 57, -110.0f, -73.5f, -169.0f);
- World_Waypoint_Set(337, 57, -161.0f, -73.5f, -105.0f);
- World_Waypoint_Set(338, 57, -193.0f, -73.5f, -105.0f);
- World_Waypoint_Set(350, 54, -416.0f, -31.93f, -841.0f);
- World_Waypoint_Set(339, 80, 106.0f, -12.21f, -94.0f);
- World_Waypoint_Set(340, 80, 98.02f, -12.21f, -126.0f);
- World_Waypoint_Set(341, 80, 106.0f, -21.47f, -278.0f);
- World_Waypoint_Set(342, 80, 82.0f, -12.19f, -278.0f);
- World_Waypoint_Set(343, 7, -1847.0f, -0.04f, 82.0f);
- World_Waypoint_Set(344, 7, -1847.0f, -0.04f, -222.0f);
- World_Waypoint_Set(345, 7, -1147.0f, -0.04f, -198.0f);
- World_Waypoint_Set(346, 7, -667.0f, -0.04f, -125.0f);
- World_Waypoint_Set(347, 7, -471.0f, -0.04f, -110.0f);
- World_Waypoint_Set(348, 7, -403.0f, -0.04f, -110.0f);
- World_Waypoint_Set(351, 31, 105.0f, 348.52f, 948.0f);
- World_Waypoint_Set(352, 33, -426.0f, 9.68f, -33.0f);
- World_Waypoint_Set(353, 33, -439.0f, 9.68f, -101.0f);
- World_Waypoint_Set(356, 11, 19.01f, -24.0f, 20.21f);
- World_Waypoint_Set(357, 11, 22.26f, 12.0f, -31.01f);
- World_Waypoint_Set(366, 11, -94.21f, 12.0f, -26.15f);
- World_Waypoint_Set(367, 11, -286.21f, -24.0f, 37.85f);
- World_Waypoint_Set(368, 19, 176.91f, -40.67f, 225.92f);
- World_Waypoint_Set(369, 54, -220.0f, 23.88f, -1437.0f);
- World_Waypoint_Set(370, 54, -392.0f, 31.55f, -1757.0f);
- World_Waypoint_Set(371, 39, 441.0f, 47.76f, -798.98f);
- World_Waypoint_Set(372, 39, 185.62f, 47.76f, -867.42f);
- World_Waypoint_Set(373, 39, 947.0f, 47.76f, -696.0f);
- World_Waypoint_Set(374, 89, -339.22f, 0.22f, -11.33f);
- World_Waypoint_Set(375, 11, -299.0f, -24.0f, 322.0f);
- World_Waypoint_Set(376, 11, -215.0f, -24.0f, 322.0f);
- World_Waypoint_Set(377, 39, 397.6f, 47.76f, -823.23f);
- World_Waypoint_Set(378, 39, 461.56f, 47.76f, -757.78f);
- World_Waypoint_Set(379, 18, -260.15f, 12.0f, -19.16f);
- World_Waypoint_Set(361, 55, -185.0f, -70.19f, -1046.0f);
- World_Waypoint_Set(362, 55, -121.0f, -70.19f, -778.0f);
- World_Waypoint_Set(363, 55, -166.0f, -70.19f, -579.0f);
- World_Waypoint_Set(364, 55, -160.0f, -70.19f, -164.0f);
- World_Waypoint_Set(365, 55, 3.0f, -70.19f, -986.0f);
- World_Waypoint_Set(380, 38, 456.43f, 47.76f, -276.05f);
- World_Waypoint_Set(381, 70, -160.0f, -4.01f, 496.0f);
- World_Waypoint_Set(382, 70, 0.0f, 1.72f, 60.0f);
- World_Waypoint_Set(383, 70, 0.0f, 1.72f, -192.0f);
- World_Waypoint_Set(384, 70, 260.0f, 1.72f, 52.0f);
- World_Waypoint_Set(385, 33, 489.0f, 9.68f, 74.0f);
- World_Waypoint_Set(386, 33, -375.0f, 9.68f, 54.0f);
- World_Waypoint_Set(387, 33, -359.0f, 0.0f, 302.0f);
- World_Waypoint_Set(388, 20, 215.0f, 0.0f, -122.0f);
- World_Waypoint_Set(389, 20, -133.0f, 9.04f, 910.0f);
- World_Waypoint_Set(390, 7, -655.0f, 6.98f, -364.0f);
- World_Waypoint_Set(391, 7, -795.0f, 6.98f, -352.0f);
- World_Waypoint_Set(392, 7, -1103.0f, 6.98f, -384.0f);
- World_Waypoint_Set(393, 7, -1759.0f, -0.04f, 75.0f);
- World_Waypoint_Set(394, 53, 476.0f, -162.0f, 196.0f);
- World_Waypoint_Set(395, 53, 120.0f, -162.0f, 148.0f);
- World_Waypoint_Set(396, 53, 120.0f, -161.0f, -160.0f);
- World_Waypoint_Set(397, 53, 148.0f, -161.0f, -160.0f);
- World_Waypoint_Set(398, 54, 324.0f, 31.0f, -1316.0f);
- World_Waypoint_Set(399, 54, 236.0f, 31.0f, -1316.0f);
- World_Waypoint_Set(400, 54, 248.0f, 31.0f, -540.0f);
- World_Waypoint_Set(401, 54, -287.0f, 31.0f, -480.0f);
- World_Waypoint_Set(402, 54, -331.0f, 31.0f, -620.0f);
- World_Waypoint_Set(403, 54, -239.0f, 31.0f, -1436.0f);
- World_Waypoint_Set(404, 54, -411.0f, 31.0f, -1436.0f);
- World_Waypoint_Set(405, 74, 90.0f, -50.0f, -42.0f);
- World_Waypoint_Set(406, 74, -106.0f, -50.0f, -2358.0f);
- World_Waypoint_Set(407, 83, 0.0f, 81.02f, -512.0f);
- World_Waypoint_Set(408, 83, 0.0f, 1.15f, 400.0f);
- World_Waypoint_Set(409, 77, -48.0f, -1.74f, -983.0f);
- World_Waypoint_Set(411, 78, 80.0f, -16.72f, -4.0f);
- World_Waypoint_Set(412, 78, -48.0f, -11.0f, -352.0f);
- World_Waypoint_Set(413, 79, -109.0f, 0.0f, 285.0f);
- World_Waypoint_Set(414, 79, -109.0f, 0.0f, 125.0f);
- World_Waypoint_Set(415, 80, 198.0f, -12.0f, -282.0f);
- World_Waypoint_Set(416, 80, 90.0f, -12.0f, -274.0f);
- World_Waypoint_Set(417, 80, 10.0f, -12.0f, -282.0f);
- World_Waypoint_Set(418, 80, -106.0f, -12.0f, -746.0f);
- World_Waypoint_Set(419, 80, -59.0f, -12.0f, -614.0f);
- World_Waypoint_Set(420, 81, -496.0f, 0.0f, -168.0f);
- World_Waypoint_Set(421, 81, -341.0f, 0.0f, 248.0f);
- World_Waypoint_Set(422, 81, -348.0f, 0.0f, -36.0f);
- World_Waypoint_Set(423, 85, 60.0f, 52.0f, -544.0f);
- World_Waypoint_Set(424, 85, -552.0f, 141.0f, -1008.0f);
- World_Waypoint_Set(425, 86, 245.0f, 186.0f, -24.0f);
- World_Waypoint_Set(426, 86, -287.0f, 12.0f, -148.0f);
- World_Waypoint_Set(427, 89, -9.0f, 0.0f, 588.0f);
- World_Waypoint_Set(428, 89, -669.0f, 0.0f, 37.0f);
- World_Waypoint_Set(429, 13, -796.08f, 0.0f, -184.09f);
- World_Waypoint_Set(430, 53, -328.0f, -1.62f, 148.0f);
- World_Waypoint_Set(431, 79, 75.0f, 0.0f, -71.0f);
- World_Waypoint_Set(432, 79, 63.0f, 153.0f, -467.0f);
- World_Waypoint_Set(433, 82, 115.0f, 156.0f, -310.0f);
- World_Waypoint_Set(434, 82, -57.0f, 156.0f, -306.0f);
- World_Waypoint_Set(435, 82, -121.0f, 156.0f, -426.0f);
- World_Waypoint_Set(436, 89, -274.74f, 0.0f, 464.75f);
- World_Waypoint_Set(437, 41, 271.97f, 40.63f, 18.4f);
- World_Waypoint_Set(438, 41, 203.97f, 40.63f, 18.4f);
- World_Waypoint_Set(516, 41, -79.01f, 40.63f, 91.01f);
- World_Waypoint_Set(439, 13, -1273.27f, 0.32f, 126.92f);
- World_Waypoint_Set(440, 4, -453.0f, -6.5f, 1176.0f);
- World_Waypoint_Set(441, 4, -497.0f, -6.5f, 1080.0f);
- World_Waypoint_Set(442, 4, -623.0f, -6.5f, 787.0f);
- World_Waypoint_Set(443, 4, -436.0f, -6.5f, 765.0f);
- World_Waypoint_Set(446, 77, 176.0f, 19.31f, -283.0f);
- World_Waypoint_Set(447, 77, 40.0f, -1.74f, -247.0f);
- World_Waypoint_Set(448, 77, 24.0f, -6.71f, -179.0f);
- World_Waypoint_Set(449, 77, 44.0f, -1.74f, 57.0f);
- World_Waypoint_Set(450, 74, -74.61f, -50.13f, -802.42f);
- World_Waypoint_Set(451, 74, 141.39f, -50.13f, -802.92f);
- World_Waypoint_Set(452, 42, -91.5f, 367.93f, 277.84f);
- World_Waypoint_Set(453, 42, 32.5f, 367.93f, 277.84f);
- World_Waypoint_Set(454, 42, 216.5f, 367.93f, 265.84f);
- World_Waypoint_Set(455, 42, 216.5f, 367.93f, 389.84f);
- World_Waypoint_Set(456, 60, -100.0f, 0.33f, -272.0f);
- World_Waypoint_Set(462, 60, -119.0f, 0.33f, 77.0f);
- World_Waypoint_Set(457, 78, 129.65f, 16.72f, -78.36f);
- World_Waypoint_Set(458, 78, 44.2f, -11.64f, -390.86f);
- World_Waypoint_Set(459, 78, 103.36f, -16.72f, -484.49f);
- World_Waypoint_Set(460, 79, 103.0f, 0.0f, 413.0f);
- World_Waypoint_Set(461, 79, 103.0f, 0.0f, 349.0f);
- World_Waypoint_Set(467, 13, -585.67f, 0.0f, 380.58f);
- World_Waypoint_Set(468, 53, -312.0f, -162.8f, 156.0f);
- World_Waypoint_Set(469, 53, 68.0f, -162.8f, 144.0f);
- World_Waypoint_Set(470, 53, 100.0f, -162.8f, -100.0f);
- World_Waypoint_Set(471, 53, 208.0f, -162.8f, -100.0f);
- World_Waypoint_Set(472, 53, -16.0f, -162.8f, -100.0f);
- World_Waypoint_Set(473, 7, -667.39f, -0.04f, -28.38f);
- World_Waypoint_Set(474, 7, -659.0f, 7.18f, -334.0f);
- World_Waypoint_Set(475, 7, -659.0f, -0.04f, 242.0f);
- World_Waypoint_Set(476, 7, -2327.0f, -0.04f, 142.0f);
- World_Waypoint_Set(477, 75, -97.24f, 84.13f, -69.94f);
- World_Waypoint_Set(478, 75, -97.24f, 74.87f, -509.94f);
- World_Waypoint_Set(479, 74, -134.0f, -50.13f, -250.41f);
- World_Waypoint_Set(480, 74, 17.01f, -50.13f, -2355.41f);
- World_Waypoint_Set(481, 83, -193.5f, 1.15f, 29.0f);
- World_Waypoint_Set(482, 83, -329.5f, 1.15f, 29.0f);
- World_Waypoint_Set(483, 83, -329.5f, 1.15f, -379.0f);
- World_Waypoint_Set(488, 74, 22.0f, -50.13f, -650.0f);
- World_Waypoint_Set(489, 74, -14.0f, -50.13f, -2354.0f);
- World_Waypoint_Set(490, 54, -360.0f, 31.55f, -1457.0f);
- World_Waypoint_Set(491, 54, 308.0f, 31.66f, -1457.0f);
- World_Waypoint_Set(492, 54, -72.0f, 23.88f, -1445.0f);
- World_Waypoint_Set(493, 54, 76.0f, 23.88f, -1333.0f);
- World_Waypoint_Set(494, 54, -236.0f, 31.55f, -337.0f);
- World_Waypoint_Set(495, 11, -275.0f, -24.0f, 42.0f);
- World_Waypoint_Set(496, 11, 185.0f, -24.0f, 42.0f);
- World_Waypoint_Set(497, 55, -250.0f, -70.19f, -639.0f);
- World_Waypoint_Set(498, 55, 454.0f, -70.19f, -667.0f);
- World_Waypoint_Set(499, 13, -573.43f, 0.0f, -635.5f);
- World_Waypoint_Set(500, 13, -625.43f, 0.0f, -635.5f);
- World_Waypoint_Set(501, 56, -215.08f, -71.88f, 150.86f);
- World_Waypoint_Set(502, 56, 60.92f, -71.88f, -29.14f);
- World_Waypoint_Set(503, 13, -1417.36f, 0.32f, 149.18f);
- World_Waypoint_Set(504, 13, -1512.0f, 0.32f, 323.0f);
- World_Waypoint_Set(505, 13, -1813.36f, 0.32f, 325.18f);
- World_Waypoint_Set(506, 59, -24.78f, 2.84f, -182.43f);
- World_Waypoint_Set(507, 59, -200.78f, 2.84f, -282.43f);
- World_Waypoint_Set(508, 37, 579.54f, -0.01f, -380.98f);
- World_Waypoint_Set(509, 37, 307.54f, 8.0f, -752.98f);
- World_Waypoint_Set(510, 37, 124.0f, 8.0f, -888.0f);
- World_Waypoint_Set(511, 37, 124.0f, 8.0f, -244.0f);
- World_Waypoint_Set(512, 38, -25.54f, 47.76f, -321.98f);
- World_Waypoint_Set(513, 38, 446.46f, 47.76f, -509.98f);
- World_Waypoint_Set(514, 39, 567.0f, 47.76f, -884.0f);
- World_Waypoint_Set(515, 39, 203.0f, 47.76f, -880.0f);
- World_Waypoint_Set(517, 40, 1246.62f, -0.31f, -171.02f);
- World_Waypoint_Set(518, 40, -72.89f, -0.31f, -154.77f);
- World_Waypoint_Set(519, 40, 285.88f, -0.31f, -134.49f);
- World_Waypoint_Set(520, 40, 231.31f, -0.31f, 266.36f);
- World_Waypoint_Set(521, 40, 482.02f, -0.31f, -661.24f);
- World_Waypoint_Set(522, 40, 1183.98f, -0.31f, -176.25f);
- World_Waypoint_Set(523, 40, -45.0f, -0.34f, -351.0f);
- World_Waypoint_Set(530, 44, 36.79f, -12.2f, -534.54f);
- World_Waypoint_Set(531, 44, -279.21f, -12.2f, -594.54f);
- World_Waypoint_Set(532, 86, -76.51f, 129.0f, -748.49f);
- World_Waypoint_Set(533, 86, -48.51f, 129.0f, -676.49f);
- World_Waypoint_Set(534, 86, -176.51f, 129.0f, -504.49f);
- World_Waypoint_Set(535, 86, 111.49f, 129.0f, -504.49f);
- World_Waypoint_Set(536, 86, -296.51f, 12.97f, -300.49f);
- World_Waypoint_Set(537, 86, -220.51f, 12.97f, -184.49f);
- World_Waypoint_Set(538, 86, -40.51f, 12.97f, -148.49f);
- World_Waypoint_Set(539, 80, 190.0f, 12.0f, -282.0f);
- World_Waypoint_Set(540, 9, -934.24f, 0.0f, 807.77f);
- World_Waypoint_Set(541, 9, -1147.2f, 0.0f, 893.18f);
- World_Waypoint_Set(542, 9, -1098.4f, 8.26f, -312.12f);
- World_Waypoint_Set(543, 9, -1046.4f, 8.26f, -312.12f);
- World_Waypoint_Set(544, 74, 111.72f, -50.13f, -490.46f);
- World_Waypoint_Set(545, 74, -143.86f, 490.46f, -300.38f);
- World_Waypoint_Set(550, 9, -785.31f, 0.0f, -237.05f);
- World_Waypoint_Set(551, 9, -737.31f, 0.0f, -145.05f);
- World_Waypoint_Set(324, 22, 267.0f, -60.3f, 203.0f);
- World_Waypoint_Set(325, 22, 84.0f, -60.3f, 337.0f);
- World_Waypoint_Set(326, 2, -36.0f, 0.0f, 185.0f);
- World_Waypoint_Set(327, 2, -166.0f, 0.0f, -103.0f);
- World_Waypoint_Set(328, 3, -556.0f, 252.59f, -1018.11f);
- World_Waypoint_Set(329, 3, -655.0f, 252.6f, -1012.0f);
- World_Waypoint_Set(330, 3, -657.0f, 253.0f, -1127.0f);
- World_Waypoint_Set(331, 102, 163.8f, 0.0f, 67.0f);
- World_Waypoint_Set(332, 2, -39.0f, 0.0f, 11.5f);
- World_Waypoint_Set(333, 102, -34.0f, 0.0f, 33.0f);
- World_Waypoint_Set(334, 22, 3.0f, -60.3f, -144.0f);
- World_Waypoint_Set(335, 102, -50.0f, 0.0f, 212.0f);
+ World_Waypoint_Set(0, kSetDR01_DR02_DR04, -676.0f, -0.04f, -94.0f);
+ World_Waypoint_Set(1, kSetDR01_DR02_DR04, -807.0f, -0.04f, 109.0f);
+ World_Waypoint_Set(2, kSetPS05, 541.8f, 0.38f, -435.68f);
+ World_Waypoint_Set(3, kSetPS07, 561.01f, 0.34f, -606.67f);
+ World_Waypoint_Set(4, kSetPS10_PS11_PS12_PS13, -404.09f, -9.23f, 251.95f);
+ World_Waypoint_Set(5, kSetPS10_PS11_PS12_PS13, -99.0f, -9.23f, 690.0f);
+ World_Waypoint_Set(6, kSetPS10_PS11_PS12_PS13, -374.14f, -8.97f, 240.18f);
+ World_Waypoint_Set(7, kSetPS10_PS11_PS12_PS13, -766.02f, -8.82f, 271.44f);
+ World_Waypoint_Set(8, kSetPS10_PS11_PS12_PS13, -546.19f, -9.06f, 351.38f);
+ World_Waypoint_Set(9, kSetPS10_PS11_PS12_PS13, -522.66f, -8.6f, 1409.29f);
+ World_Waypoint_Set(10, kSetPS10_PS11_PS12_PS13, -324.21f, -9.01f, 1428.74f);
+ World_Waypoint_Set(11, kSetPS10_PS11_PS12_PS13, 23.72f, -8.87f, 1335.19f);
+ World_Waypoint_Set(12, kSetRC01, -132.0f, 6.09f, 91.0f);
+ World_Waypoint_Set(13, kSetDR01_DR02_DR04, 21.4f, 0.22f, -201.68f);
+ World_Waypoint_Set(14, kSetDR01_DR02_DR04, 164.44f, 0.29f, -265.69f);
+ World_Waypoint_Set(15, kSetDR01_DR02_DR04, 279.7f, 7.23f, -888.43f);
+ World_Waypoint_Set(16, kSetPS10_PS11_PS12_PS13, 41.35f, -8.98f, 556.2f);
+ World_Waypoint_Set(17, kSetPS10_PS11_PS12_PS13, -697.86f, -0.73f, 21.89f);
+ World_Waypoint_Set(18, kSetPS10_PS11_PS12_PS13, -678.17f, -0.77f, 1043.62f);
+ World_Waypoint_Set(19, kSetPS10_PS11_PS12_PS13, 116.89f, -0.74f, 1581.12f);
+ World_Waypoint_Set(20, kSetDR01_DR02_DR04, -312.92f, 0.17f, -345.2f);
+ World_Waypoint_Set(21, kSetDR01_DR02_DR04, -290.04f, 0.23f, -513.79f);
+ World_Waypoint_Set(22, kSetDR01_DR02_DR04, 6.97f, 0.54f, -759.56f);
+ World_Waypoint_Set(23, kSetDR01_DR02_DR04, 280.48f, 11.58f, -941.15f);
+ World_Waypoint_Set(24, kSetDR01_DR02_DR04, 231.14f, 7.14f, -688.96f);
+ World_Waypoint_Set(25, kSetDR01_DR02_DR04, 54.92f, 0.2f, -171.75f);
+ World_Waypoint_Set(26, kSetDR01_DR02_DR04, -56.77f, 0.18f, -166.99f);
+ World_Waypoint_Set(27, kSetDR01_DR02_DR04, -78.12f, 0.34f, -449.92f);
+ World_Waypoint_Set(28, kSetRC01, -30.0f, -625.51f, 366.15f);
+ World_Waypoint_Set(29, kSetRC01, -51.81f, -622.47f, 286.93f);
+ World_Waypoint_Set(30, kSetRC01, -320.58f, -625.53f, 301.58f);
+ World_Waypoint_Set(31, kSetPS07, 421.01f, 0.22f, -566.67f);
+ World_Waypoint_Set(32, kSetPS07, 336.0f, 0.22f, -520.0f);
+ World_Waypoint_Set(33, kSetFreeSlotA, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(34, kSetFreeSlotB, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(35, kSetFreeSlotC, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(36, kSetFreeSlotD, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(37, kSetFreeSlotE, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(38, kSetFreeSlotF, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(39, kSetFreeSlotG, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(40, kSetFreeSlotH, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(41, kSetFreeSlotI, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(42, kSetFreeSlotJ, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(43, kSetCT01_CT12, -427.0f, -6.5f, 1188.0f);
+ World_Waypoint_Set(44, kSetCT01_CT12, -255.2f, -6.5f, 455.2f);
+ World_Waypoint_Set(45, kSetCT02, -247.02f, -145.11f, 32.99f);
+ World_Waypoint_Set(46, kSetCT02, -154.83f, -145.11f, 9.39f);
+ World_Waypoint_Set(47, kSetCT03_CT04, -619.36f, -616.15f, 220.91f);
+ World_Waypoint_Set(48, kSetCT03_CT04, -82.86f, -621.3f, 769.03f);
+ World_Waypoint_Set(49, kSetCT06, -7.31f, -58.23f, 22.44f);
+ World_Waypoint_Set(50, kSetCT06, 132.16f, -58.23f, 767.0f);
+ World_Waypoint_Set(51, kSetCT03_CT04, -335.05f, -618.82f, 312.9f);
+ World_Waypoint_Set(52, kSetCT07, 189.7f, -58.23f, -4.72f);
+ World_Waypoint_Set(53, kSetCT01_CT12, -450.32f, -6.5f, 230.39f);
+ World_Waypoint_Set(54, kSetCT01_CT12, -70.04f, -6.5f, 150.17f);
+ World_Waypoint_Set(55, kSetPS07, 491.0f, 0.0f, -571.0f);
+ World_Waypoint_Set(56, kSetCT01_CT12, -221.68f, -6.5f, 150.15f);
+ World_Waypoint_Set(57, kSetRC01, -291.43f, -0.3f, 277.92f);
+ World_Waypoint_Set(58, kSetRC01, -272.91f, -0.3f, 369.1f);
+ World_Waypoint_Set(59, kSetDR01_DR02_DR04, -118.65f, 0.15f, -130.15f);
+ World_Waypoint_Set(60, kSetDR01_DR02_DR04, 22.27f, 0.15f, -69.81f);
+ World_Waypoint_Set(61, kSetRC02_RC51, -39.0f, -1238.0f, 108284.0f);
+ World_Waypoint_Set(62, kSetPS02, -11.0f, -40.0f, -45.0f);
+ World_Waypoint_Set(63, kSetCT03_CT04, -133.0f, -621.0f, 686.0f);
+ World_Waypoint_Set(64, kSetCT01_CT12, -360.0f, -6.13f, 380.0f);
+ World_Waypoint_Set(65, kSetPS05, 688.0f, 0.37f, -518.0f);
+ World_Waypoint_Set(66, kSetCT03_CT04, -83.0f, -621.0f, 627.0f);
+ World_Waypoint_Set(67, kSetCT01_CT12, -212.65f, -2.08f, 513.47f);
+ World_Waypoint_Set(68, kSetCT01_CT12, -219.43f, -2.08f, 584.8f);
+ World_Waypoint_Set(69, kSetCT01_CT12, -215.0f, -2.08f, 548.0f);
+ World_Waypoint_Set(71, kSetRC01, 210.0f, 5.55f, 146.19f);
+ World_Waypoint_Set(72, kSetRC01, -55.27f, 5.55f, 108.34f);
+ World_Waypoint_Set(73, kSetPS07, 338.75f, 0.22f, -612.0f);
+ World_Waypoint_Set(74, kSetPS07, 338.75f, 0.22f, -560.0f);
+ World_Waypoint_Set(75, kSetCT03_CT04, -138.45f, -621.3f, 778.52f);
+ World_Waypoint_Set(76, kSetPS03, -499.23f, -354.62f, -51.3f);
+ World_Waypoint_Set(77, kSetPS03, -903.0f, -354.62f, 676.0f);
+ World_Waypoint_Set(78, kSetPS03, -723.0f, -354.62f, -1272.0f);
+ World_Waypoint_Set(79, kSetPS09, 207.36f, 0.67f, -96.42f);
+ World_Waypoint_Set(80, kSetPS09, -134.43f, 0.43f, -180.46f);
+ World_Waypoint_Set(81, kSetPS09, -559.0f, 0.15f, -100.0f);
+ World_Waypoint_Set(82, kSetPS03, -1250.07f, -354.0f, -1186.9f);
+ World_Waypoint_Set(83, kSetRC02_RC51, -55.11f, -1238.89f, 107995.87f);
+ World_Waypoint_Set(84, kSetCT02, -161.62f, -145.11f, -53.73f);
+ World_Waypoint_Set(85, kSetCT02, -201.62f, -145.11f, -85.73f);
+ World_Waypoint_Set(86, kSetCT01_CT12, -171.55f, -2.08f, 361.01f);
+ World_Waypoint_Set(87, kSetCT01_CT12, -523.51f, -9.23f, 1384.76f);
+ World_Waypoint_Set(88, kSetCT01_CT12, -102.01f, -9.23f, 1375.38f);
+ World_Waypoint_Set(89, kSetRC02_RC51, 14.54f, -1238.89f, 108280.85f);
+ World_Waypoint_Set(91, kSetRC02_RC51, 9.68f, -1238.89f, 108427.73f);
+ World_Waypoint_Set(92, kSetRC02_RC51, -153.29f, -1238.89f, 108473.52f);
+ World_Waypoint_Set(93, kSetRC02_RC51, -104.0f, -1238.89f, 108413.0f);
+ World_Waypoint_Set(90, kSetRC02_RC51, 37.59f, -1238.89f, 108449.29f);
+ World_Waypoint_Set(94, kSetCT07, 302.32f, -58.23f, 35.14f);
+ World_Waypoint_Set(95, kSetDR05, 62.0f, 0.3f, 129.0f);
+ World_Waypoint_Set(96, kSetDR05, -134.63f, -0.3f, 171.41f);
+ World_Waypoint_Set(97, kSetDR01_DR02_DR04, -1135.0f, 6.98f, 441.0f);
+ World_Waypoint_Set(98, kSetDR01_DR02_DR04, -1015.0f, 7.18f, 354.75f);
+ World_Waypoint_Set(99, kSetDR01_DR02_DR04, -975.0f, -0.04f, 316.0f);
+ World_Waypoint_Set(100, kSetCT01_CT12, -334.46f, -6.5f, 500.64f);
+ World_Waypoint_Set(101, kSetDR01_DR02_DR04, -334.46f, -6.5f, 500.64f);
+ World_Waypoint_Set(102, kSetRC02_RC51, 27.89f, -1238.89f, 108288.73f);
+ World_Waypoint_Set(103, kSetRC04, 48.31f, 0.15f, 17.11f);
+ World_Waypoint_Set(104, kSetRC04, 4.31f, 0.15f, -39.0f);
+ World_Waypoint_Set(105, kSetCT03_CT04, -764.58f, -616.31f, 229.6f);
+ World_Waypoint_Set(106, kSetCT01_CT12, -25.0f, -6.5f, 352.28f);
+ World_Waypoint_Set(107, kSetRC04, -3.6f, -621.79f, 164.09f);
+ World_Waypoint_Set(108, kSetRC04, 86.03f, -622.47f, 73.21f);
+ World_Waypoint_Set(109, kSetDR01_DR02_DR04, -793.0f, -0.04f, 164.0f);
+ World_Waypoint_Set(110, kSetDR01_DR02_DR04, -665.0f, -0.04f, 304.0f);
+ World_Waypoint_Set(111, kSetDR01_DR02_DR04, -765.0f, -0.04f, 232.0f);
+ World_Waypoint_Set(112, kSetDR01_DR02_DR04, -817.0f, -0.04f, 300.0f);
+ World_Waypoint_Set(113, kSetDR01_DR02_DR04, -907.0f, -0.04f, 304.0f);
+ World_Waypoint_Set(114, kSetBB01, -4.0f, 0.0f, 880.0f);
+ World_Waypoint_Set(115, kSetBB01, 174.0f, 0.0f, 890.15f);
+ World_Waypoint_Set(116, kSetBB01, 69.0f, 0.0f, 695.0f);
+ World_Waypoint_Set(117, kSetBB01, 0.0f, 0.0f, 0.0f);
+ World_Waypoint_Set(118, kSetCT05, -376.35f, -109.91f, 604.4f);
+ World_Waypoint_Set(119, kSetCT05, -375.0f, -109.91f, 750.0f);
+ World_Waypoint_Set(120, kSetAR01_AR02, -50.81f, 2.5f, 233.0f);
+ World_Waypoint_Set(121, kSetAR01_AR02, -50.81f, 2.5f, 31.03f);
+ World_Waypoint_Set(122, kSetAR01_AR02, 28.12f, 2.5f, 100.64f);
+ World_Waypoint_Set(123, kSetCT01_CT12, -474.28f, -6.5f, 979.59f);
+ World_Waypoint_Set(124, kSetMA01, 8.74f, 0.0f, -282.81f);
+ World_Waypoint_Set(125, kSetMA01, 978.98f, 0.0f, 145.64f);
+ World_Waypoint_Set(126, kSetMA01, 477.18f, 0.0f, -287.21f);
+ World_Waypoint_Set(127, kSetBB11, 31.39f, -10.27f, -64.52f);
+ World_Waypoint_Set(128, kSetBB11, 7.39f, -10.27f, -136.52f);
+ World_Waypoint_Set(129, kSetBB11, -136.61f, -10.27f, -136.52f);
+ World_Waypoint_Set(130, kSetBB11, -36.61f, -10.27f, -136.52f);
+ World_Waypoint_Set(131, kSetBB09, 435.45f, -9.0f, 166.0f);
+ World_Waypoint_Set(132, kSetBB09, 619.45f, -9.0f, 234.0f);
+ World_Waypoint_Set(133, kSetBB09, 619.45f, -9.0f, 270.0f);
+ World_Waypoint_Set(134, kSetBB05, -80.59f, -60.31f, 256.35f);
+ World_Waypoint_Set(135, kSetBB05, -48.0f, -60.31f, 183.0f);
+ World_Waypoint_Set(136, kSetBB05, -24.59f, -60.31f, 64.35f);
+ World_Waypoint_Set(137, kSetBB05, 99.41f, -60.31f, 4.35f);
+ World_Waypoint_Set(138, kSetBB05, 99.41f, -60.34f, -115.65f);
+ World_Waypoint_Set(139, kSetBB05, 147.41f, -60.34f, -115.65f);
+ World_Waypoint_Set(144, kSetBB07, -654.56f, 252.59f, -1110.88f);
+ World_Waypoint_Set(145, kSetBB07, -578.56f, 252.59f, -1010.88f);
+ World_Waypoint_Set(146, kSetBB07, -470.56f, 252.59f, -1070.88f);
+ World_Waypoint_Set(147, kSetBB07, -510.56f, 252.59f, -1006.88f);
+ World_Waypoint_Set(148, kSetBB07, -646.56f, 252.59f, -1006.88f);
+ World_Waypoint_Set(140, kSetBB06_BB07, -43.88f, -0.04f, 172.95f);
+ World_Waypoint_Set(141, kSetBB06_BB07, 78.36f, -0.04f, 80.79f);
+ World_Waypoint_Set(142, kSetBB06_BB07, 81.74f, -0.04f, -94.0f);
+ World_Waypoint_Set(143, kSetBB06_BB07, -118.26f, -0.04f, -94.04f);
+ World_Waypoint_Set(149, kSetHC01_HC02_HC03_HC04, 647.0f, 1.6f, -81.87f);
+ World_Waypoint_Set(150, kSetUG02, -269.0f, 120.16f, -88.0f);
+ World_Waypoint_Set(151, kSetUG02, -181.0f, 120.16f, -96.0f);
+ World_Waypoint_Set(152, kSetUG02, -133.0f, 84.13f, -108.0f);
+ World_Waypoint_Set(153, kSetUG02, -95.0f, 74.87f, -503.0f);
+ World_Waypoint_Set(154, kSetRC03, -172.6f, 1.72f, 87.62f);
+ World_Waypoint_Set(155, kSetAR01_AR02, -284.0f, 0.0f, 296.0f);
+ World_Waypoint_Set(156, kSetAR01_AR02, -680.0f, 0.0f, -156.0f);
+ World_Waypoint_Set(157, kSetAR01_AR02, -702.0f, 0.0f, -919.0f);
+ World_Waypoint_Set(158, kSetAR01_AR02, 140.0f, 0.0f, -1233.0f);
+ World_Waypoint_Set(159, kSetAR01_AR02, -228.0f, 0.0f, -92.0f);
+ World_Waypoint_Set(160, kSetAR01_AR02, -274.0f, 0.0f, -627.0f);
+ World_Waypoint_Set(161, kSetAR01_AR02, -329.27f, 0.0f, -1115.14f);
+ World_Waypoint_Set(162, kSetHC01_HC02_HC03_HC04, 815.34f, 0.14f, 165.21f);
+ World_Waypoint_Set(163, kSetHC01_HC02_HC03_HC04, -35.0f, 0.14f, 39.0f);
+ World_Waypoint_Set(164, kSetHC01_HC02_HC03_HC04, -24.0f, 0.14f, -631.0f);
+ World_Waypoint_Set(165, kSetHC01_HC02_HC03_HC04, -125.0f, 0.14f, -221.0f);
+ World_Waypoint_Set(166, kSetHC01_HC02_HC03_HC04, 456.82f, 0.14f, 69.0f);
+ World_Waypoint_Set(167, kSetRC03, -815.0f, -4.01f, 96.0f);
+ World_Waypoint_Set(168, kSetRC03, -235.0f, 1.72f, 92.0f);
+ World_Waypoint_Set(169, kSetRC03, 5.0f, 1.72f, 92.0f);
+ World_Waypoint_Set(170, kSetRC03, 265.0f, 1.72f, 36.0f);
+ World_Waypoint_Set(171, kSetRC03, -639.0f, 1.72f, -124.0f);
+ World_Waypoint_Set(172, kSetHC01_HC02_HC03_HC04, -225.0f, 1.0f, 39.0f);
+ World_Waypoint_Set(172, kSetHC01_HC02_HC03_HC04, -217.0f, 1.0f, 127.0f);
+ World_Waypoint_Set(174, kSetRC03, 326.96f, -4.01f, 383.16f);
+ World_Waypoint_Set(175, kSetRC03, 264.43f, -4.01f, 313.73f);
+ World_Waypoint_Set(176, kSetUG06, -78.43f, 0.0f, 269.98f);
+ World_Waypoint_Set(177, kSetUG06, 19.0f, 0.0f, 269.98f);
+ World_Waypoint_Set(178, kSetUG06, 91.0f, 0.0f, 137.6f);
+ World_Waypoint_Set(185, kSetUG09, 115.0f, 156.94f, -310.0f);
+ World_Waypoint_Set(186, kSetUG09, 153.0f, 156.94f, -294.0f);
+ World_Waypoint_Set(179, kSetUG06, 40.14f, 0.0f, 276.62f);
+ World_Waypoint_Set(180, kSetUG06, -71.86f, 0.0f, 276.62f);
+ World_Waypoint_Set(181, kSetUG06, -112.56f, 0.0f, 228.03f);
+ World_Waypoint_Set(189, kSetUG14, 229.0f, 186.04f, -24.0f);
+ World_Waypoint_Set(190, kSetUG14, 157.0f, 186.04f, -24.0f);
+ World_Waypoint_Set(191, kSetUG14, 157.0f, 128.92f, -148.0f);
+ World_Waypoint_Set(182, kSetUG01, 143.45f, -50.13f, -12.22f);
+ World_Waypoint_Set(183, kSetUG01, 199.45f, -50.13f, -1400.22f);
+ World_Waypoint_Set(184, kSetUG01, -112.55f, -50.13f, -2360.22f);
+ World_Waypoint_Set(187, kSetUG14, -295.0f, 12.97f, -148.0f);
+ World_Waypoint_Set(188, kSetUG14, 157.0f, 129.0f, -504.0f);
+ World_Waypoint_Set(192, kSetTB02_TB03, -136.19f, 0.0f, 1580.03f);
+ World_Waypoint_Set(193, kSetTB02_TB03, -308.0f, -81.46f, 1466.0f);
+ World_Waypoint_Set(194, kSetBB03, 82.26f, 60.16f, -124.35f);
+ World_Waypoint_Set(195, kSetBB03, 226.1f, 60.16f, -139.84f);
+ World_Waypoint_Set(196, kSetBB05, 39.41f, -60.31f, 308.35f);
+ World_Waypoint_Set(197, kSetBB05, 99.41f, -60.31f, 220.35f);
+ World_Waypoint_Set(198, kSetBB05, 267.41f, -60.31f, 180.35f);
+ World_Waypoint_Set(200, kSetBB06_BB07, -44.46f, -0.04f, 177.4f);
+ World_Waypoint_Set(201, kSetBB06_BB07, 137.0f, -0.04f, 17.0f);
+ World_Waypoint_Set(202, kSetRC03, -610.0f, -4.01f, 237.11f);
+ World_Waypoint_Set(203, kSetRC03, -368.96f, -4.01f, 237.11f);
+ World_Waypoint_Set(204, kSetHC01_HC02_HC03_HC04, 19.0f, 0.14f, 83.0f);
+ World_Waypoint_Set(205, kSetHC01_HC02_HC03_HC04, -58.36f, 0.14f, 4.4f);
+ World_Waypoint_Set(206, kSetHC01_HC02_HC03_HC04, -18.11f, 0.14f, -669.45f);
+ World_Waypoint_Set(207, kSetHC01_HC02_HC03_HC04, -18.11f, 0.14f, -669.45f);
+ World_Waypoint_Set(208, kSetHC01_HC02_HC03_HC04, -162.25f, 0.14f, -511.93f);
+ World_Waypoint_Set(209, kSetHC01_HC02_HC03_HC04, -128.25f, 0.14f, -322.0f);
+ World_Waypoint_Set(210, kSetHC01_HC02_HC03_HC04, 714.48f, 0.14f, 14.92f);
+ World_Waypoint_Set(211, kSetHC01_HC02_HC03_HC04, 23.0f, 0.14f, -1.0f);
+ World_Waypoint_Set(212, kSetHC01_HC02_HC03_HC04, 28.47f, 0.14f, 3.8f);
+ World_Waypoint_Set(213, kSetHC01_HC02_HC03_HC04, 36.47f, 0.14f, 55.89f);
+ World_Waypoint_Set(214, kSetHC01_HC02_HC03_HC04, 155.75f, 0.14f, 54.0f);
+ World_Waypoint_Set(215, kSetAR01_AR02, -70.0f, 0.0f, -647.0f);
+ World_Waypoint_Set(216, kSetAR01_AR02, -270.01f, 0.0f, -441.68f);
+ World_Waypoint_Set(217, kSetAR01_AR02, -209.98f, 0.0f, -483.05f);
+ World_Waypoint_Set(218, kSetAR01_AR02, -428.08f, 0.0f, -110.16f);
+ World_Waypoint_Set(219, kSetAR01_AR02, 256.0f, 0.0f, -298.08f);
+ World_Waypoint_Set(220, kSetAR01_AR02, -187.18f, 0.0f, -298.08f);
+ World_Waypoint_Set(221, kSetAR01_AR02, -428.08f, 0.0f, -110.16f);
+ World_Waypoint_Set(222, kSetAR01_AR02, -466.0f, 0.0f, -635.0f);
+ World_Waypoint_Set(223, kSetAR01_AR02, -382.0f, 0.0f, -1099.0f);
+ World_Waypoint_Set(224, kSetAR01_AR02, -227.0f, 0.0f, -1333.0f);
+ World_Waypoint_Set(225, kSetAR01_AR02, 140.88f, 0.0f, -1362.34f);
+ World_Waypoint_Set(226, kSetAR01_AR02, -448.18f, 0.0f, -626.38f);
+ World_Waypoint_Set(227, kSetAR01_AR02, -444.18f, 0.0f, -730.38f);
+ World_Waypoint_Set(228, kSetBB01, -198.02f, 9.04f, 487.7f);
+ World_Waypoint_Set(229, kSetBB01, -147.4f, 9.04f, 918.08f);
+ World_Waypoint_Set(230, kSetBB01, -201.67f, 9.04f, 829.09f);
+ World_Waypoint_Set(231, kSetBB01, -177.67f, 9.04f, 829.09f);
+ World_Waypoint_Set(232, kSetCT01_CT12, -92.52f, -6.5f, 714.44f);
+ World_Waypoint_Set(233, kSetCT01_CT12, -352.52f, -6.5f, 714.44f);
+ World_Waypoint_Set(234, kSetCT01_CT12, -352.52f, -6.5f, 666.44f);
+ World_Waypoint_Set(235, kSetCT01_CT12, -136.41f, -6.5f, 735.26f);
+ World_Waypoint_Set(236, kSetCT01_CT12, -248.41f, -6.5f, 747.26f);
+ World_Waypoint_Set(237, kSetCT01_CT12, -352.52f, -6.5f, 252.0f);
+ World_Waypoint_Set(238, kSetCT01_CT12, -190.25f, -6.5f, 274.58f);
+ World_Waypoint_Set(239, kSetCT11, -371.87f, 0.0f, 275.89f);
+ World_Waypoint_Set(240, kSetCT11, -371.87f, 0.0f, -60.11f);
+ World_Waypoint_Set(241, kSetCT11, 588.5f, 0.0f, 254.19f);
+ World_Waypoint_Set(242, kSetCT11, 560.5f, 0.0f, 254.19f);
+ World_Waypoint_Set(243, kSetDR01_DR02_DR04, -153.77f, -0.01f, -1037.98f);
+ World_Waypoint_Set(244, kSetDR01_DR02_DR04, 398.23f, 6.98f, -1037.98f);
+ World_Waypoint_Set(245, kSetDR01_DR02_DR04, 40.78f, 7.22f, -943.72f);
+ World_Waypoint_Set(246, kSetDR01_DR02_DR04, 68.78f, -0.01f, -943.72f);
+ World_Waypoint_Set(247, kSetDR01_DR02_DR04, 96.78f, -0.01f, -973.72f);
+ World_Waypoint_Set(248, kSetPS03, -897.38f, -354.62f, 704.77f);
+ World_Waypoint_Set(249, kSetPS03, -914.76f, -354.62f, -312.43f);
+ World_Waypoint_Set(250, kSetPS03, -457.54f, -354.62f, -820.15f);
+ World_Waypoint_Set(251, kSetPS05, 556.72f, 0.37f, -141.26f);
+ World_Waypoint_Set(252, kSetPS05, 635.66f, 0.37f, -594.11f);
+ World_Waypoint_Set(253, kSetPS09, 130.42f, 0.0f, -79.98f);
+ World_Waypoint_Set(254, kSetPS09, -311.15f, 0.0f, -161.06f);
+ World_Waypoint_Set(255, kSetPS09, -403.15f, 0.0f, -161.06f);
+ World_Waypoint_Set(256, kSetPS09, -487.15f, 0.0f, -137.11f);
+ World_Waypoint_Set(257, kSetPS09, -611.15f, 0.0f, -73.06f);
+ World_Waypoint_Set(258, kSetHC01_HC02_HC03_HC04, 37.64f, 0.14f, -48.02f);
+ World_Waypoint_Set(259, kSetHC01_HC02_HC03_HC04, 109.64f, 0.14f, 91.98f);
+ World_Waypoint_Set(260, kSetHC01_HC02_HC03_HC04, -149.0f, 0.14f, 79.0f);
+ World_Waypoint_Set(261, kSetHC01_HC02_HC03_HC04, -129.0f, 0.14f, -237.0f);
+ World_Waypoint_Set(262, kSetHC01_HC02_HC03_HC04, -1.0f, 0.14f, -671.0f);
+ World_Waypoint_Set(263, kSetPS04, -728.0f, -354.0f, 1090.0f);
+ World_Waypoint_Set(264, kSetMA02_MA04, -8.41f, -144.0f, 343.0f);
+ World_Waypoint_Set(265, kSetMA02_MA04, -20.81f, -144.0f, 450.0f);
+ World_Waypoint_Set(266, kSetMA02_MA04, -200.0f, -144.0f, 206.0f);
+ World_Waypoint_Set(267, kSetMA02_MA04, -17.0f, -144.0f, 178.0f);
+ World_Waypoint_Set(268, kSetMA04, -7207.0f, 955.5f, 1852.75f);
+ World_Waypoint_Set(269, kSetMA04, -7191.0f, 955.5f, 1700.75f);
+ World_Waypoint_Set(270, kSetMA04, 7116.0f, 955.5f, 1871.0f);
+ World_Waypoint_Set(271, kSetDR01_DR02_DR04, -1139.89f, -0.04f, 67.89f);
+ World_Waypoint_Set(272, kSetDR01_DR02_DR04, -690.5f, -0.04f, -210.48f);
+ World_Waypoint_Set(273, kSetDR01_DR02_DR04, -495.89f, -0.04f, -204.11f);
+ World_Waypoint_Set(274, kSetRC01, -511.75f, 5.55f, 55.63f);
+ World_Waypoint_Set(275, kSetRC01, 296.21f, 5.55f, 59.63f);
+ World_Waypoint_Set(276, kSetTB06, -34.57f, 149.42f, -502.83f);
+ World_Waypoint_Set(277, kSetTB06, 51.0f, 149.42f, -487.27f);
+ World_Waypoint_Set(278, kSetTB06, 82.0f, 149.42f, -519.0f);
+ World_Waypoint_Set(279, kSetTB06, 95.97f, 149.42f, -549.51f);
+ World_Waypoint_Set(280, kSetTB06, -34.0f, 149.42f, -551.0f);
+ World_Waypoint_Set(281, kSetDR01_DR02_DR04, -2060.99f, -0.04f, -234.8f);
+ World_Waypoint_Set(282, kSetNR01, -346.69f, 31.55f, -1476.41f);
+ World_Waypoint_Set(283, kSetNR01, -298.69f, 31.55f, -1476.41f);
+ World_Waypoint_Set(284, kSetNR01, -298.69f, 31.55f, -1260.41f);
+ World_Waypoint_Set(285, kSetNR01, -418.69f, 31.55f, -1260.41f);
+ World_Waypoint_Set(286, kSetNR04, -104.24f, 0.0f, 183.16f);
+ World_Waypoint_Set(287, kSetNR07, -254.0f, -73.5f, -41.0f);
+ World_Waypoint_Set(288, kSetCT08_CT51_UG12, -125.14f, 0.02f, -176.76f);
+ World_Waypoint_Set(289, kSetAR01_AR02, -871.15f, 0.0f, -1081.93f);
+ World_Waypoint_Set(290, kSetAR01_AR02, -411.15f, 0.0f, -1117.93f);
+ World_Waypoint_Set(291, kSetNR01, 225.31f, 31.665f, -572.41f);
+ World_Waypoint_Set(292, kSetNR04, -127.0f, 0.0f, 178.0f);
+ World_Waypoint_Set(293, kSetNR04, 5.0f, 0.0f, 342.0f);
+ World_Waypoint_Set(294, kSetNR04, 173.0f, 0.0f, 226.0f);
+ World_Waypoint_Set(295, kSetNR04, 13.0f, 0.0f, -50.0f);
+ World_Waypoint_Set(354, kSetNR04, 57.0f, 0.0f, 18.0f);
+ World_Waypoint_Set(355, kSetNR04, 161.0f, 0.0f, 410.0f);
+ World_Waypoint_Set(358, kSetNR04, 33.0f, 0.0f, 198.0f);
+ World_Waypoint_Set(359, kSetNR04, 62.92f, 0.16f, 309.72f);
+ World_Waypoint_Set(549, kSetNR04, -15.0f, 0.0f, 338.0f);
+ World_Waypoint_Set(445, kSetNR04, 129.0f, 0.0f, 418.0f);
+ World_Waypoint_Set(546, kSetNR04, 13.0f, 0.0f, 206.0f);
+ World_Waypoint_Set(296, kSetUG04, 168.0f, 11.87f, -987.0f);
+ World_Waypoint_Set(297, kSetUG04, -178.5f, 23.73f, -2176.05f);
+ World_Waypoint_Set(298, kSetUG09, -145.0f, 156.94f, -370.0f);
+ World_Waypoint_Set(299, kSetUG09, -37.0f, 156.94f, -506.0f);
+ World_Waypoint_Set(300, kSetUG09, 75.0f, 156.94f, -506.0f);
+ World_Waypoint_Set(301, kSetUG10, 60.3f, 81.33f, -647.7f);
+ World_Waypoint_Set(302, kSetUG10, -271.0f, 81.33f, -647.7f);
+ World_Waypoint_Set(303, kSetUG10, -11.7f, 81.33f, -647.7f);
+ World_Waypoint_Set(304, kSetUG10, 10.94f, 115.0f, 59.67f);
+ World_Waypoint_Set(305, kSetUG10, 0.3f, 115.0f, 404.3f);
+ World_Waypoint_Set(306, kSetUG10, -329.38f, 115.0f, -385.84f);
+ World_Waypoint_Set(307, kSetUG12, 131.0f, -126.21f, -224.0f);
+ World_Waypoint_Set(308, kSetUG12, 103.0f, -126.21f, 152.0f);
+ World_Waypoint_Set(309, kSetUG12, 19.0f, -126.21f, 152.0f);
+ World_Waypoint_Set(310, kSetUG12, 459.0f, -126.21f, 152.0f);
+ World_Waypoint_Set(311, kSetUG12, -29.0f, -126.21f, 556.0f);
+ World_Waypoint_Set(312, kSetUG14, -311.0f, 129.0f, -488.0f);
+ World_Waypoint_Set(322, kSetNR04, 121.0f, 0.0f, -82.0f);
+ World_Waypoint_Set(323, kSetHC01_HC02_HC03_HC04, 600.58f, 0.14f, 32.82f);
+ World_Waypoint_Set(127, kSetBB11, 102.98f, -30.89f, -121.02f);
+ World_Waypoint_Set(128, kSetBB11, -20.0f, -30.89f, -121.02f);
+ World_Waypoint_Set(313, kSetBB11, 102.98f, -31.0f, -149.0f);
+ World_Waypoint_Set(314, kSetBB11, 20.0f, -31.0f, -109.0f);
+ World_Waypoint_Set(315, kSetBB11, -60.6f, -31.0f, -109.0f);
+ World_Waypoint_Set(316, kSetBB11, 87.35f, -31.0f, 74.0f);
+ World_Waypoint_Set(317, kSetBB11, 74.0f, -31.0f, 42.0f);
+ World_Waypoint_Set(318, kSetBB11, 74.0f, -31.0f, 98.0f);
+ World_Waypoint_Set(319, kSetBB11, 115.35f, -31.0f, 302.36f);
+ World_Waypoint_Set(320, kSetBB11, 104.38f, -31.0f, 260.0f);
+ World_Waypoint_Set(321, kSetBB11, 120.0f, -31.0f, 115.0f);
+ World_Waypoint_Set(336, kSetNR07, -110.0f, -73.5f, -169.0f);
+ World_Waypoint_Set(337, kSetNR07, -161.0f, -73.5f, -105.0f);
+ World_Waypoint_Set(338, kSetNR07, -193.0f, -73.5f, -105.0f);
+ World_Waypoint_Set(350, kSetNR01, -416.0f, -31.93f, -841.0f);
+ World_Waypoint_Set(339, kSetUG07, 106.0f, -12.21f, -94.0f);
+ World_Waypoint_Set(340, kSetUG07, 98.02f, -12.21f, -126.0f);
+ World_Waypoint_Set(341, kSetUG07, 106.0f, -21.47f, -278.0f);
+ World_Waypoint_Set(342, kSetUG07, 82.0f, -12.19f, -278.0f);
+ World_Waypoint_Set(343, kSetDR01_DR02_DR04, -1847.0f, -0.04f, 82.0f);
+ World_Waypoint_Set(344, kSetDR01_DR02_DR04, -1847.0f, -0.04f, -222.0f);
+ World_Waypoint_Set(345, kSetDR01_DR02_DR04, -1147.0f, -0.04f, -198.0f);
+ World_Waypoint_Set(346, kSetDR01_DR02_DR04, -667.0f, -0.04f, -125.0f);
+ World_Waypoint_Set(347, kSetDR01_DR02_DR04, -471.0f, -0.04f, -110.0f);
+ World_Waypoint_Set(348, kSetDR01_DR02_DR04, -403.0f, -0.04f, -110.0f);
+ World_Waypoint_Set(351, kSetCT09, 105.0f, 348.52f, 948.0f);
+ World_Waypoint_Set(352, kSetCT11, -426.0f, 9.68f, -33.0f);
+ World_Waypoint_Set(353, kSetCT11, -439.0f, 9.68f, -101.0f);
+ World_Waypoint_Set(356, kSetNR02, 19.01f, -24.0f, 20.21f);
+ World_Waypoint_Set(357, kSetNR02, 22.26f, 12.0f, -31.01f);
+ World_Waypoint_Set(366, kSetNR02, -94.21f, 12.0f, -26.15f);
+ World_Waypoint_Set(367, kSetNR02, -286.21f, -24.0f, 37.85f);
+ World_Waypoint_Set(368, kSetUG16, 176.91f, -40.67f, 225.92f);
+ World_Waypoint_Set(369, kSetNR01, -220.0f, 23.88f, -1437.0f);
+ World_Waypoint_Set(370, kSetNR01, -392.0f, 31.55f, -1757.0f);
+ World_Waypoint_Set(371, kSetHF03, 441.0f, 47.76f, -798.98f);
+ World_Waypoint_Set(372, kSetHF03, 185.62f, 47.76f, -867.42f);
+ World_Waypoint_Set(373, kSetHF03, 947.0f, 47.76f, -696.0f);
+ World_Waypoint_Set(374, kSetUG18, -339.22f, 0.22f, -11.33f);
+ World_Waypoint_Set(375, kSetNR02, -299.0f, -24.0f, 322.0f);
+ World_Waypoint_Set(376, kSetNR02, -215.0f, -24.0f, 322.0f);
+ World_Waypoint_Set(377, kSetHF03, 397.6f, 47.76f, -823.23f);
+ World_Waypoint_Set(378, kSetHF03, 461.56f, 47.76f, -757.78f);
+ World_Waypoint_Set(379, kSetTB07, -260.15f, 12.0f, -19.16f);
+ World_Waypoint_Set(361, kSetNR03, -185.0f, -70.19f, -1046.0f);
+ World_Waypoint_Set(362, kSetNR03, -121.0f, -70.19f, -778.0f);
+ World_Waypoint_Set(363, kSetNR03, -166.0f, -70.19f, -579.0f);
+ World_Waypoint_Set(364, kSetNR03, -160.0f, -70.19f, -164.0f);
+ World_Waypoint_Set(365, kSetNR03, 3.0f, -70.19f, -986.0f);
+ World_Waypoint_Set(380, kSetHF02, 456.43f, 47.76f, -276.05f);
+ World_Waypoint_Set(381, kSetRC03, -160.0f, -4.01f, 496.0f);
+ World_Waypoint_Set(382, kSetRC03, 0.0f, 1.72f, 60.0f);
+ World_Waypoint_Set(383, kSetRC03, 0.0f, 1.72f, -192.0f);
+ World_Waypoint_Set(384, kSetRC03, 260.0f, 1.72f, 52.0f);
+ World_Waypoint_Set(385, kSetCT11, 489.0f, 9.68f, 74.0f);
+ World_Waypoint_Set(386, kSetCT11, -375.0f, 9.68f, 54.0f);
+ World_Waypoint_Set(387, kSetCT11, -359.0f, 0.0f, 302.0f);
+ World_Waypoint_Set(388, kSetBB01, 215.0f, 0.0f, -122.0f);
+ World_Waypoint_Set(389, kSetBB01, -133.0f, 9.04f, 910.0f);
+ World_Waypoint_Set(390, kSetDR01_DR02_DR04, -655.0f, 6.98f, -364.0f);
+ World_Waypoint_Set(391, kSetDR01_DR02_DR04, -795.0f, 6.98f, -352.0f);
+ World_Waypoint_Set(392, kSetDR01_DR02_DR04, -1103.0f, 6.98f, -384.0f);
+ World_Waypoint_Set(393, kSetDR01_DR02_DR04, -1759.0f, -0.04f, 75.0f);
+ World_Waypoint_Set(394, kSetMA07, 476.0f, -162.0f, 196.0f);
+ World_Waypoint_Set(395, kSetMA07, 120.0f, -162.0f, 148.0f);
+ World_Waypoint_Set(396, kSetMA07, 120.0f, -161.0f, -160.0f);
+ World_Waypoint_Set(397, kSetMA07, 148.0f, -161.0f, -160.0f);
+ World_Waypoint_Set(398, kSetNR01, 324.0f, 31.0f, -1316.0f);
+ World_Waypoint_Set(399, kSetNR01, 236.0f, 31.0f, -1316.0f);
+ World_Waypoint_Set(400, kSetNR01, 248.0f, 31.0f, -540.0f);
+ World_Waypoint_Set(401, kSetNR01, -287.0f, 31.0f, -480.0f);
+ World_Waypoint_Set(402, kSetNR01, -331.0f, 31.0f, -620.0f);
+ World_Waypoint_Set(403, kSetNR01, -239.0f, 31.0f, -1436.0f);
+ World_Waypoint_Set(404, kSetNR01, -411.0f, 31.0f, -1436.0f);
+ World_Waypoint_Set(405, kSetUG01, 90.0f, -50.0f, -42.0f);
+ World_Waypoint_Set(406, kSetUG01, -106.0f, -50.0f, -2358.0f);
+ World_Waypoint_Set(407, kSetUG10, 0.0f, 81.02f, -512.0f);
+ World_Waypoint_Set(408, kSetUG10, 0.0f, 1.15f, 400.0f);
+ World_Waypoint_Set(409, kSetUG04, -48.0f, -1.74f, -983.0f);
+ World_Waypoint_Set(411, kSetUG05, 80.0f, -16.72f, -4.0f);
+ World_Waypoint_Set(412, kSetUG05, -48.0f, -11.0f, -352.0f);
+ World_Waypoint_Set(413, kSetUG06, -109.0f, 0.0f, 285.0f);
+ World_Waypoint_Set(414, kSetUG06, -109.0f, 0.0f, 125.0f);
+ World_Waypoint_Set(415, kSetUG07, 198.0f, -12.0f, -282.0f);
+ World_Waypoint_Set(416, kSetUG07, 90.0f, -12.0f, -274.0f);
+ World_Waypoint_Set(417, kSetUG07, 10.0f, -12.0f, -282.0f);
+ World_Waypoint_Set(418, kSetUG07, -106.0f, -12.0f, -746.0f);
+ World_Waypoint_Set(419, kSetUG07, -59.0f, -12.0f, -614.0f);
+ World_Waypoint_Set(420, kSetUG08, -496.0f, 0.0f, -168.0f);
+ World_Waypoint_Set(421, kSetUG08, -341.0f, 0.0f, 248.0f);
+ World_Waypoint_Set(422, kSetUG08, -348.0f, 0.0f, -36.0f);
+ World_Waypoint_Set(423, kSetUG13, 60.0f, 52.0f, -544.0f);
+ World_Waypoint_Set(424, kSetUG13, -552.0f, 141.0f, -1008.0f);
+ World_Waypoint_Set(425, kSetUG14, 245.0f, 186.0f, -24.0f);
+ World_Waypoint_Set(426, kSetUG14, -287.0f, 12.0f, -148.0f);
+ World_Waypoint_Set(427, kSetUG18, -9.0f, 0.0f, 588.0f);
+ World_Waypoint_Set(428, kSetUG18, -669.0f, 0.0f, 37.0f);
+ World_Waypoint_Set(429, kSetNR05_NR08, -796.08f, 0.0f, -184.09f);
+ World_Waypoint_Set(430, kSetMA07, -328.0f, -1.62f, 148.0f);
+ World_Waypoint_Set(431, kSetUG06, 75.0f, 0.0f, -71.0f);
+ World_Waypoint_Set(432, kSetUG06, 63.0f, 153.0f, -467.0f);
+ World_Waypoint_Set(433, kSetUG09, 115.0f, 156.0f, -310.0f);
+ World_Waypoint_Set(434, kSetUG09, -57.0f, 156.0f, -306.0f);
+ World_Waypoint_Set(435, kSetUG09, -121.0f, 156.0f, -426.0f);
+ World_Waypoint_Set(436, kSetUG18, -274.74f, 0.0f, 464.75f);
+ World_Waypoint_Set(437, kSetHF05, 271.97f, 40.63f, 18.4f);
+ World_Waypoint_Set(438, kSetHF05, 203.97f, 40.63f, 18.4f);
+ World_Waypoint_Set(516, kSetHF05, -79.01f, 40.63f, 91.01f);
+ World_Waypoint_Set(439, kSetNR05_NR08, -1273.27f, 0.32f, 126.92f);
+ World_Waypoint_Set(440, kSetCT01_CT12, -453.0f, -6.5f, 1176.0f);
+ World_Waypoint_Set(441, kSetCT01_CT12, -497.0f, -6.5f, 1080.0f);
+ World_Waypoint_Set(442, kSetCT01_CT12, -623.0f, -6.5f, 787.0f);
+ World_Waypoint_Set(443, kSetCT01_CT12, -436.0f, -6.5f, 765.0f);
+ World_Waypoint_Set(446, kSetUG04, 176.0f, 19.31f, -283.0f);
+ World_Waypoint_Set(447, kSetUG04, 40.0f, -1.74f, -247.0f);
+ World_Waypoint_Set(448, kSetUG04, 24.0f, -6.71f, -179.0f);
+ World_Waypoint_Set(449, kSetUG04, 44.0f, -1.74f, 57.0f);
+ World_Waypoint_Set(450, kSetUG01, -74.61f, -50.13f, -802.42f);
+ World_Waypoint_Set(451, kSetUG01, 141.39f, -50.13f, -802.92f);
+ World_Waypoint_Set(452, kSetHF06, -91.5f, 367.93f, 277.84f);
+ World_Waypoint_Set(453, kSetHF06, 32.5f, 367.93f, 277.84f);
+ World_Waypoint_Set(454, kSetHF06, 216.5f, 367.93f, 265.84f);
+ World_Waypoint_Set(455, kSetHF06, 216.5f, 367.93f, 389.84f);
+ World_Waypoint_Set(456, kSetNR11, -100.0f, 0.33f, -272.0f);
+ World_Waypoint_Set(462, kSetNR11, -119.0f, 0.33f, 77.0f);
+ World_Waypoint_Set(457, kSetUG05, 129.65f, 16.72f, -78.36f);
+ World_Waypoint_Set(458, kSetUG05, 44.2f, -11.64f, -390.86f);
+ World_Waypoint_Set(459, kSetUG05, 103.36f, -16.72f, -484.49f);
+ World_Waypoint_Set(460, kSetUG06, 103.0f, 0.0f, 413.0f);
+ World_Waypoint_Set(461, kSetUG06, 103.0f, 0.0f, 349.0f);
+ World_Waypoint_Set(467, kSetNR05_NR08, -585.67f, 0.0f, 380.58f);
+ World_Waypoint_Set(468, kSetMA07, -312.0f, -162.8f, 156.0f);
+ World_Waypoint_Set(469, kSetMA07, 68.0f, -162.8f, 144.0f);
+ World_Waypoint_Set(470, kSetMA07, 100.0f, -162.8f, -100.0f);
+ World_Waypoint_Set(471, kSetMA07, 208.0f, -162.8f, -100.0f);
+ World_Waypoint_Set(472, kSetMA07, -16.0f, -162.8f, -100.0f);
+ World_Waypoint_Set(473, kSetDR01_DR02_DR04, -667.39f, -0.04f, -28.38f);
+ World_Waypoint_Set(474, kSetDR01_DR02_DR04, -659.0f, 7.18f, -334.0f);
+ World_Waypoint_Set(475, kSetDR01_DR02_DR04, -659.0f, -0.04f, 242.0f);
+ World_Waypoint_Set(476, kSetDR01_DR02_DR04, -2327.0f, -0.04f, 142.0f);
+ World_Waypoint_Set(477, kSetUG02, -97.24f, 84.13f, -69.94f);
+ World_Waypoint_Set(478, kSetUG02, -97.24f, 74.87f, -509.94f);
+ World_Waypoint_Set(479, kSetUG01, -134.0f, -50.13f, -250.41f);
+ World_Waypoint_Set(480, kSetUG01, 17.01f, -50.13f, -2355.41f);
+ World_Waypoint_Set(481, kSetUG10, -193.5f, 1.15f, 29.0f);
+ World_Waypoint_Set(482, kSetUG10, -329.5f, 1.15f, 29.0f);
+ World_Waypoint_Set(483, kSetUG10, -329.5f, 1.15f, -379.0f);
+ World_Waypoint_Set(488, kSetUG01, 22.0f, -50.13f, -650.0f);
+ World_Waypoint_Set(489, kSetUG01, -14.0f, -50.13f, -2354.0f);
+ World_Waypoint_Set(490, kSetNR01, -360.0f, 31.55f, -1457.0f);
+ World_Waypoint_Set(491, kSetNR01, 308.0f, 31.66f, -1457.0f);
+ World_Waypoint_Set(492, kSetNR01, -72.0f, 23.88f, -1445.0f);
+ World_Waypoint_Set(493, kSetNR01, 76.0f, 23.88f, -1333.0f);
+ World_Waypoint_Set(494, kSetNR01, -236.0f, 31.55f, -337.0f);
+ World_Waypoint_Set(495, kSetNR02, -275.0f, -24.0f, 42.0f);
+ World_Waypoint_Set(496, kSetNR02, 185.0f, -24.0f, 42.0f);
+ World_Waypoint_Set(497, kSetNR03, -250.0f, -70.19f, -639.0f);
+ World_Waypoint_Set(498, kSetNR03, 454.0f, -70.19f, -667.0f);
+ World_Waypoint_Set(499, kSetNR05_NR08, -573.43f, 0.0f, -635.5f);
+ World_Waypoint_Set(500, kSetNR05_NR08, -625.43f, 0.0f, -635.5f);
+ World_Waypoint_Set(501, kSetNR06, -215.08f, -71.88f, 150.86f);
+ World_Waypoint_Set(502, kSetNR06, 60.92f, -71.88f, -29.14f);
+ World_Waypoint_Set(503, kSetNR05_NR08, -1417.36f, 0.32f, 149.18f);
+ World_Waypoint_Set(504, kSetNR05_NR08, -1512.0f, 0.32f, 323.0f);
+ World_Waypoint_Set(505, kSetNR05_NR08, -1813.36f, 0.32f, 325.18f);
+ World_Waypoint_Set(506, kSetNR10, -24.78f, 2.84f, -182.43f);
+ World_Waypoint_Set(507, kSetNR10, -200.78f, 2.84f, -282.43f);
+ World_Waypoint_Set(508, kSetHF01, 579.54f, -0.01f, -380.98f);
+ World_Waypoint_Set(509, kSetHF01, 307.54f, 8.0f, -752.98f);
+ World_Waypoint_Set(510, kSetHF01, 124.0f, 8.0f, -888.0f);
+ World_Waypoint_Set(511, kSetHF01, 124.0f, 8.0f, -244.0f);
+ World_Waypoint_Set(512, kSetHF02, -25.54f, 47.76f, -321.98f);
+ World_Waypoint_Set(513, kSetHF02, 446.46f, 47.76f, -509.98f);
+ World_Waypoint_Set(514, kSetHF03, 567.0f, 47.76f, -884.0f);
+ World_Waypoint_Set(515, kSetHF03, 203.0f, 47.76f, -880.0f);
+ World_Waypoint_Set(517, kSetHF04, 1246.62f, -0.31f, -171.02f);
+ World_Waypoint_Set(518, kSetHF04, -72.89f, -0.31f, -154.77f);
+ World_Waypoint_Set(519, kSetHF04, 285.88f, -0.31f, -134.49f);
+ World_Waypoint_Set(520, kSetHF04, 231.31f, -0.31f, 266.36f);
+ World_Waypoint_Set(521, kSetHF04, 482.02f, -0.31f, -661.24f);
+ World_Waypoint_Set(522, kSetHF04, 1183.98f, -0.31f, -176.25f);
+ World_Waypoint_Set(523, kSetHF04, -45.0f, -0.34f, -351.0f);
+ World_Waypoint_Set(530, kSetKP01, 36.79f, -12.2f, -534.54f);
+ World_Waypoint_Set(531, kSetKP01, -279.21f, -12.2f, -594.54f);
+ World_Waypoint_Set(532, kSetUG14, -76.51f, 129.0f, -748.49f);
+ World_Waypoint_Set(533, kSetUG14, -48.51f, 129.0f, -676.49f);
+ World_Waypoint_Set(534, kSetUG14, -176.51f, 129.0f, -504.49f);
+ World_Waypoint_Set(535, kSetUG14, 111.49f, 129.0f, -504.49f);
+ World_Waypoint_Set(536, kSetUG14, -296.51f, 12.97f, -300.49f);
+ World_Waypoint_Set(537, kSetUG14, -220.51f, 12.97f, -184.49f);
+ World_Waypoint_Set(538, kSetUG14, -40.51f, 12.97f, -148.49f);
+ World_Waypoint_Set(539, kSetUG07, 190.0f, 12.0f, -282.0f);
+ World_Waypoint_Set(540, kSetKP05_KP06, -934.24f, 0.0f, 807.77f);
+ World_Waypoint_Set(541, kSetKP05_KP06, -1147.2f, 0.0f, 893.18f);
+ World_Waypoint_Set(542, kSetKP05_KP06, -1098.4f, 8.26f, -312.12f);
+ World_Waypoint_Set(543, kSetKP05_KP06, -1046.4f, 8.26f, -312.12f);
+ World_Waypoint_Set(544, kSetUG01, 111.72f, -50.13f, -490.46f);
+ World_Waypoint_Set(545, kSetUG01, -143.86f, 490.46f, -300.38f);
+ World_Waypoint_Set(550, kSetKP05_KP06, -785.31f, 0.0f, -237.05f);
+ World_Waypoint_Set(551, kSetKP05_KP06, -737.31f, 0.0f, -145.05f);
+ World_Waypoint_Set(324, kSetBB05, 267.0f, -60.3f, 203.0f);
+ World_Waypoint_Set(325, kSetBB05, 84.0f, -60.3f, 337.0f);
+ World_Waypoint_Set(326, kSetBB06_BB07, -36.0f, 0.0f, 185.0f);
+ World_Waypoint_Set(327, kSetBB06_BB07, -166.0f, 0.0f, -103.0f);
+ World_Waypoint_Set(328, kSetBB07, -556.0f, 252.59f, -1018.11f);
+ World_Waypoint_Set(329, kSetBB07, -655.0f, 252.6f, -1012.0f);
+ World_Waypoint_Set(330, kSetBB07, -657.0f, 253.0f, -1127.0f);
+ World_Waypoint_Set(331, kSetBB12, 163.8f, 0.0f, 67.0f);
+ World_Waypoint_Set(332, kSetBB06_BB07, -39.0f, 0.0f, 11.5f);
+ World_Waypoint_Set(333, kSetBB12, -34.0f, 0.0f, 33.0f);
+ World_Waypoint_Set(334, kSetBB05, 3.0f, -60.3f, -144.0f);
+ World_Waypoint_Set(335, kSetBB12, -50.0f, 0.0f, 212.0f);
}
void InitScript::Init_SDB() {
diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp
index 2c650dc..0237f0a 100644
--- a/engines/bladerunner/script/scene/ct01.cpp
+++ b/engines/bladerunner/script/scene/ct01.cpp
@@ -43,15 +43,15 @@ enum kCT01Exits {
void SceneScriptCT01::InitializeScene() {
Music_Play(3, 28, 0, 2, -1, 1, 0);
- Game_Flag_Reset(247);
- if (Game_Flag_Query(68)) {
- Game_Flag_Reset(68);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
+ if (Game_Flag_Query(kFlagCT02toCT01)) {
+ Game_Flag_Reset(kFlagCT02toCT01);
Setup_Scene_Information(-35.2f, -6.5f, 352.28f, 603);
- } else if (Game_Flag_Query(71)) {
- Game_Flag_Reset(71);
+ } else if (Game_Flag_Query(kFlagCT03toCT01)) {
+ Game_Flag_Reset(kFlagCT03toCT01);
Setup_Scene_Information(-311.0f, -6.5f, 710.0f, 878);
- } else if (Game_Flag_Query(88)) {
- Game_Flag_Reset(88);
+ } else if (Game_Flag_Query(kFlagCT12toCT01)) {
+ Game_Flag_Reset(kFlagCT12toCT01);
Setup_Scene_Information(-419.0f, -6.5f, 696.0f, 28);
if (Global_Variable_Query(kVariableChapter) != 2 && Global_Variable_Query(kVariableChapter) != 3) {
if (Game_Flag_Query(kFlagSpinnerToCT01)) {
@@ -62,7 +62,7 @@ void SceneScriptCT01::InitializeScene() {
}
} else if (Game_Flag_Query(kFlagSpinnerToCT01)) {
Setup_Scene_Information(-530.0f, -6.5f, 241.0f, 506);
- Game_Flag_Set(247);
+ Game_Flag_Set(kFlagArrivedFromSpinner);
} else {
Setup_Scene_Information(-397.0f, -6.5f, 471.0f, 250);
}
@@ -165,7 +165,7 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -335.23f, -6.5f, 578.97f, 12, 1, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
Actor_Says(kActorMcCoy, 355, 18);
- if (Actor_Query_Goal_Number(kActorZuben) == 0) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenDefault) {
Actor_Says(kActorZuben, 10, 16);
Actor_Face_Actor(kActorHowieLee, kActorMcCoy, true);
Actor_Says(kActorHowieLee, 150, kAnimationModeTalk);
@@ -222,14 +222,14 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Player_Loses_Control();
Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 106, 0, 0, false);
Player_Gains_Control();
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Set_Enter(kSetCT02, kSceneCT02);
}
return true;
}
if (exitId == kCT01ExitCT03) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -259.0f, -6.5f, 710.0f, 0, 1, false, 0)) {
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Set_Enter(kSetCT03_CT04, kSceneCT03);
}
return true;
@@ -237,7 +237,7 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
if (exitId == kCT01ExitCT12) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -419.0f, -6.5f, 696.0f, 0, 1, false, 0)) {
Game_Flag_Set(kFlagCT01toCT12);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Set_Enter(kSetCT01_CT12, kSceneCT12);
}
return true;
@@ -259,75 +259,75 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
switch (spinnerDest) {
case kSpinnerDestinationPoliceStation:
Game_Flag_Set(178);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToPS01);
Set_Enter(kSetPS01, kScenePS01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationMcCoysApartment:
Game_Flag_Set(179);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToMA01);
Set_Enter(kSetMA01, kSceneMA01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationRuncitersAnimals:
Game_Flag_Set(182);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToRC01);
Set_Enter(kSetRC01, kSceneRC01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationAnimoidRow:
Game_Flag_Set(180);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToAR01);
Set_Enter(kSetAR01_AR02, kSceneAR01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationTyrellBuilding:
Game_Flag_Set(261);
Game_Flag_Reset(kFlagSpinnerToCT01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToTB02);
Set_Enter(kSetTB02_TB03, kSceneTB02);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationDNARow:
Game_Flag_Set(177);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToDR01);
Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationBradburyBuilding:
Game_Flag_Set(258);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToBB01);
Set_Enter(kSetBB01, kSceneBB01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationNightclubRow:
Game_Flag_Set(181);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToNR01);
Set_Enter(kSetNR01, kSceneNR01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
case kSpinnerDestinationHysteriaHall:
Game_Flag_Set(257);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Reset(kFlagSpinnerToCT01);
Game_Flag_Set(kFlagSpinnerToHF01);
Set_Enter(kSetHF01, kSceneHF01);
- Scene_Loop_Start_Special(1, 5, 1);
+ Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true);
break;
default:
Game_Flag_Set(176);
@@ -382,17 +382,18 @@ void SceneScriptCT01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptCT01::PlayerWalkedIn() {
- if (Game_Flag_Query(234)) {
+ if (Game_Flag_Query(kFlagCT02toCT01walk)) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -327.2f, -6.5f, 352.28f, 0, 0, false, 0);
- Game_Flag_Reset(234);
+ Game_Flag_Reset(kFlagCT02toCT01walk);
} else {
- if (!Game_Flag_Query(247)) {
- Game_Flag_Reset(247);
+ if (!Game_Flag_Query(kFlagArrivedFromSpinner)) {
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
+ return;
}
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, 0, false, 0);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, 0, false, 0);
- if (!Game_Flag_Query(25)) {
- Game_Flag_Set(25);
+ if (!Game_Flag_Query(kFlagCT01Visited)) {
+ Game_Flag_Set(kFlagCT01Visited);
if (!Game_Flag_Query(kFlagDirectorsCut)) {
Actor_Voice_Over(200, kActorVoiceOver);
Actor_Voice_Over(210, kActorVoiceOver);
@@ -432,9 +433,9 @@ void SceneScriptCT01::dialogueWithHowieLee() {
if (Actor_Clue_Query(kActorMcCoy, kClueChopstickWrapper) && Actor_Clue_Query(kActorMcCoy, kClueSushiMenu) && Game_Flag_Query(27) && !Game_Flag_Query(28)) {
DM_Add_To_List_Never_Repeat_Once_Selected(60, 3, 5, 5);
}
- if (Game_Flag_Query(293)) {
+ if (Game_Flag_Query(kFlagCT02PotTipped)) {
DM_Add_To_List_Never_Repeat_Once_Selected(80, 9, 9, 9);
- } else if (Game_Flag_Query(29)) {
+ } else if (Game_Flag_Query(kFlagCT01ZubenLeft)) {
DM_Add_To_List_Never_Repeat_Once_Selected(80, 3, 4, 8);
}
if (Actor_Clue_Query(kActorMcCoy, kClueCarColorAndMake) && Actor_Clue_Query(kActorMcCoy, kClueDispatchHitAndRun) == 1) {
diff --git a/engines/bladerunner/script/scene/ct02.cpp b/engines/bladerunner/script/scene/ct02.cpp
index ca17d78..c7c6ba7 100644
--- a/engines/bladerunner/script/scene/ct02.cpp
+++ b/engines/bladerunner/script/scene/ct02.cpp
@@ -24,20 +24,31 @@
namespace BladeRunner {
+enum kCT02Loops {
+ kCT02LoopMain = 0,
+ kCT02LoopTippingPot = 2,
+ kCT02LoopMainPotTipped = 3,
+};
+
+enum kCT02Exits {
+ kCT02ExitCT01 = 0,
+ kCT02ExitCT03 = 1
+};
+
void SceneScriptCT02::InitializeScene() {
- if (Game_Flag_Query(70)) {
- Game_Flag_Reset(70);
+ if (Game_Flag_Query(kFlagCT03toCT02)) {
+ Game_Flag_Reset(kFlagCT03toCT02);
Setup_Scene_Information(-154.83f, -145.11f, 9.39f, 516);
- } else if (Game_Flag_Query(720)) {
+ } else if (Game_Flag_Query(kFlagCT02McCoyCombatReady)) {
Setup_Scene_Information(-213.82f, -145.11f, 214.43f, 82);
} else {
Setup_Scene_Information(-119.02f, -145.11f, 240.99f, 768);
}
- Scene_Exit_Add_2D_Exit(0, 590, 0, 639, 479, 1);
+ Scene_Exit_Add_2D_Exit(kCT02ExitCT01, 590, 0, 639, 479, 1);
if (Actor_Clue_Query(kActorMcCoy, kClueZubenRunsAway)) {
- Scene_Exit_Add_2D_Exit(1, 332, 163, 404, 297, 0);
+ Scene_Exit_Add_2D_Exit(kCT02ExitCT03, 332, 163, 404, 297, 0);
} else {
- Overlay_Play("ct02over", 0, 1, 0, 0);
+ Overlay_Play("ct02over", 0, true, false, 0);
}
Ambient_Sounds_Add_Looping_Sound(96, 25, 0, 1);
Ambient_Sounds_Add_Looping_Sound(56, 38, 100, 1);
@@ -50,10 +61,10 @@ void SceneScriptCT02::InitializeScene() {
Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 19, 100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 19, 100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 19, 100, 100, -101, -101, 1, 1);
- if (Game_Flag_Query(293)) {
- Scene_Loop_Set_Default(3);
+ if (Game_Flag_Query(kFlagCT02PotTipped)) {
+ Scene_Loop_Set_Default(kCT02LoopMainPotTipped);
} else {
- Scene_Loop_Set_Default(0);
+ Scene_Loop_Set_Default(kCT02LoopMain);
}
}
@@ -76,7 +87,7 @@ void SceneScriptCT02::SceneLoaded() {
Unclickable_Object("COUNTER-2");
Unclickable_Object("COFFEJUG IN FOREGRO");
Unclickable_Object("BACK-DOOR");
- if (!Game_Flag_Query(293)) {
+ if (!Game_Flag_Query(kFlagCT02PotTipped)) {
Preload(0);
Preload(3);
Preload(3);
@@ -85,8 +96,8 @@ void SceneScriptCT02::SceneLoaded() {
Preload(419);
Preload(420);
}
- if (Game_Flag_Query(720)) {
- Game_Flag_Reset(720);
+ if (Game_Flag_Query(kFlagCT02McCoyCombatReady)) {
+ Game_Flag_Reset(kFlagCT02McCoyCombatReady);
Actor_Change_Animation_Mode(kActorMcCoy, 0);
Player_Set_Combat_Mode(true);
Player_Gains_Control();
@@ -94,8 +105,8 @@ void SceneScriptCT02::SceneLoaded() {
}
bool SceneScriptCT02::MouseClick(int x, int y) {
- if (Actor_Query_Goal_Number(kActorZuben) == 8) {
- Actor_Set_Goal_Number(kActorMcCoy, 1);
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02PushPot) {
+ Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyDodge);
return true;
}
return false;
@@ -113,23 +124,23 @@ void SceneScriptCT02::dialogueWithZuben() {
if (Actor_Clue_Query(kActorMcCoy, kClueRunciterInterviewA) && !Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
DM_Add_To_List_Never_Repeat_Once_Selected(280, 8, 5, 3);
}
- int v0 = 0;
+ int evidenceCount = 0;
if (Actor_Clue_Query(kActorMcCoy, kClueDoorForced2)) {
- v0 = 1;
+ evidenceCount = 1;
}
if (Actor_Clue_Query(kActorMcCoy, kClueLabCorpses)) {
- ++v0;
+ ++evidenceCount;
}
if (Actor_Clue_Query(kActorMcCoy, kClueLimpingFootprints)) {
- ++v0;
+ ++evidenceCount;
}
if (Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewA)) {
- ++v0;
+ ++evidenceCount;
}
if (Actor_Clue_Query(kActorMcCoy, kClueHowieLeeInterview)) {
- ++v0;
+ ++evidenceCount;
}
- if (v0 > 3) {
+ if (evidenceCount > 3) {
DM_Add_To_List_Never_Repeat_Once_Selected(290, -1, 4, 8);
}
Dialogue_Menu_Add_DONE_To_List(300);
@@ -146,27 +157,11 @@ void SceneScriptCT02::dialogueWithZuben() {
Actor_Says(kActorMcCoy, 415, 10);
Actor_Clue_Acquire(kActorMcCoy, kClueZubenInterview, 0, -1);
Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -5);
- if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 44) {
- Scene_Exits_Disable();
- Actor_Clue_Acquire(kActorMcCoy, kClueZubenRunsAway, 1, -1);
- Actor_Set_Goal_Number(kActorZuben, 8);
- Game_Flag_Set(293);
- Scene_Loop_Set_Default(3);
- Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
- }
break;
case 280:
Actor_Says(kActorMcCoy, 385, 9);
Actor_Says(kActorZuben, 40, 19);
Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -2);
- if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 44) {
- Scene_Exits_Disable();
- Actor_Clue_Acquire(kActorMcCoy, kClueZubenRunsAway, 1, -1);
- Actor_Set_Goal_Number(kActorZuben, 8);
- Game_Flag_Set(293);
- Scene_Loop_Set_Default(3);
- Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
- }
break;
case 290:
Actor_Says(kActorMcCoy, 395, 9);
@@ -175,39 +170,32 @@ void SceneScriptCT02::dialogueWithZuben() {
Actor_Says(kActorMcCoy, 420, 10);
Actor_Says(kActorZuben, 80, 14);
Actor_Modify_Friendliness_To_Other(kActorZuben, kActorMcCoy, -10);
- if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 44) {
- Scene_Exits_Disable();
- Actor_Clue_Acquire(kActorMcCoy, kClueZubenRunsAway, 1, -1);
- Actor_Set_Goal_Number(kActorZuben, 8);
- Game_Flag_Set(293);
- Scene_Loop_Set_Default(3);
- Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
- }
break;
case 300:
Actor_Says(kActorMcCoy, 405, 11);
- if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 44) {
- Scene_Exits_Disable();
- Actor_Clue_Acquire(kActorMcCoy, kClueZubenRunsAway, 1, -1);
- Actor_Set_Goal_Number(kActorZuben, 8);
- Game_Flag_Set(293);
- Scene_Loop_Set_Default(3);
- Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
- }
break;
}
+
+ if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) < 44) {
+ Scene_Exits_Disable();
+ Actor_Clue_Acquire(kActorMcCoy, kClueZubenRunsAway, 1, -1);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT02PushPot);
+ Game_Flag_Set(kFlagCT02PotTipped);
+ Scene_Loop_Set_Default(kCT02LoopMainPotTipped);
+ Scene_Loop_Start_Special(kSceneLoopModeOnce, kCT02LoopTippingPot, true);
+ }
}
bool SceneScriptCT02::ClickedOnActor(int actorId) {
- if (actorId == 19 && Actor_Query_Goal_Number(kActorZuben) == 1) {
+ if (actorId == kActorZuben && Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT01Leave) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -255.02f, -145.11f, 212.42f, 0, 1, false, 0)) {
Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
Actor_Face_Actor(kActorZuben, kActorMcCoy, true);
- if (!Game_Flag_Query(59)) {
+ if (!Game_Flag_Query(kFlagCT02ZubenTalk)) {
Actor_Says(kActorMcCoy, 370, 10);
Actor_Says(kActorZuben, 20, 19);
Actor_Says(kActorMcCoy, 375, 9);
- Game_Flag_Set(59);
+ Game_Flag_Set(kFlagCT02ZubenTalk);
}
dialogueWithZuben();
return true;
@@ -221,17 +209,17 @@ bool SceneScriptCT02::ClickedOnItem(int itemId, bool a2) {
}
bool SceneScriptCT02::ClickedOnExit(int exitId) {
- if (exitId == 0) {
+ if (exitId == kCT02ExitCT01) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -111.2f, -145.11f, 243.28f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(234);
- Game_Flag_Set(68);
- Set_Enter(4, kSceneCT01);
+ Game_Flag_Set(kFlagCT02toCT01walk);
+ Game_Flag_Set(kFlagCT02toCT01);
+ Set_Enter(kSetCT01_CT12, kSceneCT01);
}
return true;
}
- if (exitId == 1) {
+ if (exitId == kCT02ExitCT03) {
bool v1;
if (Player_Query_Combat_Mode()) {
v1 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -154.83f, -145.11f, -82.61f, 0, 1, true, 0);
@@ -241,8 +229,8 @@ bool SceneScriptCT02::ClickedOnExit(int exitId) {
if (!v1) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(69);
- Set_Enter(5, kSceneCT03);
+ Game_Flag_Set(kFlagCT02toCT03);
+ Set_Enter(kSetCT03_CT04, kSceneCT03);
}
return true;
}
@@ -270,7 +258,7 @@ void SceneScriptCT02::SceneFrameAdvanced(int frame) {
Music_Play(1, 50, 0, 2, -1, 0, 0);
}
if (frame == 81) {
- Scene_Exit_Add_2D_Exit(1, 332, 163, 404, 297, 0);
+ Scene_Exit_Add_2D_Exit(kCT02ExitCT03, 332, 163, 404, 297, 0);
Scene_Exits_Enable();
}
}
diff --git a/engines/bladerunner/script/scene/ct03.cpp b/engines/bladerunner/script/scene/ct03.cpp
index 3a9a46c..ac30a79 100644
--- a/engines/bladerunner/script/scene/ct03.cpp
+++ b/engines/bladerunner/script/scene/ct03.cpp
@@ -25,13 +25,13 @@
namespace BladeRunner {
void SceneScriptCT03::InitializeScene() {
- if (Game_Flag_Query(719)) {
+ if (Game_Flag_Query(kFlagCT02McCoyFell)) {
Setup_Scene_Information(-852.58f, -621.3f, 285.6f, 0);
- } else if (Game_Flag_Query(69)) {
- Game_Flag_Reset(69);
+ } else if (Game_Flag_Query(kFlagCT02toCT03)) {
+ Game_Flag_Reset(kFlagCT02toCT03);
Setup_Scene_Information(-557.1f, -616.31f, 224.29f, 249);
- } else if (Game_Flag_Query(73)) {
- Game_Flag_Reset(73);
+ } else if (Game_Flag_Query(kFlagCT04toCT03)) {
+ Game_Flag_Reset(kFlagCT04toCT03);
Setup_Scene_Information(-173.99f, -619.19f, 347.54f, 808);
} else {
Setup_Scene_Information(-708.58f, -619.19f, 277.6f, 239);
@@ -81,24 +81,24 @@ bool SceneScriptCT03::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptCT03::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -745.09f, -619.09f, 293.36f, 0, 1, false, 0)) {
- Game_Flag_Set(71);
- Set_Enter(4, kSceneCT01);
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -745.09f, -619.09f, 293.36f, 0, true, false, 0)) {
+ Game_Flag_Set(kFlagCT03toCT01);
+ Set_Enter(kSetCT01_CT12, kSceneCT01);
}
return true;
}
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -604.38f, -616.15f, 221.6f, 0, 1, false, 0)) {
- Game_Flag_Set(70);
- Set_Enter(27, kSceneCT02);
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -604.38f, -616.15f, 221.6f, 0, true, false, 0)) {
+ Game_Flag_Set(kFlagCT03toCT02);
+ Set_Enter(kSetCT02, kSceneCT02);
}
return true;
}
if (exitId == 2) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -150.0f, -621.3f, 357.0f, 0, 1, false, 0)) {
- Game_Flag_Set(72);
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -150.0f, -621.3f, 357.0f, 0, true, false, 0)) {
+ Game_Flag_Set(kFlagCT03toCT04);
Async_Actor_Walk_To_XYZ(kActorMcCoy, -67.0f, -621.3f, 477.0f, 0, false);
- Set_Enter(5, kSceneCT04);
+ Set_Enter(kSetCT03_CT04, kSceneCT04);
}
return true;
}
@@ -116,13 +116,13 @@ void SceneScriptCT03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptCT03::PlayerWalkedIn() {
- if (Actor_Query_Goal_Number(kActorZuben) == 2) {
- Actor_Set_Goal_Number(kActorZuben, 13);
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT02Flee) {
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06Hide);
}
}
void SceneScriptCT03::PlayerWalkedOut() {
- Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+ Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
}
diff --git a/engines/bladerunner/script/scene/ct04.cpp b/engines/bladerunner/script/scene/ct04.cpp
index 6eadc38..fbc9c14 100644
--- a/engines/bladerunner/script/scene/ct04.cpp
+++ b/engines/bladerunner/script/scene/ct04.cpp
@@ -24,13 +24,18 @@
namespace BladeRunner {
+enum kCT03Loops {
+ kCT03LoopInshoot = 0,
+ kCT03LoopMain = 1
+};
+
void SceneScriptCT04::InitializeScene() {
- if (Game_Flag_Query(72)) {
- Scene_Loop_Start_Special(0, 0, 0);
- Scene_Loop_Set_Default(1);
+ if (Game_Flag_Query(kFlagCT03toCT04)) {
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kCT03LoopInshoot, false);
+ Scene_Loop_Set_Default(kCT03LoopMain);
Setup_Scene_Information(-150.0f, -621.3f, 357.0f, 533);
} else {
- Scene_Loop_Set_Default(1);
+ Scene_Loop_Set_Default(kCT03LoopMain);
Setup_Scene_Information(-82.86f, -621.3f, 769.03f, 1020);
}
Scene_Exit_Add_2D_Exit(0, 590, 0, 639, 479, 1);
@@ -54,8 +59,8 @@ void SceneScriptCT04::SceneLoaded() {
Obstacle_Object("BACK-BLDNG", true);
Clickable_Object("DUMPSTER");
Footstep_Sounds_Set(0, 1);
- if (Game_Flag_Query(72)) {
- Game_Flag_Reset(72);
+ if (Game_Flag_Query(kFlagCT03toCT04)) {
+ Game_Flag_Reset(kFlagCT03toCT04);
}
if (!Actor_Query_Goal_Number(kActorTransient)) {
Actor_Change_Animation_Mode(kActorTransient, 38);
@@ -124,9 +129,9 @@ bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
return false;
}
-void SceneScriptCT04::sub_401D4C() {
+void SceneScriptCT04::dialogueWithHomeless() {
Dialogue_Menu_Clear_List();
- if (Global_Variable_Query(2) > 10 || Query_Difficulty_Level() == 0) {
+ if (Global_Variable_Query(kVariableChinyen) > 10 || Query_Difficulty_Level() == 0) {
DM_Add_To_List_Never_Repeat_Once_Selected(410, 8, 4, -1);
}
DM_Add_To_List_Never_Repeat_Once_Selected(420, 2, 6, 8);
@@ -148,7 +153,7 @@ void SceneScriptCT04::sub_401D4C() {
}
bool SceneScriptCT04::ClickedOnActor(int actorId) {
- if (actorId == 12) {
+ if (actorId == kActorTransient) {
if (Game_Flag_Query(169)) {
if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, 1, false)) {
Actor_Voice_Over(290, kActorVoiceOver);
@@ -167,7 +172,7 @@ bool SceneScriptCT04::ClickedOnActor(int actorId) {
Music_Stop(3);
Actor_Says(kActorMcCoy, 425, 3);
Actor_Says(kActorTransient, 0, 13);
- sub_401D4C();
+ dialogueWithHomeless();
Actor_Set_Goal_Number(kActorTransient, 2);
}
Game_Flag_Set(137);
@@ -194,8 +199,8 @@ bool SceneScriptCT04::ClickedOnExit(int exitId) {
if (!Actor_Query_Goal_Number(kActorTransient)) {
Actor_Set_Goal_Number(kActorTransient, 2);
}
- Game_Flag_Set(74);
- Set_Enter(28, kSceneCT05);
+ Game_Flag_Set(kFlagCT04toCT05);
+ Set_Enter(kSetCT05, kSceneCT05);
}
return true;
}
@@ -203,8 +208,8 @@ bool SceneScriptCT04::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -187.0f, -621.3f, 437.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(73);
- Set_Enter(5, kSceneCT03);
+ Game_Flag_Set(kFlagCT04toCT03);
+ Set_Enter(kSetCT03_CT04, kSceneCT03);
}
return true;
}
diff --git a/engines/bladerunner/script/scene/ct05.cpp b/engines/bladerunner/script/scene/ct05.cpp
index d5a9ea7..c2cea7e 100644
--- a/engines/bladerunner/script/scene/ct05.cpp
+++ b/engines/bladerunner/script/scene/ct05.cpp
@@ -28,7 +28,7 @@ void SceneScriptCT05::InitializeScene() {
if (Game_Flag_Query(90)) {
Game_Flag_Reset(90);
Setup_Scene_Information(-128.42f, -109.91f, 112.83f, 516);
- } else if (Game_Flag_Query(78)) {
+ } else if (Game_Flag_Query(kFlagCT06toCT05)) {
Setup_Scene_Information(192.35f, 43.09f, 128.97f, 768);
} else {
Setup_Scene_Information(-375.0f, -109.91f, 750.0f, 600);
@@ -142,19 +142,19 @@ bool SceneScriptCT05::ClickedOnExit(int exitId) {
if (Actor_Query_Goal_Number(kActorGaff) == 1) {
Overlay_Remove("ct05over");
}
- Set_Enter(4, kSceneCT12);
+ Set_Enter(kSetCT01_CT12, kSceneCT12);
}
return true;
}
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, 1, false, 0)) {
- Game_Flag_Set(75);
+ Game_Flag_Set(kFlagCT05toCT04);
if (Actor_Query_Goal_Number(kActorGaff) == 1) {
Overlay_Remove("ct05over");
Actor_Set_Goal_Number(kActorGaff, 5);
Game_Flag_Set(409);
}
- Set_Enter(5, kSceneCT04);
+ Set_Enter(kSetCT03_CT04, kSceneCT04);
}
return true;
}
@@ -166,11 +166,11 @@ bool SceneScriptCT05::ClickedOnExit(int exitId) {
Actor_Set_At_XYZ(kActorMcCoy, 99.73f, -19.91f, 134.97f, 256);
Loop_Actor_Travel_Stairs(kActorMcCoy, 5, 1, 0);
Footstep_Sound_Override_Off();
- Game_Flag_Set(77);
+ Game_Flag_Set(kFlagCT05toCT06);
if (Actor_Query_Goal_Number(kActorGaff) == 1) {
Overlay_Remove("ct05over");
}
- Set_Enter(29, kSceneCT06);
+ Set_Enter(kSetCT06, kSceneCT06);
}
return true;
}
@@ -207,9 +207,9 @@ void SceneScriptCT05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptCT05::PlayerWalkedIn() {
- if (Game_Flag_Query(74)) {
+ if (Game_Flag_Query(kFlagCT04toCT05)) {
Player_Loses_Control();
- Game_Flag_Reset(74);
+ Game_Flag_Reset(kFlagCT04toCT05);
if (Player_Query_Combat_Mode()) {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, 0, true, 0);
} else {
@@ -217,12 +217,12 @@ void SceneScriptCT05::PlayerWalkedIn() {
}
Player_Gains_Control();
}
- if (Game_Flag_Query(78)) {
+ if (Game_Flag_Query(kFlagCT06toCT05)) {
Footstep_Sound_Override_On(2);
Loop_Actor_Travel_Stairs(kActorMcCoy, 7, 0, 0);
Actor_Set_At_XYZ(kActorMcCoy, 90.73f, -19.91f, 164.97f, 520);
Loop_Actor_Travel_Stairs(kActorMcCoy, 10, 0, 0);
- Game_Flag_Reset(78);
+ Game_Flag_Reset(kFlagCT06toCT05);
Footstep_Sound_Override_Off();
if (Actor_Query_Goal_Number(kActorGordo) == 2 && Game_Flag_Query(145)) {
Actor_Set_Goal_Number(kActorGordo, 3);
diff --git a/engines/bladerunner/script/scene/ct06.cpp b/engines/bladerunner/script/scene/ct06.cpp
index d2163aa..5a8f0a6 100644
--- a/engines/bladerunner/script/scene/ct06.cpp
+++ b/engines/bladerunner/script/scene/ct06.cpp
@@ -25,10 +25,10 @@
namespace BladeRunner {
void SceneScriptCT06::InitializeScene() {
- if (Game_Flag_Query(77)) {
+ if (Game_Flag_Query(kFlagCT05toCT06)) {
Setup_Scene_Information(20.41f, -58.23f, 2.17f, 247);
- Game_Flag_Reset(77);
- } else if (Game_Flag_Query(144)) {
+ Game_Flag_Reset(kFlagCT05toCT06);
+ } else if (Game_Flag_Query(kFlagCT07toCT06)) {
Setup_Scene_Information(203.91f, -58.02f, 0.47f, 768);
} else {
Setup_Scene_Information(175.91f, -58.23f, 24.47f, 768);
@@ -36,7 +36,7 @@ void SceneScriptCT06::InitializeScene() {
Scene_Exit_Add_2D_Exit(0, 0, 440, 639, 479, 2);
Scene_Exit_Add_2D_Exit(1, 401, 162, 536, 317, 0);
if (Game_Flag_Query(kFlagZubenRetired) && Actor_Query_In_Set(kActorZuben, 30)) {
- Actor_Put_In_Set(kActorZuben, 29);
+ Actor_Put_In_Set(kActorZuben, kSetCT06);
Actor_Set_At_XYZ(kActorZuben, 58.41f, -58.23f, -24.97f, 240);
Actor_Retired_Here(kActorZuben, 72, 36, 1, kActorMcCoy);
}
@@ -51,7 +51,7 @@ void SceneScriptCT06::InitializeScene() {
Ambient_Sounds_Add_Sound(379, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(380, 70, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0);
- if (Actor_Query_Goal_Number(kActorZuben) == 13) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) {
Ambient_Sounds_Add_Sound(196, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(197, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(198, 1, 5, 25, 25, -100, 100, -101, -101, 0, 0);
@@ -67,7 +67,7 @@ void SceneScriptCT06::SceneLoaded() {
Unobstacle_Object("INSULPIP01", true);
Unobstacle_Object("CB BOX04", true);
Unclickable_Object("DOOR");
- if (Actor_Query_Goal_Number(kActorZuben) == 13) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) {
Preload(3);
Preload(4);
Preload(389);
@@ -87,7 +87,7 @@ bool SceneScriptCT06::ClickedOn3DObject(const char *objectName, bool a2) {
}
bool SceneScriptCT06::ClickedOnActor(int actorId) {
- if (actorId == 19) {
+ if (actorId == kActorZuben) {
Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorZuben, 24, 1, false);
Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
if (Game_Flag_Query(145)) {
@@ -120,21 +120,21 @@ bool SceneScriptCT06::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 20.41f, -58.23f, -2.17f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(78);
- Set_Enter(28, kSceneCT05);
+ Game_Flag_Set(kFlagCT06toCT05);
+ Set_Enter(kSetCT05, kSceneCT05);
Game_Flag_Reset(212);
}
return true;
}
if (exitId == 1) {
- if (Actor_Query_Goal_Number(kActorZuben) == 13) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenCT06Hide) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 203.91f, -58.02f, 0.47f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_Sound(196, true);
Ambient_Sounds_Remove_Sound(197, true);
Ambient_Sounds_Remove_Sound(198, true);
Ambient_Sounds_Remove_Sound(199, true);
Player_Loses_Control();
- Actor_Set_Goal_Number(kActorZuben, 11);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenCT06JumpDown);
Game_Flag_Reset(212);
}
return true;
@@ -146,8 +146,8 @@ bool SceneScriptCT06::ClickedOnExit(int exitId) {
} else {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(79);
- Set_Enter(6, kSceneCT08);
+ Game_Flag_Set(kFlagCT06toCT08);
+ Set_Enter(kSetCT08_CT51_UG12, kSceneCT08);
Game_Flag_Reset(212);
}
}
@@ -166,8 +166,8 @@ void SceneScriptCT06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptCT06::PlayerWalkedIn() {
- if (Game_Flag_Query(144) == 1) {
- Game_Flag_Reset(144);
+ if (Game_Flag_Query(kFlagCT07toCT06)) {
+ Game_Flag_Reset(kFlagCT07toCT06);
}
}
diff --git a/engines/bladerunner/script/scene/ct07.cpp b/engines/bladerunner/script/scene/ct07.cpp
index ebbe604..4dabd29 100644
--- a/engines/bladerunner/script/scene/ct07.cpp
+++ b/engines/bladerunner/script/scene/ct07.cpp
@@ -26,7 +26,7 @@ namespace BladeRunner {
void SceneScriptCT07::InitializeScene() {
Setup_Scene_Information(202.32f, -58.23f, -12.86f, 225);
- Actor_Put_In_Set(kActorZuben, 30);
+ Actor_Put_In_Set(kActorZuben, kSetCT07);
Actor_Set_At_XYZ(kActorZuben, -9.68f, -58.23f, 11.14f, 250);
Ambient_Sounds_Add_Looping_Sound(54, 30, 90, 1);
Ambient_Sounds_Add_Looping_Sound(205, 20, 1, 1);
@@ -90,7 +90,7 @@ void SceneScriptCT07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptCT07::PlayerWalkedIn() {
Player_Gains_Control();
Non_Player_Actor_Combat_Mode_On(kActorZuben, kActorCombatStateIdle, false, kActorMcCoy, 2, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 15, 300, false);
- Game_Flag_Set(516);
+ Game_Flag_Set(kFlagCT07ZubenAttack);
Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
}
diff --git a/engines/bladerunner/script/scene/ct08.cpp b/engines/bladerunner/script/scene/ct08.cpp
index a0c989d..378da29 100644
--- a/engines/bladerunner/script/scene/ct08.cpp
+++ b/engines/bladerunner/script/scene/ct08.cpp
@@ -42,7 +42,7 @@ void SceneScriptCT08::InitializeScene() {
Actor_Force_Stop_Walking(kActorMcCoy);
if (Game_Flag_Query(380)) {
Setup_Scene_Information(-11.0f, 0.0f, -156.0f, 769);
- } else if (Game_Flag_Query(79)) {
+ } else if (Game_Flag_Query(kFlagCT06toCT08)) {
Setup_Scene_Information(-143.0f, 0.0f, -92.0f, 420);
} else {
Setup_Scene_Information(-183.0f, 0.0f, 128.0f, 205);
@@ -166,18 +166,18 @@ void SceneScriptCT08::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptCT08::PlayerWalkedIn() {
if (Game_Flag_Query(550)) {
- Actor_Change_Animation_Mode(kActorMcCoy, 3);
- Actor_Change_Animation_Mode(kActorMcCoy, 0);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeTalk);
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle);
Actor_Set_At_XYZ(kActorMcCoy, -148.0f, 0.0f, 4.0f, 256);
Player_Set_Combat_Mode_Access(false);
Scene_Exits_Disable();
Game_Flag_Reset(380);
- Game_Flag_Reset(79);
+ Game_Flag_Reset(kFlagCT06toCT08);
Autosave_Game(1);
} else if (Game_Flag_Query(380)) {
Game_Flag_Reset(380);
- } else if (Game_Flag_Query(79)) {
- Game_Flag_Reset(79);
+ } else if (Game_Flag_Query(kFlagCT06toCT08)) {
+ Game_Flag_Reset(kFlagCT06toCT08);
} else {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -156.0f, 0.0f, 128.0f, 0, 0, false, 0);
Game_Flag_Reset(84);
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index 88bbd46..0487de5 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -140,8 +140,8 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -419.15f, -6.5f, 696.94f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
- Game_Flag_Set(88);
- Set_Enter(4, kSceneCT01);
+ Game_Flag_Set(kFlagCT12toCT01);
+ Set_Enter(kSetCT01_CT12, kSceneCT01);
}
return true;
}
@@ -149,8 +149,8 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -182.69f, -6.5f, 696.94f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(89);
- Set_Enter(5, kSceneCT03);
+ Game_Flag_Set(kFlagCT12toCT03);
+ Set_Enter(kSetCT03_CT04, kSceneCT03);
}
return true;
}
@@ -158,8 +158,8 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -386.13f, -6.5f, 1132.72f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(90);
- Set_Enter(28, kSceneCT05);
+ Game_Flag_Set(kFlagCT12toCT05);
+ Set_Enter(kSetCT05, kSceneCT05);
}
return true;
}
@@ -167,8 +167,8 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -493.0f, -6.5f, 1174.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(91);
- Set_Enter(33, kSceneCT11);
+ Game_Flag_Set(kFlagCT12toCT11);
+ Set_Enter(kSetCT11, kSceneCT11);
}
return true;
}
@@ -179,8 +179,8 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
}
Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(433);
- Set_Enter(82, kSceneUG09);
+ Game_Flag_Set(kFlagCT12ToUG09);
+ Set_Enter(kSetUG09, kSceneUG09);
}
return true;
}
diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp
index c75b7c1..b839886 100644
--- a/engines/bladerunner/script/scene/ma01.cpp
+++ b/engines/bladerunner/script/scene/ma01.cpp
@@ -97,13 +97,13 @@ bool SceneScriptMA01::ClickedOnItem(int itemId, bool a2) {
}
bool SceneScriptMA01::ClickedOnExit(int exitId) {
- if (Actor_Query_Goal_Number(kActorZuben) == 21) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenMA01AttackMcCoy) {
return true;
}
if (exitId == kMA01ExitMA06) {
- if (Actor_Query_Goal_Number(kActorZuben) == 20) {
+ if (Actor_Query_Goal_Number(kActorZuben) == kGoalZubenFled) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1446.0f, 0.0f, -725.0f, 72, 1, false, 0)) {
- Actor_Set_Goal_Number(kActorZuben, 21);
+ Actor_Set_Goal_Number(kActorZuben, kGoalZubenMA01AttackMcCoy);
Scene_Exits_Disable();
}
} else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1446.0f, 0.0f, -725.0f, 12, 1, false, 0)) {
diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp
index fd7c991..8fe96be 100644
--- a/engines/bladerunner/script/scene/nr01.cpp
+++ b/engines/bladerunner/script/scene/nr01.cpp
@@ -71,11 +71,11 @@ void SceneScriptNR01::InitializeScene() {
Game_Flag_Reset(kFlagSpinnerToNR01);
Game_Flag_Reset(kFlagSpinnerToHF01);
}
- if (Game_Flag_Query(kFlagSpinnerToNR01) && !Game_Flag_Query(247)) {
+ if (Game_Flag_Query(kFlagSpinnerToNR01) && !Game_Flag_Query(kFlagArrivedFromSpinner)) {
Scene_Loop_Start_Special(0, 0, 0);
Scene_Loop_Set_Default(1);
- Game_Flag_Set(247);
- } else if (Game_Flag_Query(kFlagSpinnerToNR01) && Game_Flag_Query(247)) {
+ Game_Flag_Set(kFlagArrivedFromSpinner);
+ } else if (Game_Flag_Query(kFlagSpinnerToNR01) && Game_Flag_Query(kFlagArrivedFromSpinner)) {
Scene_Loop_Set_Default(1);
} else {
Scene_Loop_Set_Default(4);
@@ -162,7 +162,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 7:
Game_Flag_Set(258);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToBB01);
Set_Enter(20, kSceneBB01);
Scene_Loop_Start_Special(1, 3, 1);
@@ -170,7 +170,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 6:
Game_Flag_Set(177);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToDR01);
Set_Enter(7, kSceneDR01);
Scene_Loop_Start_Special(1, 3, 1);
@@ -178,7 +178,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 5:
Game_Flag_Set(261);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToTB02);
Set_Enter(17, kSceneTB02);
Scene_Loop_Start_Special(1, 3, 1);
@@ -186,7 +186,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 4:
Game_Flag_Set(180);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToAR01);
Set_Enter(0, kSceneAR01);
Scene_Loop_Start_Special(1, 3, 1);
@@ -194,7 +194,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 3:
Game_Flag_Set(176);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToCT01);
Set_Enter(4, kSceneCT01);
Scene_Loop_Start_Special(1, 3, 1);
@@ -202,7 +202,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 2:
Game_Flag_Set(182);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToRC01);
Set_Enter(69, kSceneRC01);
Scene_Loop_Start_Special(1, 3, 1);
@@ -210,7 +210,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 1:
Game_Flag_Set(179);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToMA01);
Set_Enter(49, kSceneMA01);
Scene_Loop_Start_Special(1, 3, 1);
@@ -218,7 +218,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
case 0:
Game_Flag_Set(178);
Game_Flag_Reset(kFlagSpinnerToNR01);
- Game_Flag_Reset(247);
+ Game_Flag_Reset(kFlagArrivedFromSpinner);
Game_Flag_Set(kFlagSpinnerToPS01);
Set_Enter(61, kScenePS01);
Scene_Loop_Start_Special(1, 3, 1);
@@ -226,7 +226,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
default:
Player_Loses_Control();
Game_Flag_Set(181);
- Game_Flag_Set(247);
+ Game_Flag_Set(kFlagArrivedFromSpinner);
Player_Gains_Control();
break;
}
diff --git a/engines/bladerunner/script/scene/ug09.cpp b/engines/bladerunner/script/scene/ug09.cpp
index 4d26913..c3595ce 100644
--- a/engines/bladerunner/script/scene/ug09.cpp
+++ b/engines/bladerunner/script/scene/ug09.cpp
@@ -25,9 +25,9 @@
namespace BladeRunner {
void SceneScriptUG09::InitializeScene() {
- if (Game_Flag_Query(433)) {
+ if (Game_Flag_Query(kFlagCT12ToUG09)) {
Setup_Scene_Information(-67.0f, 156.94f, -425.0f, 500);
- Game_Flag_Reset(433);
+ Game_Flag_Reset(kFlagCT12ToUG09);
} else {
Setup_Scene_Information(-53.0f, 156.94f, 174.0f, 1000);
Game_Flag_Reset(427);
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index 51cac52..c6ac0fe 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -130,7 +130,7 @@ DECLARE_SCRIPT(CT03)
END_SCRIPT
DECLARE_SCRIPT(CT04)
- void sub_401D4C();
+ void dialogueWithHomeless();
END_SCRIPT
DECLARE_SCRIPT(CT05)
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index 28475d6..a154269 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -747,7 +747,7 @@ void ScriptBase::Player_Gains_Control() {
void ScriptBase::Player_Set_Combat_Mode(bool activate) {
if (!_vm->_combat->isActive() || activate) {
- if (_vm->_combat->isActive() && activate) {
+ if (!_vm->_combat->isActive() && activate) {
_vm->_combat->activate();
}
} else {
Commit: 0c7077cab93131a0902ccb3b5e1a85e2b5557908
https://github.com/scummvm/scummvm/commit/0c7077cab93131a0902ccb3b5e1a85e2b5557908
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-12T18:16:52+01:00
Commit Message:
BLADERUNNER: Added debugging output for scripts
Also added last few missing script commands.
Changed paths:
engines/bladerunner/ambient_sounds.cpp
engines/bladerunner/ambient_sounds.h
engines/bladerunner/bladerunner.cpp
engines/bladerunner/bladerunner.h
engines/bladerunner/dialogue_menu.cpp
engines/bladerunner/dialogue_menu.h
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/howie_lee.cpp
engines/bladerunner/script/ai/mutant1.cpp
engines/bladerunner/script/ai/mutant2.cpp
engines/bladerunner/script/ai/mutant3.cpp
engines/bladerunner/script/ai/steele.cpp
engines/bladerunner/script/ai/transient.cpp
engines/bladerunner/script/scene/ct04.cpp
engines/bladerunner/script/scene/ps04.cpp
engines/bladerunner/script/scene/ug13.cpp
engines/bladerunner/script/script.cpp
engines/bladerunner/script/script.h
diff --git a/engines/bladerunner/ambient_sounds.cpp b/engines/bladerunner/ambient_sounds.cpp
index c21f8d8..9485de3 100644
--- a/engines/bladerunner/ambient_sounds.cpp
+++ b/engines/bladerunner/ambient_sounds.cpp
@@ -117,6 +117,11 @@ void AmbientSounds::playSound(int sfxId, int volume, int panStart, int panEnd, i
_vm->_audioPlayer->playAud(_vm->_gameInfo->getSfxTrack(sfxId), volume * _ambientVolume / 100, panStart, panEnd, priority, kAudioPlayerOverrideVolume);
}
+void AmbientSounds::playSpeech(int actorId, int sentenceId, int volume, int panStart, int panEnd, int priority) {
+ Common::String name = Common::String::format( "%02d-%04d%s.AUD", actorId, sentenceId, _vm->_languageCode.c_str());
+ _vm->_audioPlayer->playAud(name, volume * _ambientVolume / 100, panStart, panEnd, priority, kAudioPlayerOverrideVolume);
+}
+
void AmbientSounds::addLoopingSound(int sfxId, int volume, int pan, int delay) {
const Common::String &name = _vm->_gameInfo->getSfxTrack(sfxId);
int32 hash = MIXArchive::getHash(name);
diff --git a/engines/bladerunner/ambient_sounds.h b/engines/bladerunner/ambient_sounds.h
index de08965..f52bdd4 100644
--- a/engines/bladerunner/ambient_sounds.h
+++ b/engines/bladerunner/ambient_sounds.h
@@ -93,6 +93,7 @@ public:
int panEndMin, int panEndMax,
int priority, int unk);
void playSound(int sfxId, int volume, int panStart, int panEnd, int priority);
+ void playSpeech(int actorId, int sentenceId, int volume, int panStart, int panEnd, int priority);
void addLoopingSound(int sfxId, int volume, int pan, int delay);
void adjustLoopingSound(int sfxId, int volume, int pan, int delay);
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 0884819..5ac67ac 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -81,6 +81,7 @@
#include "common/events.h"
#include "common/savefile.h"
#include "common/system.h"
+#include "common/debug-channels.h"
#include "engines/util.h"
#include "engines/advancedDetector.h"
@@ -93,6 +94,8 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst, const ADGameDescription *des
: Engine(syst),
_rnd("bladerunner") {
+ DebugMan.addDebugChannel(kDebugScript, "Script", "Debug the scripts");
+
_windowIsActive = true;
_gameIsRunning = true;
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index bb721c8..6218aa4 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -51,6 +51,10 @@ struct ADGameDescription;
namespace BladeRunner {
+enum DebugLevels {
+ kDebugScript = 1 << 0
+};
+
class Actor;
class ActorDialogueQueue;
class ScreenEffects;
diff --git a/engines/bladerunner/dialogue_menu.cpp b/engines/bladerunner/dialogue_menu.cpp
index 4f82326..4491a94 100644
--- a/engines/bladerunner/dialogue_menu.cpp
+++ b/engines/bladerunner/dialogue_menu.cpp
@@ -146,6 +146,22 @@ bool DialogueMenu::addToListNeverRepeatOnceSelected(int answer, int priorityPoli
return addToList(answer, false, priorityPolite, priorityNormal, prioritySurly);
}
+bool DialogueMenu::removeFromList(int answer) {
+ int index = getAnswerIndex(answer);
+ if (index != -1) {
+ return false;
+ }
+ if (index < _listSize - 1) {
+ for (int i = index; i < _listSize; ++i) {
+ _items[index] = _items[index + 1];
+ }
+ }
+ --_listSize;
+
+ calculatePosition();
+ return true;
+}
+
int DialogueMenu::queryInput() {
if (!_isVisible || _listSize == 0) {
return -1;
diff --git a/engines/bladerunner/dialogue_menu.h b/engines/bladerunner/dialogue_menu.h
index 4029fe4..d4c1ac0 100644
--- a/engines/bladerunner/dialogue_menu.h
+++ b/engines/bladerunner/dialogue_menu.h
@@ -89,6 +89,7 @@ public:
bool hide();
bool addToList(int answer, bool done, int priorityPolite, int priorityNormal, int prioritySurly);
bool addToListNeverRepeatOnceSelected(int answer, int priorityPolite, int priorityNormal, int prioritySurly);
+ bool removeFromList(int answer);
bool clearList();
int queryInput();
int listSize() const;
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index b584a80..68cbdef 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -505,6 +505,7 @@ enum Flags {
kFlagPS02toPS03 = 132,
kFlagPS02toPS09 = 133,
kFlagPS05toPS06 = 136,
+ kFlagHomelessTalkedTo = 137,
kFlagKleinInsulted = 138,
kFlagRC02LucyDeskAvailable = 141,
kFlagCT07toCT06 = 144,
@@ -516,6 +517,7 @@ enum Flags {
kFlagGuzzaTalkZubenRetired = 159,
kFlagGuzzaTalkZubenEscaped = 160,
kFlagChromeDebrisTaken = 163,
+ kFlagHomelessShot = 169,
kFlagRC01PoliceDone = 186,
kFlagShellCasingsTaken = 190,
kFlagBoughtHowieLeeFood = 192,
@@ -542,6 +544,7 @@ enum Flags {
kFlagGenericWalkerWaiting = 443,
kFlagMaggieIsHurt = 461,
kFlagKIAPrivacyAddon = 487,
+ kFlagCT04HomelessTrashFinish = 492,
kFlagCT07ZubenAttack = 516,
kFlagKIAPrivacyAddonIntro = 599,
kFlagMcCoySleeping = 647,
@@ -962,6 +965,7 @@ enum GoalMcCoy {
enum GoalTransient {
kGoalTransientDefault = 0,
+ kGoalTransientCT04Leave = 2,
};
enum GoalZuben {
diff --git a/engines/bladerunner/script/ai/howie_lee.cpp b/engines/bladerunner/script/ai/howie_lee.cpp
index f6d4d2c..27be2bd 100644
--- a/engines/bladerunner/script/ai/howie_lee.cpp
+++ b/engines/bladerunner/script/ai/howie_lee.cpp
@@ -100,11 +100,11 @@ void AIScriptHowieLee::ClickedByPlayer() {
void AIScriptHowieLee::EnteredScene(int sceneId) {
if (Actor_Query_Goal_Number(kActorHowieLee) == 4 && Actor_Query_In_Set(kActorHowieLee, kSetCT03_CT04)) {
- if (Game_Flag_Query(169) && !Game_Flag_Query(170) && !Game_Flag_Query(171)) {
+ if (Game_Flag_Query(kFlagHomelessShot) && !Game_Flag_Query(170) && !Game_Flag_Query(171)) {
Game_Flag_Set(171);
// return false;
}
- if (!Game_Flag_Query(169) && Game_Flag_Query(170) && !Game_Flag_Query(171) && Random_Query(1, 10) == 1) {
+ if (!Game_Flag_Query(kFlagHomelessShot) && Game_Flag_Query(170) && !Game_Flag_Query(171) && Random_Query(1, 10) == 1) {
Game_Flag_Set(171);
// return true;
}
diff --git a/engines/bladerunner/script/ai/mutant1.cpp b/engines/bladerunner/script/ai/mutant1.cpp
index eb1c056..d9b3098 100644
--- a/engines/bladerunner/script/ai/mutant1.cpp
+++ b/engines/bladerunner/script/ai/mutant1.cpp
@@ -178,7 +178,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorMutant1, 39, 0);
AI_Movement_Track_Repeat(kActorMutant1);
- if (Game_Flag_Query(169) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
Actor_Set_Combat_Aggressiveness(kActorMutant1, 70);
Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20);
}
@@ -352,7 +352,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Intelligence(kActorMutant1, 40);
Actor_Set_Health(kActorMutant1, 10 * Query_Difficulty_Level() + 30, 10 * Query_Difficulty_Level() + 30);
- if (Game_Flag_Query(169) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
Actor_Set_Combat_Aggressiveness(kActorMutant1, 70);
Actor_Set_Friendliness_To_Other(kActorMutant1, kActorMcCoy, 20);
} else {
diff --git a/engines/bladerunner/script/ai/mutant2.cpp b/engines/bladerunner/script/ai/mutant2.cpp
index 6317311..94be111 100644
--- a/engines/bladerunner/script/ai/mutant2.cpp
+++ b/engines/bladerunner/script/ai/mutant2.cpp
@@ -162,7 +162,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorMutant2, 39, 0);
AI_Movement_Track_Repeat(kActorMutant2);
- if (Game_Flag_Query(169) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
Actor_Set_Combat_Aggressiveness(kActorMutant2, 60);
Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30);
}
@@ -334,7 +334,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Intelligence(kActorMutant2, 20);
Actor_Set_Health(71, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50);
- if (Game_Flag_Query(169) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
Actor_Set_Combat_Aggressiveness(kActorMutant2, 60);
Actor_Set_Friendliness_To_Other(kActorMutant2, kActorMcCoy, 30);
} else {
diff --git a/engines/bladerunner/script/ai/mutant3.cpp b/engines/bladerunner/script/ai/mutant3.cpp
index db161d8..ff31d22 100644
--- a/engines/bladerunner/script/ai/mutant3.cpp
+++ b/engines/bladerunner/script/ai/mutant3.cpp
@@ -175,7 +175,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
AI_Movement_Track_Append(kActorMutant3, 39, 0);
AI_Movement_Track_Repeat(kActorMutant3);
- if (Game_Flag_Query(169) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
Actor_Set_Combat_Aggressiveness(kActorMutant3, 80);
Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20);
}
@@ -345,7 +345,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Set_Intelligence(kActorMutant3, 40);
Actor_Set_Health(kActorMutant3, 10 * Query_Difficulty_Level() + 50, 10 * Query_Difficulty_Level() + 50);
- if (Game_Flag_Query(169) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
Actor_Set_Combat_Aggressiveness(kActorMutant3, 80);
Actor_Set_Friendliness_To_Other(kActorMutant3, kActorMcCoy, 20);
} else {
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index 830a9aa..9da49b2 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -386,7 +386,7 @@ void AIScriptSteele::EnteredScene(int sceneId) {
if (Actor_Query_Goal_Number(kActorSteele) != 5
|| !Actor_Query_In_Set(kActorSteele, kSetCT03_CT04)
- || Game_Flag_Query(169) != 1
+ || !Game_Flag_Query(kFlagHomelessShot)
|| Game_Flag_Query(170)
|| Game_Flag_Query(171)) {
return; //false;
diff --git a/engines/bladerunner/script/ai/transient.cpp b/engines/bladerunner/script/ai/transient.cpp
index 3c76e86..a8ff812 100644
--- a/engines/bladerunner/script/ai/transient.cpp
+++ b/engines/bladerunner/script/ai/transient.cpp
@@ -47,14 +47,14 @@ bool AIScriptTransient::Update() {
if (Global_Variable_Query(kVariableChapter) == 2 && (Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault || Actor_Query_Goal_Number(kActorTransient) == 10)) {
Actor_Set_Goal_Number(kActorTransient, 200);
}
- if (Global_Variable_Query(kVariableChapter) == 3 && Game_Flag_Query(169) && Game_Flag_Query(170) && !Game_Flag_Query(171) && !Game_Flag_Query(172)) {
+ if (Global_Variable_Query(kVariableChapter) == 3 && Game_Flag_Query(kFlagHomelessShot) && Game_Flag_Query(170) && !Game_Flag_Query(171) && !Game_Flag_Query(172)) {
Game_Flag_Set(172);
}
if (Global_Variable_Query(kVariableChapter) < 4 && Game_Flag_Query(171) && Actor_Query_Goal_Number(kActorTransient) != 6 && Actor_Query_Goal_Number(kActorTransient) != 599) {
Actor_Set_Goal_Number(kActorTransient, 6);
}
- if (Player_Query_Current_Scene() == kSceneCT04 && !Game_Flag_Query(492)) {
- Game_Flag_Set(492);
+ if (Player_Query_Current_Scene() == kSceneCT04 && !Game_Flag_Query(kFlagCT04HomelessTrashFinish)) {
+ Game_Flag_Set(kFlagCT04HomelessTrashFinish);
AI_Countdown_Timer_Reset(kActorTransient, 1);
AI_Countdown_Timer_Start(kActorTransient, 1, 12);
}
@@ -142,7 +142,7 @@ bool AIScriptTransient::ShotAtAndHit() {
Actor_Set_Goal_Number(kActorTransient, 599);
}
- Game_Flag_Set(169);
+ Game_Flag_Set(kFlagHomelessShot);
return false;
}
@@ -161,7 +161,7 @@ int AIScriptTransient::GetFriendlinessModifierIfGetsClue(int otherActorId, int c
bool AIScriptTransient::GoalChanged(int currentGoalNumber, int newGoalNumber) {
switch (newGoalNumber) {
- case 2:
+ case kGoalTransientCT04Leave:
AI_Movement_Track_Flush(kActorTransient);
AI_Movement_Track_Append(kActorTransient, 51, 0);
AI_Movement_Track_Append(kActorTransient, 105, 0);
@@ -312,7 +312,7 @@ bool AIScriptTransient::UpdateAnimation(int *animation, int *frame) {
Actor_Set_Goal_Number(kActorTransient, 3);
_animationState = 15;
_animationFrame = Slice_Animation_Query_Number_Of_Frames(489) - 1;
- Actor_Set_Targetable(kActorTransient, 0);
+ Actor_Set_Targetable(kActorTransient, false);
Actor_Retired_Here(kActorTransient, 120, 24, 1, -1);
}
break;
diff --git a/engines/bladerunner/script/scene/ct04.cpp b/engines/bladerunner/script/scene/ct04.cpp
index fbc9c14..34480c7 100644
--- a/engines/bladerunner/script/scene/ct04.cpp
+++ b/engines/bladerunner/script/scene/ct04.cpp
@@ -72,12 +72,12 @@ bool SceneScriptCT04::MouseClick(int x, int y) {
}
bool SceneScriptCT04::ClickedOn3DObject(const char *objectName, bool a2) {
- if (objectName) {
- if (!Game_Flag_Query(137) && !Game_Flag_Query(169) && !Actor_Query_Goal_Number(kActorTransient)) {
- Game_Flag_Set(137);
- Actor_Set_Goal_Number(kActorTransient, 2);
+ if (objectName) { // this can be only "DUMPSTER"
+ if (!Game_Flag_Query(kFlagHomelessTalkedTo) && !Game_Flag_Query(kFlagHomelessShot) && Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault) {
+ Game_Flag_Set(kFlagHomelessTalkedTo);
+ Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
}
- if (Game_Flag_Query(169) && !Game_Flag_Query(170) && !Game_Flag_Query(171) && !Game_Flag_Query(172) && Global_Variable_Query(kVariableChapter) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot) && !Game_Flag_Query(170) && !Game_Flag_Query(171) && !Game_Flag_Query(172) && Global_Variable_Query(kVariableChapter) == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -147.41f, -621.3f, 724.57f, 0, 1, false, 0)) {
Player_Loses_Control();
Actor_Face_Heading(kActorMcCoy, 792, false);
@@ -143,7 +143,7 @@ void SceneScriptCT04::dialogueWithHomeless() {
Actor_Says(kActorTransient, 20, 14);
Actor_Modify_Friendliness_To_Other(kActorTransient, kActorMcCoy, 5);
if (Query_Difficulty_Level() != 0) {
- Global_Variable_Decrement(2, 10);
+ Global_Variable_Decrement(kVariableChinyen, 10);
}
} else if (answer == 420) {
Actor_Says(kActorMcCoy, 430, 3);
@@ -154,28 +154,28 @@ void SceneScriptCT04::dialogueWithHomeless() {
bool SceneScriptCT04::ClickedOnActor(int actorId) {
if (actorId == kActorTransient) {
- if (Game_Flag_Query(169)) {
- if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, 1, false)) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
+ if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) {
Actor_Voice_Over(290, kActorVoiceOver);
Actor_Voice_Over(300, kActorVoiceOver);
Actor_Voice_Over(310, kActorVoiceOver);
}
} else {
Actor_Set_Targetable(kActorTransient, false);
- if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, 1, false)) {
+ if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, true, false)) {
Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
- if (!Game_Flag_Query(137)) {
+ if (!Game_Flag_Query(kFlagHomelessTalkedTo)) {
if (Game_Flag_Query(kFlagZubenRetired)) {
Actor_Says(kActorMcCoy, 435, 3);
- Actor_Set_Goal_Number(kActorTransient, 2);
+ Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
} else {
Music_Stop(3);
Actor_Says(kActorMcCoy, 425, 3);
Actor_Says(kActorTransient, 0, 13);
dialogueWithHomeless();
- Actor_Set_Goal_Number(kActorTransient, 2);
+ Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
}
- Game_Flag_Set(137);
+ Game_Flag_Set(kFlagHomelessTalkedTo);
} else {
Actor_Face_Actor(kActorMcCoy, kActorTransient, true);
Actor_Says(kActorMcCoy, 435, 3);
@@ -194,10 +194,10 @@ bool SceneScriptCT04::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptCT04::ClickedOnExit(int exitId) {
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -82.86f, -621.3f, 769.03f, 0, 1, false, 0)) {
- Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+ Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- if (!Actor_Query_Goal_Number(kActorTransient)) {
- Actor_Set_Goal_Number(kActorTransient, 2);
+ if (Actor_Query_Goal_Number(kActorTransient) == kGoalTransientDefault) {
+ Actor_Set_Goal_Number(kActorTransient, kGoalTransientCT04Leave);
}
Game_Flag_Set(kFlagCT04toCT05);
Set_Enter(kSetCT05, kSceneCT05);
@@ -206,7 +206,7 @@ bool SceneScriptCT04::ClickedOnExit(int exitId) {
}
if (exitId == 0) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -187.0f, -621.3f, 437.0f, 0, 1, false, 0)) {
- Ambient_Sounds_Remove_All_Non_Looping_Sounds(1);
+ Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagCT04toCT03);
Set_Enter(kSetCT03_CT04, kSceneCT03);
diff --git a/engines/bladerunner/script/scene/ps04.cpp b/engines/bladerunner/script/scene/ps04.cpp
index ac8f2dc..86f40f3 100644
--- a/engines/bladerunner/script/scene/ps04.cpp
+++ b/engines/bladerunner/script/scene/ps04.cpp
@@ -145,7 +145,7 @@ void SceneScriptPS04::sub_4017E4() {
DM_Add_To_List_Never_Repeat_Once_Selected(150, 7, 6, 5);
}
}
- if (Game_Flag_Query(169) == 1) {
+ if (Game_Flag_Query(kFlagHomelessShot)) {
DM_Add_To_List_Never_Repeat_Once_Selected(140, 3, -1, -1);
}
DM_Add_To_List(130, 1, 1, 1);
diff --git a/engines/bladerunner/script/scene/ug13.cpp b/engines/bladerunner/script/scene/ug13.cpp
index cdfa8ad..d2ae3b6 100644
--- a/engines/bladerunner/script/scene/ug13.cpp
+++ b/engines/bladerunner/script/scene/ug13.cpp
@@ -46,7 +46,7 @@ void SceneScriptUG13::InitializeScene() {
Ambient_Sounds_Add_Sound(369, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(397, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(398, 2, 120, 11, 12, -100, 100, -100, 100, 0, 0);
- if (Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(169)) {
+ if (Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(kFlagHomelessShot)) {
Actor_Set_Goal_Number(kActorTransient, 390);
}
if (Actor_Query_Goal_Number(kActorTransient) == 599) {
@@ -72,7 +72,7 @@ void SceneScriptUG13::SceneLoaded() {
Clickable_Object("BASKET");
Clickable_Object("BOLLARD");
Unclickable_Object("BASKET");
- if (Global_Variable_Query(kVariableChapter) >= 3 && !Actor_Clue_Query(kActorMcCoy, kClueOriginalRequisitionForm) && Game_Flag_Query(169) && (Actor_Clue_Query(kActorMcCoy, kClueShippingForm) || Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm))) {
+ if (Global_Variable_Query(kVariableChapter) >= 3 && !Actor_Clue_Query(kActorMcCoy, kClueOriginalRequisitionForm) && Game_Flag_Query(kFlagHomelessShot) && (Actor_Clue_Query(kActorMcCoy, kClueShippingForm) || Actor_Clue_Query(kActorMcCoy, kClueWeaponsOrderForm))) {
Item_Add_To_World(111, 958, 85, -209.01f, 70.76f, -351.79f, 0, 16, 12, false, true, false, true);
}
}
@@ -234,7 +234,7 @@ void SceneScriptUG13::PlayerWalkedIn() {
Game_Flag_Reset(429);
Player_Gains_Control();
}
- if (Actor_Query_Goal_Number(kActorTransient) >= 390 && !Game_Flag_Query(169)) {
+ if (Actor_Query_Goal_Number(kActorTransient) >= 390 && !Game_Flag_Query(kFlagHomelessShot)) {
if (Game_Flag_Query(553)) {
if (Random_Query(1, 3) == 1) {
Actor_Set_Goal_Number(kActorTransient, 395);
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index a154269..dbc1933 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -60,6 +60,8 @@
#include "bladerunner/vector.h"
#include "bladerunner/waypoints.h"
+#include "common/debug-channels.h"
+
namespace BladeRunner {
ScriptBase::ScriptBase(BladeRunnerEngine *vm) {
@@ -67,37 +69,46 @@ ScriptBase::ScriptBase(BladeRunnerEngine *vm) {
}
void ScriptBase::Preload(int animationId) {
+ debugC(8, kDebugScript, "Preload(%d)", animationId);
_vm->_sliceRenderer->preload(animationId);
}
void ScriptBase::Actor_Put_In_Set(int actorId, int setId) {
+ debugC(kDebugScript, "Actor_Put_In_Set(%d, %d)", actorId, setId);
_vm->_actors[actorId]->setSetId(setId);
}
void ScriptBase::Actor_Set_At_XYZ(int actorId, float x, float y, float z, int direction) {
+ debugC(kDebugScript, "Actor_Set_At_XYZ(%d, %f, %f, %f, %d)", actorId, x, y, z, direction);
_vm->_actors[actorId]->setAtXYZ(Vector3(x, y, z), direction);
}
void ScriptBase::Actor_Set_At_Waypoint(int actorId, int waypointId, int angle) {
+ debugC(kDebugScript, "Actor_Set_At_Waypoint(%d, %d, %d)", actorId, waypointId, angle);
_vm->_actors[actorId]->setAtWaypoint(waypointId, angle, 0, false);
}
bool ScriptBase::Region_Check(int left, int top, int right, int down) {
+ debugC(kDebugScript, "Region_Check(%d, %d, %d, %d)", left, top, right, down);
//TODO: return _vm->_mouse.x >= left && _vm->_mouse.y >= top && _vm->_mouse.x <= right && _vm->_mouse.y <= down;
warning("Region_Check(%d, %d, %d, %d)", left, top, right, down);
+
return false;
}
bool ScriptBase::Object_Query_Click(const char *objectName1, const char *objectName2) {
+ debugC(8, kDebugScript, "Object_Query_Click(%s, %s)", objectName1, objectName2);
return strcmp(objectName1, objectName2) == 0;
}
void ScriptBase::Object_Do_Ground_Click() {
+ debugC(kDebugScript, "Object_Do_Ground_Click()");
//This is not implemented in game
return;
}
bool ScriptBase::Object_Mark_For_Hot_Mouse(const char *objectName) {
+ debugC(kDebugScript, "Object_Mark_For_Hot_Mouse(%s)", objectName);
int objectId = _vm->_scene->findObject(objectName);
if (objectId == -1)
return false;
@@ -105,146 +116,181 @@ bool ScriptBase::Object_Mark_For_Hot_Mouse(const char *objectName) {
}
void ScriptBase::Actor_Face_Actor(int actorId, int otherActorId, bool animate) {
+ debugC(kDebugScript, "Actor_Face_Actor(%d, %d, %d)", actorId, otherActorId, animate);
_vm->_actors[actorId]->faceActor(otherActorId, animate);
}
void ScriptBase::Actor_Face_Object(int actorId, const char *objectName, bool animate) {
+ debugC(kDebugScript, "Actor_Face_Object(%d, %s, %d)", actorId, objectName, animate);
_vm->_actors[actorId]->faceObject(objectName, animate);
}
void ScriptBase::Actor_Face_Item(int actorId, int itemId, bool animate) {
+ debugC(kDebugScript, "Actor_Face_Item(%d, %d, %d)", actorId, itemId, animate);
_vm->_actors[actorId]->faceItem(itemId, animate);
}
void ScriptBase::Actor_Face_Waypoint(int actorId, int waypointId, bool animate) {
+ debugC(kDebugScript, "Actor_Face_Waypoint(%d, %d, %d)", actorId, waypointId, animate);
_vm->_actors[actorId]->faceWaypoint(waypointId, animate);
}
void ScriptBase::Actor_Face_XYZ(int actorId, float x, float y, float z, bool animate) {
+ debugC(kDebugScript, "Actor_Face_XYZ(%d, %f, %f, %f, %d)", actorId, x, y, z, animate);
_vm->_actors[actorId]->faceXYZ(x, y, z, animate);
}
void ScriptBase::Actor_Face_Current_Camera(int actorId, bool animate) {
+ debugC(kDebugScript, "Actor_Face_Current_Camera(%d, %d)", actorId, animate);
_vm->_actors[actorId]->faceCurrentCamera(animate);
}
void ScriptBase::Actor_Face_Heading(int actorId, int heading, bool animate) {
+ debugC(kDebugScript, "Actor_Face_Heading(%d, %d, %d)", actorId, heading, animate);
_vm->_actors[actorId]->faceHeading(heading, true);
}
int ScriptBase::Actor_Query_Friendliness_To_Other(int actorId, int otherActorId) {
+ debugC(8, kDebugScript, "Actor_Query_Friendliness_To_Other(%d, %d)", actorId, otherActorId);
return _vm->_actors[actorId]->getFriendlinessToOther(otherActorId);
}
void ScriptBase::Actor_Modify_Friendliness_To_Other(int actorId, int otherActorId, signed int change) {
+ debugC(kDebugScript, "Actor_Modify_Friendliness_To_Other(%d, %d, %d)", actorId, otherActorId, change);
_vm->_actors[actorId]->modifyFriendlinessToOther(otherActorId, change);
}
void ScriptBase::Actor_Set_Friendliness_To_Other(int actorId, int otherActorId, int friendliness) {
+ debugC(kDebugScript, "Actor_Set_Friendliness_To_Other(%d, %d, %d)", actorId, otherActorId, friendliness);
_vm->_actors[actorId]->setFriendlinessToOther(otherActorId, friendliness);
}
void ScriptBase::Actor_Set_Honesty(int actorId, int honesty) {
+ debugC(kDebugScript, "Actor_Set_Honesty(%d, %d)", actorId, honesty);
_vm->_actors[actorId]->setHonesty(honesty);
}
void ScriptBase::Actor_Set_Intelligence(int actorId, int intelligence) {
+ debugC(kDebugScript, "Actor_Set_Intelligence(%d, %d)", actorId, intelligence);
_vm->_actors[actorId]->setIntelligence(intelligence);
}
void ScriptBase::Actor_Set_Stability(int actorId, int stability) {
+ debugC(kDebugScript, "Actor_Set_Stability(%d, %d)", actorId, stability);
_vm->_actors[actorId]->setStability(stability);
}
void ScriptBase::Actor_Set_Combat_Aggressiveness(int actorId, int combatAggressiveness) {
+ debugC(kDebugScript, "Actor_Set_Combat_Aggressiveness(%d, %d)", actorId, combatAggressiveness);
_vm->_actors[actorId]->setCombatAggressiveness(combatAggressiveness);
}
int ScriptBase::Actor_Query_Current_HP(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Current_HP(%d)", actorId);
return _vm->_actors[actorId]->getCurrentHP();
}
int ScriptBase::Actor_Query_Max_HP(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Max_HP(%d)", actorId);
return _vm->_actors[actorId]->getMaxHP();
}
int ScriptBase::Actor_Query_Combat_Aggressiveness(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Combat_Aggressiveness(%d)", actorId);
return _vm->_actors[actorId]->getCombatAggressiveness();
}
int ScriptBase::Actor_Query_Honesty(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Honesty(%d)", actorId);
return _vm->_actors[actorId]->getHonesty();
}
int ScriptBase::Actor_Query_Intelligence(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Intelligence(%d)", actorId);
return _vm->_actors[actorId]->getIntelligence();
}
int ScriptBase::Actor_Query_Stability(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Stability(%d)", actorId);
return _vm->_actors[actorId]->getStability();
}
void ScriptBase::Actor_Modify_Current_HP(int actorId, signed int change) {
+ debugC(kDebugScript, "Actor_Modify_Current_HP(%d, %d)", actorId, change);
_vm->_actors[actorId]->modifyCurrentHP(change);
}
void ScriptBase::Actor_Modify_Max_HP(int actorId, signed int change) {
+ debugC(kDebugScript, "Actor_Modify_Max_HP(%d, %d)", actorId, change);
_vm->_actors[actorId]->modifyMaxHP(change);
}
void ScriptBase::Actor_Modify_Combat_Aggressiveness(int actorId, signed int change) {
+ debugC(kDebugScript, "Actor_Modify_Combat_Aggressiveness(%d, %d)", actorId, change);
_vm->_actors[actorId]->modifyCombatAggressiveness(change);
}
void ScriptBase::Actor_Modify_Honesty(int actorId, signed int change) {
+ debugC(kDebugScript, "Actor_Modify_Honesty(%d, %d)", actorId, change);
_vm->_actors[actorId]->modifyHonesty(change);
}
void ScriptBase::Actor_Modify_Intelligence(int actorId, signed int change) {
+ debugC(kDebugScript, "Actor_Modify_Intelligence(%d, %d)", actorId, change);
_vm->_actors[actorId]->modifyIntelligence(change);
}
void ScriptBase::Actor_Modify_Stability(int actorId, signed int change) {
+ debugC(kDebugScript, "Actor_Modify_Stability(%d, %d)", actorId, change);
_vm->_actors[actorId]->modifyStability(change);
}
void ScriptBase::Actor_Set_Flag_Damage_Anim_If_Moving(int actorId, bool value) {
+ debugC(kDebugScript, "Actor_Set_Flag_Damage_Anim_If_Moving(%d, %d)", actorId, value);
_vm->_actors[actorId]->setFlagDamageAnimIfMoving(value);
}
bool ScriptBase::Actor_Query_Flag_Damage_Anim_If_Moving(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Flag_Damage_Anim_If_Moving(%d)", actorId);
return _vm->_actors[actorId]->getFlagDamageAnimIfMoving();
}
void ScriptBase::Actor_Combat_AI_Hit_Attempt(int actorId) {
- if (_vm->_actors[actorId]->inCombat())
+ debugC(kDebugScript, "Actor_Combat_AI_Hit_Attempt(%d)", actorId);
+ if (_vm->_actors[actorId]->inCombat()) {
_vm->_actors[actorId]->_combatInfo->hitAttempt();
+ }
}
void ScriptBase::Non_Player_Actor_Combat_Mode_On(int actorId, int initialState, bool rangedAttack, int enemyId, int waypointType, int animationModeCombatIdle, int animationModeCombatWalk, int animationModeCombatRun, int fleeRatio, int coverRatio, int actionRatio, int damage, int range, bool unstoppable) {
+ debugC(kDebugScript, "Non_Player_Actor_Combat_Mode_On(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", actorId, initialState, rangedAttack, enemyId, waypointType, animationModeCombatIdle, animationModeCombatWalk, animationModeCombatRun, fleeRatio, coverRatio, actionRatio, damage, range, unstoppable);
_vm->_actors[actorId]->combatModeOn(initialState, rangedAttack, enemyId, waypointType, animationModeCombatIdle, animationModeCombatWalk, animationModeCombatRun, fleeRatio, coverRatio, actionRatio, damage, range, unstoppable);
}
void ScriptBase::Non_Player_Actor_Combat_Mode_Off(int actorId) {
+ debugC(kDebugScript, "Non_Player_Actor_Combat_Mode_Off(%d)", actorId);
_vm->_actors[actorId]->combatModeOff();
}
void ScriptBase::Actor_Set_Health(int actorId, int hp, int maxHp) {
+ debugC(kDebugScript, "Actor_Set_Health(%d, %d, %d)", actorId, hp, maxHp);
_vm->_actors[actorId]->setHealth(hp, maxHp);
}
void ScriptBase::Actor_Set_Targetable(int actorId, bool targetable) {
+ debugC(kDebugScript, "Actor_Set_Targetable(%d, %d)", actorId, targetable);
_vm->_actors[actorId]->setTarget(targetable);
-
}
-void ScriptBase::Actor_Says(int actorId, int sentenceId, int animationMode){
+void ScriptBase::Actor_Says(int actorId, int sentenceId, int animationMode) {
+ debugC(kDebugScript, "Actor_Says(%d, %d, %d)", actorId, sentenceId, animationMode);
_vm->loopActorSpeaking();
_vm->_actorDialogueQueue->flush(1, true);
Actor_Says_With_Pause(actorId, sentenceId, 0.5f, animationMode);
}
void ScriptBase::Actor_Says_With_Pause(int actorId, int sentenceId, float pause, int animationMode) {
+ debugC(kDebugScript, "Actor_Says_With_Pause(%d, %d, %f, %d)", actorId, sentenceId, pause, animationMode);
_vm->gameWaitForActive();
_vm->loopActorSpeaking();
_vm->_actorDialogueQueue->flush(1, true);
@@ -296,6 +342,7 @@ void ScriptBase::Actor_Says_With_Pause(int actorId, int sentenceId, float pause,
}
void ScriptBase::Actor_Voice_Over(int sentenceId, int actorId) {
+ debugC(kDebugScript, "Actor_Voice_Over(%d, %d)", sentenceId, actorId);
assert(actorId < BladeRunnerEngine::kActorCount);
_vm->gameWaitForActive();
@@ -318,29 +365,35 @@ void ScriptBase::Actor_Voice_Over(int sentenceId, int actorId) {
}
void ScriptBase::Actor_Start_Speech_Sample(int actorId, int sentenceId) {
+ debugC(kDebugScript, "Actor_Start_Speech_Sample(%d, %d)", actorId, sentenceId);
_vm->loopActorSpeaking();
_vm->_actors[actorId]->speechPlay(sentenceId, false);
}
void ScriptBase::Actor_Start_Voice_Over_Sample(int sentenceId) {
+ debugC(kDebugScript, "Actor_Start_Voice_Over_Sample(%d)", sentenceId);
_vm->loopActorSpeaking();
_vm->_actors[kActorVoiceOver]->speechPlay(sentenceId, true);
}
int ScriptBase::Actor_Query_Which_Set_In(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Which_Set_In(%d)", actorId);
return _vm->_actors[actorId]->getSetId();
}
bool ScriptBase::Actor_Query_Is_In_Current_Set(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Is_In_Current_Set(%d)", actorId);
int actorSetId = _vm->_actors[actorId]->getSetId();
return actorSetId >= 0 && actorSetId == _vm->_scene->getSetId();
}
bool ScriptBase::Actor_Query_In_Set(int actorId, int setId) {
+ debugC(8, kDebugScript, "Actor_Query_In_Set(%d, %d)", actorId, setId);
return _vm->_actors[actorId]->getSetId() == setId;
}
int ScriptBase::Actor_Query_Inch_Distance_From_Actor(int actorId, int otherActorId) {
+ debugC(8, kDebugScript, "Actor_Query_Inch_Distance_From_Actor(%d, %d)", actorId, otherActorId);
if (_vm->_actors[actorId]->getSetId() != _vm->_actors[otherActorId]->getSetId()) {
return 0.0f;
}
@@ -348,6 +401,7 @@ int ScriptBase::Actor_Query_Inch_Distance_From_Actor(int actorId, int otherActor
}
int ScriptBase::Actor_Query_Inch_Distance_From_Waypoint(int actorId, int waypointId) {
+ debugC(8, kDebugScript, "Actor_Query_Inch_Distance_From_Waypoint(%d, %d)", actorId, waypointId);
if (_vm->_actors[actorId]->getSetId() != _vm->_waypoints->getSetId(waypointId))
return 0;
@@ -363,6 +417,7 @@ int ScriptBase::Actor_Query_Inch_Distance_From_Waypoint(int actorId, int waypoin
}
bool ScriptBase::Actor_Query_In_Between_Two_Actors(int actorId, int otherActor1Id, int otherActor2Id) {
+ debugC(8, kDebugScript, "Actor_Query_In_Between_Two_Actors(%d, %d, %d)", actorId, otherActor1Id, otherActor2Id);
float x1 = _vm->_actors[otherActor1Id]->getX();
float z1 = _vm->_actors[otherActor1Id]->getZ();
float x2 = _vm->_actors[otherActor2Id]->getX();
@@ -375,40 +430,49 @@ bool ScriptBase::Actor_Query_In_Between_Two_Actors(int actorId, int otherActor1I
}
void ScriptBase::Actor_Set_Goal_Number(int actorId, int goalNumber) {
+ debugC(kDebugScript, "Actor_Set_Goal_Number(%d, %d)", actorId, goalNumber);
_vm->_actors[actorId]->setGoal(goalNumber);
}
int ScriptBase::Actor_Query_Goal_Number(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Goal_Number(%d)", actorId);
return _vm->_actors[actorId]->getGoal();
}
void ScriptBase::Actor_Query_XYZ(int actorId, float *x, float *y, float *z) {
+ debugC(8, kDebugScript, "Actor_Query_XYZ(%d, ptr, ptr, ptr)", actorId);
*x = _vm->_actors[actorId]->getX();
*y = _vm->_actors[actorId]->getY();
*z = _vm->_actors[actorId]->getZ();
}
int ScriptBase::Actor_Query_Facing_1024(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Facing_1024(%d)", actorId);
return _vm->_actors[actorId]->getFacing();
}
void ScriptBase::Actor_Set_Frame_Rate_FPS(int actorId, int fps) {
+ debugC(kDebugScript, "Actor_Set_Frame_Rate_FPS(%d, %d)", actorId, fps);
_vm->_actors[actorId]->setFPS(fps);
}
int ScriptBase::Slice_Animation_Query_Number_Of_Frames(int animation) {
+ debugC(8, kDebugScript, "Slice_Animation_Query_Number_Of_Frames(%d)", animation);
return _vm->_sliceAnimations->getFrameCount(animation);
}
void ScriptBase::Actor_Change_Animation_Mode(int actorId, int animationMode) {
+ debugC(kDebugScript, "Actor_Change_Animation_Mode(%d, %d)", actorId, animationMode);
_vm->_actors[actorId]->changeAnimationMode(animationMode, false);
}
int ScriptBase::Actor_Query_Animation_Mode(int actorId) {
+ debugC(8, kDebugScript, "Actor_Query_Animation_Mode(%d)", actorId);
return _vm->_actors[actorId]->getAnimationMode();
}
bool ScriptBase::Loop_Actor_Walk_To_Actor(int actorId, int otherActorId, int distance, bool interruptible, bool run) {
+ debugC(kDebugScript, "Loop_Actor_Walk_To_Actor(%d, %d, %d, %d, %d)", actorId, otherActorId, distance, interruptible, run);
_vm->gameWaitForActive();
if (_vm->_runningActorId == actorId) {
@@ -433,6 +497,7 @@ bool ScriptBase::Loop_Actor_Walk_To_Actor(int actorId, int otherActorId, int dis
}
bool ScriptBase::Loop_Actor_Walk_To_Item(int actorId, int itemId, int destinationOffset, bool interruptible, bool run) {
+ debugC(kDebugScript, "Loop_Actor_Walk_To_Item(%d, %d, %d, %d, %d)", actorId, itemId, destinationOffset, interruptible, run);
_vm->gameWaitForActive();
if (_vm->_runningActorId == actorId) {
@@ -457,6 +522,7 @@ bool ScriptBase::Loop_Actor_Walk_To_Item(int actorId, int itemId, int destinatio
}
bool ScriptBase::Loop_Actor_Walk_To_Scene_Object(int actorId, const char *objectName, int destinationOffset, bool interruptible, bool run) {
+ debugC(kDebugScript, "Loop_Actor_Walk_To_Scene_Object(%d, %s, %d, %d, %d)", actorId, objectName, destinationOffset, interruptible, run);
_vm->gameWaitForActive();
if (_vm->_runningActorId == actorId) {
@@ -481,6 +547,7 @@ bool ScriptBase::Loop_Actor_Walk_To_Scene_Object(int actorId, const char *object
}
bool ScriptBase::Loop_Actor_Walk_To_Waypoint(int actorId, int waypointId, int destinationOffset, bool interruptible, bool run) {
+ debugC(kDebugScript, "Loop_Actor_Walk_To_Waypoint(%d, %d, %d, %d, %d)", actorId, waypointId, destinationOffset, interruptible, run);
_vm->gameWaitForActive();
if (_vm->_runningActorId == actorId) {
@@ -505,6 +572,7 @@ bool ScriptBase::Loop_Actor_Walk_To_Waypoint(int actorId, int waypointId, int de
}
bool ScriptBase::Loop_Actor_Walk_To_XYZ(int actorId, float x, float y, float z, int destinationOffset, bool interruptible, bool run, int a7) {
+ debugC(kDebugScript, "Loop_Actor_Walk_To_XYZ(%d, %f, %f, %f, %d, %d, %d, %d)", actorId, x, y, z, destinationOffset, interruptible, run, a7);
_vm->gameWaitForActive();
if (_vm->_runningActorId == actorId) {
@@ -532,6 +600,7 @@ bool ScriptBase::Loop_Actor_Walk_To_XYZ(int actorId, float x, float y, float z,
}
void ScriptBase::Async_Actor_Walk_To_Waypoint(int actorId, int waypointId, int destinationOffset, bool run) {
+ debugC(kDebugScript, "Async_Actor_Walk_To_Waypoint(%d, %d, %d, %d)", actorId, waypointId, destinationOffset, run);
_vm->gameWaitForActive();
if (_vm->_runningActorId == actorId) {
@@ -542,6 +611,7 @@ void ScriptBase::Async_Actor_Walk_To_Waypoint(int actorId, int waypointId, int d
}
void ScriptBase::Async_Actor_Walk_To_XYZ(int actorId, float x, float y, float z, int destinationOffset, bool run) {
+ debugC(kDebugScript, "Async_Actor_Walk_To_XYZ(%d, %f, %f, %f, %d, %d)", actorId, x, y, z, destinationOffset, run);
_vm->gameWaitForActive();
if (_vm->_runningActorId == actorId) {
@@ -552,11 +622,12 @@ void ScriptBase::Async_Actor_Walk_To_XYZ(int actorId, float x, float y, float z,
}
void ScriptBase::Actor_Force_Stop_Walking(int actorId) {
- //TODO
- warning("Loop_Actor_Travel_Stairs(%d)", actorId);
+ debugC(kDebugScript, "Actor_Force_Stop_Walking(%d)", actorId);
+ _vm->_actors[actorId]->stopWalking(true);
}
void ScriptBase::Loop_Actor_Travel_Stairs(int actorId, int stepCount, bool up, int animationModeEnd) {
+ debugC(kDebugScript, "Loop_Actor_Travel_Stairs(%d, %d, %d, %d)", actorId, stepCount, up, animationModeEnd);
_vm->gameWaitForActive();
Player_Loses_Control();
@@ -600,6 +671,7 @@ void ScriptBase::Loop_Actor_Travel_Stairs(int actorId, int stepCount, bool up, i
}
void ScriptBase::Loop_Actor_Travel_Ladder(int actorId, int stepCount, bool up, int animationModeEnd) {
+ debugC(kDebugScript, "Loop_Actor_Travel_Ladder(%d, %d, %d, %d)", actorId, stepCount, up, animationModeEnd);
_vm->gameWaitForActive();
Player_Loses_Control();
@@ -643,46 +715,57 @@ void ScriptBase::Loop_Actor_Travel_Ladder(int actorId, int stepCount, bool up, i
}
void ScriptBase::Actor_Clue_Add_To_Database(int actorId, int clueId, int weight, bool clueAcquired, bool unknownFlag, int fromActorId) {
+ debugC(kDebugScript, "Actor_Clue_Add_To_Database(%d, %d, %d, %d, %d, %d)", actorId, clueId, weight, clueAcquired, unknownFlag, fromActorId);
_vm->_actors[actorId]->addClueToDatabase(clueId, weight, clueAcquired, unknownFlag, fromActorId);
}
void ScriptBase::Actor_Clue_Acquire(int actorId, int clueId, bool unknownFlag, int fromActorId) {
+ debugC(kDebugScript, "Actor_Clue_Acquire(%d, %d, %d, %d)", actorId, clueId, unknownFlag, fromActorId);
_vm->_actors[actorId]->acquireClue(clueId, unknownFlag, fromActorId);
}
void ScriptBase::Actor_Clue_Lose(int actorId, int clueId) {
+ debugC(kDebugScript, "Actor_Clue_Lose(%d, %d)", actorId, clueId);
_vm->_actors[actorId]->loseClue(clueId);
}
bool ScriptBase::Actor_Clue_Query(int actorId, int clueId) {
+ debugC(8, kDebugScript, "Actor_Clue_Query(%d, %d)", actorId, clueId);
return _vm->_actors[actorId]->hasClue(clueId);
}
void ScriptBase::Actor_Clues_Transfer_New_To_Mainframe(int actorId) {
+ debugC(kDebugScript, "Actor_Clues_Transfer_New_To_Mainframe(%d)", actorId);
_vm->_actors[actorId]->copyClues(kActorVoiceOver);
}
void ScriptBase::Actor_Clues_Transfer_New_From_Mainframe(int actorId) {
+ debugC(kDebugScript, "Actor_Clues_Transfer_New_From_Mainframe(%d)", actorId);
_vm->_actors[kActorVoiceOver]->copyClues(actorId);
}
void ScriptBase::Actor_Set_Invisible(int actorId, bool isInvisible) {
+ debugC(kDebugScript, "Actor_Set_Invisible(%d, %d)", actorId, isInvisible);
_vm->_actors[actorId]->setInvisible(isInvisible);
}
void ScriptBase::Actor_Set_Immunity_To_Obstacles(int actorId, bool isImmune) {
+ debugC(kDebugScript, "Actor_Set_Immunity_To_Obstacles(%d, %d)", actorId, isImmune);
_vm->_actors[actorId]->setImmunityToObstacles(isImmune);
}
void ScriptBase::Item_Add_To_World(int itemId, int animationId, int setId, float x, float y, float z, signed int facing, int height, int width, bool isTargetable, bool isObstacle, bool isPoliceMazeEnemy, bool updateOnly) {
+ debugC(kDebugScript, "Item_Add_To_World(%d, %d, %d, %f, %f, %f, %d, %d, %d, %d, %d, %d, %d)", itemId, animationId, setId, x, y, z, facing, height, width, isTargetable, isObstacle, isPoliceMazeEnemy, updateOnly);
_vm->_items->addToWorld(itemId, animationId, setId, Vector3(x, y, z), facing, height, width, isTargetable, isObstacle, isPoliceMazeEnemy, updateOnly == 0);
}
void ScriptBase::Item_Remove_From_World(int itemId) {
+ debugC(kDebugScript, "Item_Remove_From_World(%d)", itemId);
_vm->_items->remove(itemId);
}
void ScriptBase::Item_Spin_In_World(int itemId) {
+ debugC(kDebugScript, "Item_Spin_In_World(%d)", itemId);
_vm->_items->spinInWorld(itemId);
if (_vm->_items->isPoliceMazeEnemy(itemId)) {
Police_Maze_Increment_Score(1);
@@ -692,14 +775,17 @@ void ScriptBase::Item_Spin_In_World(int itemId) {
}
void ScriptBase::Item_Flag_As_Target(int itemId) {
+ debugC(kDebugScript, "Item_Flag_As_Target(%d)", itemId);
_vm->_items->setIsTarget(itemId, true);
}
void ScriptBase::Item_Flag_As_Non_Target(int itemId) {
+ debugC(kDebugScript, "Item_Flag_As_Non_Target(%d)", itemId);
_vm->_items->setIsTarget(itemId, false);
}
void ScriptBase::Item_Pickup_Spin_Effect(int animationId, int x, int y) {
+ debugC(kDebugScript, "Item_Pickup_Spin_Effect(%d, %d, %d)", animationId, x, y);
_vm->_itemPickup->setup(animationId, x, y);
}
@@ -729,6 +815,7 @@ int ScriptBase::Animation_Skip_To_Frame() {
}
void ScriptBase::Delay(int miliseconds) {
+ debugC(kDebugScript, "Delay(%d)", miliseconds);
Player_Loses_Control();
int endTime = _vm->_time->current() + miliseconds;
while (_vm->_gameIsRunning && (_vm->_time->current() < endTime)) {
@@ -738,14 +825,17 @@ void ScriptBase::Delay(int miliseconds) {
}
void ScriptBase::Player_Loses_Control() {
+ debugC(kDebugScript, "Player_Loses_Control()");
_vm->playerLosesControl();
}
void ScriptBase::Player_Gains_Control() {
+ debugC(kDebugScript, "Player_Gains_Control()");
_vm->playerGainsControl();
}
void ScriptBase::Player_Set_Combat_Mode(bool activate) {
+ debugC(kDebugScript, "Player_Set_Combat_Mode(%d)", activate);
if (!_vm->_combat->isActive() || activate) {
if (!_vm->_combat->isActive() && activate) {
_vm->_combat->activate();
@@ -756,10 +846,12 @@ void ScriptBase::Player_Set_Combat_Mode(bool activate) {
}
bool ScriptBase::Player_Query_Combat_Mode() {
+ debugC(8, kDebugScript, "Player_Query_Combat_Mode()");
return _vm->_combat->isActive();
}
void ScriptBase::Player_Set_Combat_Mode_Access(bool enable) {
+ debugC(kDebugScript, "Player_Set_Combat_Mode_Access(%d)", enable);
if (enable) {
_vm->_combat->enable();
} else {
@@ -768,80 +860,98 @@ void ScriptBase::Player_Set_Combat_Mode_Access(bool enable) {
}
int ScriptBase::Player_Query_Current_Set() {
+ debugC(8, kDebugScript, "Player_Query_Current_Set()");
return _vm->_scene->getSetId();
}
int ScriptBase::Player_Query_Current_Scene() {
+ debugC(8, kDebugScript, "Player_Query_Current_Scene()");
return _vm->_scene->getSceneId();
}
int ScriptBase::Player_Query_Agenda() {
+ debugC(8, kDebugScript, "Player_Query_Agenda()");
return _vm->_settings->getPlayerAgenda();
}
void ScriptBase::Player_Set_Agenda(int agenda) {
+ debugC(kDebugScript, "Player_Set_Agenda(%d)", agenda);
_vm->_settings->setPlayerAgenda(agenda);
}
int ScriptBase::Query_Difficulty_Level() {
+ debugC(8, kDebugScript, "Query_Difficulty_Level()");
return _vm->_settings->getDifficulty();
}
-
void ScriptBase::Game_Flag_Set(int flag) {
+ debugC(kDebugScript, "Game_Flag_Set(%d)", flag);
_vm->_gameFlags->set(flag);
}
void ScriptBase::Game_Flag_Reset(int flag) {
+ debugC(kDebugScript, "Game_Flag_Reset(%d)", flag);
_vm->_gameFlags->reset(flag);
}
bool ScriptBase::Game_Flag_Query(int flag) {
+ debugC(8, kDebugScript, "Game_Flag_Query(%d)", flag);
return _vm->_gameFlags->query(flag);
}
void ScriptBase::Set_Enter(int setId, int sceneId) {
+ debugC(kDebugScript, "Set_Enter(%d, %d)", setId, sceneId);
_vm->_settings->setNewSetAndScene(setId, sceneId);
}
void ScriptBase::Chapter_Enter(int chapter, int setId, int sceneId) {
+ debugC(kDebugScript, "Chapter_Enter(%d, %d, %d)", chapter, setId, sceneId);
_vm->_settings->setChapter(chapter);
Set_Enter(setId, sceneId);
}
int ScriptBase::Global_Variable_Set(int var, int value) {
+ debugC(kDebugScript, "Global_Variable_Set(%d, %d)", var, value);
return _vm->_gameVars[var] = value;
}
int ScriptBase::Global_Variable_Reset(int var) {
+ debugC(kDebugScript, "Global_Variable_Reset(%d)", var);
return _vm->_gameVars[var] = 0;
}
int ScriptBase::Global_Variable_Query(int var) {
+ debugC(8, kDebugScript, "Global_Variable_Query(%d)", var);
return _vm->_gameVars[var];
}
int ScriptBase::Global_Variable_Increment(int var, int inc) {
+ debugC(kDebugScript, "Global_Variable_Increment(%d, %d)", var, inc);
return _vm->_gameVars[var] += inc;
}
int ScriptBase::Global_Variable_Decrement(int var, int dec) {
+ debugC(kDebugScript, "Global_Variable_Decrement(%d, %d)", var, dec);
return _vm->_gameVars[var] -= dec;
}
int ScriptBase::Random_Query(int min, int max) {
+ debugC(9, kDebugScript, "Random_Query(%d, %d)", min, max);
return _vm->_rnd.getRandomNumberRng(min, max);
}
void ScriptBase::Sound_Play(int id, int volume, int panFrom, int panTo, int priority) {
+ debugC(6, kDebugScript, "Sound_Play(%d, %d, %d, %d, %d)", id, volume, panFrom, panTo, priority);
_vm->_audioPlayer->playAud(_vm->_gameInfo->getSfxTrack(id), volume, panFrom, panTo, priority);
}
void ScriptBase::Sound_Play_Speech_Line(int actorId, int sentenceId, int volume, int a4, int priority) {
+ debugC(kDebugScript, "Sound_Play_Speech_Line(%d, %d, %d, %d, %d)", actorId, sentenceId, volume, a4, priority);
_vm->_audioSpeech->playSpeechLine(actorId, sentenceId, volume, a4, priority);
}
void ScriptBase::Sound_Left_Footstep_Walk(int actorId) {
+ debugC(6, kDebugScript, "Sound_Left_Footstep_Walk(%d)", actorId);
int walkboxId = _vm->_actors[actorId]->getWalkbox();
if (walkboxId < 0) {
walkboxId = 0;
@@ -853,6 +963,7 @@ void ScriptBase::Sound_Left_Footstep_Walk(int actorId) {
}
void ScriptBase::Sound_Right_Footstep_Walk(int actorId) {
+ debugC(6, kDebugScript, "Sound_Right_Footstep_Walk(%d)", actorId);
int walkboxId = _vm->_actors[actorId]->getWalkbox();
if (walkboxId < 0) {
walkboxId = 0;
@@ -864,6 +975,7 @@ void ScriptBase::Sound_Right_Footstep_Walk(int actorId) {
}
void ScriptBase::Sound_Left_Footstep_Run(int actorId) {
+ debugC(6, kDebugScript, "Sound_Left_Footstep_Run(%d)", actorId);
int walkboxId = _vm->_actors[actorId]->getWalkbox();
if (walkboxId < 0) {
walkboxId = 0;
@@ -875,6 +987,7 @@ void ScriptBase::Sound_Left_Footstep_Run(int actorId) {
}
void ScriptBase::Sound_Right_Footstep_Run(int actorId) {
+ debugC(6, kDebugScript, "Sound_Right_Footstep_Run(%d)", actorId);
int walkboxId = _vm->_actors[actorId]->getWalkbox();
if (walkboxId < 0) {
walkboxId = 0;
@@ -888,46 +1001,57 @@ void ScriptBase::Sound_Right_Footstep_Run(int actorId) {
// ScriptBase::Sound_Walk_Shuffle_Stop
void ScriptBase::Footstep_Sounds_Set(int walkboxId, int stepSound) {
+ debugC(kDebugScript, "Footstep_Sounds_Set(%d, %d)", walkboxId, stepSound);
_vm->_scene->_set->setWalkboxStepSound(walkboxId, stepSound);
}
void ScriptBase::Footstep_Sound_Override_On(int footstepSoundOverride) {
+ debugC(kDebugScript, "Footstep_Sound_Override_On(%d)", footstepSoundOverride);
_vm->_scene->_set->setFoodstepSoundOverride(footstepSoundOverride);
}
void ScriptBase::Footstep_Sound_Override_Off() {
+ debugC(kDebugScript, "Footstep_Sound_Override_Off()");
_vm->_scene->_set->resetFoodstepSoundOverride();
}
bool ScriptBase::Music_Play(int musicId, int volume, int pan, int timeFadeIn, int timePlay, int loop, int timeFadeOut) {
+ debugC(kDebugScript, "Music_Play(%d, %d, %d, %d, %d, %d, %d)", musicId, volume, pan, timeFadeIn, timePlay, loop, timeFadeOut);
return _vm->_music->play(_vm->_gameInfo->getMusicTrack(musicId), volume, pan, timeFadeIn, timePlay, loop, timeFadeOut);
}
void ScriptBase::Music_Adjust(int volume, int pan, int delay) {
+ debugC(kDebugScript, "Music_Adjust(%d, %d, %d)", volume, pan, delay);
_vm->_music->adjust(volume, pan, delay);
}
void ScriptBase::Music_Stop(int delay) {
+ debugC(kDebugScript, "Music_Stop(%d)", delay);
_vm->_music->stop(delay);
}
bool ScriptBase::Music_Is_Playing() {
+ debugC(8, kDebugScript, "Music_Is_Playing()");
return _vm->_music->isPlaying();
}
void ScriptBase::Overlay_Play(const char *overlay, int loopId, bool loopForever, bool startNow, int a5) {
+ debugC(kDebugScript, "Overlay_Play(%s, %d, %d, %d, %d)", overlay, loopId, loopForever, startNow, a5);
_vm->_overlays->play(overlay, loopId, loopForever, startNow, a5);
}
void ScriptBase::Overlay_Remove(const char *overlay) {
+ debugC(kDebugScript, "Overlay_Remove(%s)", overlay);
_vm->_overlays->remove(overlay);
}
void ScriptBase::Scene_Loop_Set_Default(int loopId) {
+ debugC(kDebugScript, "Scene_Loop_Set_Default(%d)", loopId);
_vm->_scene->loopSetDefault(loopId);
}
void ScriptBase::Scene_Loop_Start_Special(int sceneLoopMode, int loopId, bool immediately) {
+ debugC(kDebugScript, "Scene_Loop_Start_Special(%d, %d, %d)", sceneLoopMode, loopId, immediately);
if (sceneLoopMode == kSceneLoopModeOnce) {
immediately = true;
}
@@ -938,56 +1062,69 @@ void ScriptBase::Scene_Loop_Start_Special(int sceneLoopMode, int loopId, bool im
}
void ScriptBase::Outtake_Play(int id, int noLocalization, int container) {
+ debugC(kDebugScript, "Outtake_Play(%d, %d, %d)", id, noLocalization, container);
_vm->outtakePlay(id, noLocalization, container);
}
void ScriptBase::Ambient_Sounds_Add_Sound(int sfxId, int timeMin, int timeMax, int volumeMin, int volumeMax, int panStartMin, int panStartMax, int panEndMin, int panEndMax, int priority, int unk) {
+ debugC(kDebugScript, "Ambient_Sounds_Add_Sound(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", sfxId, timeMin, timeMax, volumeMin, volumeMax, panStartMin, panStartMax, panEndMin, panEndMax, priority, unk);
_vm->_ambientSounds->addSound(sfxId, timeMin, timeMax, volumeMin, volumeMax, panStartMin, panStartMax, panEndMin, panEndMax, priority, unk);
}
void ScriptBase::Ambient_Sounds_Remove_Sound(int sfxId, bool stopPlaying) {
+ debugC(kDebugScript, "Ambient_Sounds_Remove_Sound(%d, %d)", sfxId, stopPlaying);
_vm->_ambientSounds->removeNonLoopingSound(sfxId, stopPlaying);
}
void ScriptBase::Ambient_Sounds_Add_Speech_Sound(int actorId, int sentenceId, int timeMin, int timeMax, int volumeMin, int volumeMax, int panStartMin, int panStartMax, int panEndMin, int panEndMax, int priority, int unk){
+ debugC(kDebugScript, "Ambient_Sounds_Add_Speech_Sound(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", actorId, sentenceId, timeMin, timeMax, volumeMin, volumeMax, panStartMin, panStartMax, panEndMin, panEndMax, priority, unk);
_vm->_ambientSounds->addSpeech(actorId, sentenceId, timeMin, timeMax, volumeMin, volumeMax, panStartMin, panStartMax, panEndMin, panEndMax, priority, unk);
}
// ScriptBase::Ambient_Sounds_Remove_Speech_Sound
void ScriptBase::Ambient_Sounds_Play_Sound(int sfxId, int volume, int panStart, int panEnd, int priority) {
+ debugC(kDebugScript, "Ambient_Sounds_Play_Sound(%d, %d, %d, %d, %d)", sfxId, volume, panStart, panEnd, priority);
_vm->_ambientSounds->playSound(sfxId, volume, panStart, panEnd, priority);
}
-void ScriptBase::Ambient_Sounds_Play_Speech_Sound(int actorId, int sfxId, int volume, int panStart, int panEnd, int priority) {
- warning("STIB: Ambient_Sounds_Play_Speech_Sound()");
+void ScriptBase::Ambient_Sounds_Play_Speech_Sound(int actorId, int sentenceId, int volume, int panStart, int panEnd, int priority) {
+ debugC(kDebugScript, "Ambient_Sounds_Play_Speech_Sound(%d, %d, %d, %d, %d, %d)", actorId, sentenceId, volume, panStart, panEnd, priority);
+ _vm->_ambientSounds->playSpeech(actorId, sentenceId, volume, panStart, panEnd, priority);
}
void ScriptBase::Ambient_Sounds_Remove_All_Non_Looping_Sounds(bool stopPlaying) {
+ debugC(kDebugScript, "Ambient_Sounds_Remove_All_Non_Looping_Sounds(%d)", stopPlaying);
_vm->_ambientSounds->removeAllNonLoopingSounds(stopPlaying);
}
void ScriptBase::Ambient_Sounds_Add_Looping_Sound(int sfxId, int volume, int pan, int delay) {
+ debugC(kDebugScript, "Ambient_Sounds_Add_Looping_Sound(%d, %d, %d, %d)", sfxId, volume, pan, delay);
_vm->_ambientSounds->addLoopingSound(sfxId, volume, pan, delay);
}
void ScriptBase::Ambient_Sounds_Adjust_Looping_Sound(int sfxId, int volume, int pan, int delay) {
+ debugC(kDebugScript, "Ambient_Sounds_Adjust_Looping_Sound(%d, %d, %d, %d)", sfxId, volume, pan, delay);
_vm->_ambientSounds->adjustLoopingSound(sfxId, volume, pan, delay);
}
void ScriptBase::Ambient_Sounds_Remove_Looping_Sound(int sfxId, int delay){
+ debugC(kDebugScript, "Ambient_Sounds_Remove_Looping_Sound(%d, %d)", sfxId, delay);
_vm->_ambientSounds->removeLoopingSound(sfxId, delay);
}
void ScriptBase::Ambient_Sounds_Remove_All_Looping_Sounds(int delay) {
+ debugC(kDebugScript, "Ambient_Sounds_Remove_All_Looping_Sounds(%d)", delay);
_vm->_ambientSounds->removeAllLoopingSounds(delay);
}
void ScriptBase::Setup_Scene_Information(float actorX, float actorY, float actorZ, int actorFacing) {
+ debugC(kDebugScript, "Setup_Scene_Information(%f, %f, %f, %d)", actorX, actorY, actorZ, actorFacing);
_vm->_scene->setActorStart(Vector3(actorX, actorY, actorZ), actorFacing);
}
bool ScriptBase::Dialogue_Menu_Appear(int x, int y) {
+ debugC(kDebugScript, "Dialogue_Menu_Appear(%d, %d)", x, y);
if (!_vm->_dialogueMenu->isVisible()) {
return _vm->_dialogueMenu->show();
}
@@ -995,6 +1132,7 @@ bool ScriptBase::Dialogue_Menu_Appear(int x, int y) {
}
bool ScriptBase::Dialogue_Menu_Disappear() {
+ debugC(kDebugScript, "Dialogue_Menu_Disappear()");
if (_vm->_dialogueMenu->isVisible()) {
return _vm->_dialogueMenu->hide();
}
@@ -1002,87 +1140,105 @@ bool ScriptBase::Dialogue_Menu_Disappear() {
}
bool ScriptBase::Dialogue_Menu_Clear_List() {
+ debugC(kDebugScript, "Dialogue_Menu_Clear_List()");
_vm->_dialogueMenu->clearList();
return false;
}
bool ScriptBase::Dialogue_Menu_Add_To_List(int answer) {
+ debugC(kDebugScript, "Dialogue_Menu_Add_To_List(%d)", answer);
_vm->_dialogueMenu->addToList(answer, false, 5, 5, 5);
return false;
}
-bool ScriptBase::Dialogue_Menu_Add_DONE_To_List(int answerValue) {
- _vm->_dialogueMenu->addToList(answerValue, 1, 0, 0, 0);
+bool ScriptBase::Dialogue_Menu_Add_DONE_To_List(int answer) {
+ debugC(kDebugScript, "Dialogue_Menu_Add_DONE_To_List(%d)", answer);
+ _vm->_dialogueMenu->addToList(answer, 1, 0, 0, 0);
return false;
}
bool ScriptBase::Dialogue_Menu_Add_To_List_Never_Repeat_Once_Selected(int answer) {
+ debugC(kDebugScript, "Dialogue_Menu_Add_To_List_Never_Repeat_Once_Selected(%d)", answer);
return _vm->_dialogueMenu->addToListNeverRepeatOnceSelected(answer, 5, 5, 5);
}
bool ScriptBase::DM_Add_To_List(int answer, int priorityPolite, int priorityNormal, int prioritySurly) {
+ debugC(kDebugScript, "DM_Add_To_List(%d, %d, %d, %d)", answer, priorityPolite, priorityNormal, prioritySurly);
return _vm->_dialogueMenu->addToList(answer, false, priorityPolite, priorityNormal, prioritySurly);
}
bool ScriptBase::DM_Add_To_List_Never_Repeat_Once_Selected(int answer, int priorityPolite, int priorityNormal, int prioritySurly) {
+ debugC(kDebugScript, "DM_Add_To_List_Never_Repeat_Once_Selected(%d, %d, %d, %d)", answer, priorityPolite, priorityNormal, prioritySurly);
return _vm->_dialogueMenu->addToListNeverRepeatOnceSelected(answer, priorityPolite, priorityNormal, prioritySurly);
}
-void ScriptBase::Dialogue_Menu_Remove_From_List(int answer) {
- //TODO
- warning("Dialogue_Menu_Remove_From_List(%d)", answer);
+bool ScriptBase::Dialogue_Menu_Remove_From_List(int answer) {
+ debugC(kDebugScript, "Dialogue_Menu_Remove_From_List(%d)", answer);
+ return _vm->_dialogueMenu->removeFromList(answer);
}
int ScriptBase::Dialogue_Menu_Query_Input() {
- //TODO
+ debugC(kDebugScript, "Dialogue_Menu_Query_Input()");
return _vm->_dialogueMenu->queryInput();
}
int ScriptBase::Dialogue_Menu_Query_List_Size() {
+ debugC(8, kDebugScript, "Dialogue_Menu_Query_List_Size()");
return _vm->_dialogueMenu->listSize();
}
void ScriptBase::Scene_Exit_Add_2D_Exit(int index, int left, int top, int right, int down, int type) {
+ debugC(kDebugScript, "Scene_Exit_Add_2D_Exit(%d, %d, %d, %d, %d, %d)", index, left, top, right, down, type);
_vm->_scene->_exits->add(index, Common::Rect(left, top, right, down), type);
}
void ScriptBase::Scene_Exit_Remove(int index) {
+ debugC(kDebugScript, "Scene_Exit_Remove(%d)", index);
_vm->_scene->_exits->remove(index);
}
void ScriptBase::Scene_Exits_Disable() {
+ debugC(kDebugScript, "Scene_Exits_Disable()");
_vm->_scene->_exits->setEnabled(false);
}
void ScriptBase::Scene_Exits_Enable() {
+ debugC(kDebugScript, "Scene_Exits_Enable()");
_vm->_scene->_exits->setEnabled(true);
}
void ScriptBase::Scene_2D_Region_Add(int index, int left, int top, int right, int down) {
+ debugC(kDebugScript, "Scene_2D_Region_Add(%d, %d, %d, %d, %d)", index, left, top, right, down);
_vm->_scene->_regions->add(index, Common::Rect(left, top, right, down), 0);
}
void ScriptBase::Scene_2D_Region_Remove(int index) {
+ debugC(kDebugScript, "Scene_2D_Region_Remove(%d)", index);
_vm->_scene->_regions->remove(index);
}
void ScriptBase::World_Waypoint_Set(int waypointId, int setId, float x, float y, float z) {
+ debugC(kDebugScript, "World_Waypoint_Set(%d, %d, %f, %f, %f)", waypointId, setId, x, y, z);
_vm->_waypoints->set(waypointId, setId, Vector3(x, y, z));
}
// ScriptBase::World_Waypoint_Reset
float ScriptBase::World_Waypoint_Query_X(int waypointId) {
+ debugC(8, kDebugScript, "World_Waypoint_Query_X(%d)", waypointId);
return _vm->_waypoints->getX(waypointId);
}
float ScriptBase::World_Waypoint_Query_Y(int waypointId) {
+ debugC(8, kDebugScript, "World_Waypoint_Query_Y(%d)", waypointId);
return _vm->_waypoints->getY(waypointId);
}
float ScriptBase::World_Waypoint_Query_Z(int waypointId) {
+ debugC(8, kDebugScript, "World_Waypoint_Query_Z(%d)", waypointId);
return _vm->_waypoints->getZ(waypointId);
}
void ScriptBase::Combat_Cover_Waypoint_Set_Data(int coverWaypointId, int type, int setId, int sceneId, float x, float y, float z) {
+ debugC(kDebugScript, "Combat_Cover_Waypoint_Set_Data(%d, %d, %d, %d, %f, %f, %f)", coverWaypointId, type, setId, sceneId, x, y, z);
assert(coverWaypointId < (int)_vm->_combat->_coverWaypoints.size());
_vm->_combat->_coverWaypoints[coverWaypointId].type = type;
@@ -1094,6 +1250,7 @@ void ScriptBase::Combat_Cover_Waypoint_Set_Data(int coverWaypointId, int type, i
}
void ScriptBase::Combat_Flee_Waypoint_Set_Data(int fleeWaypointId, int type, int setId, int sceneId, float x, float y, float z, int a8) {
+ debugC(kDebugScript, "Combat_Flee_Waypoint_Set_Data(%d, %d, %d, %d, %f, %f, %f)", fleeWaypointId, type, setId, sceneId, x, y, z);
assert(fleeWaypointId < (int)_vm->_combat->_fleeWaypoints.size());
_vm->_combat->_fleeWaypoints[fleeWaypointId].type = type;
@@ -1106,47 +1263,58 @@ void ScriptBase::Combat_Flee_Waypoint_Set_Data(int fleeWaypointId, int type, int
}
void ScriptBase::Police_Maze_Target_Track_Add(int itemId, float startX, float startY, float startZ, float endX, float endY, float endZ, int steps, const int* instructions, bool isActive) {
+ debugC(kDebugScript, "Police_Maze_Target_Track_Add(%d, %f, %f, %f, %f, %f, %f, %d, ptr, %d)", itemId, startX, startY, startZ, endX, endY, endZ, steps, isActive);
_vm->_policeMaze->_tracks[itemId]->add(itemId, startX, startY, startZ, endX, endY, endZ, steps, instructions, isActive);
_vm->_policeMaze->activate();
}
int ScriptBase::Police_Maze_Query_Score() {
+ debugC(kDebugScript, "Police_Maze_Query_Score()");
return Global_Variable_Query(kVariablePoliceMazeScore);
}
void ScriptBase::Police_Maze_Zero_Score() {
+ debugC(kDebugScript, "Police_Maze_Zero_Score()");
Global_Variable_Reset(kVariablePoliceMazeScore);
}
void ScriptBase::Police_Maze_Increment_Score(int delta) {
+ debugC(kDebugScript, "Police_Maze_Increment_Score(%d)", delta);
Global_Variable_Set(kVariablePoliceMazeScore, Global_Variable_Query(kVariablePoliceMazeScore) + delta);
}
void ScriptBase::Police_Maze_Decrement_Score(int delta) {
+ debugC(kDebugScript, "Police_Maze_Decrement_Score(%d)", delta);
Global_Variable_Set(kVariablePoliceMazeScore, Global_Variable_Query(kVariablePoliceMazeScore) - delta);
}
void ScriptBase::Police_Maze_Set_Score(int value) {
+ debugC(kDebugScript, "Police_Maze_Set_Score(%d)", value);
Global_Variable_Set(kVariablePoliceMazeScore, value);
}
void ScriptBase::Police_Maze_Set_Pause_State(bool state) {
+ debugC(kDebugScript, "Police_Maze_Set_Pause_State(%d)", state);
_vm->_policeMaze->setPauseState(state);
}
void ScriptBase::CDB_Set_Crime(int clueId, int crimeId) {
+ debugC(kDebugScript, "CDB_Set_Crime(%d, %d)", clueId, crimeId);
_vm->_crimesDatabase->setCrime(clueId, crimeId);
}
void ScriptBase::CDB_Set_Clue_Asset_Type(int clueId, int assetType) {
+ debugC(kDebugScript, "CDB_Set_Clue_Asset_Type(%d, %d)", clueId, assetType);
_vm->_crimesDatabase->setAssetType(clueId, assetType);
}
void ScriptBase::SDB_Set_Actor(int suspectId, int actorId) {
+ debugC(kDebugScript, "SDB_Set_Actor(%d, %d)", suspectId, actorId);
_vm->_suspectsDatabase->get(suspectId)->setActor(actorId);
}
bool ScriptBase::SDB_Add_Photo_Clue(int suspectId, int clueId, int shapeId) {
+ debugC(kDebugScript, "SDB_Add_Photo_Clue(%d, %d, %d)", suspectId, clueId, shapeId);
return _vm->_suspectsDatabase->get(suspectId)->addPhotoClue(shapeId, clueId);
}
@@ -1155,44 +1323,54 @@ void ScriptBase::SDB_Set_Name(int actorId) {
}
void ScriptBase::SDB_Set_Sex(int suspectId, int sex) {
+ debugC(kDebugScript, "SDB_Set_Sex(%d, %d)", suspectId, sex);
_vm->_suspectsDatabase->get(suspectId)->setSex(sex);
}
bool ScriptBase::SDB_Add_Identity_Clue(int suspectId, int clueId) {
+ debugC(kDebugScript, "SDB_Add_Identity_Clue(%d, %d)", suspectId, clueId);
return _vm->_suspectsDatabase->get(suspectId)->addIdentityClue(clueId);
}
bool ScriptBase::SDB_Add_MO_Clue(int suspectId, int clueId) {
+ debugC(kDebugScript, "SDB_Add_MO_Clue(%d, %d)", suspectId, clueId);
return _vm->_suspectsDatabase->get(suspectId)->addMOClue(clueId);
}
bool ScriptBase::SDB_Add_Whereabouts_Clue(int suspectId, int clueId) {
+ debugC(kDebugScript, "SDB_Add_Whereabouts_Clue(%d, %d)", suspectId, clueId);
return _vm->_suspectsDatabase->get(suspectId)->addWhereaboutsClue(clueId);
}
bool ScriptBase::SDB_Add_Replicant_Clue(int suspectId, int clueId) {
+ debugC(kDebugScript, "SDB_Add_Replicant_Clue(%d, %d)", suspectId, clueId);
return _vm->_suspectsDatabase->get(suspectId)->addReplicantClue(clueId);
}
bool ScriptBase::SDB_Add_Non_Replicant_Clue(int suspectId, int clueId) {
+ debugC(kDebugScript, "SDB_Add_Non_Replicant_Clue(%d, %d)", suspectId, clueId);
return _vm->_suspectsDatabase->get(suspectId)->addNonReplicantClue(clueId);
}
bool ScriptBase::SDB_Add_Other_Clue(int suspectId, int clueId) {
+ debugC(kDebugScript, "SDB_Add_Other_Clue(%d, %d)", suspectId, clueId);
return _vm->_suspectsDatabase->get(suspectId)->addOtherClue(clueId);
}
void ScriptBase::Spinner_Set_Selectable_Destination_Flag(int destination, bool selectable) {
+ debugC(kDebugScript, "Spinner_Set_Selectable_Destination_Flag(%d, %d)", destination, selectable);
_vm->_spinner->setSelectableDestinationFlag(destination, selectable);
}
// ScriptBase::Spinner_Query_Selectable_Destination_Flag
int ScriptBase::Spinner_Interface_Choose_Dest(int loopId, bool immediately) {
+ debugC(kDebugScript, "Spinner_Interface_Choose_Dest(%d, %d)", loopId, immediately);
return _vm->_spinner->chooseDestination(loopId, immediately);
}
void ScriptBase::ESPER_Flag_To_Activate() {
+ debugC(kDebugScript, "ESPER_Flag_To_Activate()");
if (!_vm->_esper->isOpen()) {
_vm->_esper->open(&_vm->_surfaceBack);
while (_vm->_esper->isOpen() && _vm->_gameIsRunning) {
@@ -1202,6 +1380,7 @@ void ScriptBase::ESPER_Flag_To_Activate() {
}
void ScriptBase::Voight_Kampff_Activate(int actorId, int calibrationRatio){
+ debugC(kDebugScript, "Voight_Kampff_Activate(%d, %d)", actorId, calibrationRatio);
_vm->_vk->open(actorId, calibrationRatio);
while (_vm->_vk->isOpen() && _vm->_gameIsRunning) {
_vm->gameTick();
@@ -1209,46 +1388,56 @@ void ScriptBase::Voight_Kampff_Activate(int actorId, int calibrationRatio){
}
int ScriptBase::Elevator_Activate(int elevatorId) {
+ debugC(kDebugScript, "Elevator_Activate(%d)", elevatorId);
return _vm->_elevator->activate(elevatorId);
}
void ScriptBase::View_Score_Board() {
+ debugC(kDebugScript, "View_Score_Board()");
_vm->_scores->open();
}
int ScriptBase::Query_Score(int index) {
+ debugC(8, kDebugScript, "Query_score(%d)", index);
return _vm->_scores->query(index);
}
void ScriptBase::Set_Score(int index, int value) {
+ debugC(kDebugScript, "Set_Score(%d, %d)", index, value);
_vm->_scores->set(index, value);
}
void ScriptBase::Give_McCoy_Ammo(int ammoType, int ammo) {
+ debugC(kDebugScript, "Give_McCoy_Ammo(%d, %d)", ammoType, ammo);
_vm->_settings->addAmmo(ammoType, ammo);
}
void ScriptBase::Assign_Player_Gun_Hit_Sounds(int ammoType, int soundId1, int soundId2, int soundId3) {
+ debugC(kDebugScript, "Assign_Player_Gun_Hit_Sounds(%d, %d, %d, %d)", ammoType, soundId1, soundId2, soundId3);
_vm->_combat->setHitSound(ammoType, 0, soundId1);
_vm->_combat->setHitSound(ammoType, 1, soundId2);
_vm->_combat->setHitSound(ammoType, 2, soundId3);
}
void ScriptBase::Assign_Player_Gun_Miss_Sounds(int ammoType, int soundId1, int soundId2, int soundId3) {
+ debugC(kDebugScript, "Assign_Player_Gun_Miss_Sounds(%d, %d, %d, %d)", ammoType, soundId1, soundId2, soundId3);
_vm->_combat->setMissSound(ammoType, 0, soundId1);
_vm->_combat->setMissSound(ammoType, 1, soundId2);
_vm->_combat->setMissSound(ammoType, 2, soundId3);
}
void ScriptBase::Disable_Shadows(int animationsIdsList[], int listSize) {
+ debugC(kDebugScript, "Disable_Shadows(list, %d)", listSize);
_vm->_sliceRenderer->disableShadows(animationsIdsList, listSize);
}
bool ScriptBase::Query_System_Currently_Loading_Game() {
+ debugC(8, kDebugScript, "Query_System_Currently_Loading_Game()");
return _vm->_gameIsLoading;
}
void ScriptBase::Actor_Retired_Here(int actorId, int width, int height, int retired, int retiredByActorId) {
+ debugC(kDebugScript, "Actor_Retired_Here(%d, %d, %d, %d, %d)", actorId, width, height, retired, retiredByActorId);
Actor *actor = _vm->_actors[actorId];
actor->retire(retired, width, height, retiredByActorId);
actor->setAtXYZ(actor->getXYZ(), actor->getFacing(), true, false, true);
@@ -1256,6 +1445,7 @@ void ScriptBase::Actor_Retired_Here(int actorId, int width, int height, int reti
}
void ScriptBase::Clickable_Object(const char *objectName) {
+ debugC(kDebugScript, "Clickable_Object(%s)", objectName);
int objectId = _vm->_scene->findObject(objectName);
if (objectId == -1)
return;
@@ -1263,6 +1453,7 @@ void ScriptBase::Clickable_Object(const char *objectName) {
}
void ScriptBase::Unclickable_Object(const char *objectName) {
+ debugC(kDebugScript, "Unclickable_Object(%s)", objectName);
int objectId = _vm->_scene->findObject(objectName);
if (objectId == -1)
return;
@@ -1270,6 +1461,7 @@ void ScriptBase::Unclickable_Object(const char *objectName) {
}
void ScriptBase::Obstacle_Object(const char *objectName, bool updateWalkpath) {
+ debugC(kDebugScript, "Obstacle_Object(%s, %d)", objectName, updateWalkpath);
int objectId = _vm->_scene->findObject(objectName);
if (objectId == -1)
return;
@@ -1277,6 +1469,7 @@ void ScriptBase::Obstacle_Object(const char *objectName, bool updateWalkpath) {
}
void ScriptBase::Unobstacle_Object(const char *objectName, bool updateWalkpath) {
+ debugC(kDebugScript, "Unobstacle_Object(%s, %d)", objectName, updateWalkpath);
int objectId = _vm->_scene->findObject(objectName);
if (objectId == -1)
return;
@@ -1284,10 +1477,12 @@ void ScriptBase::Unobstacle_Object(const char *objectName, bool updateWalkpath)
}
void ScriptBase::Obstacle_Flag_All_Objects(bool isObstacle) {
+ debugC(kDebugScript, "Obstacle_Flag_All_Objects(%d)", isObstacle);
_vm->_scene->objectSetIsObstacleAll(isObstacle, !_vm->_sceneIsLoading);
}
void ScriptBase::Combat_Target_Object(const char *objectName) {
+ debugC(kDebugScript, "Combat_Target_Object(%s)", objectName);
int objectId = _vm->_scene->findObject(objectName);
if (objectId == -1)
return;
@@ -1295,6 +1490,7 @@ void ScriptBase::Combat_Target_Object(const char *objectName) {
}
void ScriptBase::Un_Combat_Target_Object(const char *objectName) {
+ debugC(kDebugScript, "Un_Combat_Target_Object(%s)", objectName);
int objectId = _vm->_scene->findObject(objectName);
if (objectId == -1)
return;
@@ -1302,89 +1498,111 @@ void ScriptBase::Un_Combat_Target_Object(const char *objectName) {
}
void ScriptBase::Set_Fade_Color(float r, float g, float b) {
+ debugC(kDebugScript, "Set_Fade_Color(%f, %f, %f)", r, g, b);
_vm->_scene->_set->_effects->setFadeColor(r, g, b);
}
void ScriptBase::Set_Fade_Density(float density) {
+ debugC(kDebugScript, "Set_Fade_Density(%f)", density);
_vm->_scene->_set->_effects->setFadeDensity(density);
}
void ScriptBase::Set_Fog_Color(const char *fogName, float r, float g, float b) {
+ debugC(kDebugScript, "Set_Fog_Color(%s, %f, %f, %f)", fogName, r, g, b);
_vm->_scene->_set->_effects->setFogColor(fogName, r, g, b);
}
void ScriptBase::Set_Fog_Density(const char *fogName, float density) {
+ debugC(kDebugScript, "Set_Fog_Density(%s, %f)", fogName, density);
_vm->_scene->_set->_effects->setFogDensity(fogName, density);
}
void ScriptBase::ADQ_Flush() {
+ debugC(kDebugScript, "ADQ_Flush()");
_vm->_actorDialogueQueue->flush(0, true);
}
void ScriptBase::ADQ_Add(int actorId, int sentenceId, int animationMode) {
+ debugC(kDebugScript, "ADQ_Add(%d, %d, %d)", actorId, sentenceId, animationMode);
_vm->_actorDialogueQueue->add(actorId, sentenceId, animationMode);
}
void ScriptBase::ADQ_Add_Pause(int delay) {
+ debugC(kDebugScript, "ADQ_Add_Pause(%d)", delay);
_vm->_actorDialogueQueue->addPause(delay);
}
bool ScriptBase::Game_Over() {
+ debugC(kDebugScript, "Game_Over()");
_vm->_gameIsRunning = false;
_vm->_gameOver = true;
return true;
}
void ScriptBase::Autosave_Game(int textId) {
+ debugC(kDebugScript, "Autosave_Game(%d)", textId);
_vm->_gameAutoSave = textId;
+ // TODO
+ warning("Autosave not yet implemented");
}
void ScriptBase::I_Sez(const char *str) {
+ debugC(kDebugScript, "I_Sez(%s)", str);
_vm->ISez(str);
}
void ScriptBase::AI_Countdown_Timer_Start(int actorId, signed int timer, int seconds) {
+ debugC(kDebugScript, "AI_Countdown_Timer_Start(%d, %d, %d)", actorId, timer, seconds);
if (timer >= 0 && timer <= 2) {
_vm->_actors[actorId]->timerStart(timer, 1000 * seconds);
}
}
void ScriptBase::AI_Countdown_Timer_Reset(int actorId, int timer) {
+ debugC(kDebugScript, "AI_Countdown_Timer_Reset(%d, %d)", actorId, timer);
if (timer >= 0 && timer <= 2) {
_vm->_actors[actorId]->timerReset(timer);
}
}
void ScriptBase::AI_Movement_Track_Unpause(int actorId) {
+ debugC(kDebugScript, "AI_Movement_Track_Unpause(%d)", actorId);
_vm->_actors[actorId]->movementTrackUnpause();
}
void ScriptBase::AI_Movement_Track_Pause(int actorId) {
+ debugC(kDebugScript, "AI_Movement_Track_Pause(%d)", actorId);
_vm->_actors[actorId]->movementTrackPause();
}
void ScriptBase::AI_Movement_Track_Repeat(int actorId) {
+ debugC(kDebugScript, "AI_Movement_Track_Repeat(%d)", actorId);
_vm->_actors[actorId]->_movementTrack->repeat();
_vm->_actors[actorId]->movementTrackNext(true);
}
void ScriptBase::AI_Movement_Track_Append_Run_With_Facing(int actorId, int waypointId, int delay, int angle) {
+ debugC(kDebugScript, "AI_Movement_Track_Append_Run_With_Facing(%d, %d, %d, %d)", actorId, waypointId, delay, angle);
_vm->_actors[actorId]->_movementTrack->append(waypointId, delay * 1000, angle, true);
}
void ScriptBase::AI_Movement_Track_Append_With_Facing(int actorId, int waypointId, int delay, int angle) {
+ debugC(kDebugScript, "AI_Movement_Track_Append_With_Facing(%d, %d, %d, %d)", actorId, waypointId, delay, angle);
_vm->_actors[actorId]->_movementTrack->append(waypointId, delay * 1000, angle, false);
}
void ScriptBase::AI_Movement_Track_Append_Run(int actorId, int waypointId, int delay) {
+ debugC(kDebugScript, "AI_Movement_Track_Append_Run(%d, %d, %d)", actorId, waypointId, delay);
_vm->_actors[actorId]->_movementTrack->append(waypointId, delay * 1000, true);
}
void ScriptBase::AI_Movement_Track_Append(int actorId, int waypointId, int delay) {
+ debugC(kDebugScript, "AI_Movement_Track_Append(%d, %d, %d)", actorId, waypointId, delay);
_vm->_actors[actorId]->_movementTrack->append(waypointId, delay * 1000, false);
}
void ScriptBase::AI_Movement_Track_Flush(int actorId) {
+ debugC(kDebugScript, "AI_Movement_Track_Flush(%d)", actorId);
_vm->_actors[actorId]->_movementTrack->flush();
_vm->_actors[actorId]->stopWalking(false);
}
diff --git a/engines/bladerunner/script/script.h b/engines/bladerunner/script/script.h
index 09c372d..f5ce3d6 100644
--- a/engines/bladerunner/script/script.h
+++ b/engines/bladerunner/script/script.h
@@ -192,8 +192,8 @@ protected:
bool Dialogue_Menu_Add_DONE_To_List(int answer);
bool Dialogue_Menu_Add_To_List_Never_Repeat_Once_Selected(int answer);
bool DM_Add_To_List(int answer, int priorityPolite, int priorityNormal, int prioritySurly);
- bool DM_Add_To_List_Never_Repeat_Once_Selected(int answer, int priorityPolite, int priorityNormal, int prioritySurly4);
- void Dialogue_Menu_Remove_From_List(int answer);
+ bool DM_Add_To_List_Never_Repeat_Once_Selected(int answer, int priorityPolite, int priorityNormal, int prioritySurly);
+ bool Dialogue_Menu_Remove_From_List(int answer);
int Dialogue_Menu_Query_Input();
int Dialogue_Menu_Query_List_Size();
void Scene_Exit_Add_2D_Exit(int index, int left, int top, int right, int down, int type);
More information about the Scummvm-git-logs
mailing list