aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/bladerunner/game_constants.h4
-rw-r--r--engines/bladerunner/script/scene/ar02.cpp2
-rw-r--r--engines/bladerunner/script/scene/bb04.cpp2
-rw-r--r--engines/bladerunner/script/scene/hc01.cpp27
-rw-r--r--engines/bladerunner/script/scene/hc02.cpp21
-rw-r--r--engines/bladerunner/script/scene/hc04.cpp7
-rw-r--r--engines/bladerunner/script/scene/rc04.cpp3
-rw-r--r--engines/bladerunner/script/vk_script.cpp2
8 files changed, 53 insertions, 15 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index a955027318..bc92efdc44 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1159,8 +1159,8 @@ enum Scenes {
kScenePS14 = 77, // Police Station - Outside
kSceneRC01 = 78, // Runciter - Outside
kSceneRC02 = 79, // Runciter - Inside
- kSceneRC03 = 80, // Bullet Bob's runner surplus - Outside
- kSceneRC04 = 81, // Bullet Bob's runner surplus - Inside
+ kSceneRC03 = 80, // Bullet Bob's Runner Surplus - Outside
+ kSceneRC04 = 81, // Bullet Bob's Runner Surplus - Inside
kSceneTB02 = 82, // Tyrell Building - Reception
kSceneTB03 = 83,
kSceneTB05 = 84, // Tyrell Building - Grav Test Lab - Iutside
diff --git a/engines/bladerunner/script/scene/ar02.cpp b/engines/bladerunner/script/scene/ar02.cpp
index 935064f7a2..7816a0f569 100644
--- a/engines/bladerunner/script/scene/ar02.cpp
+++ b/engines/bladerunner/script/scene/ar02.cpp
@@ -244,7 +244,7 @@ void SceneScriptAR02::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
void SceneScriptAR02::PlayerWalkedIn() {
if (Game_Flag_Query(kFlagRC03toAR02)) {
- Loop_Actor_Walk_To_XYZ(kActorMcCoy, -465.0f, 0.0f, -799.0f, 0, 0, false, 0);
+ Loop_Actor_Walk_To_XYZ(kActorMcCoy, -465.0f, 0.0f, -799.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagRC03toAR02);
}
Game_Flag_Set(kFlagAR02Entered);
diff --git a/engines/bladerunner/script/scene/bb04.cpp b/engines/bladerunner/script/scene/bb04.cpp
index 55445c1a0d..4f7be021d1 100644
--- a/engines/bladerunner/script/scene/bb04.cpp
+++ b/engines/bladerunner/script/scene/bb04.cpp
@@ -24,6 +24,8 @@
namespace BladeRunner {
+// Bug in the game, item 77 (android control box) is showing up here...
+
void SceneScriptBB04::InitializeScene() {
if (Game_Flag_Query(kFlagBB03toBB04)) {
Setup_Scene_Information(-107.0f, -26.6f, 397.0f, 29);
diff --git a/engines/bladerunner/script/scene/hc01.cpp b/engines/bladerunner/script/scene/hc01.cpp
index 19345ebb39..ec8946b2e9 100644
--- a/engines/bladerunner/script/scene/hc01.cpp
+++ b/engines/bladerunner/script/scene/hc01.cpp
@@ -27,17 +27,19 @@ namespace BladeRunner {
void SceneScriptHC01::InitializeScene() {
Music_Play(0, 31, 0, 2, -1, 1, 2);
if (Game_Flag_Query(kFlagHC02toHC01)) {
- Setup_Scene_Information(64.0f, 0.14f, 83.0f, 266);
+ Setup_Scene_Information( 64.0f, 0.14f, 83.0f, 266);
} else if (Game_Flag_Query(kFlagHC03toHC01)) {
- Setup_Scene_Information(607.0f, 0.14f, 9.0f, 530);
+ Setup_Scene_Information(607.0f, 0.14f, 9.0f, 530);
} else {
Setup_Scene_Information(780.0f, 0.14f, 153.0f, 815);
}
+
Scene_Exit_Add_2D_Exit(0, 0, 460, 639, 479, 2);
if (Game_Flag_Query(kFlagHC03Available)) {
Scene_Exit_Add_2D_Exit(1, 394, 229, 485, 371, 1);
}
Scene_Exit_Add_2D_Exit(2, 117, 0, 286, 319, 0);
+
Ambient_Sounds_Add_Looping_Sound(103, 50, 50, 0);
Ambient_Sounds_Add_Looping_Sound(241, 50, 50, 0);
Ambient_Sounds_Add_Sound(242, 3, 30, 16, 16, -100, 100, -101, -101, 0, 0);
@@ -156,6 +158,7 @@ bool SceneScriptHC01::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 607.0f, 0.14f, 9.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagHC01toHC03);
@@ -163,6 +166,7 @@ bool SceneScriptHC01::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 2) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 105.0f, 0.14f, 103.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagHC01toHC02);
@@ -180,21 +184,30 @@ bool SceneScriptHC01::ClickedOn2DRegion(int region) {
void SceneScriptHC01::SceneFrameAdvanced(int frame) {
Set_Fade_Color(1.0f, 1.0f, 1.0f);
- if (frame >= 61 && frame < 65) {
+ if (frame >= 61
+ && frame < 65
+ ) {
Set_Fade_Density((frame - 61) / 4.0f);
- } else if (frame >= 65 && frame < 93) {
+ } else if (frame >= 65
+ && frame < 93
+ ) {
Set_Fade_Density(1.0f);
- } else if (frame >= 93 && frame < 106) {
+ } else if (frame >= 93
+ && frame < 106
+ ) {
Set_Fade_Density((105 - frame) / 13.0f);
} else {
Set_Fade_Density(0.0f);
}
+
if (frame == 61) {
Ambient_Sounds_Play_Sound(312, 90, 0, 0, 0);
}
+
if (frame == 65) {
Ambient_Sounds_Play_Sound(315, 50, 0, 100, 0);
}
+
if (frame == 80) {
Ambient_Sounds_Play_Sound(316, 40, 100, 100, 0);
Item_Add_To_World(kItemGreenPawnLock, 931, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true);
@@ -209,9 +222,11 @@ void SceneScriptHC01::PlayerWalkedIn() {
Loop_Actor_Walk_To_XYZ(kActorMcCoy, 105.0f, 0.14f, 103.0f, 0, false, false, 0);
Game_Flag_Reset(kFlagHC02toHC01);
}
+
if (Game_Flag_Query(kFlagHC03toHC01)) {
Game_Flag_Reset(kFlagHC03toHC01);
}
+
if (Game_Flag_Query(kFlagAR01toHC01)) {
Game_Flag_Reset(kFlagAR01toHC01);
}
@@ -304,7 +319,7 @@ void SceneScriptHC01::dialogueWithIzo() {
Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -2);
}
}
- if (answer == 1010 // INSECT JEWELRY
+ if (answer == 1010 // INSECT JEWELRY
|| answer == 1020 // DRAGONFLY JEWERLY
) {
Actor_Says_With_Pause(kActorMcCoy, 1120, 0.9f, 17);
diff --git a/engines/bladerunner/script/scene/hc02.cpp b/engines/bladerunner/script/scene/hc02.cpp
index fa64162076..7a8967b27d 100644
--- a/engines/bladerunner/script/scene/hc02.cpp
+++ b/engines/bladerunner/script/scene/hc02.cpp
@@ -29,10 +29,12 @@ void SceneScriptHC02::InitializeScene() {
if (Game_Flag_Query(kFlagHC04toHC02)) {
Setup_Scene_Information(-88.0f, 0.14f, -463.0f, 540);
} else {
- Setup_Scene_Information(-57.0f, 0.14f, 83.0f, 746);
+ Setup_Scene_Information(-57.0f, 0.14f, 83.0f, 746);
}
+
Scene_Exit_Add_2D_Exit(0, 589, 255, 639, 479, 1);
- Scene_Exit_Add_2D_Exit(1, 505, 0, 639, 170, 0);
+ Scene_Exit_Add_2D_Exit(1, 505, 0, 639, 170, 0);
+
Ambient_Sounds_Add_Looping_Sound(103, 50, 50, 0);
Ambient_Sounds_Add_Looping_Sound(280, 50, 50, 0);
Ambient_Sounds_Add_Sound(252, 3, 60, 33, 33, -60, 0, -101, -101, 0, 0);
@@ -64,8 +66,9 @@ void SceneScriptHC02::InitializeScene() {
Ambient_Sounds_Add_Sound(249, 3, 30, 14, 14, 30, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(238, 3, 50, 20, 20, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(240, 3, 50, 25, 25, -100, 100, -101, -101, 0, 0);
+
if (Game_Flag_Query(kFlagHC01toHC02)) {
- Scene_Loop_Start_Special(0, 0, 0);
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1);
Game_Flag_Reset(kFlagHC01toHC02);
} else {
@@ -179,6 +182,7 @@ bool SceneScriptHC02::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.0f, 0.14f, -339.0f, 0, 1, false, 0)) {
Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
@@ -200,10 +204,19 @@ void SceneScriptHC02::SceneFrameAdvanced(int frame) {
if (frame == 70) {
Sound_Play(73, 11, 50, -90, 50);
}
+
if (frame == 58) {
Sound_Play(73, 11, 50, -90, 50);
}
- if (frame == 69 || frame == 77 || frame == 86 || frame == 95 || frame == 104 || frame == 113 || frame == 119) {
+
+ if (frame == 69
+ || frame == 77
+ || frame == 86
+ || frame == 95
+ || frame == 104
+ || frame == 113
+ || frame == 119
+ ) {
Sound_Play(60, Random_Query(6, 7), -20, 20, 50);
}
}
diff --git a/engines/bladerunner/script/scene/hc04.cpp b/engines/bladerunner/script/scene/hc04.cpp
index 224aa11540..a138d96ebd 100644
--- a/engines/bladerunner/script/scene/hc04.cpp
+++ b/engines/bladerunner/script/scene/hc04.cpp
@@ -32,10 +32,13 @@ void SceneScriptHC04::InitializeScene() {
Setup_Scene_Information(-88.0f, 0.14f, -463.0f, 1013);
}
Music_Play(4, 14, -90, 1, -1, 1, 2);
+
Actor_Put_In_Set(kActorIsabella, kSetHC01_HC02_HC03_HC04);
Actor_Set_At_XYZ(kActorIsabella, -210.0f, 0.0f, -445.0f, 250);
+
Scene_Exit_Add_2D_Exit(0, 539, 51, 639, 309, 0);
Scene_Exit_Add_2D_Exit(1, 0, 456, 639, 479, 2);
+
Ambient_Sounds_Add_Looping_Sound(103, 50, 50, 0);
Ambient_Sounds_Add_Looping_Sound(329, 16, 16, 0);
Ambient_Sounds_Add_Looping_Sound(330, 40, 40, 0);
@@ -59,8 +62,9 @@ void SceneScriptHC04::InitializeScene() {
Ambient_Sounds_Add_Sound(260, 3, 60, 16, 16, -100, -100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(261, 3, 60, 16, 16, -100, -100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(262, 3, 60, 16, 16, -100, -100, -101, -101, 0, 0);
+
if (Game_Flag_Query(kFlagHC02toHC04)) {
- Scene_Loop_Start_Special(0, 0, 0);
+ Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
Scene_Loop_Set_Default(1);
Game_Flag_Reset(kFlagHC02toHC04);
} else {
@@ -117,6 +121,7 @@ bool SceneScriptHC04::ClickedOnExit(int exitId) {
}
return true;
}
+
if (exitId == 1) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -72.0f, 0.14f, -399.0f, 0, true, false, 0)) {
Game_Flag_Set(kFlagHC04toHC02);
diff --git a/engines/bladerunner/script/scene/rc04.cpp b/engines/bladerunner/script/scene/rc04.cpp
index d865cecc25..122ff652c9 100644
--- a/engines/bladerunner/script/scene/rc04.cpp
+++ b/engines/bladerunner/script/scene/rc04.cpp
@@ -27,7 +27,9 @@ namespace BladeRunner {
void SceneScriptRC04::InitializeScene() {
Setup_Scene_Information(45.0f, 0.15f, 68.0f, 1018);
Game_Flag_Reset(kFlagRC03toRC04);
+
Scene_Exit_Add_2D_Exit(0, 225, 47, 359, 248, 0);
+
if (!Game_Flag_Query(kFlagRC04McCoyShotBob)) {
Actor_Put_In_Set(kActorBulletBob, kSetRC04);
Actor_Set_At_XYZ(kActorBulletBob, -60.0f, -11.0f, 62.0f, 12);
@@ -35,6 +37,7 @@ void SceneScriptRC04::InitializeScene() {
if (Game_Flag_Query(kFlagRC04McCoyShotBob)) {
Actor_Change_Animation_Mode(kActorBulletBob, 88);
}
+
Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1);
Ambient_Sounds_Add_Sound(82, 5, 30, 10, 20, -100, 100, -101, -101, 0, 0);
Ambient_Sounds_Add_Sound(83, 5, 30, 10, 20, -100, 100, -101, -101, 0, 0);
diff --git a/engines/bladerunner/script/vk_script.cpp b/engines/bladerunner/script/vk_script.cpp
index 2dc2c4b5d4..81fb67d05d 100644
--- a/engines/bladerunner/script/vk_script.cpp
+++ b/engines/bladerunner/script/vk_script.cpp
@@ -1812,7 +1812,7 @@ void VKScript::askBulletBob(int questionId) {
case 7465:
VK_Subject_Reacts(15, 5, 3, -5);
VK_Play_Speech_Line(kActorBulletBob, 1200, 0.5f);
- if (Actor_Query_Friendliness_To_Other(14, 0) <= 40) {
+ if (Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) <= 40) {
VK_Eye_Animates(2);
VK_Play_Speech_Line(kActorBulletBob, 1210, 0.5f);
VK_Eye_Animates(1);