diff options
-rw-r--r-- | engines/bladerunner/game_constants.h | 4 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ar02.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/bb04.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/hc01.cpp | 27 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/hc02.cpp | 21 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/hc04.cpp | 7 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/rc04.cpp | 3 | ||||
-rw-r--r-- | engines/bladerunner/script/vk_script.cpp | 2 |
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); |