void SceneScriptBB01::PlayerWalkedIn() { Spinner_Set_Selectable_Destination_Flag(7, 1); if (Game_Flag_Query(265)) { Game_Flag_Reset(265); } else if (Game_Flag_Query(263)) { Game_Flag_Reset(263); } else { Loop_Actor_Walk_To_XYZ(kActorMcCoy, 43.0f, 0.0f, 954.0f, 0, 0, false, 0); } }
void ScriptMA04::PlayerWalkedIn() { if (Game_Flag_Query(647)) { Player_Gains_Control(); } if (sub_402820() || sub_402758()) { Overlay_Play("MA04OVER", 0, 1, 0, 0); } if (Game_Flag_Query(647)) { Loop_Actor_Walk_To_XYZ(0, -7139.0f, 954.0f, 1746.0f, 0, 1, false, 0); } else if (Game_Flag_Query(35)) { Loop_Actor_Walk_To_XYZ(0, -7143.0f, 954.0f, 1868.0f, 0, 1, false, 0); } Game_Flag_Reset(35); Game_Flag_Reset(63); Game_Flag_Reset(647); if (Game_Flag_Query(61)) { if (Global_Variable_Query(1) == 2 && !Actor_Clue_Query(0, 43)) { Sound_Play(403, 100, 0, 0, 50); Loop_Actor_Walk_To_XYZ(0, -7176.0f, 954.0f, 1806.0f, 0, 0, false, 0); Actor_Face_Heading(0, 256, true); Actor_Says(0, 2680, 0); Sound_Play(123, 100, 0, 0, 50); Delay(500); Actor_Says(4, 0, 3); Actor_Says(0, 2685, 13); Actor_Says(4, 10, 3); Actor_Says(0, 2690, 17); Actor_Says(4, 30, 3); Actor_Says(0, 2695, 12); Actor_Says(4, 40, 3); Actor_Says(4, 50, 3); Actor_Says(0, 2700, 3); Actor_Says(4, 60, 3); Actor_Says(4, 70, 3); Sound_Play(123, 100, 0, 0, 50); Actor_Clue_Acquire(0, 43, 1, 4); Spinner_Set_Selectable_Destination_Flag(5, 1); Game_Flag_Set(186); if (!Game_Flag_Query(163)) { Game_Flag_Set(163); Item_Remove_From_World(66); } Actor_Set_Goal_Number(23, 99); Actor_Put_In_Set(23, 93); Actor_Set_At_Waypoint(23, 35, 0); Autosave_Game(0); } //return false; return; } if ((Game_Flag_Query(40) || Game_Flag_Query(41)) && !Game_Flag_Query(146)) { Music_Play(2, 52, 0, 2, -1, 0, 0); Player_Loses_Control(); Loop_Actor_Walk_To_XYZ(0, -7199.0f, 955.0f, 1677.0f, 0, 1, false, 0); if (sub_402820() || sub_402758()) { Overlay_Remove("MA04OVER"); } Loop_Actor_Walk_To_XYZ(0, -7199.0f, 955.0f, 1675.0f, 0, 1, false, 0); Game_Flag_Set(146); Async_Actor_Walk_To_XYZ(0, -7204.0f, 956.17f, 1568.0f, 0, false); Set_Enter(51, 51); } }
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 SceneScriptRC01::ClickedOnExit(int exitId) { if (exitId == kRC01ExitRC02) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -174.77f, 5.55f, 25.95f, 12, true, false, 0)) { if (Game_Flag_Query(kFlagRC02RunciterTalkWithGun)) { Actor_Says(kActorMcCoy, 8522, 14); } else { switch (Global_Variable_Query(kVariableChapter)) { case 1: case 4: Game_Flag_Set(kFlagRC01toRC02); Set_Enter(kSetRC02_RC51, kSceneRC02); break; case 2: case 3: case 5: Actor_Says(kActorMcCoy, 8522, 12); break; default: return true; } } } return true; } if (exitId == kRC01ExitSpinner) { if (Game_Flag_Query(kFlagDNARowAvailable)) { Spinner_Set_Selectable_Destination_Flag(kSpinnerDestinationDNARow, true); } I_Sez("MG: Leaving already? The fun is just beginning!"); if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -151.98f, -0.3f, 318.15f, 0, true, false, 0)) { Player_Loses_Control(); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -10.98f, -0.3f, 318.15f, 0, 0, false, 0); 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); } Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Player_Gains_Control(); Game_Flag_Reset(kFlagMcCoyInChinaTown); Game_Flag_Reset(kFlagMcCoyInRunciters); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment); Game_Flag_Reset(kFlagMcCoyInPoliceStation); int spinnerDest; if (Game_Flag_Query(kFlagRC01PoliceDone)) { spinnerDest = Spinner_Interface_Choose_Dest(kRC01LoopDoorAnimNoCrowd, true); } else { spinnerDest = Spinner_Interface_Choose_Dest(kRC01LoopDoorAnimWithCrowd, true); } switch (spinnerDest) { case kSpinnerDestinationPoliceStation: Game_Flag_Set(kFlagMcCoyInPoliceStation); Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtPS01); Set_Enter(kSetPS01, kScenePS01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationMcCoysApartment: Game_Flag_Set(kFlagMcCoyInMcCoyApartment); Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtMA01); Set_Enter(kSetMA01, kSceneMA01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationChinatown: Game_Flag_Set(kFlagMcCoyInChinaTown); 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); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationTyrellBuilding: Game_Flag_Set(kFlagMcCoyInTyrellBuilding); 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); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationAnimoidRow: Game_Flag_Set(kFlagMcCoyInAnimoidRow); 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); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationDNARow: Game_Flag_Set(kFlagMcCoyInDNARow); 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); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationBradburyBuilding: Game_Flag_Set(kFlagMcCoyInBradburyBuilding); Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtBB01); Set_Enter(kSetBB01, kSceneBB01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationNightclubRow: Game_Flag_Set(kFlagMcCoyInNightclubRow); Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtNR01); Set_Enter(kSetNR01, kSceneNR01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; case kSpinnerDestinationHysteriaHall: Game_Flag_Set(kFlagMcCoyInHysteriaHall); Game_Flag_Reset(kFlagSpinnerAtRC01); Game_Flag_Set(kFlagSpinnerAtHF01); Set_Enter(kSetHF01, kSceneHF01); if (Game_Flag_Query(kFlagRC01PoliceDone)) { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotNoCrowd, true); } else { Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kRC01LoopOutshotWithCrowd, true); } break; default: walkToCenter(); break; } } return true; } if (exitId == kRC01ExitRC03) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -471.98f, -0.3f, 258.15f, 4, true, false, 0)) { Game_Flag_Set(kFlagRC01toRC03); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Set_Enter(kSetRC03, kSceneRC03); } return true; } return false; }