aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene/hc01.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/scene/hc01.cpp')
-rw-r--r--engines/bladerunner/script/scene/hc01.cpp199
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