bool SceneScriptCT04::ClickedOnActor(int actorId) { if (actorId == 12) { if (Game_Flag_Query(169)) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, 1, false)) { Actor_Voice_Over(290, kActorVoiceOver); Actor_Voice_Over(300, kActorVoiceOver); Actor_Voice_Over(310, kActorVoiceOver); } } else { Actor_Set_Targetable(kActorTransient, false); if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorTransient, 36, 1, false)) { Actor_Face_Actor(kActorMcCoy, kActorTransient, true); if (!Game_Flag_Query(137)) { if (Game_Flag_Query(40)) { Actor_Says(kActorMcCoy, 435, 3); Actor_Set_Goal_Number(kActorTransient, 2); } else { Music_Stop(3); Actor_Says(kActorMcCoy, 425, 3); Actor_Says(kActorTransient, 0, 13); sub_401D4C(); Actor_Set_Goal_Number(kActorTransient, 2); } Game_Flag_Set(137); } else { Actor_Face_Actor(kActorMcCoy, kActorTransient, true); Actor_Says(kActorMcCoy, 435, 3); } } } return true; } return false; }
void SceneScriptNR04::sub_401DB0() { Dialogue_Menu_Clear_List(); DM_Add_To_List(1530, 10, 5, 3); DM_Add_To_List(1540, 3, 5, 10); Dialogue_Menu_Appear(320, 240); int answer = Dialogue_Menu_Query_Input(); Dialogue_Menu_Disappear(); if (answer == 1530) { Loop_Actor_Walk_To_Actor(kActorEarlyQ, kActorMcCoy, 36, 0, false); Actor_Change_Animation_Mode(kActorMcCoy, 23); Actor_Change_Animation_Mode(kActorEarlyQ, 23); Delay(1500); Actor_Says(kActorEarlyQ, 300, 3); Actor_Change_Animation_Mode(kActorMcCoy, 0); Actor_Change_Animation_Mode(kActorEarlyQ, 0); Actor_Says(kActorEarlyQ, 310, 3); ADQ_Add(kActorMcCoy, 3450, 3); Actor_Set_Targetable(kActorEarlyQ, false); Actor_Set_Goal_Number(kActorEarlyQ, 217); Actor_Clue_Lose(kActorMcCoy, kClueEarlyQsClub); Scene_Exits_Enable(); } else if (answer == 1540) { Actor_Says(kActorMcCoy, 8512, 15); Actor_Says(kActorEarlyQ, 320, 12); Actor_Says(kActorMcCoy, 3455, 13); Actor_Says(kActorEarlyQ, 330, 15); Actor_Says(kActorMcCoy, 3460, 12); Actor_Says(kActorEarlyQ, 340, 12); Actor_Says(kActorMcCoy, 3465, 12); Actor_Says(kActorEarlyQ, 350, 16); Actor_Set_Targetable(kActorEarlyQ, false); Actor_Set_Goal_Number(kActorEarlyQ, 217); Scene_Exits_Enable(); } }
bool SceneScriptRC01::ClickedOnItem(int itemId, bool a2) { if (itemId == kItemChromeDebris) { 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); Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); Actor_Says(kActorOfficerLeary, 20, 12); Game_Flag_Set(kFlagRC01ChromeDebrisTaken); Item_Remove_From_World(kItemChromeDebris); Item_Pickup_Spin_Effect(938, 426, 316); I_Sez("JM: Chrome...is that what that is?"); Actor_Says(kActorMcCoy, 4505, 13); ADQ_Flush(); ADQ_Add(kActorOfficerLeary, 30, -1); ADQ_Add(kActorMcCoy, 4510, 13); I_Sez("JM: It's hard to imagine that thing on either a car or a horse."); I_Sez("MG: McCoy! What a witty chap..."); I_Sez("JM: He keeps me chuckling non-stop!\n"); Loop_Actor_Walk_To_Actor(kActorOfficerLeary, kActorMcCoy, 36, 0, false); } return true; } return false; }
bool SceneScriptRC01::ClickedOnActor(int actorId) { if (actorId == kActorOfficerLeary && Global_Variable_Query(kVariableChapter) == 1) { 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) == kGoalOfficerLearyRC01WalkToCrowd) { Actor_Set_Goal_Number(kActorOfficerLeary, kGoalOfficerLearyDefault); } if (Game_Flag_Query(kFlagRC01GotOfficersStatement)) { Actor_Says(kActorMcCoy, 4535, 13); Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyTalking); if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewA) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewA)) { Actor_Face_Object(kActorOfficerLeary, "70_1", true); Actor_Says(kActorOfficerLeary, 100, 15); Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewA, true, kActorOfficerLeary); Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking); } else if (Actor_Clue_Query(kActorOfficerLeary, kClueCrowdInterviewB) && !Actor_Clue_Query(kActorMcCoy, kClueCrowdInterviewB)) { Actor_Face_Object(kActorOfficerLeary, "70_5", true); Actor_Says(kActorOfficerLeary, 120, 19); Actor_Face_Actor(kActorOfficerLeary, kActorMcCoy, true); Actor_Says(kActorOfficerLeary, 130, 14); I_Sez("JM: Did it have a huge, ugly piece of chrome on it?"); Actor_Clue_Acquire(kActorMcCoy, kClueCrowdInterviewB, true, kActorOfficerLeary); Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking); } else { Actor_Says(kActorOfficerLeary, 90, 16); I_Sez("JM: This officer has a talent for vivid metaphors."); if (!Game_Flag_Query(kFlagRC01McCoyAndOfficerLearyArtMetaphor)) { I_Sez("DL: What is that supposed to mean? I didn't write this line..."); Actor_Says(kActorMcCoy, 4540, 16); Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyArtMetaphor); } Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking); } } else { I_Sez("MG: Hey, leave that officer alone. Can't you see he's busy?"); I_Sez("JM: (...mmm, donuts...)"); Game_Flag_Set(kFlagRC01GotOfficersStatement); Actor_Clue_Acquire(kActorMcCoy, kClueOfficersStatement, true, kActorOfficerLeary); Actor_Says(kActorMcCoy, 4515, 13); Game_Flag_Set(kFlagRC01McCoyAndOfficerLearyTalking); Actor_Says(kActorOfficerLeary, 40, 13); if (!Game_Flag_Query(kFlagRC02Entered)) { Actor_Says(kActorOfficerLeary, 50, 14); Actor_Says(kActorOfficerLeary, 60, 15); I_Sez("MG: It's all fun and games until someone loses a tiger cub."); Actor_Says(kActorMcCoy, 4520, 18); Actor_Says(kActorOfficerLeary, 70, 16); Actor_Says(kActorMcCoy, 4525, 14); Actor_Says(kActorOfficerLeary, 80, 18); Actor_Says(kActorMcCoy, 4530, 15); } Game_Flag_Reset(kFlagRC01McCoyAndOfficerLearyTalking); } } return true; } return false; }
bool ScriptMA02::ClickedOnActor(int actorId) { if (actorId == 66 && Actor_Query_Goal_Number(66) == 599) { if (!Loop_Actor_Walk_To_Actor(0, 66, 30, 1, false)) { Actor_Face_Actor(0, 66, true); Actor_Voice_Over(1140, 99); } } return false; }
void AIScriptGaff::CompletedMovementTrack() { if (Actor_Query_Goal_Number(kActorGaff) == kGoalGaffMA01ApproachMcCoy) { Actor_Face_Actor(kActorGaff, kActorMcCoy, true); Actor_Says(kActorGaff, 0, kAnimationModeTalk); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorGaff, 36, false, true); Actor_Face_Actor(kActorMcCoy, kActorGaff, true); Actor_Says(kActorMcCoy, 670, kAnimationModeTalk); Actor_Says(kActorGaff, 10, kAnimationModeTalk); Actor_Says(kActorMcCoy, 675, kAnimationModeTalk); if (Game_Flag_Query(kFlagZubenRetired)) { Actor_Says(kActorGaff, 50, kAnimationModeTalk); Actor_Says(kActorMcCoy, 695, kAnimationModeTalk); Actor_Says(kActorGaff, 60, kAnimationModeTalk); Actor_Says(kActorMcCoy, 700, kAnimationModeTalk); Actor_Says(kActorGaff, 70, kAnimationModeTalk); Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, true, -1); } else { Actor_Says(kActorGaff, 80, kAnimationModeTalk); Actor_Says(kActorGaff, 90, kAnimationModeTalk); Actor_Says(kActorMcCoy, 705, kAnimationModeTalk); Actor_Says(kActorGaff, 100, kAnimationModeTalk); Actor_Clue_Acquire(kActorGaff, kClueMcCoyLetZubenEscape, true, -1); } Actor_Says(kActorGaff, 20, kAnimationModeTalk); Actor_Says(kActorMcCoy, 680, kAnimationModeTalk); Actor_Says(kActorGaff, 30, kAnimationModeTalk); Actor_Says(kActorMcCoy, 685, kAnimationModeTalk); Actor_Says(kActorGaff, 40, kAnimationModeTalk); Actor_Says(kActorMcCoy, 690, kAnimationModeTalk); Actor_Clue_Acquire(kActorMcCoy, kClueGaffsInformation, true, kActorGaff); CDB_Set_Crime(kClueZuben, kCrimeMoonbusHijacking); Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, true, -1); Game_Flag_Set(kFlagGaffApproachedMcCoyAboutZuben); Player_Gains_Control(); Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA01Leave); } if (Actor_Query_Goal_Number(kActorGaff) == kGoalGaffCT12GoToSpinner) { Actor_Set_Goal_Number(kActorGaff, kGoalGaffCT12FlyAway); } if (Actor_Query_Goal_Number(kActorGaff) == kGoalGaffStartWalkingAround) { Actor_Set_Goal_Number(kActorGaff, kGoalGaffWalkAround); return;// true; } if (Actor_Query_Goal_Number(kActorGaff) == kGoalGaffWalkAround) { Actor_Set_Goal_Number(kActorGaff, kGoalGaffRepeatWalkingAround); return;// true; } if (Actor_Query_Goal_Number(kActorGaff) == kGoalGaffRepeatWalkingAround) { Actor_Set_Goal_Number(kActorGaff, kGoalGaffWalkAround); return;// true; } // return false; }
bool SceneScriptMA02::ClickedOnActor(int actorId) { if (actorId == 66 && Actor_Query_Goal_Number(kActorMaggie) == 599) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMaggie, 30, 1, false)) { Actor_Face_Actor(kActorMcCoy, kActorMaggie, true); Actor_Voice_Over(1140, kActorVoiceOver); } } return false; }
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, kGoalOfficerLearyRC01WalkToCrowd); } } }
bool SceneScriptUG05::ClickedOnExit(int exitId) { if (exitId == 0) { if (Game_Flag_Query(663) && !Game_Flag_Query(368)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -356.35f, 132.77f, -1092.36f, 0, 0, false, 0); Game_Flag_Set(361); Set_Enter(43, 40); } else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -156.72f, 3.03f, -1118.17f, 0, 1, false, 0)) { Actor_Face_Heading(kActorMcCoy, 760, false); Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 1, 0); Game_Flag_Set(361); Set_Enter(43, 40); } return true; } if (exitId == 1) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 4.0f, -11.67f, -4.0f, 0, 1, false, 0)) { Game_Flag_Set(339); Set_Enter(77, 89); } return true; } if (exitId == 2) { if (!Game_Flag_Query(662)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.37f, -1500.0f, 0, 1, false, 0)) { if (!Game_Flag_Query(522)) { Actor_Voice_Over(2600, kActorVoiceOver); Actor_Voice_Over(2610, kActorVoiceOver); Game_Flag_Set(522); } return true; } } else { int v1 = sub_4021B0(); bool v2; if (v1 == -1) { v2 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.37f, -1500.0f, 0, 1, false, 0) != 0; } else { v2 = Loop_Actor_Walk_To_Actor(kActorMcCoy, v1, 30, 1, false) != 0; } if (!v2) { sub_402218(); return true; } } } return false; }
bool SceneScriptDR04::ClickedOnActor(int actorId) { if ( actorId == kActorMoraji && !Player_Query_Combat_Mode() ) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) { if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 109, 0, true, true)) { Actor_Face_Actor(kActorMcCoy, kActorMoraji, true); Actor_Says(kActorMcCoy, 945, 13); Actor_Says(kActorMoraji, 0, kAnimationModeTalk); Actor_Says(kActorMoraji, 10, kAnimationModeTalk); Actor_Says(kActorMcCoy, 950, 13); Actor_Says(kActorMoraji, 20, kAnimationModeTalk); Actor_Says(kActorMoraji, 30, kAnimationModeTalk); Actor_Says(kActorMcCoy, 955, 13); Actor_Says_With_Pause(kActorMoraji, 40, 0.0f, kAnimationModeTalk); Actor_Says(kActorMoraji, 50, kAnimationModeTalk); Actor_Clue_Acquire(kActorMcCoy, kClueMorajiInterview, true, kActorMoraji); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie); Actor_Set_Goal_Number(kActorOfficerGrayford, 101); // Grayford arrives at scene of Moraji corpse return true; } } if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDead) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMoraji, 36, true, false)) { #if BLADERUNNER_ORIGINAL_BUGS Actor_Set_Goal_Number(kActorOfficerGrayford, 106); #else // bugfix: original code would result in this conversation repeating multiple times if: // Officer Grayford is at 103 goal (asking "What do you know about this?"... // and the player skips the conversation fast. // So ask about a sheet (goal 106) for Moraji only when Grayford starts patrolling (104, 105 goals) if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 104 || Actor_Query_Goal_Number(kActorOfficerGrayford) == 105 ) { Actor_Set_Goal_Number(kActorOfficerGrayford, 106); // This goal reverts to the previous one after finishing up } #endif // BLADERUNNER_ORIGINAL_BUGS return true; } } } return false; }
bool ScriptTB06::ClickedOnActor(int actorId) { if (actorId == 21 && !Loop_Actor_Walk_To_Actor(0, 21, 24, 1, false)) { if (Actor_Clue_Query(0, 49)) { Actor_Says(0, 8665, 13); return false; } Actor_Voice_Over(2300, 99); Actor_Voice_Over(2310, 99); Item_Pickup_Spin_Effect(974, 66, 397); Actor_Voice_Over(2320, 99); if (Game_Flag_Query(48)) { Actor_Voice_Over(2330, 99); Actor_Voice_Over(2340, 99); } Actor_Voice_Over(2350, 99); Actor_Clue_Acquire(0, 49, 1, -1); return true; } return false; }
void SceneScriptCT12::PlayerWalkedIn() { if (Global_Variable_Query(kVariableChapter) < 2 && !Game_Flag_Query(64) && Actor_Query_Goal_Number(kActorGaff) == 1) { Player_Loses_Control(); Loop_Actor_Walk_To_Actor(kActorGaff, kActorMcCoy, 48, 0, false); Actor_Face_Actor(kActorGaff, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorGaff, true); Actor_Says(kActorGaff, 0, 3); Actor_Says(kActorMcCoy, 670, 3); Actor_Says(kActorGaff, 10, 3); Actor_Says(kActorMcCoy, 675, 3); Actor_Says(kActorGaff, 20, 3); Actor_Says(kActorMcCoy, 680, 3); Actor_Says(kActorGaff, 30, 3); Actor_Says(kActorMcCoy, 685, 3); Actor_Says(kActorGaff, 40, 3); Actor_Says(kActorMcCoy, 690, 3); Actor_Clue_Acquire(kActorMcCoy, kClueGaffsInformation, 1, kActorGaff); Game_Flag_Set(64); CDB_Set_Crime(kClueZuben, kCrimeMoonbusHijacking); if (Game_Flag_Query(64) && Game_Flag_Query(40)) { Actor_Says(kActorGaff, 50, 3); Actor_Says(kActorMcCoy, 695, 3); Actor_Says(kActorGaff, 60, 3); Actor_Says(kActorMcCoy, 700, 3); Actor_Says(kActorGaff, 70, 3); Actor_Clue_Acquire(kActorGaff, kClueMcCoyRetiredZuben, 1, -1); } else if (Game_Flag_Query(64) && Game_Flag_Query(kFlagZubenSpared)) { Actor_Says(kActorGaff, 80, 3); Actor_Says(kActorGaff, 90, 3); Actor_Says(kActorMcCoy, 705, 3); Actor_Says(kActorGaff, 100, 3); Actor_Clue_Acquire(kActorGaff, kClueMcCoyLetZubenEscape, 1, -1); } Actor_Set_Goal_Number(kActorGaff, 2); } if (Game_Flag_Query(86)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -520.0f, -6.5f, 1103.0f, 0, 0, false, 0); Game_Flag_Reset(86); } }
void ScriptCT12::PlayerWalkedIn() { if (Global_Variable_Query(1) < 2 && !Game_Flag_Query(64) && Actor_Query_Goal_Number(53) == 1) { Player_Loses_Control(); Loop_Actor_Walk_To_Actor(53, 0, 48, 0, false); Actor_Face_Actor(53, 0, true); Actor_Face_Actor(0, 53, true); Actor_Says(53, 0, 3); Actor_Says(0, 670, 3); Actor_Says(53, 10, 3); Actor_Says(0, 675, 3); Actor_Says(53, 20, 3); Actor_Says(0, 680, 3); Actor_Says(53, 30, 3); Actor_Says(0, 685, 3); Actor_Says(53, 40, 3); Actor_Says(0, 690, 3); Actor_Clue_Acquire(0, 33, 1, 53); Game_Flag_Set(64); CDB_Set_Crime(20, 8); if (Game_Flag_Query(64) && Game_Flag_Query(40)) { Actor_Says(53, 50, 3); Actor_Says(0, 695, 3); Actor_Says(53, 60, 3); Actor_Says(0, 700, 3); Actor_Says(53, 70, 3); Actor_Clue_Acquire(53, 222, 1, -1); } else if (Game_Flag_Query(64) && Game_Flag_Query(41)) { Actor_Says(53, 80, 3); Actor_Says(53, 90, 3); Actor_Says(0, 705, 3); Actor_Says(53, 100, 3); Actor_Clue_Acquire(53, 215, 1, -1); } Actor_Set_Goal_Number(53, 2); } if (Game_Flag_Query(86)) { Loop_Actor_Walk_To_XYZ(0, -520.0f, -6.5f, 1103.0f, 0, 0, false, 0); Game_Flag_Reset(86); } }
bool SceneScriptUG05::ClickedOnActor(int actorId) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, actorId, 30, 1, false)) { Actor_Face_Actor(kActorMcCoy, actorId, true); int v1 = sub_4021B0(); if (actorId == kActorOfficerGrayford && Game_Flag_Query(368) && !Game_Flag_Query(683)) { Actor_Says(kActorOfficerGrayford, 220, -1); Actor_Says(kActorMcCoy, 5540, 14); Actor_Says(kActorOfficerGrayford, 230, -1); Actor_Says(kActorMcCoy, 5545, 17); Actor_Says(kActorOfficerGrayford, 240, -1); Actor_Says(kActorMcCoy, 5550, 3); Game_Flag_Set(683); return false; } if (actorId == v1) { sub_402218(); return true; } return false; } return false; }
bool SceneScriptCT06::ClickedOnActor(int actorId) { if (actorId == 19) { Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorZuben, 24, 1, false); Actor_Face_Actor(kActorMcCoy, kActorZuben, true); if (Game_Flag_Query(145)) { Actor_Says(kActorMcCoy, 8570, 13); return false; } Actor_Clue_Acquire(kActorMcCoy, kClueZuben, 1, -1); Item_Pickup_Spin_Effect(984, 340, 369); Actor_Voice_Over(350, kActorVoiceOver); Actor_Voice_Over(360, kActorVoiceOver); Actor_Voice_Over(370, kActorVoiceOver); if (!Game_Flag_Query(kFlagDirectorsCut)) { Actor_Voice_Over(380, kActorVoiceOver); Actor_Voice_Over(390, kActorVoiceOver); Actor_Voice_Over(400, kActorVoiceOver); Actor_Voice_Over(410, kActorVoiceOver); } Game_Flag_Set(145); return true; } return false; }
bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalClovisDefault: AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 33, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case kGoalClovisBB11WalkToMcCoy: AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 319, 0); AI_Movement_Track_Append(kActorClovis, 320, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case kGoalClovisBB11StopSadik: Actor_Start_Speech_Sample(kActorClovis, 0); AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 321, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case kGoalClovisBB11TalkWithSadik: Actor_Set_Goal_Number(kActorSadik, kGoalSadikBB11TalkWithClovis); Actor_Says(kActorClovis, 10, 15); Actor_Says(kActorSadik, 0, kAnimationModeTalk); Actor_Face_Actor(kActorClovis, kActorSadik, true); Actor_Says(kActorClovis, 20, 13); Actor_Says(kActorClovis, 30, 12); Actor_Face_Actor(kActorSadik, kActorClovis, true); Actor_Says(kActorSadik, 10, kAnimationModeTalk); Actor_Says(kActorClovis, 40, 17); Actor_Says(kActorSadik, 20, kAnimationModeTalk); Actor_Face_Actor(kActorClovis, kActorMcCoy, true); Actor_Face_Actor(kActorSadik, kActorMcCoy, true); Actor_Says(kActorClovis, 50, 14); Actor_Change_Animation_Mode(kActorClovis, kAnimationModeSit); return true; case kGoalClovisBB11TalkToMcCoy: Actor_Says(kActorClovis, 60, 30); Actor_Says(kActorSadik, 30, kAnimationModeTalk); Actor_Says(kActorClovis, 70, 30); Actor_Says(kActorClovis, 80, 30); Actor_Change_Animation_Mode(kActorClovis, 29); Actor_Says(kActorSadik, 40, kAnimationModeTalk); Actor_Says(kActorSadik, 50, kAnimationModeTalk); Actor_Says(kActorClovis, 90, 13); Actor_Face_Current_Camera(5, true); Actor_Says(kActorClovis, 100, 17); Delay(1000); if (!Game_Flag_Query(kFlagSadikIsReplicant)) { Actor_Clue_Acquire(kActorMcCoy, kClueStaggeredbyPunches, true, kActorSadik); } Game_Flag_Set(kFlagNotUsed383); Game_Flag_Reset(kFlagBB11SadikFight); Global_Variable_Set(kVariableChapter, 3); Actor_Set_Goal_Number(kActorClovis, 200); Actor_Set_Goal_Number(kActorSadik, 200); Actor_Clue_Acquire(kActorMcCoy, kClueAct2Ended, true, -1); Player_Gains_Control(); Chapter_Enter(3, kSetCT08_CT51_UG12, kSceneCT08); Game_Flag_Set(kFlagMcCoyTiedDown); Game_Flag_Set(kFlagChapter3Intro); return true; case 300: Actor_Put_In_Set(kActorClovis, kSetUG18); Actor_Set_At_XYZ(kActorClovis, -52.26f, 0.0f, 611.02f, 900); Actor_Change_Animation_Mode(kActorClovis, kAnimationModeIdle); return true; case 301: case 302: case 303: case 310: return true; case 350: Actor_Put_In_Set(kActorClovis, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorClovis, 33, 0); return true; case 400: AI_Movement_Track_Flush(kActorClovis); Actor_Put_In_Set(kActorClovis, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorClovis, 33, 0); return true; case 401: AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 341, 0); AI_Movement_Track_Append(kActorClovis, 342, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case 402: Player_Loses_Control(); Actor_Force_Stop_Walking(kActorMcCoy); Actor_Face_Actor(kActorMcCoy, kActorClovis, 1); Loop_Actor_Walk_To_Actor(kActorClovis, kActorMcCoy, 48, 0, 1); Actor_Face_Actor(kActorClovis, kActorMcCoy, 1); Actor_Change_Animation_Mode(kActorClovis, 6); if (Player_Query_Combat_Mode()) { Actor_Change_Animation_Mode(kActorMcCoy, 49); } else { Actor_Change_Animation_Mode(kActorMcCoy, 48); } Delay(3000); Actor_Retired_Here(kActorMcCoy, 12, 48, 1, kActorClovis); return true; case 500: Actor_Set_Goal_Number(kActorClovis, 510); return true; case 510: if (Game_Flag_Query(653)) { Actor_Set_Goal_Number(kActorClovis, 513); } else { Actor_Set_Goal_Number(kActorClovis, 511); Game_Flag_Set(685); } return true; case 511: Actor_Put_In_Set(kActorClovis, kSetKP05_KP06); Actor_Set_At_XYZ(kActorClovis, -1072.0f, 8.26f, -708.0f, 530); return true; case 512: Actor_Says(kActorClovis, 110, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2255, kAnimationModeTalk); Actor_Says(kActorClovis, 120, kAnimationModeTalk); Actor_Says(kActorClovis, 130, kAnimationModeTalk); Actor_Says(kActorClovis, 140, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2260, kAnimationModeTalk); Actor_Says(kActorClovis, 150, kAnimationModeTalk); Actor_Set_Goal_Number(kActorClovis, 513); return true; case 513: Actor_Put_In_Set(kActorClovis, kSetKP07); Actor_Set_Targetable(kActorClovis, true); if (Game_Flag_Query(653)) { Global_Variable_Set(kVariableReplicants, 0); Global_Variable_Increment(kVariableReplicants, 1); Actor_Set_At_XYZ(kActorClovis, 45.0f, -41.52f, -85.0f, 750); } else { Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800); Actor_Face_Heading(kActorClovis, 1022, false); } someAnim(); return true; case 514: Actor_Says(kActorMcCoy, 2345, 16); Actor_Says(kActorClovis, 170, -1); Actor_Says(kActorClovis, 180, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2350, 17); if (!Game_Flag_Query(714)) { Actor_Says(kActorMcCoy, 2355, 11); } Actor_Says(kActorClovis, 190, -1); Actor_Says(kActorClovis, 200, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2360, 18); Actor_Says(kActorClovis, 210, kAnimationModeTalk); Actor_Says(kActorClovis, 220, -1); Actor_Set_Goal_Number(kActorClovis, 515); return true; case 515: ADQ_Add(kActorClovis, 240, -1); ADQ_Add(kActorClovis, 250, -1); ADQ_Add(kActorClovis, 260, -1); ADQ_Add(kActorClovis, 270, -1); ADQ_Add_Pause(1000); ADQ_Add(kActorClovis, 280, -1); ADQ_Add(kActorClovis, 290, -1); ADQ_Add(kActorClovis, 300, -1); return true; case 516: Actor_Says(kActorMcCoy, 8501, kAnimationModeTalk); Actor_Says(kActorClovis, 1260, kAnimationModeTalk); Actor_Says(kActorMcCoy, 8502, kAnimationModeTalk); Actor_Says(kActorClovis, 1270, kAnimationModeTalk); Actor_Says(kActorMcCoy, 8504, kAnimationModeTalk); Actor_Says(kActorClovis, 1290, kAnimationModeTalk); Actor_Says(kActorMcCoy, 8505, kAnimationModeTalk); Actor_Says(kActorClovis, 1300, kAnimationModeTalk); Actor_Says(kActorClovis, 1310, kAnimationModeTalk); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(kOuttakeEnd4A, 0, -1); if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy && Game_Flag_Query(kFlagLucyIsReplicant) ) { Outtake_Play(kOuttakeEnd4B, 0, -1); } else if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsDektora && Game_Flag_Query(kFlagDektoraIsReplicant) ) { Outtake_Play(kOuttakeEnd4C, 0, -1); } Outtake_Play(kOuttakeEnd4D, 0, -1); Game_Over(); return true; case 517: if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLucy, kSetKP07)) { Actor_Set_Goal_Number(kActorLucy, 599); Global_Variable_Decrement(kVariableReplicants, 1); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLuther, kSetKP07)) { Actor_Set_Goal_Number(kActorLuther, 599); Global_Variable_Decrement(kVariableReplicants, 1); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorDektora, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorDektora, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorZuben, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorZuben, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorSadik, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorIzo, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorIzo, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorGordo, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorGordo, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorClovis, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorClovis, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } return true; case 518: Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800); Actor_Face_Heading(kActorClovis, 1022, false); Actor_Set_Targetable(kActorClovis, true); Game_Flag_Set(685); someAnim(); return true; default: break; } return false; }
bool ScriptNR11::ClickedOn3DObject(const char *objectName, bool a2) { if (Object_Query_Click("CLOTHING02", objectName) || Object_Query_Click("BOX27", objectName) || Object_Query_Click("BOX39", objectName) || Object_Query_Click("BOX44", objectName) || Object_Query_Click("DRESS", objectName) || Object_Query_Click("COATRACK", objectName) || Object_Query_Click("COLUMN3 DETS", objectName) || Object_Query_Click("COLUMN PIPE01", objectName) || Object_Query_Click("RECTANGLE02", objectName) || Object_Query_Click("COLUMN04", objectName) || Object_Query_Click("COATRACK01", objectName) || Object_Query_Click("SHIRT", objectName) || Object_Query_Click("SKIRT 02", objectName) || Object_Query_Click("CLOTHING B 03", objectName) || Object_Query_Click("BUST BUST", objectName)) { if (a2) { Actor_Set_Goal_Number(1, 211); Scene_Exits_Disable(); sub_4028EC(); Player_Loses_Control(); if (!Player_Query_Combat_Mode()) { Player_Set_Combat_Mode(true); } Actor_Set_Goal_Number(0, 230); Scene_Loop_Set_Default(3); Scene_Loop_Start_Special(2, 2, 1); } else if (Actor_Query_Goal_Number(3) == 250) { if (!Loop_Actor_Walk_To_XYZ(0, 24.0f, 0.33f, 0.0f, 0, 1, false, 0)) { Actor_Face_XYZ(0, -180.0f, 0.0f, -170.0f, true); sub_4028EC(); Actor_Set_Goal_Number(1, 211); if (Actor_Query_Friendliness_To_Other(3, 0) < 30) { Actor_Set_At_XYZ(3, 0.5f, 0.33f, -162.0f, 0); Loop_Actor_Walk_To_XYZ(3, -24.0f, 0.33f, -35.4f, 0, 0, true, 0); Actor_Face_Actor(0, 3, true); Actor_Change_Animation_Mode(3, 71); Delay(500); Actor_Change_Animation_Mode(0, 48); Delay(2000); Actor_Set_Goal_Number(0, 231); } else { Actor_Says(0, 3840, 18); Delay(1000); if (Actor_Query_Friendliness_To_Other(3, 0) > 59 && !Global_Variable_Query(45)) { Music_Play(21, 35, 0, 3, -1, 0, 0); } Loop_Actor_Walk_To_XYZ(3, -135.0f, 0.33000001f, -267.0f, 0, 0, false, 0); Actor_Face_Actor(3, 0, true); Actor_Face_Actor(0, 3, true); Actor_Clue_Acquire(0, 107, 1, 3); Actor_Says(3, 990, 13); Actor_Says(3, 1000, 14); Loop_Actor_Walk_To_Actor(3, 0, 108, 0, false); Actor_Says(0, 3845, 13); Actor_Says(0, 3850, 15); Actor_Says(3, 1010, 14); Actor_Says(0, 3855, 13); Actor_Says(3, 1020, 12); Actor_Says(0, 3860, 12); Actor_Says_With_Pause(3, 1030, 1.0f, 14); Actor_Says(3, 1040, 13); Actor_Says(0, 3865, 15); Actor_Says_With_Pause(3, 1050, 0.80000001f, 14); Actor_Says(3, 1060, 13); Actor_Says(0, 3870, 3); Actor_Says(3, 1070, 14); Actor_Modify_Friendliness_To_Other(3, 0, 5); if (Actor_Query_Friendliness_To_Other(3, 0) > 55 && !Global_Variable_Query(45)) { Global_Variable_Set(45, 2); Actor_Says(3, 1130, 17); Actor_Says(0, 6365, 12); Actor_Says(3, 1140, 14); Actor_Says(0, 6370, 14); Actor_Says(3, 1150, 12); Actor_Says(3, 1160, 16); } Actor_Says(3, 1080, 13); Actor_Says(0, 3875, 14); Actor_Says(3, 1090, 17); Music_Stop(4); Actor_Set_Goal_Number(3, 260); if (Global_Variable_Query(40) == 1) { Actor_Set_Goal_Number(1, 236); } Game_Flag_Set(591); } } else { if (Random_Query(1, 2) == 1) { Actor_Says(0, 8575, 14); } else { Actor_Says(0, 8580, 14); } } } return true; } return false; }
bool ScriptHF01::ClickedOnActor(int actorId) { int v1; if (Global_Variable_Query(45) == 2) { v1 = 3; } else if (Global_Variable_Query(45) == 3) { v1 = 6; } else { v1 = -1; } if (actorId == 22 || actorId == 31) { if (!Loop_Actor_Walk_To_XYZ(0, 504.04f, 8.0f, -242.17f, 12, 1, false, 0)) { ADQ_Flush(); Actor_Face_Actor(0, 31, true); if (Game_Flag_Query(382)) { sub_4026B4(); } else { Actor_Says(0, 1455, 15); Actor_Says(31, 40, 13); Actor_Says(0, 1460, 13); Actor_Says(31, 50, 12); Item_Pickup_Spin_Effect(951, 396, 359); Actor_Face_Heading(31, 271, false); Actor_Says(31, 60, 12); Actor_Says(0, 1465, 15); Actor_Face_Actor(31, 0, true); Actor_Says(31, 70, 13); Actor_Says(0, 1470, 14); Actor_Says(22, 30, 3); Actor_Says(31, 80, 15); Actor_Says(22, 50, 3); Actor_Says(31, 110, 14); Game_Flag_Set(382); } return true; } return false; } if (actorId == v1) { if (!Loop_Actor_Walk_To_Actor(0, actorId, 28, 1, false)) { if (Actor_Query_Goal_Number(v1) == 599) { Actor_Says(0, 8630, 13); return true; } if (Global_Variable_Query(1) == 5 && (Actor_Clue_Query(0, 139) || Actor_Clue_Query(0, 141)) && !Game_Flag_Query(165) && Actor_Query_Goal_Number(9) != 2 && Game_Flag_Query(653) && !Game_Flag_Query(662)) { Game_Flag_Set(662); Actor_Face_Actor(0, v1, true); Actor_Face_Actor(v1, 0, true); if (v1 == 3) { sub_4032DC(); } else if (v1 == 6) { sub_403484(); } Async_Actor_Walk_To_XYZ(v1, -175.0f, 8.0f, -617.0f, 0, false); Loop_Actor_Walk_To_XYZ(0, -137.0f, 8.0f, -577.0f, 0, 0, false, 1); Game_Flag_Set(312); Set_Enter(41, 38); } } } return false; }
bool AIScriptGaff::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalGaffCT12WaitForMcCoy: Actor_Put_In_Set(kActorGaff, kSetCT01_CT12); Actor_Set_At_Waypoint(kActorGaff, 43, 0); return true; case kGoalGaffCT12GoToSpinner: AI_Movement_Track_Append(kActorGaff, 123, 1); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffMA01ApproachMcCoy: Player_Loses_Control(); AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 124, 0); AI_Movement_Track_Append(kActorGaff, 126, 0); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffMA01Leave: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 124, 0); AI_Movement_Track_Append(kActorGaff, 35, 0); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffCT12Leave: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 35, 90); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffCT12FlyAway: Game_Flag_Reset(kFlagCT12GaffSpinner); Scene_Loop_Set_Default(2); Scene_Loop_Start_Special(kSceneLoopModeOnce, 6, true); return true; case kGoalGaffStartWalkingAround: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 35, 300); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffWalkAround: { AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 82, 1); AI_Movement_Track_Append(kActorGaff, 76, 1); AI_Movement_Track_Append(kActorGaff, 78, 1); int rnd = Random_Query(1, 3); if (rnd == 1) { AI_Movement_Track_Append(kActorGaff, 271, 0); AI_Movement_Track_Append(kActorGaff, 272, 0); AI_Movement_Track_Append(kActorGaff, 273, 0); } else if (rnd == 2) { AI_Movement_Track_Append(kActorGaff, 273, 0); AI_Movement_Track_Append(kActorGaff, 272, 0); AI_Movement_Track_Append(kActorGaff, 271, 0); } else if (rnd == 3) { AI_Movement_Track_Append(kActorGaff, 272, 0); AI_Movement_Track_Append(kActorGaff, 273, 0); } AI_Movement_Track_Append(kActorGaff, 274, 0); AI_Movement_Track_Append(kActorGaff, 275, 0); AI_Movement_Track_Repeat(kActorGaff); } return true; case kGoalGaffRepeatWalkingAround: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 35, 90); AI_Movement_Track_Repeat(kActorGaff); return true; case 299: AI_Movement_Track_Flush(kActorGaff); Actor_Put_In_Set(kActorGaff, kSetFreeSlotC); Actor_Set_At_Waypoint(kActorGaff, 35, 0); return true; case kGoalGaffMA07Wait: Player_Loses_Control(); Actor_Put_In_Set(kActorGaff, kSetMA07); Actor_Set_At_XYZ(kActorGaff, -102.54f, -172.43f, 463.18f, 1015); Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07TalkToMcCoy); return true; case kGoalGaffMA07TalkToMcCoy: Game_Flag_Set(kFlagMA07GaffTalk); Actor_Face_Actor(kActorGaff, kActorMcCoy, true); Actor_Says(kActorGaff, 110, 12); Actor_Face_Actor(kActorMcCoy, kActorGaff, true); Actor_Says(kActorMcCoy, 2945, 14); Loop_Actor_Walk_To_Actor(kActorGaff, kActorMcCoy, 180, false, false); Actor_Says(kActorGaff, 120, 16); Actor_Says(kActorGaff, 130, 13); Actor_Says(kActorMcCoy, 2950, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2955, 16); Actor_Says_With_Pause(kActorGaff, 140, 1.0f, 14); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorGaff, 36, false, false); Actor_Says(kActorGaff, 150, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2960, 12); Actor_Says_With_Pause(kActorGaff, 160, 1.0f, 16); Actor_Says(kActorMcCoy, 2965, 13); Actor_Says_With_Pause(kActorGaff, 170, 1.0f, kAnimationModeTalk); Actor_Says_With_Pause(kActorGaff, 180, 1.0f, 12); Actor_Says(kActorGaff, 190, 14); Actor_Says(kActorGaff, 200, 15); Async_Actor_Walk_To_XYZ(kActorGaff, -388.44f, -162.8f, 165.08f, false, false); Delay(4000); Player_Gains_Control(); Actor_Start_Speech_Sample(kActorGaff, 210); Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07Left); return true; case kGoalGaffMA07Left: return true; case kGoalGaffMA07ShootMcCoy: Actor_Face_Actor(kActorGaff, kActorMcCoy, true); Actor_Change_Animation_Mode(kActorGaff, kAnimationModeCombatAttack); Sound_Play(kSfxSMCAL3, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 12, 12, true, -1); return true; case kGoalGaffGone: AI_Movement_Track_Flush(kActorGaff); Actor_Put_In_Set(kActorGaff, kSetKP05_KP06); Actor_Set_At_XYZ(kActorGaff, -782.15f, 8.26f, -263.64f, 52); return true; } return false; }
bool SceneScriptAR01::ClickedOnExit(int exitId) { if (exitId == kAR01ExitHC01) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -358.0, 0.0, -149.0, 0, true, false, false)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -477.0, 0.0, -149.0, 0, false, false, false); Game_Flag_Set(kFlagAR01toHC01); Game_Flag_Set(kFlagHC01GuzzaPrepare); Game_Flag_Reset(kFlagMcCoyInAnimoidRow); Game_Flag_Set(kFlagMcCoyInHawkersCircle); Set_Enter(kSetHC01_HC02_HC03_HC04, kSceneHC01); Actor_Set_Goal_Number(kActorFishDealer, 3); } return true; } if (exitId == kAR01ExitAR02) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -182.0, 0.0, -551.0, 0, true, false, false)) { Game_Flag_Set(kFlagAR01toAR02); Async_Actor_Walk_To_XYZ(kActorMcCoy, -222.0, 0.0, -690.0, 0, false); Set_Enter(kSetAR01_AR02, kSceneAR02); #if BLADERUNNER_ORIGINAL_BUGS // Causes the fish dealer to blink out of existence // during the transition to AR02 Actor_Set_Goal_Number(kActorFishDealer, 3); #endif // BLADERUNNER_ORIGINAL_BUGS } return true; } if (exitId == kAR01ExitSpinner) { if (Game_Flag_Query(kFlagDNARowAvailable)) { Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationDNARow, true); } int v1 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -164.0f, 0.0f, 332.0f, 0, true, false, false); Actor_Face_Heading(kActorMcCoy, 545, false); if (Actor_Query_Goal_Number(kActorIzo) >= kGoalIzoTakePhoto && Actor_Query_Goal_Number(kActorIzo) <= kGoalIzoEscape ) { Player_Loses_Control(); Actor_Put_In_Set(kActorIzo, kSetAR01_AR02); Actor_Set_At_XYZ(kActorIzo, -448.0, 0.0, 130.0, 0); Loop_Actor_Walk_To_XYZ(kActorIzo, -323.0f, 0.64f, 101.74f, 48, false, true, false); Loop_Actor_Walk_To_Actor(kActorIzo, kActorMcCoy, 48, false, true); Actor_Face_Actor(kActorIzo, kActorMcCoy, true); Actor_Change_Animation_Mode(kActorIzo, kAnimationModeCombatAttack); Actor_Says(kActorMcCoy, 1800, 21); Actor_Change_Animation_Mode(kActorMcCoy, 48); Player_Gains_Control(); Actor_Retired_Here(kActorMcCoy, 12, 48, 1, kActorIzo); } else if (!v1) { if ( Game_Flag_Query(kFlagDNARowAvailable) && !Game_Flag_Query(kFlagDNARowAvailableTalk) ) { Actor_Voice_Over(4310, kActorVoiceOver); Actor_Voice_Over(4320, kActorVoiceOver); Actor_Voice_Over(4330, kActorVoiceOver); Actor_Voice_Over(4340, kActorVoiceOver); Actor_Voice_Over(4350, kActorVoiceOver); Game_Flag_Set(kFlagDNARowAvailableTalk); } Game_Flag_Reset(kFlagMcCoyInChinaTown); Game_Flag_Reset(kFlagMcCoyInRunciters); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment); Game_Flag_Reset(kFlagMcCoyInPoliceStation); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding); Game_Flag_Reset(kFlagMcCoyInHysteriaHall); Game_Flag_Reset(kFlagMcCoyInAnimoidRow); int spinnerDest = Spinner_Interface_Choose_Dest(kAR01LoopDoorAnim, false); Actor_Face_Heading(kActorMcCoy, 545, false); switch (spinnerDest) { case kSpinnerDestinationPoliceStation: Game_Flag_Set(kFlagMcCoyInPoliceStation); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtPS01); Set_Enter(kSetPS01, kScenePS01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationMcCoysApartment: Game_Flag_Set(kFlagMcCoyInMcCoyApartment); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtMA01); Set_Enter(kSetMA01, kSceneMA01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationRuncitersAnimals: Game_Flag_Set(kFlagMcCoyInRunciters); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtRC01); Set_Enter(kSetRC01, kSceneRC01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationChinatown: Game_Flag_Set(kFlagMcCoyInChinaTown); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtCT01); Set_Enter(kSetCT01_CT12, kSceneCT01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationTyrellBuilding: Game_Flag_Set(kFlagMcCoyInTyrellBuilding); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtTB02); Set_Enter(kSetTB02_TB03, kSceneTB02); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationDNARow: Game_Flag_Set(kFlagMcCoyInDNARow); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationBradburyBuilding: Game_Flag_Set(kFlagMcCoyInBradburyBuilding); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtBB01); Set_Enter(kSetBB01, kSceneBB01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationNightclubRow: Game_Flag_Set(kFlagMcCoyInNightclubRow); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtNR01); Set_Enter(kSetNR01, kSceneNR01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; case kSpinnerDestinationHysteriaHall: Game_Flag_Set(kFlagMcCoyInHysteriaHall); Game_Flag_Reset(kFlagSpinnerAtAR01); Game_Flag_Set(kFlagSpinnerAtHF01); Set_Enter(kSetHF01, kSceneHF01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true); break; default: Game_Flag_Set(kFlagMcCoyInAnimoidRow); Actor_Set_Invisible(kActorMcCoy, false); break; } } return true; } return false; }
bool SceneScriptHF01::ClickedOnActor(int actorId) { int v1; if (Global_Variable_Query(kVariableAffectionTowards) == 2) { v1 = kActorDektora; } else if (Global_Variable_Query(kVariableAffectionTowards) == 3) { v1 = kActorLucy; } else { v1 = -1; } if (actorId == kActorMia || actorId == kActorMurray) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 504.04f, 8.0f, -242.17f, 12, 1, false, 0)) { ADQ_Flush(); Actor_Face_Actor(kActorMcCoy, kActorMurray, true); if (Game_Flag_Query(382)) { sub_4026B4(); } else { Actor_Says(kActorMcCoy, 1455, 15); Actor_Says(kActorMurray, 40, 13); Actor_Says(kActorMcCoy, 1460, 13); Actor_Says(kActorMurray, 50, 12); Item_Pickup_Spin_Effect(951, 396, 359); Actor_Face_Heading(kActorMurray, 271, false); Actor_Says(kActorMurray, 60, 12); Actor_Says(kActorMcCoy, 1465, 15); Actor_Face_Actor(kActorMurray, kActorMcCoy, true); Actor_Says(kActorMurray, 70, 13); Actor_Says(kActorMcCoy, 1470, 14); Actor_Says(kActorMia, 30, 3); Actor_Says(kActorMurray, 80, 15); Actor_Says(kActorMia, 50, 3); Actor_Says(kActorMurray, 110, 14); Game_Flag_Set(382); } return true; } return false; } if (v1 != -1 && actorId == v1) { if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, actorId, 28, 1, false)) { if (Actor_Query_Goal_Number(v1) == 599) { Actor_Says(kActorMcCoy, 8630, 13); return true; } if (Global_Variable_Query(kVariableChapter) == 5 && (Actor_Clue_Query(kActorMcCoy, kCluePhoneCallDektora1) || Actor_Clue_Query(kActorMcCoy, kCluePhoneCallLucy1)) && !Game_Flag_Query(165) && Actor_Query_Goal_Number(kActorCrazylegs) != 2 && Game_Flag_Query(653) && !Game_Flag_Query(662)) { Game_Flag_Set(662); Actor_Face_Actor(kActorMcCoy, v1, true); Actor_Face_Actor(v1, kActorMcCoy, true); if (v1 == kActorDektora) { sub_4032DC(); } else if (v1 == kActorLucy) { sub_403484(); } Async_Actor_Walk_To_XYZ(v1, -175.0f, 8.0f, -617.0f, 0, false); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -137.0f, 8.0f, -577.0f, 0, 0, false, 1); Game_Flag_Set(312); Set_Enter(41, kSceneHF05); } } } return false; }