aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene
diff options
context:
space:
mode:
authorPeter Kohaut2019-01-25 21:51:44 +0100
committerPeter Kohaut2019-01-25 23:16:24 +0100
commit474e4e2f0914a106e02dac2779d58f990e119bf9 (patch)
tree82eb370f7ff7343449089f0b3d8812fbccfea0cd /engines/bladerunner/script/scene
parenta1f608cebb41beba2df85ca4dfc87da27d794651 (diff)
downloadscummvm-rg350-474e4e2f0914a106e02dac2779d58f990e119bf9.tar.gz
scummvm-rg350-474e4e2f0914a106e02dac2779d58f990e119bf9.tar.bz2
scummvm-rg350-474e4e2f0914a106e02dac2779d58f990e119bf9.zip
BLADERUNNER: Cleanup of BBxx scripts
Removed issue where McCoy went to jail for no reason at start of 3rd act
Diffstat (limited to 'engines/bladerunner/script/scene')
-rw-r--r--engines/bladerunner/script/scene/bb01.cpp6
-rw-r--r--engines/bladerunner/script/scene/bb02.cpp5
-rw-r--r--engines/bladerunner/script/scene/bb03.cpp2
-rw-r--r--engines/bladerunner/script/scene/bb04.cpp4
-rw-r--r--engines/bladerunner/script/scene/bb05.cpp8
-rw-r--r--engines/bladerunner/script/scene/bb06.cpp17
-rw-r--r--engines/bladerunner/script/scene/bb07.cpp52
-rw-r--r--engines/bladerunner/script/scene/bb08.cpp50
-rw-r--r--engines/bladerunner/script/scene/bb09.cpp50
-rw-r--r--engines/bladerunner/script/scene/bb10.cpp112
-rw-r--r--engines/bladerunner/script/scene/bb11.cpp24
-rw-r--r--engines/bladerunner/script/scene/bb12.cpp62
-rw-r--r--engines/bladerunner/script/scene/bb51.cpp27
-rw-r--r--engines/bladerunner/script/scene/ct08.cpp91
-rw-r--r--engines/bladerunner/script/scene/ct10.cpp2
-rw-r--r--engines/bladerunner/script/scene/ct51.cpp47
16 files changed, 311 insertions, 248 deletions
diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp
index 47734a4d23..f78cd72898 100644
--- a/engines/bladerunner/script/scene/bb01.cpp
+++ b/engines/bladerunner/script/scene/bb01.cpp
@@ -26,11 +26,11 @@ namespace BladeRunner {
void SceneScriptBB01::InitializeScene() {
if (Game_Flag_Query(kFlagDR02toBB01)) {
- Setup_Scene_Information(-253.0f, 9.0f, 715.0f, 266);
+ Setup_Scene_Information(-253.0f, 9.0f, 715.0f, 266);
} else if (Game_Flag_Query(kFlagBB02toBB01)) {
- Setup_Scene_Information(-128.0f, 9.0f, 342.0f, 266);
+ Setup_Scene_Information(-128.0f, 9.0f, 342.0f, 266);
} else {
- Setup_Scene_Information(43.0f, 0.0f, 1058.0f, 0);
+ Setup_Scene_Information( 43.0f, 0.0f, 1058.0f, 0);
}
Scene_Exit_Add_2D_Exit(0, 0, 0, 72, 299, 3);
diff --git a/engines/bladerunner/script/scene/bb02.cpp b/engines/bladerunner/script/scene/bb02.cpp
index 8ebecee27f..f07a37aab8 100644
--- a/engines/bladerunner/script/scene/bb02.cpp
+++ b/engines/bladerunner/script/scene/bb02.cpp
@@ -141,6 +141,7 @@ void SceneScriptBB02::SceneFrameAdvanced(int frame) {
if (frame == 1) {
Ambient_Sounds_Play_Sound(434, 40, -50, -50, 0);
}
+
if (frame == 124) {
Ambient_Sounds_Play_Sound(434, 40, -50, -50, 0);
}
@@ -151,10 +152,10 @@ void SceneScriptBB02::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptBB02::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB03toBB02)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 86.0f, -415.06f, 174.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagBB03toBB02);
} else if (Game_Flag_Query(kFlagBB04toBB02)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 35.0f, -415.06f, -27.0f, 0, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 35.0f, -415.06f, -27.0f, 0, false, false, 0);
Player_Gains_Control();
Game_Flag_Reset(kFlagBB04toBB02);
}
diff --git a/engines/bladerunner/script/scene/bb03.cpp b/engines/bladerunner/script/scene/bb03.cpp
index b21fcd387c..de7c368d11 100644
--- a/engines/bladerunner/script/scene/bb03.cpp
+++ b/engines/bladerunner/script/scene/bb03.cpp
@@ -28,7 +28,7 @@ void SceneScriptBB03::InitializeScene() {
Setup_Scene_Information(20.0f, 60.16f, 0.0f, 0);
Game_Flag_Reset(kFlagBB02toBB03);
if (Game_Flag_Query(kFlagBB04toBB03)) {
- Setup_Scene_Information(176.0f, 60.16f, 0.0f, 900);
+ Setup_Scene_Information(176.0f, 60.16f, 0.0f, 900);
}
if (Game_Flag_Query(kFlagBB05toBB03)) {
Setup_Scene_Information(204.0f, 60.16f, -164.0f, 740);
diff --git a/engines/bladerunner/script/scene/bb04.cpp b/engines/bladerunner/script/scene/bb04.cpp
index ab935ad55c..6ac7a7e5bf 100644
--- a/engines/bladerunner/script/scene/bb04.cpp
+++ b/engines/bladerunner/script/scene/bb04.cpp
@@ -26,10 +26,10 @@ namespace BladeRunner {
void SceneScriptBB04::InitializeScene() {
if (Game_Flag_Query(kFlagBB03toBB04)) {
- Setup_Scene_Information(-107.0f, -26.6f, 397.0f, 29);
+ Setup_Scene_Information(-107.0f, -26.6f, 397.0f, 29);
Game_Flag_Reset(kFlagBB03toBB04);
} else {
- Setup_Scene_Information(-15.0f, -25.17f, 45.0f, 691);
+ Setup_Scene_Information( -15.0f, -25.17f, 45.0f, 691);
}
Scene_Exit_Add_2D_Exit(0, 218, 102, 360, 254, 1);
diff --git a/engines/bladerunner/script/scene/bb05.cpp b/engines/bladerunner/script/scene/bb05.cpp
index cf788291a2..ef3e5ba6ac 100644
--- a/engines/bladerunner/script/scene/bb05.cpp
+++ b/engines/bladerunner/script/scene/bb05.cpp
@@ -60,9 +60,9 @@ void SceneScriptBB05::InitializeScene() {
Ambient_Sounds_Add_Sound( 73, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound( 74, 5, 80, 14, 14, -100, 100, -101, -101, 0, 0);
- if (!Game_Flag_Query(495)) {
- Overlay_Play("BB05OVER", 0, false, false, 0);
- Game_Flag_Set(495);
+ if (!Game_Flag_Query(kFlagBB05Entered)) {
+ Overlay_Play("BB05OVER", 0, false, false, 0); // Sadik's shadow in lower left corner
+ Game_Flag_Set(kFlagBB05Entered);
}
}
@@ -180,7 +180,7 @@ void SceneScriptBB05::PlayerWalkedIn() {
Actor_Says(kActorMcCoy, 7040, 14);
Actor_Says(kActorSebastian, 180, 16);
Actor_Says(kActorMcCoy, 7045, 14);
- if (Game_Flag_Query(399)) {
+ if (Game_Flag_Query(kFlagGeneralDollShot)) {
Actor_Says(kActorSebastian, 190, 15);
Actor_Says(kActorMcCoy, 7050, 17);
Actor_Says(kActorSebastian, 200, 16);
diff --git a/engines/bladerunner/script/scene/bb06.cpp b/engines/bladerunner/script/scene/bb06.cpp
index 51fc0db2c0..8dca747684 100644
--- a/engines/bladerunner/script/scene/bb06.cpp
+++ b/engines/bladerunner/script/scene/bb06.cpp
@@ -33,7 +33,7 @@ void SceneScriptBB06::InitializeScene() {
Setup_Scene_Information(-115.0f, 0.0f, -103.0f, 375);
Game_Flag_Reset(kFlagBB07toBB06);
} else {
- Setup_Scene_Information(-37.0f, 0.0f, 178.0f, 0);
+ Setup_Scene_Information( -37.0f, 0.0f, 178.0f, 0);
}
Scene_Exit_Add_2D_Exit(0, 0, 43, 14, 478, 3);
@@ -64,15 +64,16 @@ void SceneScriptBB06::InitializeScene() {
} else {
Scene_Loop_Set_Default(1);
}
- if (Game_Flag_Query(410)) {
- Overlay_Play("BB06OVER", 1, true, false, 0);
+
+ if (Game_Flag_Query(kFlagBB06AndroidDestroyed)) {
+ Overlay_Play("BB06OVER", 1, true, false, 0); // TODO: check, it's is playing while the background is still panning so it looks pretty weird
}
}
void SceneScriptBB06::SceneLoaded() {
Obstacle_Object("V2CHESSTBL01", true);
Clickable_Object("BOX31");
- Item_Add_To_World(77, 931, kSetBB02_BB04_BB06_BB51, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true);
+ Item_Add_To_World(kItemBB06ControlBox, 931, kSetBB02_BB04_BB06_BB51, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true);
}
bool SceneScriptBB06::MouseClick(int x, int y) {
@@ -83,7 +84,7 @@ bool SceneScriptBB06::ClickedOn3DObject(const char *objectName, bool a2) {
if (Object_Query_Click("BOX31", objectName)) {
if (!Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "BOX31", 24, true, false)) {
Actor_Face_Object(kActorMcCoy, "BOX31", true);
- if (Game_Flag_Query(410)) {
+ if (Game_Flag_Query(kFlagBB06AndroidDestroyed)) {
Actor_Voice_Over(60, kActorVoiceOver);
Actor_Voice_Over(70, kActorVoiceOver);
} else {
@@ -99,11 +100,11 @@ bool SceneScriptBB06::ClickedOnActor(int actorId) {
}
bool SceneScriptBB06::ClickedOnItem(int itemId, bool a2) {
- if (itemId == 77) {
+ if (itemId == kItemBB06ControlBox) {
if (Player_Query_Combat_Mode()) {
Overlay_Play("BB06OVER", 1, true, true, 0);
- Game_Flag_Set(410);
- Item_Remove_From_World(77);
+ Game_Flag_Set(kFlagBB06AndroidDestroyed);
+ Item_Remove_From_World(kItemBB06ControlBox);
return true;
}
}
diff --git a/engines/bladerunner/script/scene/bb07.cpp b/engines/bladerunner/script/scene/bb07.cpp
index 37bf9b5be6..060ae28dd4 100644
--- a/engines/bladerunner/script/scene/bb07.cpp
+++ b/engines/bladerunner/script/scene/bb07.cpp
@@ -28,7 +28,7 @@ void SceneScriptBB07::InitializeScene() {
if (Game_Flag_Query(kFlagBB12toBB07)) {
Setup_Scene_Information(-655.0f, 252.59f, -1136.0f, 323);
} else if (Game_Flag_Query(kFlagBB06toBB07)) {
- Setup_Scene_Information(-551.0f, 252.59f, -1004.0f, 29);
+ Setup_Scene_Information(-551.0f, 252.59f, -1004.0f, 29);
Game_Flag_Reset(kFlagBB06toBB07);
} else {
Setup_Scene_Information(-652.0f, 252.59f, -1018.0f, 268);
@@ -37,6 +37,7 @@ void SceneScriptBB07::InitializeScene() {
Scene_Exit_Add_2D_Exit(0, 0, 16, 51, 426, 3);
Scene_Exit_Add_2D_Exit(1, 124, 101, 172, 305, 3);
Scene_Exit_Add_2D_Exit(2, 282, 408, 476, 479, 2);
+
Scene_2D_Region_Add(0, 308, 283, 354, 308);
Ambient_Sounds_Add_Looping_Sound(332, 44, 0, 1);
@@ -69,15 +70,19 @@ bool SceneScriptBB07::MouseClick(int x, int y) {
bool SceneScriptBB07::ClickedOn3DObject(const char *objectName, bool a2) {
if (Object_Query_Click("PRINTER", objectName)) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -472.63f, 252.59f, -1086.81f, 0, 0, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -472.63f, 252.59f, -1086.81f, 0, false, false, 0)) {
Actor_Face_Object(kActorMcCoy, "PRINTER", true);
- if (Game_Flag_Query(396) && !Game_Flag_Query(398)) {
+ if ( Game_Flag_Query(kFlagBB07ElectricityOn)
+ && !Game_Flag_Query(kFlagBB07PrinterChecked)
+ ) {
Actor_Voice_Over(130, kActorVoiceOver);
Item_Pickup_Spin_Effect(941, 439, 242);
Actor_Voice_Over(140, kActorVoiceOver);
- Game_Flag_Set(398);
+ Game_Flag_Set(kFlagBB07PrinterChecked);
Actor_Clue_Acquire(kActorMcCoy, kClueDNASebastian, true, -1);
- } else if (Game_Flag_Query(396) && Game_Flag_Query(398)) {
+ } else if (Game_Flag_Query(kFlagBB07ElectricityOn)
+ && Game_Flag_Query(kFlagBB07PrinterChecked)
+ ) {
Actor_Face_Object(kActorMcCoy, "PRINTER", true);
Actor_Says(kActorMcCoy, 8570, 13);
} else {
@@ -94,10 +99,10 @@ bool SceneScriptBB07::ClickedOnActor(int actorId) {
}
bool SceneScriptBB07::ClickedOnItem(int itemId, bool a2) {
- if (itemId == 83) {
- if (!Loop_Actor_Walk_To_Item(kActorMcCoy, 83, 36, 1, false)) {
+ if (itemId == 83) { // this item is never added to this set/scene
+ if (!Loop_Actor_Walk_To_Item(kActorMcCoy, 83, 36, true, false)) {
Actor_Face_Item(kActorMcCoy, 83, true);
- if (Game_Flag_Query(396) == 1) {
+ if (Game_Flag_Query(kFlagBB07ElectricityOn)) {
Actor_Voice_Over(150, kActorVoiceOver);
Actor_Voice_Over(160, kActorVoiceOver);
Actor_Voice_Over(170, kActorVoiceOver);
@@ -109,7 +114,7 @@ bool SceneScriptBB07::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB07::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -615.0f, 252.59f, -1018.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -615.0f, 252.59f, -1018.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Overlay_Remove("BB07OVER");
@@ -118,8 +123,9 @@ bool SceneScriptBB07::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -619.0f, 252.59f, -1136.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -619.0f, 252.59f, -1136.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Overlay_Remove("BB07OVER");
@@ -128,8 +134,9 @@ bool SceneScriptBB07::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 2) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -551.0f, 252.59f, -1004.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -551.0f, 252.59f, -1004.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Overlay_Remove("BB07OVER");
@@ -143,18 +150,18 @@ bool SceneScriptBB07::ClickedOnExit(int exitId) {
bool SceneScriptBB07::ClickedOn2DRegion(int region) {
if (region == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -568.63f, 252.59f, -1114.81f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -568.63f, 252.59f, -1114.81f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 229, false);
- if (Game_Flag_Query(396)) {
- Actor_Says(kActorMcCoy, 8585, 15);
- } else {
+ if (!Game_Flag_Query(kFlagBB07ElectricityOn)) {
Ambient_Sounds_Play_Sound(592, 40, 20, 20, 99);
- Overlay_Play("BB07OVER", 1, 0, 1, 0);
- Overlay_Play("BB07OVER", 2, 1, 0, 0);
- Game_Flag_Set(396);
- if (!Game_Flag_Query(398)) {
- Actor_Says(kActorAnsweringMachine, 0, 3);
+ Overlay_Play("BB07OVER", 1, false, true, 0);
+ Overlay_Play("BB07OVER", 2, true, false, 0);
+ Game_Flag_Set(kFlagBB07ElectricityOn);
+ if (!Game_Flag_Query(kFlagBB07PrinterChecked)) {
+ Actor_Says(kActorAnsweringMachine, 0, kAnimationModeTalk);
}
+ } else {
+ Actor_Says(kActorMcCoy, 8585, 15);
}
}
}
@@ -169,11 +176,12 @@ void SceneScriptBB07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptBB07::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB05toBB07)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -594.0f, 252.59f, -1018.0f, 6, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -594.0f, 252.59f, -1018.0f, 6, false, false, 0);
Game_Flag_Reset(kFlagBB05toBB07);
}
+
if (Game_Flag_Query(kFlagBB12toBB07)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -602.0f, 252.59f, -1124.0f, 6, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -602.0f, 252.59f, -1124.0f, 6, false, false, 0);
Game_Flag_Reset(kFlagBB12toBB07);
}
}
diff --git a/engines/bladerunner/script/scene/bb08.cpp b/engines/bladerunner/script/scene/bb08.cpp
index 7dc951e5b0..7c856dba4f 100644
--- a/engines/bladerunner/script/scene/bb08.cpp
+++ b/engines/bladerunner/script/scene/bb08.cpp
@@ -30,29 +30,32 @@ void SceneScriptBB08::InitializeScene() {
} else {
Setup_Scene_Information(247.0f, 0.0f, 27.0f, 790);
}
- Scene_Exit_Add_2D_Exit(0, 307, 0, 361, 238, 0);
+
+ Scene_Exit_Add_2D_Exit(0, 307, 0, 361, 238, 0);
Scene_Exit_Add_2D_Exit(1, 117, 38, 214, 245, 0);
+
Ambient_Sounds_Add_Looping_Sound(105, 44, 0, 1);
- Ambient_Sounds_Add_Sound(291, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
- Ambient_Sounds_Add_Sound(292, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
- Ambient_Sounds_Add_Sound(293, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
- Ambient_Sounds_Add_Sound(294, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
- Ambient_Sounds_Add_Sound(295, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
+ Ambient_Sounds_Add_Sound(291, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
+ Ambient_Sounds_Add_Sound(292, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
+ Ambient_Sounds_Add_Sound(293, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
+ Ambient_Sounds_Add_Sound(294, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
+ Ambient_Sounds_Add_Sound(295, 1, 20, 20, 25, -100, 100, -100, 100, 0, 0);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- if (!Game_Flag_Query(496)) {
- Overlay_Play("BB08OVER", 0, 0, 0, 0);
- Game_Flag_Set(496);
+ Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+
+ if (!Game_Flag_Query(kFlagBB08Entered)) {
+ Overlay_Play("BB08OVER", 0, false, false, 0); // Sadik's shadow going up
+ Game_Flag_Set(kFlagBB08Entered);
}
}
@@ -80,10 +83,10 @@ bool SceneScriptBB08::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB08::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 204.0f, 0.1f, 94.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 204.0f, 0.1f, 94.0f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 256, false);
Footstep_Sound_Override_On(2);
- Loop_Actor_Travel_Ladder(kActorMcCoy, 8, 1, 0);
+ Loop_Actor_Travel_Ladder(kActorMcCoy, 8, true, 0);
Footstep_Sound_Override_Off();
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -92,11 +95,12 @@ bool SceneScriptBB08::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 247.0f, 0.1f, 27.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 247.0f, 0.1f, 27.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(506);
+ Game_Flag_Set(kFlagBB08toBB12);
Set_Enter(kSetBB12, kSceneBB12);
}
return true;
@@ -118,12 +122,12 @@ void SceneScriptBB08::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB09toBB08)) {
Actor_Set_At_XYZ(kActorMcCoy, 204.0f, 96.1f, 94.0f, 256);
Footstep_Sound_Override_On(2);
- Loop_Actor_Travel_Ladder(kActorMcCoy, 8, 0, 0);
+ Loop_Actor_Travel_Ladder(kActorMcCoy, 8, false, 0);
Footstep_Sound_Override_Off();
Actor_Face_Heading(kActorMcCoy, 768, false);
Game_Flag_Reset(kFlagBB09toBB08);
} else {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 188.0f, 0.1f, 28.0f, 0, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 188.0f, 0.1f, 28.0f, 0, false, false, 0);
}
}
diff --git a/engines/bladerunner/script/scene/bb09.cpp b/engines/bladerunner/script/scene/bb09.cpp
index 15d491976d..ffe0fd08f6 100644
--- a/engines/bladerunner/script/scene/bb09.cpp
+++ b/engines/bladerunner/script/scene/bb09.cpp
@@ -33,27 +33,30 @@ void SceneScriptBB09::InitializeScene() {
Game_Flag_Reset(kFlagBB08toBB09);
Setup_Scene_Information(107.45f, -9.14f, 166.0f, 244);
}
+
Scene_Exit_Add_2D_Exit(0, 224, 213, 286, 353, 1);
- Scene_Exit_Add_2D_Exit(1, 75, 450, 480, 479, 2);
- Ambient_Sounds_Add_Looping_Sound(54, 20, 100, 1);
- Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
- Ambient_Sounds_Add_Looping_Sound(105, 50, 55, 1);
- Ambient_Sounds_Add_Sound(297, 5, 20, 20, 25, -100, -100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(298, 5, 20, 20, 25, -100, -100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(299, 5, 20, 20, 25, -100, -100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Actor_Set_Targetable(kActorSadik, true);
+ Scene_Exit_Add_2D_Exit(1, 75, 450, 480, 479, 2);
+
+ Ambient_Sounds_Add_Looping_Sound(54, 20, 100, 1);
+ Ambient_Sounds_Add_Looping_Sound(103, 40, 0, 1);
+ Ambient_Sounds_Add_Looping_Sound(105, 50, 55, 1);
+ Ambient_Sounds_Add_Sound(297, 5, 20, 20, 25, -100, -100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(298, 5, 20, 20, 25, -100, -100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(299, 5, 20, 20, 25, -100, -100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+
+ Actor_Set_Targetable(kActorSadik, true); // Don't kill Sadik yet, game cannot continue, a bug?
}
void SceneScriptBB09::SceneLoaded() {
@@ -80,8 +83,8 @@ bool SceneScriptBB09::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB09::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 454.56f, -9.0f, 190.31f, 0, 1, false, 0)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 450.56f, -9.0f, 250.31f, 0, 0, false, 0);
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 454.56f, -9.0f, 190.31f, 0, true, false, 0)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 450.56f, -9.0f, 250.31f, 0, false, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB09toBB10a);
@@ -90,8 +93,9 @@ bool SceneScriptBB09::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 71.0f, -9.0f, 136.0f, 72, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 71.0f, -9.0f, 136.0f, 72, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB09toBB08);
diff --git a/engines/bladerunner/script/scene/bb10.cpp b/engines/bladerunner/script/scene/bb10.cpp
index 6ae671ceba..7e7fd78567 100644
--- a/engines/bladerunner/script/scene/bb10.cpp
+++ b/engines/bladerunner/script/scene/bb10.cpp
@@ -26,50 +26,54 @@ namespace BladeRunner {
void SceneScriptBB10::InitializeScene() {
if (Game_Flag_Query(kFlagBB11toBB10)) {
- Setup_Scene_Information(255.29f, 90.24f, -103.0f, 830);
+ Setup_Scene_Information(255.29f, 90.24f, -103.0f, 830);
} else if (Game_Flag_Query(kFlagBB09toBB10b)) {
Game_Flag_Reset(kFlagBB09toBB10b);
- Setup_Scene_Information(151.67f, 66.84f, -313.06f, 0);
+ Setup_Scene_Information(151.67f, 66.84f, -313.06f, 0);
} else {
- Setup_Scene_Information(199.67f, 67.4f, -169.06f, 628);
+ Setup_Scene_Information(199.67f, 67.4f, -169.06f, 628);
}
- if (Global_Variable_Query(36) > 2) {
+
+ if (Global_Variable_Query(kVariableBB10ShelvesAvailable) > 2) {
Scene_Exit_Add_2D_Exit(0, 281, 0, 531, 115, 0);
}
+
Scene_Exit_Add_2D_Exit(1, 58, 91, 193, 401, 3);
+
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Add_Looping_Sound(382, 76, 0, 1);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- if (!Game_Flag_Query(466)) {
+ Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+
+ if (!Game_Flag_Query(kFlagBB10Shelf1Available)) {
Scene_2D_Region_Add(0, 458, 99, 522, 133);
- Overlay_Play("BB10OVR1", 0, 1, 0, 0);
+ Overlay_Play("BB10OVR1", 0, true, false, 0);
}
- if (!Game_Flag_Query(467)) {
+ if (!Game_Flag_Query(kFlagBB10Shelf2Available)) {
Scene_2D_Region_Add(1, 459, 164, 522, 193);
- Overlay_Play("BB10OVR2", 0, 1, 0, 0);
+ Overlay_Play("BB10OVR2", 0, true, false, 0);
}
- if (!Game_Flag_Query(468)) {
+ if (!Game_Flag_Query(kFlagBB10Shelf3Available)) {
Scene_2D_Region_Add(2, 458, 194, 522, 223);
- Overlay_Play("BB10OVR3", 0, 1, 0, 0);
+ Overlay_Play("BB10OVR3", 0, true, false, 0);
}
- if (!Game_Flag_Query(469)) {
+ if (!Game_Flag_Query(kFlagBB10Shelf4Available)) {
Scene_2D_Region_Add(3, 458, 255, 522, 278);
- Overlay_Play("BB10OVR4", 0, 1, 0, 0);
+ Overlay_Play("BB10OVR4", 0, true, false, 0);
}
- if (!Game_Flag_Query(470)) {
+ if (!Game_Flag_Query(kFlagBB10Shelf5Available)) {
Scene_2D_Region_Add(4, 458, 316, 522, 335);
- Overlay_Play("BB10OVR5", 0, 1, 0, 0);
+ Overlay_Play("BB10OVR5", 0, true, false, 0);
}
}
@@ -99,14 +103,14 @@ bool SceneScriptBB10::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB10::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 225.58f, 67.2f, -102.1f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 225.58f, 67.2f, -102.1f, 0, true, false, 0)) {
Player_Set_Combat_Mode(false);
Actor_Face_Heading(kActorMcCoy, 274, false);
Footstep_Sound_Override_On(2);
- Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 1, kAnimationModeIdle);
+ Loop_Actor_Travel_Stairs(kActorMcCoy, 2, true, kAnimationModeIdle);
Footstep_Sound_Override_Off();
Footstep_Sound_Override_On(2);
- Loop_Actor_Travel_Ladder(kActorMcCoy, 3, 1, 0);
+ Loop_Actor_Travel_Ladder(kActorMcCoy, 3, true, kAnimationModeIdle);
Footstep_Sound_Override_Off();
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -115,8 +119,11 @@ bool SceneScriptBB10::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 206.01f, 66.84f, -261.62f, 0, 1, false, 0) && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 151.67f, 66.84f, -313.06f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 206.01f, 66.84f, -261.62f, 0, true, false, 0)
+ && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 151.67f, 66.84f, -313.06f, 0, true, false, 0)
+ ) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Reset(kFlagBB09toBB10a);
@@ -129,40 +136,43 @@ bool SceneScriptBB10::ClickedOnExit(int exitId) {
}
bool SceneScriptBB10::ClickedOn2DRegion(int region) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 225.58f, 67.2f, -102.1f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 225.58f, 67.2f, -102.1f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 274, false);
Sound_Play(Random_Query(289, 290), 40, 70, 70, 50);
switch (region) {
- case 4:
- Overlay_Remove("BB10OVR5");
- Game_Flag_Set(470);
- Scene_2D_Region_Remove(4);
+ case 0:
+ Overlay_Remove("BB10OVR1");
+ Game_Flag_Set(kFlagBB10Shelf1Available);
+ Scene_2D_Region_Remove(0);
break;
- case 3:
- Overlay_Remove("BB10OVR4");
- Game_Flag_Set(469);
- Scene_2D_Region_Remove(3);
+
+ case 1:
+ Overlay_Remove("BB10OVR2");
+ Game_Flag_Set(kFlagBB10Shelf2Available);
+ Scene_2D_Region_Remove(1);
break;
+
case 2:
Overlay_Remove("BB10OVR3");
- Game_Flag_Set(468);
+ Game_Flag_Set(kFlagBB10Shelf3Available);
Scene_2D_Region_Remove(2);
break;
- case 1:
- Overlay_Remove("BB10OVR2");
- Game_Flag_Set(467);
- Scene_2D_Region_Remove(1);
- break;
- case 0:
- Overlay_Remove("BB10OVR1");
- Game_Flag_Set(466);
- Scene_2D_Region_Remove(0);
+
+ case 3:
+ Overlay_Remove("BB10OVR4");
+ Game_Flag_Set(kFlagBB10Shelf4Available);
+ Scene_2D_Region_Remove(3);
break;
- default:
+
+ case 4:
+ Overlay_Remove("BB10OVR5");
+ Game_Flag_Set(kFlagBB10Shelf5Available);
+ Scene_2D_Region_Remove(4);
break;
}
- Global_Variable_Increment(36, 1);
- if (Global_Variable_Query(36) > 4) {
+
+ Global_Variable_Increment(kVariableBB10ShelvesAvailable, 1);
+ if (Global_Variable_Query(kVariableBB10ShelvesAvailable) > 4) {
Scene_Exit_Add_2D_Exit(0, 281, 0, 531, 115, 0);
}
return false;
@@ -180,17 +190,17 @@ void SceneScriptBB10::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB09toBB10a)) {
Player_Loses_Control();
Actor_Set_At_XYZ(kActorMcCoy, 214.01f, 66.84f, -349.62f, 462);
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 206.01f, 66.84f, -261.62f, 0, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 206.01f, 66.84f, -261.62f, 0, false, false, 0);
Player_Gains_Control();
Game_Flag_Reset(kFlagBB09toBB10a);
} else if (Game_Flag_Query(kFlagBB11toBB10)) {
Actor_Set_At_XYZ(kActorMcCoy, 249.58f, 127.2f, -102.1f, 256);
Footstep_Sound_Override_On(2);
- Loop_Actor_Travel_Ladder(kActorMcCoy, 3, 0, 0);
+ Loop_Actor_Travel_Ladder(kActorMcCoy, 3, false, kAnimationModeIdle);
Footstep_Sound_Override_Off();
Actor_Face_Heading(kActorMcCoy, 768, false);
Footstep_Sound_Override_On(2);
- Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, kAnimationModeIdle);
+ Loop_Actor_Travel_Stairs(kActorMcCoy, 3, false, kAnimationModeIdle);
Footstep_Sound_Override_Off();
Game_Flag_Reset(kFlagBB11toBB10);
}
diff --git a/engines/bladerunner/script/scene/bb11.cpp b/engines/bladerunner/script/scene/bb11.cpp
index 8cb70b7af5..75e0c6045b 100644
--- a/engines/bladerunner/script/scene/bb11.cpp
+++ b/engines/bladerunner/script/scene/bb11.cpp
@@ -26,18 +26,20 @@ namespace BladeRunner {
void SceneScriptBB11::InitializeScene() {
Setup_Scene_Information(43.39f, -10.27f, -20.52f, 200);
- if (!Game_Flag_Query(509)) {
+ if (!Game_Flag_Query(kFlagBB11SadikFight)) {
Scene_Exit_Add_2D_Exit(0, 280, 154, 388, 247, 2);
}
+
Ambient_Sounds_Add_Looping_Sound(101, 90, 0, 1);
- Ambient_Sounds_Add_Looping_Sound(99, 45, 0, 1);
+ Ambient_Sounds_Add_Looping_Sound( 99, 45, 0, 1);
Ambient_Sounds_Add_Looping_Sound(100, 76, 0, 1);
- Ambient_Sounds_Add_Sound(68, 5, 180, 16, 25, 0, 0, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(69, 5, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound( 68, 5, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound( 69, 5, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
- if (Game_Flag_Query(509)) {
+
+ if (Game_Flag_Query(kFlagBB11SadikFight)) {
Preload(19);
Preload(220);
Preload(227);
@@ -56,7 +58,7 @@ void SceneScriptBB11::InitializeScene() {
void SceneScriptBB11::SceneLoaded() {
Obstacle_Object("X2AIRCON01", true);
Unclickable_Object("X2AIRCON01");
- if (Game_Flag_Query(509)) {
+ if (Game_Flag_Query(kFlagBB11SadikFight)) {
Unobstacle_Object("X2PIPES01", true);
Unobstacle_Object("X2PIPES02", true);
Unobstacle_Object("X2PIPES03", true);
@@ -99,8 +101,10 @@ bool SceneScriptBB11::ClickedOn2DRegion(int region) {
}
void SceneScriptBB11::SceneFrameAdvanced(int frame) {
- if (Actor_Query_Goal_Number(kActorSadik) == 105 && !Game_Flag_Query(375)) {
- Actor_Change_Animation_Mode(kActorMcCoy, 48);
+ if ( Actor_Query_Goal_Number(kActorSadik) == 105
+ && !Game_Flag_Query(375)
+ ) {
+ Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
Game_Flag_Set(375);
} else {
if (frame == 1) {
@@ -113,7 +117,9 @@ void SceneScriptBB11::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptBB11::PlayerWalkedIn() {
- if (Actor_Query_Goal_Number(kActorSadik) == 102 && Global_Variable_Query(kVariableChapter) == 2) {
+ if (Actor_Query_Goal_Number(kActorSadik) == 102
+ && Global_Variable_Query(kVariableChapter) == 2
+ ) {
Actor_Set_Invisible(kActorMcCoy, true);
Actor_Set_Goal_Number(kActorSadik, 103);
Music_Play(11, 61, 0, 1, -1, 0, 0);
diff --git a/engines/bladerunner/script/scene/bb12.cpp b/engines/bladerunner/script/scene/bb12.cpp
index 7f7f1d9a41..666738044c 100644
--- a/engines/bladerunner/script/scene/bb12.cpp
+++ b/engines/bladerunner/script/scene/bb12.cpp
@@ -26,34 +26,37 @@ namespace BladeRunner {
void SceneScriptBB12::InitializeScene() {
if (Game_Flag_Query(kFlagBB07toBB12)) {
- Setup_Scene_Information(138.0f, 0.0f, 104.0f, 760);
- } else if (Game_Flag_Query(506)) {
- Setup_Scene_Information(-129.0f, 0.0f, 64.0f, 307);
+ Setup_Scene_Information( 138.0f, 0.0f, 104.0f, 760);
+ } else if (Game_Flag_Query(kFlagBB08toBB12)) {
+ Setup_Scene_Information(-129.0f, 0.0f, 64.0f, 307);
} else {
- Setup_Scene_Information(54.0f, 0.0f, 200.0f, 0);
+ Setup_Scene_Information( 54.0f, 0.0f, 200.0f, 0);
Game_Flag_Reset(kFlagBB05toBB12);
}
- Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
- Scene_Exit_Add_2D_Exit(1, 589, 0, 639, 479, 1);
+
+ Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
+ Scene_Exit_Add_2D_Exit(1, 589, 0, 639, 479, 1);
Scene_Exit_Add_2D_Exit(2, 377, 374, 533, 479, 2);
+
Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(303, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(304, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(305, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(306, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(307, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(308, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(309, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(310, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(303, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(304, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(305, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(306, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(307, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(308, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(309, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(310, 5, 50, 27, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 25, 25, -100, 100, -101, -101, 0, 0);
- if (!Game_Flag_Query(497)) {
- Overlay_Play("BB12OVER", 0, 0, 0, 0);
- Game_Flag_Set(497);
+
+ if (!Game_Flag_Query(kFlagBB12Entered)) {
+ Overlay_Play("BB12OVER", 0, false, false, 0); // Sadik's shadow going left
+ Game_Flag_Set(kFlagBB12Entered);
}
}
@@ -80,16 +83,17 @@ bool SceneScriptBB12::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptBB12::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -129.0f, 0.0f, 64.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -129.0f, 0.0f, 64.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(507);
+ Game_Flag_Set(kFlagBB12toBB08);
Set_Enter(kSetBB08, kSceneBB08);
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 138.0f, 0.0f, 104.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 138.0f, 0.0f, 104.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB12toBB07);
@@ -97,8 +101,9 @@ bool SceneScriptBB12::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 2) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 54.0f, 0.0f, 200.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 54.0f, 0.0f, 200.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagBB12toBB05);
@@ -114,9 +119,14 @@ bool SceneScriptBB12::ClickedOn2DRegion(int region) {
}
void SceneScriptBB12::SceneFrameAdvanced(int frame) {
- if (frame == 10 || frame == 22 || frame == 33 || frame == 41) {
+ if (frame == 10
+ || frame == 22
+ || frame == 33
+ || frame == 41
+ ) {
Sound_Play(311, 17, -30, -30, 50);
}
+
if (frame == 3) {
Sound_Play(313, 16, -30, -30, 50);
}
@@ -127,11 +137,11 @@ void SceneScriptBB12::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptBB12::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagBB07toBB12)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 114.0f, 0.0f, 104.0f, 0, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 114.0f, 0.0f, 104.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagBB07toBB12);
- } else if (Game_Flag_Query(506)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -101.0f, 0.0f, 64.0f, 0, 0, false, 0);
- Game_Flag_Reset(506);
+ } else if (Game_Flag_Query(kFlagBB08toBB12)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -101.0f, 0.0f, 64.0f, 0, false, false, 0);
+ Game_Flag_Reset(kFlagBB08toBB12);
}
}
diff --git a/engines/bladerunner/script/scene/bb51.cpp b/engines/bladerunner/script/scene/bb51.cpp
index a28f66961b..d53a8d72ee 100644
--- a/engines/bladerunner/script/scene/bb51.cpp
+++ b/engines/bladerunner/script/scene/bb51.cpp
@@ -27,22 +27,25 @@ namespace BladeRunner {
void SceneScriptBB51::InitializeScene() {
Setup_Scene_Information(101.0f, 0.0f, -25.0f, 152);
Game_Flag_Reset(kFlagBB06toBB51);
- Scene_Exit_Add_2D_Exit(0, 615, 0, 639, 479, 1);
- Scene_Exit_Add_2D_Exit(1, 0, 323, 241, 479, 2);
+
+ Scene_Exit_Add_2D_Exit(0, 615, 0, 639, 479, 1);
+ Scene_Exit_Add_2D_Exit(1, 0, 323, 241, 479, 2);
+
Ambient_Sounds_Add_Looping_Sound(103, 28, 0, 1);
- Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(303, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(304, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(443, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(444, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(445, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(446, 2, 180, 14, 16, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
- Scene_Loop_Start_Special(0, 0, 0);
+ Ambient_Sounds_Add_Sound(305, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(306, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(307, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(308, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(309, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(310, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0);
+
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1);
}
@@ -62,6 +65,7 @@ bool SceneScriptBB51::ClickedOn3DObject(const char *objectName, bool a2) {
Actor_Voice_Over(80, kActorVoiceOver);
Actor_Voice_Over(90, kActorVoiceOver);
}
+
if (Object_Query_Click("TOP02", objectName)) {
Actor_Face_Object(kActorMcCoy, "TOP02", true);
Actor_Voice_Over(100, kActorVoiceOver);
@@ -89,6 +93,7 @@ bool SceneScriptBB51::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 55.0f, 0.0f, -96.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
diff --git a/engines/bladerunner/script/scene/ct08.cpp b/engines/bladerunner/script/scene/ct08.cpp
index 5dc68616e0..eb1aea0843 100644
--- a/engines/bladerunner/script/scene/ct08.cpp
+++ b/engines/bladerunner/script/scene/ct08.cpp
@@ -25,7 +25,7 @@
namespace BladeRunner {
void SceneScriptCT08::InitializeScene() {
- if (Game_Flag_Query(679)) {
+ if (Game_Flag_Query(kFlagChapter3Intro)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Outtake_Play(kOuttakeMovieB1, false, -1);
@@ -37,35 +37,40 @@ void SceneScriptCT08::InitializeScene() {
Outtake_Play(kOuttakeMovieB4, false, -1);
}
Outtake_Play(kOuttakeMovieB5, false, -1);
- Game_Flag_Reset(679);
+ Game_Flag_Reset(kFlagChapter3Intro);
}
Actor_Force_Stop_Walking(kActorMcCoy);
- if (Game_Flag_Query(380)) {
- Setup_Scene_Information(-11.0f, 0.0f, -156.0f, 769);
+
+ if (Game_Flag_Query(kFlagCT51toCT08)) {
+ Setup_Scene_Information( -11.0f, 0.0f, -156.0f, 769);
} else if (Game_Flag_Query(kFlagCT06toCT08)) {
- Setup_Scene_Information(-143.0f, 0.0f, -92.0f, 420);
+ Setup_Scene_Information(-143.0f, 0.0f, -92.0f, 420);
} else {
- Setup_Scene_Information(-183.0f, 0.0f, 128.0f, 205);
+ Setup_Scene_Information(-183.0f, 0.0f, 128.0f, 205);
}
- Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
- Scene_Exit_Add_2D_Exit(1, 389, 0, 639, 303, 0);
+
+ Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3);
+ Scene_Exit_Add_2D_Exit(1, 389, 0, 639, 303, 0);
Scene_Exit_Add_2D_Exit(2, 115, 87, 137, 267, 3);
- if (Game_Flag_Query(550)) {
+
+ if (Game_Flag_Query(kFlagMcCoyTiedDown)) {
Scene_2D_Region_Add(0, 185, 185, 230, 230);
}
+
Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
- Ambient_Sounds_Add_Looping_Sound(205, 20, 1, 1);
- Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
+ Ambient_Sounds_Add_Looping_Sound(205, 20, 1, 1);
+ Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1);
- Ambient_Sounds_Add_Sound(67, 80, 180, 16, 25, 0, 0, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(68, 50, 180, 16, 25, 0, 0, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(379, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(380, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
- if (Game_Flag_Query(380)) {
- Scene_Loop_Start_Special(0, 0, 0);
+ Ambient_Sounds_Add_Sound( 67, 80, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound( 68, 50, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(379, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(380, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0);
+
+ if (Game_Flag_Query(kFlagCT51toCT08)) {
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1);
} else {
Scene_Loop_Set_Default(1);
@@ -76,10 +81,10 @@ void SceneScriptCT08::SceneLoaded() {
Obstacle_Object("ASHTRAY", true);
Unobstacle_Object("BLANKET03", true);
if (!Actor_Clue_Query(kActorMcCoy, kClueRagDoll)) {
- Item_Add_To_World(85, 943, 6, 44.0f, 0.0f, -95.0f, 540, 12, 12, false, true, false, true);
+ Item_Add_To_World(kItemRagDoll, 943, kSetCT08_CT51_UG12, 44.0f, 0.0f, -95.0f, 540, 12, 12, false, true, false, true);
}
if (!Actor_Clue_Query(kActorMcCoy, kClueCheese)) {
- Item_Add_To_World(81, 936, 6, -102.0f, 2.0f, 41.0f, 432, 6, 6, false, true, false, true);
+ Item_Add_To_World(kItemCheese, 936, kSetCT08_CT51_UG12, -102.0f, 2.0f, 41.0f, 432, 6, 6, false, true, false, true);
}
}
@@ -96,14 +101,16 @@ bool SceneScriptCT08::ClickedOnActor(int actorId) {
}
bool SceneScriptCT08::ClickedOnItem(int itemId, bool a2) {
- if (itemId == 81) {
- if (!Loop_Actor_Walk_To_Item(kActorMcCoy, 81, 36, 1, false) && !Game_Flag_Query(550)) {
- Actor_Clue_Acquire(kActorMcCoy, kClueCheese, true, -1);
- Item_Pickup_Spin_Effect(936, 266, 328);
- Item_Remove_From_World(81);
- Actor_Voice_Over(480, kActorVoiceOver);
- Actor_Voice_Over(490, kActorVoiceOver);
- Actor_Voice_Over(500, kActorVoiceOver);
+ if (itemId == kItemCheese) {
+ if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemCheese, 36, true, false)) {
+ if (!Game_Flag_Query(kFlagMcCoyTiedDown)) {
+ Actor_Clue_Acquire(kActorMcCoy, kClueCheese, true, -1);
+ Item_Pickup_Spin_Effect(936, 266, 328);
+ Item_Remove_From_World(kItemCheese);
+ Actor_Voice_Over(480, kActorVoiceOver);
+ Actor_Voice_Over(490, kActorVoiceOver);
+ Actor_Voice_Over(500, kActorVoiceOver);
+ }
}
return true;
}
@@ -112,7 +119,7 @@ bool SceneScriptCT08::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptCT08::ClickedOnExit(int exitId) {
if (exitId == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -183.0f, 0.0f, 128.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -183.0f, 0.0f, 128.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagCT08toCT09);
@@ -120,18 +127,20 @@ bool SceneScriptCT08::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -11.0f, 0.0f, -156.0f, 0, 1, false, 0)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, 0.0f, -102.0f, 0, 0, false, 0);
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -11.0f, 0.0f, -156.0f, 0, true, false, 0)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, 0.0f, -102.0f, 0, false, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(379);
+ Game_Flag_Set(kFlagCT08toCT51);
Set_Enter(kSetCT08_CT51_UG12, kSceneCT51);
}
return true;
}
+
if (exitId == 2) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -143.0f, 0.0f, -92.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -143.0f, 0.0f, -92.0f, 0, true, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
Game_Flag_Set(kFlagCT08toCT06);
@@ -144,9 +153,9 @@ bool SceneScriptCT08::ClickedOnExit(int exitId) {
bool SceneScriptCT08::ClickedOn2DRegion(int region) {
if (region == 0) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -108.0f, 0.0f, -178.0f, 0, 1, false, 0)) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -108.0f, 0.0f, -178.0f, 0, true, false, 0)) {
Actor_Face_Heading(kActorMcCoy, 512, false);
- Game_Flag_Reset(550);
+ Game_Flag_Reset(kFlagMcCoyTiedDown);
Player_Set_Combat_Mode_Access(true);
Scene_Exits_Enable();
Ambient_Sounds_Play_Sound(564, 40, 99, 0, 0);
@@ -165,28 +174,28 @@ void SceneScriptCT08::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
}
void SceneScriptCT08::PlayerWalkedIn() {
- if (Game_Flag_Query(550)) {
+ if (Game_Flag_Query(kFlagMcCoyTiedDown)) {
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(kFlagCT51toCT08);
Game_Flag_Reset(kFlagCT06toCT08);
Autosave_Game(1);
- } else if (Game_Flag_Query(380)) {
- Game_Flag_Reset(380);
+ } else if (Game_Flag_Query(kFlagCT51toCT08)) {
+ Game_Flag_Reset(kFlagCT51toCT08);
} 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);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -156.0f, 0.0f, 128.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagCT09toCT08);
}
}
void SceneScriptCT08::PlayerWalkedOut() {
if (!Actor_Clue_Query(kActorMcCoy, kClueRagDoll)) {
- Item_Remove_From_World(85);
+ Item_Remove_From_World(kItemRagDoll);
}
}
diff --git a/engines/bladerunner/script/scene/ct10.cpp b/engines/bladerunner/script/scene/ct10.cpp
index 7b666efbf4..0bbc6c2f50 100644
--- a/engines/bladerunner/script/scene/ct10.cpp
+++ b/engines/bladerunner/script/scene/ct10.cpp
@@ -27,7 +27,9 @@ namespace BladeRunner {
void SceneScriptCT10::InitializeScene() {
Setup_Scene_Information(-121.0f, 0.0f, -78.0f, 446);
Game_Flag_Reset(kFlagCT09toCT08); // a bug?
+
Scene_Exit_Add_2D_Exit(0, 135, 74, 238, 340, 0);
+
Ambient_Sounds_Add_Looping_Sound(336, 28, 0, 1);
Ambient_Sounds_Add_Sound(375, 6, 180, 33, 33, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 5, 180, 33, 33, 0, 0, -101, -101, 0, 0);
diff --git a/engines/bladerunner/script/scene/ct51.cpp b/engines/bladerunner/script/scene/ct51.cpp
index 6f44fb0b27..0c6c1c8110 100644
--- a/engines/bladerunner/script/scene/ct51.cpp
+++ b/engines/bladerunner/script/scene/ct51.cpp
@@ -26,15 +26,18 @@ namespace BladeRunner {
void SceneScriptCT51::InitializeScene() {
Setup_Scene_Information(0.0f, 0.0f, -102.0f, 470);
- Game_Flag_Reset(379);
+ Game_Flag_Reset(kFlagCT08toCT51);
+
Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
+
Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
- Ambient_Sounds_Add_Sound(68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
- Ambient_Sounds_Add_Sound(69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound( 68, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
+ Ambient_Sounds_Add_Sound( 69, 60, 180, 16, 25, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(375, 60, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(376, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(377, 50, 180, 50, 100, 0, 0, -101, -101, 0, 0);
- Scene_Loop_Start_Special(0, 0, 0);
+
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1);
}
@@ -42,10 +45,10 @@ void SceneScriptCT51::SceneLoaded() {
Unobstacle_Object("BLANKET03", true);
Clickable_Object("BED02");
if (!Actor_Clue_Query(kActorMcCoy, kClueRagDoll)) {
- Item_Add_To_World(85, 943, 6, 44.0f, 0.0f, -95.0f, 540, 24, 24, false, true, false, true);
+ Item_Add_To_World(kItemRagDoll, 943, kSetCT08_CT51_UG12, 44.0f, 0.0f, -95.0f, 540, 24, 24, false, true, false, true);
}
if (!Actor_Clue_Query(kActorMcCoy, kClueMoonbus1)) {
- Item_Add_To_World(120, 984, 6, 44.0f, 0.0f, -22.0f, 0, 12, 12, false, true, false, true);
+ Item_Add_To_World(kItemMoonbusPhoto, 984, kSetCT08_CT51_UG12, 44.0f, 0.0f, -22.0f, 0, 12, 12, false, true, false, true);
}
}
@@ -55,14 +58,13 @@ bool SceneScriptCT51::MouseClick(int x, int y) {
bool SceneScriptCT51::ClickedOn3DObject(const char *objectName, bool a2) {
if (Object_Query_Click("BED02", objectName)) {
- if (Actor_Clue_Query(kActorMcCoy, kClueHysteriaToken)) {
- Actor_Says(kActorMcCoy, 8580, 12);
- return false;
+ if (!Actor_Clue_Query(kActorMcCoy, kClueHysteriaToken)) {
+ Item_Pickup_Spin_Effect(970, 203, 200);
+ Actor_Clue_Acquire(kActorMcCoy, kClueHysteriaToken, true, -1);
+ Actor_Voice_Over(420, kActorVoiceOver);
+ return true;
}
- Item_Pickup_Spin_Effect(970, 203, 200);
- Actor_Clue_Acquire(kActorMcCoy, kClueHysteriaToken, true, -1);
- Actor_Voice_Over(420, kActorVoiceOver);
- return true;
+ Actor_Says(kActorMcCoy, 8580, 12);
}
return false;
}
@@ -72,18 +74,19 @@ bool SceneScriptCT51::ClickedOnActor(int actorId) {
}
bool SceneScriptCT51::ClickedOnItem(int itemId, bool a2) {
- if (itemId == 85) {
+ if (itemId == kItemRagDoll) {
Actor_Clue_Acquire(kActorMcCoy, kClueRagDoll, true, -1);
Item_Pickup_Spin_Effect(943, 260, 200);
Ambient_Sounds_Play_Sound(563, 40, 99, 0, 0);
- Item_Remove_From_World(85);
+ Item_Remove_From_World(kItemRagDoll);
return true;
}
- if (itemId == 120) {
+
+ if (itemId == kItemMoonbusPhoto) {
Actor_Clue_Acquire(kActorMcCoy, kClueMoonbus1, true, -1);
Item_Pickup_Spin_Effect(984, 490, 307);
- Item_Remove_From_World(120);
- Actor_Says(kActorMcCoy, 8527, 3);
+ Item_Remove_From_World(kItemMoonbusPhoto);
+ Actor_Says(kActorMcCoy, 8527, kAnimationModeTalk);
return true;
}
return false;
@@ -91,11 +94,11 @@ bool SceneScriptCT51::ClickedOnItem(int itemId, bool a2) {
bool SceneScriptCT51::ClickedOnExit(int exitId) {
if (exitId == 1) {
- if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, 0.0f, -102.0f, 0, 1, false, 0)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -11.0f, 0.0f, -156.0f, 0, 0, false, 0);
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, 0.0f, -102.0f, 0, true, false, 0)) {
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -11.0f, 0.0f, -156.0f, 0, false, false, 0);
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
Ambient_Sounds_Remove_All_Looping_Sounds(1);
- Game_Flag_Set(380);
+ Game_Flag_Set(kFlagCT51toCT08);
Set_Enter(kSetCT08_CT51_UG12, kSceneCT08);
}
return true;
@@ -119,7 +122,7 @@ void SceneScriptCT51::PlayerWalkedIn() {
void SceneScriptCT51::PlayerWalkedOut() {
if (!Actor_Clue_Query(kActorMcCoy, kClueRagDoll)) {
- Item_Remove_From_World(85);
+ Item_Remove_From_World(kItemRagDoll);
}
}