diff options
Diffstat (limited to 'engines/bladerunner/script/scene/hc01.cpp')
-rw-r--r-- | engines/bladerunner/script/scene/hc01.cpp | 199 |
1 files changed, 91 insertions, 108 deletions
diff --git a/engines/bladerunner/script/scene/hc01.cpp b/engines/bladerunner/script/scene/hc01.cpp index e9ef0a2209..8318130397 100644 --- a/engines/bladerunner/script/scene/hc01.cpp +++ b/engines/bladerunner/script/scene/hc01.cpp @@ -26,15 +26,15 @@ namespace BladeRunner { void SceneScriptHC01::InitializeScene() { Music_Play(0, 31, 0, 2, -1, 1, 2); - if (Game_Flag_Query(385)) { + if (Game_Flag_Query(kFlagHC02toHC01)) { Setup_Scene_Information(64.0f, 0.14f, 83.0f, 266); - } else if (Game_Flag_Query(387)) { + } else if (Game_Flag_Query(kFlagHC03toHC01)) { 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(402)) { + 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); @@ -93,14 +93,14 @@ bool SceneScriptHC01::ClickedOn3DObject(const char *objectName, bool a2) { } bool SceneScriptHC01::ClickedOnActor(int actorId) { - if (actorId == 7 && (Actor_Query_Goal_Number(kActorIzo) == 150 || Actor_Query_Goal_Number(kActorIzo) == 0)) { + if (actorId == kActorIzo + && (Actor_Query_Goal_Number(kActorIzo) == kGoalIzoGoToHC01 + || Actor_Query_Goal_Number(kActorIzo) == kGoalIzoDefault + ) + ) { AI_Movement_Track_Pause(kActorIzo); if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 624.43f, 0.14f, 83.0f, 0, 1, false, 0)) { - if (Game_Flag_Query(400)) { - Actor_Face_Actor(kActorMcCoy, kActorIzo, true); - Actor_Face_Actor(kActorIzo, kActorMcCoy, true); - sub_402384(); - } else { + if (!Game_Flag_Query(kFlagIzoTalk1)) { Actor_Face_Actor(kActorIzo, kActorMcCoy, true); Actor_Says_With_Pause(kActorIzo, 10, 0.2f, 13); Actor_Face_Actor(kActorMcCoy, kActorIzo, true); @@ -114,7 +114,11 @@ bool SceneScriptHC01::ClickedOnActor(int actorId) { Actor_Says_With_Pause(kActorIzo, 70, 1.0f, 13); Actor_Says_With_Pause(kActorMcCoy, 1045, 0.6f, 14); Actor_Says(kActorIzo, 80, 18); - Game_Flag_Set(400); + Game_Flag_Set(kFlagIzoTalk1); + } else { + Actor_Face_Actor(kActorMcCoy, kActorIzo, true); + Actor_Face_Actor(kActorIzo, kActorMcCoy, true); + dialogueWithIzo(); } } AI_Movement_Track_Unpause(kActorIzo); @@ -123,8 +127,8 @@ bool SceneScriptHC01::ClickedOnActor(int actorId) { } bool SceneScriptHC01::ClickedOnItem(int itemId, bool a2) { - if (itemId == 107) { - Item_Remove_From_World(107); + if (itemId == kItemCamera) { + Item_Remove_From_World(kItemCamera); Item_Pickup_Spin_Effect(977, 361, 381); Delay(1500); Item_Pickup_Spin_Effect(984, 377, 397); @@ -143,7 +147,7 @@ bool SceneScriptHC01::ClickedOnItem(int itemId, bool a2) { bool SceneScriptHC01::ClickedOnExit(int exitId) { if (exitId == 0) { - if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 814.0f, 0.14f, 153.0f, 0, 1, false, 0)) { + if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 814.0f, 0.14f, 153.0f, 0, true, false, 0)) { Music_Adjust(12, 0, 2); Game_Flag_Set(kFlagHC01toAR01); Set_Enter(kSetAR01_AR02, kSceneAR01); @@ -153,15 +157,15 @@ bool SceneScriptHC01::ClickedOnExit(int exitId) { return true; } if (exitId == 1) { - if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 607.0f, 0.14f, 9.0f, 0, 1, false, 0)) { - Game_Flag_Set(386); + if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 607.0f, 0.14f, 9.0f, 0, true, false, 0)) { + Game_Flag_Set(kFlagHC01toHC03); Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC03); } return true; } if (exitId == 2) { - if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 105.0f, 0.14f, 103.0f, 0, 1, false, 0)) { - Game_Flag_Set(384); + if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 105.0f, 0.14f, 103.0f, 0, true, false, 0)) { + Game_Flag_Set(kFlagHC01toHC02); Async_Actor_Walk_To_XYZ(kActorMcCoy, -57.0f, 0.14f, 83.0f, 0, false); Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC02); } @@ -193,7 +197,7 @@ void SceneScriptHC01::SceneFrameAdvanced(int frame) { } if (frame == 80) { Ambient_Sounds_Play_Sound(316, 40, 100, 100, 0); - Item_Add_To_World(121, 931, 8, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true); + Item_Add_To_World(kItemHC03Lock, 931, kSetHC01_HC02_HC03_HC04, 582.0f, 27.0f, -41.0f, 0, 8, 8, true, true, false, true); } } @@ -201,12 +205,12 @@ void SceneScriptHC01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo } void SceneScriptHC01::PlayerWalkedIn() { - if (Game_Flag_Query(385)) { - Loop_Actor_Walk_To_XYZ(kActorMcCoy, 105.0f, 0.14f, 103.0f, 0, 0, false, 0); - Game_Flag_Reset(385); + if (Game_Flag_Query(kFlagHC02toHC01)) { + Loop_Actor_Walk_To_XYZ(kActorMcCoy, 105.0f, 0.14f, 103.0f, 0, false, false, 0); + Game_Flag_Reset(kFlagHC02toHC01); } - if (Game_Flag_Query(387)) { - Game_Flag_Reset(387); + if (Game_Flag_Query(kFlagHC03toHC01)) { + Game_Flag_Reset(kFlagHC03toHC01); } if (Game_Flag_Query(kFlagAR01toHC01)) { Game_Flag_Reset(kFlagAR01toHC01); @@ -215,69 +219,66 @@ void SceneScriptHC01::PlayerWalkedIn() { void SceneScriptHC01::PlayerWalkedOut() { Set_Fade_Density(0.0f); - Ambient_Sounds_Remove_All_Non_Looping_Sounds(1); + Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); } void SceneScriptHC01::DialogueQueueFlushed(int a1) { } -void SceneScriptHC01::sub_402384() { - if (!Game_Flag_Query(401)) { +void SceneScriptHC01::dialogueWithIzo() { + if (!Game_Flag_Query(kFlagIzoTalk2)) { Actor_Says(kActorMcCoy, 1055, 13); Actor_Says(kActorIzo, 130, 13); Actor_Says_With_Pause(kActorMcCoy, 1060, 0.2f, 13); Actor_Says(kActorIzo, 140, 13); - Game_Flag_Set(401); + Game_Flag_Set(kFlagIzoTalk2); } + Dialogue_Menu_Clear_List(); - if (Actor_Clue_Query(kActorMcCoy, kCluePeruvianLadyInterview) == 1) { - DM_Add_To_List_Never_Repeat_Once_Selected(1020, 6, 7, 3); - } else if (Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring) || Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect) || Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet)) { - DM_Add_To_List_Never_Repeat_Once_Selected(1010, 6, 7, 3); + if (Actor_Clue_Query(kActorMcCoy, kCluePeruvianLadyInterview)) { + DM_Add_To_List_Never_Repeat_Once_Selected(1020, 6, 7, 3); // DRAGONFLY JEWERLY + } else if (Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring) + || Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect) + || Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet) + ) { + DM_Add_To_List_Never_Repeat_Once_Selected(1010, 6, 7, 3); // INSECT JEWELRY } - if (Actor_Clue_Query(kActorMcCoy, kClueBobInterview1) == 1) { - DM_Add_To_List_Never_Repeat_Once_Selected(1030, 1, 5, 7); - } else if (Actor_Clue_Query(kActorMcCoy, kClueShellCasings) == 1) { - DM_Add_To_List_Never_Repeat_Once_Selected(1040, 4, 4, 6); + if (Actor_Clue_Query(kActorMcCoy, kClueBobInterview1)) { + DM_Add_To_List_Never_Repeat_Once_Selected(1030, 1, 5, 7); // WEAPONS + } else if (Actor_Clue_Query(kActorMcCoy, kClueShellCasings)) { + DM_Add_To_List_Never_Repeat_Once_Selected(1040, 4, 4, 6); // SHELL CASINGS } - if (Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewB2) == 1) { - DM_Add_To_List_Never_Repeat_Once_Selected(1050, -1, 3, 8); - } else if (Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewB1) == 1) { - DM_Add_To_List_Never_Repeat_Once_Selected(1060, -1, 3, 8); + if (Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewB2)) { + DM_Add_To_List_Never_Repeat_Once_Selected(1050, -1, 3, 8); // GRIGORIAN 1 + } else if (Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewB1)) { + DM_Add_To_List_Never_Repeat_Once_Selected(1060, -1, 3, 8); // GRIGORIAN 2 } - if (!Dialogue_Menu_Query_List_Size()) { + + if (Dialogue_Menu_Query_List_Size() == 0) { Actor_Says_With_Pause(kActorMcCoy, 1105, 1.2f, 13); if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 50) { Actor_Says(kActorIzo, 550, 15); } else { Actor_Says(kActorIzo, 250, 13); Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -1); - if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47 && Query_Difficulty_Level() == 0) { - sub_40346C(); + if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47 + && Query_Difficulty_Level() == 0 + ) { + takePhotoAndRunAway(); } } return; } - Dialogue_Menu_Add_DONE_To_List(100); + + Dialogue_Menu_Add_DONE_To_List(100); // DONE + bool end = false; do { Dialogue_Menu_Appear(320, 240); int answer = Dialogue_Menu_Query_Input(); Dialogue_Menu_Disappear(); - if (answer == 1020) { - Dialogue_Menu_Remove_From_List(1020); - Actor_Says(kActorMcCoy, 1065, 15); - Actor_Says(kActorIzo, 160, 3); - Actor_Says(kActorMcCoy, 1110, 16); - Actor_Says(kActorIzo, 170, 3); - Actor_Says(kActorIzo, 180, 3); - Actor_Says(kActorIzo, 190, 12); - if (Query_Difficulty_Level() < 2) { - Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -2); - } - } - if (answer == 1010) { + if (answer == 1010) { // INSECT JEWELRY Dialogue_Menu_Remove_From_List(1010); Actor_Clue_Acquire(kActorMcCoy, kClueIzoInterview, false, kActorIzo); Actor_Says(kActorMcCoy, 1070, 13); @@ -285,30 +286,36 @@ void SceneScriptHC01::sub_402384() { Actor_Says(kActorIzo, 210, 12); Actor_Says(kActorMcCoy, 1115, 12); Actor_Says(kActorIzo, 220, 16); - Actor_Says(kActorIzo, 230, 3); + Actor_Says(kActorIzo, 230, kAnimationModeTalk); Actor_Says(kActorIzo, 240, 15); if (Query_Difficulty_Level() < 2) { Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -1); } } - if (answer == 1010 || answer == 1020) { + if (answer == 1020) { // DRAGONFLY JEWERLY + Dialogue_Menu_Remove_From_List(1020); + Actor_Says(kActorMcCoy, 1065, 15); + Actor_Says(kActorIzo, 160, kAnimationModeTalk); + Actor_Says(kActorMcCoy, 1110, 16); + Actor_Says(kActorIzo, 170, kAnimationModeTalk); + Actor_Says(kActorIzo, 180, kAnimationModeTalk); + Actor_Says(kActorIzo, 190, 12); + if (Query_Difficulty_Level() < 2) { + Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -2); + } + } + if (answer == 1010 // INSECT JEWELRY + || answer == 1020 // DRAGONFLY JEWERLY + ) { Actor_Says_With_Pause(kActorMcCoy, 1120, 0.9f, 17); Actor_Says(kActorIzo, 250, 13); Actor_Says(kActorMcCoy, 1125, 14); if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47) { - Actor_Set_Goal_Number(kActorIzo, 1); - Player_Loses_Control(); - Actor_Says(kActorIzo, 90, 3); - Actor_Face_Actor(kActorIzo, kActorMcCoy, true); - Actor_Says(kActorIzo, 100, 3); - Actor_Says(kActorIzo, 110, 3); - Actor_Says_With_Pause(kActorMcCoy, 1050, 0.2f, 3); - Actor_Says(kActorIzo, 120, 3); - Actor_Set_Goal_Number(kActorIzo, 2); + takePhotoAndRunAway(); } end = true; } - if (answer == 1030) { + if (answer == 1030) { // WEAPONS Dialogue_Menu_Remove_From_List(1030); Actor_Says(kActorMcCoy, 1075, 18); Actor_Says(kActorIzo, 260, 12); @@ -319,24 +326,16 @@ void SceneScriptHC01::sub_402384() { Actor_Says(kActorIzo, 290, 15); Actor_Says(kActorIzo, 300, 12); Actor_Says(kActorIzo, 310, 17); - Actor_Says(kActorMcCoy, 1140, 3); + Actor_Says(kActorMcCoy, 1140, kAnimationModeTalk); if (Query_Difficulty_Level() < 2) { Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -2); } if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47) { - Actor_Set_Goal_Number(kActorIzo, 1); - Player_Loses_Control(); - Actor_Says(kActorIzo, 90, 3); - Actor_Face_Actor(kActorIzo, kActorMcCoy, true); - Actor_Says(kActorIzo, 100, 3); - Actor_Says(kActorIzo, 110, 3); - Actor_Says_With_Pause(kActorMcCoy, 1050, 0.2f, 3); - Actor_Says(kActorIzo, 120, 3); - Actor_Set_Goal_Number(kActorIzo, 2); + takePhotoAndRunAway(); } end = true; } - if (answer == 1040) { + if (answer == 1040) { // SHELL CASINGS Dialogue_Menu_Remove_From_List(1040); Actor_Says(kActorMcCoy, 1080, 15); Actor_Says(kActorMcCoy, 1085, 17); @@ -347,7 +346,7 @@ void SceneScriptHC01::sub_402384() { Actor_Says(kActorIzo, 350, 12); end = true; } - if (answer == 1050) { + if (answer == 1050) { // GRIGORIAN 1 Dialogue_Menu_Remove_From_List(1050); Actor_Says(kActorMcCoy, 1090, 18); Actor_Says(kActorIzo, 360, 14); @@ -367,19 +366,11 @@ void SceneScriptHC01::sub_402384() { Actor_Says(kActorIzo, 440, 13); Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -4); if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47) { - Actor_Set_Goal_Number(kActorIzo, 1); - Player_Loses_Control(); - Actor_Says(kActorIzo, 90, 3); - Actor_Face_Actor(kActorIzo, kActorMcCoy, true); - Actor_Says(kActorIzo, 100, 3); - Actor_Says(kActorIzo, 110, 3); - Actor_Says_With_Pause(kActorMcCoy, 1050, 0.2f, 3); - Actor_Says(kActorIzo, 120, 3); - Actor_Set_Goal_Number(kActorIzo, 2); + takePhotoAndRunAway(); } end = true; } - if (answer == 1060) { + if (answer == 1060) { // GRIGORIAN 2 Dialogue_Menu_Remove_From_List(1060); Actor_Says(kActorMcCoy, 1095, 15); Actor_Says_With_Pause(kActorMcCoy, 1100, 1.2f, 18); @@ -400,34 +391,26 @@ void SceneScriptHC01::sub_402384() { Actor_Says(kActorMcCoy, 1210, 16); Actor_Modify_Friendliness_To_Other(kActorIzo, kActorMcCoy, -4); if (Actor_Query_Friendliness_To_Other(kActorIzo, kActorMcCoy) < 47) { - Actor_Set_Goal_Number(kActorIzo, 1); - Player_Loses_Control(); - Actor_Says(kActorIzo, 90, 3); - Actor_Face_Actor(kActorIzo, kActorMcCoy, true); - Actor_Says(kActorIzo, 100, 3); - Actor_Says(kActorIzo, 110, 3); - Actor_Says_With_Pause(kActorMcCoy, 1050, 0.2f, 3); - Actor_Says(kActorIzo, 120, 3); - Actor_Set_Goal_Number(kActorIzo, 2); + takePhotoAndRunAway(); } end = true; } - if (answer == 100) { + if (answer == 100) { // DONE end = true; } } while (!end); } -void SceneScriptHC01::sub_40346C() { - Actor_Set_Goal_Number(kActorIzo, 1); +void SceneScriptHC01::takePhotoAndRunAway() { + Actor_Set_Goal_Number(kActorIzo, kGoalIzoPrepareCamera); Player_Loses_Control(); - Actor_Says(kActorIzo, 90, 3); + Actor_Says(kActorIzo, 90, kAnimationModeTalk); Actor_Face_Actor(kActorIzo, kActorMcCoy, true); - Actor_Says(kActorIzo, 100, 3); - Actor_Says(kActorIzo, 110, 3); - Actor_Says_With_Pause(kActorMcCoy, 1050, 0.2f, 3); - Actor_Says(kActorIzo, 120, 3); - Actor_Set_Goal_Number(kActorIzo, 2); + Actor_Says(kActorIzo, 100, kAnimationModeTalk); + Actor_Says(kActorIzo, 110, kAnimationModeTalk); + Actor_Says_With_Pause(kActorMcCoy, 1050, 0.2f, kAnimationModeTalk); + Actor_Says(kActorIzo, 120, kAnimationModeTalk); + Actor_Set_Goal_Number(kActorIzo, kGoalIzoTakePhoto); } } // End of namespace BladeRunner |