diff options
Diffstat (limited to 'engines/bladerunner/script/scene/rc01.cpp')
-rw-r--r-- | engines/bladerunner/script/scene/rc01.cpp | 93 |
1 files changed, 48 insertions, 45 deletions
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp index b217d030f9..1239967c53 100644 --- a/engines/bladerunner/script/scene/rc01.cpp +++ b/engines/bladerunner/script/scene/rc01.cpp @@ -54,7 +54,7 @@ void SceneScriptRC01::InitializeScene() { // Game_Flag_Set(kFlagRC01PoliceDone); // Game_Flag_Set(kFlagKIAPrivacyAddon); // Game_Flag_Set(kFlagZubenRetired); - // Game_Flag_Set(kFlagSpinnerToMA01); + // Game_Flag_Set(kFlagSpinnerAtMA01); // Set_Enter(kSetMA02_MA04, kSceneMA04); Spinner_Set_Selectable_Destination_Flag(0, true); @@ -94,7 +94,7 @@ void SceneScriptRC01::InitializeScene() { Setup_Scene_Information(-10.98f, -0.30f, 318.15f, 616); } Scene_Exit_Add_2D_Exit(kRC01ExitRC02, 314, 145, 340, 255, 0); - if (Game_Flag_Query(kFlagSpinnerToRC01)) { + if (Game_Flag_Query(kFlagSpinnerAtRC01)) { Scene_Exit_Add_2D_Exit(kRC01ExitSpinner, 482, 226, 639, 280, 2); } if (Global_Variable_Query(kVariableChapter) > 1 && Game_Flag_Query(710)) { @@ -135,7 +135,7 @@ void SceneScriptRC01::InitializeScene() { if (!Game_Flag_Query(kFlagRC02toRC01) && !Game_Flag_Query(kFlagRC03toRC01)) { Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kRC01LoopInshotNoCrowd, false); } - if (Game_Flag_Query(kFlagSpinnerToRC01)) { + if (Game_Flag_Query(kFlagSpinnerAtRC01)) { Scene_Loop_Set_Default(kRC01LoopNoCrowd); } else { Scene_Loop_Set_Default(kRC01LoopNoCrowdNoSpinner); @@ -248,14 +248,15 @@ bool SceneScriptRC01::MouseClick(int x, int y) { bool SceneScriptRC01::ClickedOn3DObject(const char *objectName, bool a2) { if (Object_Query_Click("BARICADE01", objectName) - || Object_Query_Click("BARICADE03", objectName) - || Object_Query_Click("BARICADE04", objectName) - || Object_Query_Click("70_1", objectName) - || Object_Query_Click("70_2", objectName) - || Object_Query_Click("70_3", objectName) - || Object_Query_Click("70_5", objectName) - || Object_Query_Click("70_6", objectName)) { - investigateCrowd(); + || Object_Query_Click("BARICADE03", objectName) + || Object_Query_Click("BARICADE04", objectName) + || Object_Query_Click("70_1", objectName) + || Object_Query_Click("70_2", objectName) + || Object_Query_Click("70_3", objectName) + || Object_Query_Click("70_5", objectName) + || Object_Query_Click("70_6", objectName) + ) { + interrogateCrowd(); return true; } @@ -278,7 +279,7 @@ bool SceneScriptRC01::ClickedOn3DObject(const char *objectName, bool a2) { if (!Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "DOOR LEFT", 48, true, false)) { Actor_Face_Object(kActorMcCoy, "DOOR LEFT", true); if (!Actor_Clue_Query(kActorMcCoy, kClueDoorForced2) && Actor_Query_In_Set(kActorOfficerLeary, kSetRC01) && Global_Variable_Query(kVariableChapter) > 0) { - Actor_Set_Goal_Number(kActorOfficerLeary, 0); + Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault); Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); Actor_Says(kActorOfficerLeary, 0, 12); Actor_Says(kActorMcCoy, 4495, 13); @@ -308,8 +309,8 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorOfficerLeary, 36, true, false)) { Actor_Face_Actor(kActorMcCoy, kActorOfficerLeary, true); Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); - if (Actor_Query_Goal_Number(kActorOfficerLeary) == 1) { - Actor_Set_Goal_Number(kActorOfficerLeary, 0); + if (Actor_Query_Goal_Number(kActorOfficerLeary) == kGoalOfficerLearyCrowdInterrogation) { + Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault); } if (Game_Flag_Query(kFlagGotOfficersStatement)) { Actor_Says(kActorMcCoy, 4535, 13); @@ -366,7 +367,7 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) { bool SceneScriptRC01::ClickedOnItem(int itemId, bool a2) { if (itemId == kItemChromeDebris) { - Actor_Set_Goal_Number(kActorOfficerLeary, 0); + Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault); if (!Loop_Actor_Walk_To_Item(kActorMcCoy, kItemChromeDebris, 36, true, false)) { Actor_Face_Item(kActorMcCoy, kItemChromeDebris, true); Actor_Clue_Acquire(kActorMcCoy, kClueChromeDebris, true, -1); @@ -456,8 +457,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { switch (spinnerDest) { case kSpinnerDestinationPoliceStation: Game_Flag_Set(178); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToPS01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtPS01); Set_Enter(kSetPS01, kScenePS01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -467,8 +468,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationMcCoysApartment: Game_Flag_Set(179); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToMA01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtMA01); Set_Enter(kSetMA01, kSceneMA01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -478,8 +479,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationChinatown: Game_Flag_Set(176); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToCT01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtCT01); Set_Enter(kSetCT01_CT12, kSceneCT01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -489,8 +490,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationTyrellBuilding: Game_Flag_Set(261); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToTB02); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtTB02); Set_Enter(kSetTB02_TB03, kSceneTB02); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -500,8 +501,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationAnimoidRow: Game_Flag_Set(180); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToAR01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtAR01); Set_Enter(kSetAR01_AR02, kSceneAR01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -511,8 +512,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationDNARow: Game_Flag_Set(177); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToDR01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -522,8 +523,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationBradburyBuilding: Game_Flag_Set(258); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToBB01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtBB01); Set_Enter(kSetBB01, kSceneBB01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -533,8 +534,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationNightclubRow: Game_Flag_Set(181); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToNR01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtNR01); Set_Enter(kSetNR01, kSceneNR01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -544,8 +545,8 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { break; case kSpinnerDestinationHysteriaHall: Game_Flag_Set(257); - Game_Flag_Reset(kFlagSpinnerToRC01); - Game_Flag_Set(kFlagSpinnerToHF01); + Game_Flag_Reset(kFlagSpinnerAtRC01); + Game_Flag_Set(kFlagSpinnerAtHF01); Set_Enter(kSetHF01, kSceneHF01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); @@ -572,22 +573,24 @@ bool SceneScriptRC01::ClickedOnExit(int exitId) { return false; } -void SceneScriptRC01::investigateCrowd() { - if (!Game_Flag_Query(kFlagRC01PoliceDone) && !Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "BARICADE03", 36, true, false)) { - Actor_Set_Goal_Number(kActorOfficerLeary, 0); - Actor_Face_Object(kActorMcCoy, "BARICADE03", true); - Loop_Actor_Walk_To_Actor(kActorOfficerLeary, kActorMcCoy, 36, true, false); - Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); - Actor_Says(kActorMcCoy, 4500, 14); - I_Sez("MG: We don't want any of that abstract art oozing out onto the street."); - Actor_Says(kActorOfficerLeary, 10, 14); - Actor_Set_Goal_Number(kActorOfficerLeary, 1); +void SceneScriptRC01::interrogateCrowd() { + if (!Game_Flag_Query(kFlagRC01PoliceDone)) { + if (!Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "BARICADE03", 36, true, false)) { + Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault); + Actor_Face_Object(kActorMcCoy, "BARICADE03", true); + Loop_Actor_Walk_To_Actor(kActorOfficerLeary, kActorMcCoy, 36, true, false); + Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); + Actor_Says(kActorMcCoy, 4500, 14); + I_Sez("MG: We don't want any of that abstract art oozing out onto the street."); + Actor_Says(kActorOfficerLeary, 10, 14); + Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyCrowdInterrogation); + } } } bool SceneScriptRC01::ClickedOn2DRegion(int region) { if (region == kRC01RegionCrowd) { - investigateCrowd(); + interrogateCrowd(); return true; } return false; @@ -621,7 +624,7 @@ void SceneScriptRC01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo } void SceneScriptRC01::PlayerWalkedIn() { - if (Game_Flag_Query(kFlagSpinnerToRC01) && !Game_Flag_Query(kFlagRC02toRC01) && !Game_Flag_Query(kFlagRC03toRC01)) { + if (Game_Flag_Query(kFlagSpinnerAtRC01) && !Game_Flag_Query(kFlagRC02toRC01) && !Game_Flag_Query(kFlagRC03toRC01)) { walkToCenter(); } |