void SceneScriptRC01::PlayerWalkedIn() { if (Game_Flag_Query(kFlagSpinnerAtRC01) && !Game_Flag_Query(kFlagRC02toRC01) && !Game_Flag_Query(kFlagRC03toRC01)) { walkToCenter(); } if (Game_Flag_Query(kFlagRC03toRC01)) { Player_Loses_Control(); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -415.98f, -0.30f, 262.15f, 0, 0, false, 0); Player_Gains_Control(); Game_Flag_Reset(kFlagRC03toRC01); } if (Game_Flag_Query(kFlagRC02toRC01)) { Player_Loses_Control(); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -203.45f, 5.55f, 85.05f, 0, 0, false, 0); Player_Gains_Control(); Game_Flag_Reset(kFlagRC02toRC01); if ( Game_Flag_Query(kFlagRC02Entered) && !Game_Flag_Query(kFlagRC02Left) ) { Actor_Voice_Over(1910, kActorVoiceOver); Actor_Voice_Over(1920, kActorVoiceOver); Actor_Voice_Over(1930, kActorVoiceOver); Game_Flag_Set(kFlagRC02Left); } //return true; } //return false; }
void AIScriptLucy::voightKempTest() { Player_Loses_Control(); Actor_Face_Actor(kActorMcCoy, kActorLucy, 1); Actor_Says(kActorMcCoy, 6815, 11); Actor_Face_Actor(kActorLucy, kActorMcCoy, 1); Actor_Says(kActorLucy, 1060, 16); Actor_Says(kActorLucy, 1070, 17); Delay(1000); Actor_Says(kActorLucy, 1080, 14); Actor_Says(kActorMcCoy, 6820, 16); Actor_Says(kActorLucy, 1090, 13); if (!Game_Flag_Query(378)) { Actor_Says(kActorMcCoy, 6825, 13); } Actor_Says(kActorMcCoy, 6830, 12); Actor_Says(kActorLucy, 1100, 14); Actor_Says(kActorMcCoy, 6835, 14); Actor_Says(kActorLucy, 1110, 15); Actor_Says(kActorMcCoy, 6840, 13); Delay(1000); Actor_Says(kActorMcCoy, 6845, 12); Delay(500); Actor_Says(kActorMcCoy, 6850, 12); Actor_Says(kActorLucy, 1120, 14); Actor_Says(kActorMcCoy, 6855, 13); Actor_Says(kActorMcCoy, 6860, 13); Actor_Says(kActorLucy, 1130, 14); Music_Stop(2); Player_Gains_Control(); Voight_Kampff_Activate(6, 40); Player_Loses_Control(); if (Actor_Clue_Query(kActorMcCoy, 271)) { Actor_Says(kActorMcCoy, 6865, 13); Actor_Says(kActorLucy, 1140, 14); Actor_Says(kActorMcCoy, 6865, 14); Actor_Says(kActorLucy, 1150, 16); Actor_Says(kActorMcCoy, 6870, 14); Delay(500); Actor_Says(kActorMcCoy, 6875, 13); Actor_Says(kActorLucy, 1160, 16); } else { Actor_Says(kActorMcCoy, 6880, 13); Actor_Says(kActorLucy, 1170, 13); Actor_Says(kActorLucy, 1180, 16); Actor_Says(kActorMcCoy, 6890, 15); Actor_Says(kActorLucy, 1190, 15); Actor_Says(kActorLucy, 1200, 17); Actor_Says(kActorMcCoy, 6885, 13); Actor_Says(kActorLucy, 1210, 17); } Actor_Says(kActorMcCoy, 6895, 15); Actor_Says(kActorMcCoy, 6900, 11); Actor_Says(kActorLucy, 1220, 16); Actor_Says(kActorMcCoy, 6905, 13); Actor_Says(kActorLucy, 1230, 17); Actor_Says(kActorMcCoy, 6910, 13); Delay(2000); Player_Gains_Control(); Actor_Set_Goal_Number(kActorLucy, 312); }
void ScriptBase::Delay(int miliseconds) { Player_Loses_Control(); int endTime = _vm->getTotalPlayTime() + miliseconds; while ((int)_vm->getTotalPlayTime() < endTime) _vm->gameTick(); Player_Gains_Control(); }
bool SceneScriptCT10::ClickedOn3DObject(const char *objectName, bool a2) { if (Object_Query_Click("TUB", objectName)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -41.0f, 0.0f, -106.0f, 0, 1, false, 0)) { Player_Loses_Control(); Actor_Face_Heading(kActorMcCoy, 850, false); Actor_Change_Animation_Mode(kActorMcCoy, 38); Delay(1000); Sound_Play(338, 33, 0, 0, 50); Delay(3000); if (Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1)) { Actor_Voice_Over(3700, kActorVoiceOver); } else { Actor_Clue_Acquire(kActorMcCoy, kClueStrangeScale1, 1, -1); Item_Pickup_Spin_Effect(969, 364, 214); } Delay(1000); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -41.0f, 0.0f, -82.0f, 0, 0, false, 1); Player_Gains_Control(); } return true; } if (Object_Query_Click("CABINETTOP", objectName) || Object_Query_Click("CABINETFRONT", objectName)) { sub_401844(); return true; } return false; }
void SceneScriptBB04::PlayerWalkedIn() { if (Game_Flag_Query(kFlagBB02toBB04)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, -26.6f, 45.0f, 0, false, false, false); Player_Gains_Control(); Game_Flag_Reset(kFlagBB02toBB04); } }
void SceneScriptCT05::PlayerWalkedIn() { if (Game_Flag_Query(kFlagCT04toCT05)) { Player_Loses_Control(); Game_Flag_Reset(kFlagCT04toCT05); if (Player_Query_Combat_Mode()) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, false, true, false); } else { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -308.18f, -109.91f, 674.77f, 0, false, false, false); } Player_Gains_Control(); } if (Game_Flag_Query(kFlagCT06toCT05)) { Footstep_Sound_Override_On(2); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, false, kAnimationModeIdle); Actor_Set_At_XYZ(kActorMcCoy, 90.73f, -19.91f, 164.97f, 520); Loop_Actor_Travel_Stairs(kActorMcCoy, 10, false, kAnimationModeIdle); Game_Flag_Reset(kFlagCT06toCT05); Footstep_Sound_Override_Off(); if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoCT01Left && Game_Flag_Query(kFlagCT06ZubenPhoto) ) { Actor_Set_Goal_Number(kActorGordo, kGoalGordoCT05WalkThrough); } } }
void SceneScriptUG16::PlayerWalkedIn() { Game_Flag_Set(715); if (!Game_Flag_Query(595)) { Actor_Set_Goal_Number(kActorLuther, 403); } if (!Game_Flag_Query(556) && Actor_Query_Is_In_Current_Set(kActorLuther)) { Player_Loses_Control(); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 120.29f, -35.67f, 214.8f, 310, 0, false, 0); Actor_Face_Actor(kActorMcCoy, kActorLuther, true); Actor_Says(kActorLuther, 0, 6); Actor_Says(kActorLuther, 30, 13); Actor_Change_Animation_Mode(kActorLuther, 17); Actor_Says(kActorLance, 0, 17); Actor_Says(kActorMcCoy, 5710, 14); Actor_Says(kActorLuther, 40, 13); Actor_Says(kActorLuther, 50, 15); Actor_Says(kActorLance, 20, 12); Actor_Says(kActorLuther, 60, 23); Actor_Says(kActorMcCoy, 5715, 14); Actor_Says(kActorLance, 30, 16); Actor_Says(kActorLuther, 70, 6); Player_Gains_Control(); Game_Flag_Set(556); } }
void SceneScriptCT12::SceneFrameAdvanced(int frame) { if (!((frame - 1) % 10)) { /*int v2 = Random_Query(0, 1); if (v2 <= 1) { if (v2) { v1 = 60; } else { v1 = 59; } }*/ Sound_Play(/*v1*/Random_Query(59, 60), 10, -80, -80, 50); } if (frame == 160) { Actor_Change_Animation_Mode(kActorGaff, 41); } if (frame == 152) { Sound_Play(116, 100, 40, 0, 50); } if (frame == 203) { Sound_Play(119, 100, 40, 0, 50); } if (frame == 212) { Sound_Play(117, 40, 0, 0, 50); } if (frame == 269) { Player_Gains_Control(); Player_Set_Combat_Mode(false); Actor_Set_Invisible(kActorGaff, false); } }
void SceneScriptUG06::PlayerWalkedIn() { if (Game_Flag_Query(kFlagUG04toUG06)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, 23.0f, 0.0f, 273.0f, 0, false, false, 0); Game_Flag_Reset(kFlagUG04toUG06); } if (Game_Flag_Query(kFlagNR01toUG06)) { Loop_Actor_Travel_Stairs(kActorMcCoy, 17, false, kAnimationModeIdle); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 66.0f, 0.0f, -36.91f, 0, false, false, 0); Game_Flag_Reset(kFlagNR01toUG06); } if ( Global_Variable_Query(kVariableChapter) == 4 && !Game_Flag_Query(524) ) { Player_Loses_Control(); Actor_Voice_Over(2620, kActorVoiceOver); Actor_Voice_Over(2630, kActorVoiceOver); Actor_Voice_Over(2640, kActorVoiceOver); Actor_Voice_Over(2650, kActorVoiceOver); Actor_Voice_Over(2660, kActorVoiceOver); Actor_Voice_Over(2670, kActorVoiceOver); Actor_Voice_Over(2680, kActorVoiceOver); Actor_Voice_Over(2690, kActorVoiceOver); Actor_Voice_Over(2700, kActorVoiceOver); Player_Gains_Control(); Game_Flag_Set(524); Autosave_Game(2); } //return false; }
void SceneScriptRC01::walkToCenter() { Player_Loses_Control(); Game_Flag_Set(kFlagMcCoyInRunciters); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -151.98f, -0.3f, 318.15f, 0, 0, false, 0); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Player_Gains_Control(); }
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; }
void SceneScriptDR04::SceneFrameAdvanced(int frame) { if (Game_Flag_Query(kFlagDR05ViewExplosion)) { Game_Flag_Reset(kFlagDR05ViewExplosion); Game_Flag_Reset(kFlagDR05BombWillExplode); Scene_Loop_Set_Default(kDR04LoopMainPostExplosion); Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true); Music_Stop(4); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiPerished); } else { if (Game_Flag_Query(kFlagDR05BombWillExplode)) { Game_Flag_Reset(kFlagDR05BombWillExplode); Game_Flag_Set(kFlagDR05BombExploded); Scene_Loop_Set_Default(kDR04LoopMainPostExplosion); Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true); Item_Remove_From_World(kItemBomb); } switch (frame) { case 193: Sound_Play(301, 100, 0, 100, 50); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate); Player_Loses_Control(); Actor_Force_Stop_Walking(kActorMcCoy); if (farEnoughFromExplosion()) { if (Player_Query_Combat_Mode()) { Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatHit); } else { Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeHit); } } else { Sound_Play_Speech_Line(kActorMcCoy, 9905, 100, 0, 99); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1); } Player_Gains_Control(); break; case 235: if (Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiJump && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiLayDown && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiPerished ) { Actor_Set_Goal_Number(kActorOfficerGrayford, 101); } Scene_Exits_Enable(); break; case 237: Overlay_Play("DR04OVER", 0, true, true, 0); break; } } }
void ScriptDR01::PlayerWalkedIn() { if (Game_Flag_Query(531)) { Async_Actor_Walk_To_XYZ(0, -757.15f, -0.04f, 24.64f, 0, false); } else if (!Game_Flag_Query(225) && !Game_Flag_Query(11)) { Player_Loses_Control(); Loop_Actor_Walk_To_XYZ(0, -447.39f, 0.16f, -92.38f, 0, 0, false, 0); Player_Gains_Control(); } Game_Flag_Reset(225); Game_Flag_Reset(11); Game_Flag_Reset(531); }
void SceneScriptMA01::SceneFrameAdvanced(int frame) { if (frame == 15) { Ambient_Sounds_Play_Sound(kSfxROOFLIT1, 70, -100, 100, 0); } if (frame == 61 || frame == 183 ) { Ambient_Sounds_Play_Sound(kSfxSPINOPN4, 100, 40, 0, 99); } if (frame == 107 || frame == 227 ) { Ambient_Sounds_Play_Sound(kSfxSPINCLS1, 100, 40, 0, 99); } if (frame == 1) { Ambient_Sounds_Play_Sound(kSfxCARDOWN3, 40, -60, 20, 99); } if (frame == 241) { Ambient_Sounds_Play_Sound(kSfxCARUP3, 40, 0, 0, 99); } if (frame == 58) { Sound_Play(kSfxMTLHIT1, 17, 20, 20, 50); } if ((frame == 75 || frame == 196 ) && Game_Flag_Query(kFlagArrivedFromSpinner2) ) { Actor_Face_Heading(kActorMcCoy, 736, false); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeSpinnerGetOut); Game_Flag_Reset(kFlagArrivedFromSpinner2); } else { if ( frame == 196 && !Game_Flag_Query(kFlagArrivedFromSpinner2) ) { Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeSpinnerGetIn); //return true; return; } if (frame == 240) { Player_Gains_Control(); } } //return true; }
void ScriptBase::Actor_Says_With_Pause(int actorId, int sentenceId, float pause, int animationMode) { _vm->gameWaitForActive(); _vm->loopActorSpeaking(); _vm->_actorDialogueQueue->flush(1, true); Actor *actor = _vm->_actors[actorId]; if (animationMode != -1) { actor->stopWalking(false); } actor->speechPlay(sentenceId, false); bool animationModeChanged = false; if (animationMode >= 0) { if (actorId != kActorMcCoy) { actor->changeAnimationMode(animationMode, false); animationModeChanged = true; } else if (!_vm->_combat->isActive()) { actor->changeAnimationMode(animationMode, false); animationModeChanged = true; } } Player_Loses_Control(); while (_vm->_gameIsRunning) { _vm->_speechSkipped = false; _vm->gameTick(); if (_vm->_speechSkipped || !actor->isSpeeching()) { actor->speechStop(); break; } } if (animationModeChanged) { actor->changeAnimationMode(kAnimationModeIdle, false); } //TODO: sitcom //if (_vm->isSitcom) //{ // int rnd = _vm->random(1, 100); // if (rnd <= actor::get_unknown3(actor)) // { // int soundId = _vm->random(319, 327); // _vm->_audioPlayer->play(soundId, 40, 0, 0, 50); // } //} if(pause > 0.0f && !_vm->_speechSkipped) { Delay(pause * 1000); } Player_Gains_Control(); }
void SceneScriptCT10::sub_401844() { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 10.6f, 0.0f, -50.5f, 0, 1, false, 0)) { Player_Loses_Control(); Actor_Face_Heading(kActorMcCoy, 0, false); Sound_Play(339, 100, 0, 0, 50); Delay(1000); if (Actor_Clue_Query(kActorMcCoy, kClueHoldensBadge)) { Actor_Voice_Over(3700, kActorVoiceOver); } else { Item_Pickup_Spin_Effect(931, 435, 258); Actor_Clue_Acquire(kActorMcCoy, kClueHoldensBadge, 1, -1); } Player_Gains_Control(); } }
void SceneScriptCT11::PlayerWalkedIn() { if (Game_Flag_Query(91)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -358.0f, 9.68f, 32.0f, 0, 0, false, 0); Game_Flag_Reset(91); } else if (Game_Flag_Query(558)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, 329.0f, 0.0f, 617.0f, 0, 0, false, 0); Game_Flag_Reset(558); } else { Player_Loses_Control(); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 125.0f, 9.68f, 74.0f, 0, 0, false, 0); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Player_Gains_Control(); Game_Flag_Reset(83); } }
void ScriptNR11::PlayerWalkedIn() { if (Actor_Query_Goal_Number(3) == 250) { Player_Set_Combat_Mode(true); if (Game_Flag_Query(47)) { Actor_Set_Goal_Number(1, 210); } } if (Game_Flag_Query(632)) { Game_Flag_Reset(632); Game_Flag_Set(634); Actor_Put_In_Set(3, 99); Actor_Set_At_Waypoint(3, 41, 0); Actor_Set_Invisible(0, false); Player_Set_Combat_Mode(false); Player_Gains_Control(); if (Game_Flag_Query(47)) { if (Actor_Query_Goal_Number(1) == 211) { Actor_Set_At_XYZ(0, -37.41f, 0.33f, -86.0f, 26); Delay(500); Actor_Face_Current_Camera(0, true); Delay(750); Actor_Says(0, 5290, 12); Delay(1000); Actor_Set_Goal_Number(1, 212); Actor_Face_Actor(0, 1, true); } else { Actor_Set_At_XYZ(0, -15.53f, 0.33f, 73.49f, 954); Actor_Modify_Friendliness_To_Other(1, 0, 3); Delay(1500); Actor_Says(0, 3805, 12); Actor_Face_Actor(0, 1, true); Actor_Face_Actor(1, 0, true); Actor_Says_With_Pause(1, 1720, 0.3f, 16); Actor_Says(0, 3810, 16); Actor_Says_With_Pause(1, 1730, 0.2f, 14); Actor_Says(1, 1740, 15); Actor_Set_Goal_Number(3, 599); Actor_Put_In_Set(3, 99); Actor_Set_At_Waypoint(3, 41, 0); Actor_Set_Goal_Number(1, 275); } } else { Actor_Set_Goal_Number(0, 500); } } // return true; }
void ScriptNR07::sub_4018D4() { Actor_Set_Goal_Number(25, 201); Player_Loses_Control(); Actor_Set_At_XYZ(3, -136.0f, -73.0f, -18.0f, 300); Actor_Change_Animation_Mode(3, 71); Actor_Change_Animation_Mode(0, 21); Loop_Actor_Walk_To_XYZ(3, -102.0f, -73.5f, -233.0f, 0, 0, true, 0); if (Game_Flag_Query(47)) { Actor_Set_Goal_Number(3, 245); } else { Actor_Set_Goal_Number(3, 295); Game_Flag_Set(591); Actor_Put_In_Set(3, 91); Actor_Set_At_Waypoint(3, 33, 0); } Player_Gains_Control(); }
void SceneScriptMA06::activateElevator() { Game_Flag_Reset(kFlagMA06toMA01); Game_Flag_Reset(kFlagMA06ToMA02); Game_Flag_Reset(kFlagMA06toMA07); while (true) { if (Game_Flag_Query(kFlagMA06ToMA02)) { break; } if (Game_Flag_Query(kFlagMA06toMA01)) { break; } if (Game_Flag_Query(kFlagMA06toMA07)) { break; } Actor_Says(kActorAnsweringMachine, 80, 3); Player_Gains_Control(); int floor = Elevator_Activate(1); Player_Loses_Control(); Scene_Loop_Start_Special(kSceneLoopMode2, 1, true); if (floor > 1) { Game_Flag_Set(kFlagMA06toMA07); } else if (floor == 1) { if (Game_Flag_Query(kFlagMA01Locked)) { Game_Flag_Set(kFlagMA06toMA01); } else { Sound_Play(412, 100, 0, 0, 50); Delay(500); Actor_Says(kActorAnsweringMachine, 610, 3); } } else { Actor_Says(kActorMcCoy, 2940, 18); if (Global_Variable_Query(1) == 4 && Game_Flag_Query(655)) { Sound_Play(412, 100, 0, 0, 50); Delay(500); Actor_Says(kActorAnsweringMachine, 610, 3); Delay(500); Actor_Says(kActorMcCoy, 8527, 3); } else { Game_Flag_Set(kFlagMA06ToMA02); Actor_Says(kActorAnsweringMachine, 90, 3); } } } }
void ScriptBase::Loop_Actor_Travel_Ladder(int actorId, int stepCount, bool up, int animationModeEnd) { _vm->gameWaitForActive(); Player_Loses_Control(); Actor *actor = _vm->_actors[actorId]; int animationModeWalk = 0; if (actor->inCombat()) { animationModeWalk = up ? kAnimationModeCombatClimbUp : kAnimationModeCombatClimbDown; if (animationModeEnd == kAnimationModeIdle) { animationModeEnd = kAnimationModeCombatIdle; } } else { animationModeWalk = up ? kAnimationModeClimbUp : kAnimationModeClimbDown; } actor->changeAnimationMode(animationModeWalk, false); int ladderHeight = stepCount * 12 * (up ? 1 : -1); float targetY = actor->getY() + ladderHeight; bool immunityToObstacles = actor->isImmuneToObstacles(); actor->setImmunityToObstacles(true); do { _vm->gameTick(); if (up) { if (targetY <= actor->getY()) { break; } } else { if (targetY >= actor->getY()) { break; } } } while (true); actor->setImmunityToObstacles(immunityToObstacles); actor->setAtXYZ(Vector3(actor->getX(), targetY, actor->getZ()), actor->getFacing(), true, false, false); actor->changeAnimationMode(animationModeEnd, false); Player_Gains_Control(); }
void ScriptBase::Actor_Voice_Over(int sentenceId, int actorId) { assert(actorId < BladeRunnerEngine::kActorCount); _vm->gameWaitForActive(); _vm->loopActorSpeaking(); _vm->_actorDialogueQueue->flush(1, true); Actor *actor = _vm->_actors[actorId]; actor->speechPlay(sentenceId, true); Player_Loses_Control(); while(_vm->_gameIsRunning) { _vm->_speechSkipped = false; _vm->gameTick(); if(_vm->_speechSkipped || !actor->isSpeeching()) { actor->speechStop(); break; } } Player_Gains_Control(); }
void SceneScriptPS02::PlayerWalkedIn() { Game_Flag_Reset(718); Actor_Face_XYZ(kActorMcCoy, 0.0f, 0.0f, 450.0f, true); Player_Gains_Control(); activateElevator(); Player_Loses_Control(); if (Game_Flag_Query(kFlagPS02toPS01) ) { Set_Enter(kSetPS01, kScenePS01); Scene_Loop_Start_Special(1, 3, true); } else if (Game_Flag_Query(kFlagPS02toPS05) ) { Set_Enter(kSetPS05, kScenePS05); Scene_Loop_Start_Special(1, 3, true); } else if (Game_Flag_Query(kFlagPS02toPS07) ) { Set_Enter(kSetPS07, kScenePS07); Scene_Loop_Start_Special(1, 3, true); } else if (Game_Flag_Query(kFlagPS02toPS03) ) { Set_Enter(kSetPS03, kScenePS03); Scene_Loop_Start_Special(1, 3, true); } else if (Game_Flag_Query(kFlagPS02toPS09) ) { Set_Enter(kSetPS09, kScenePS09); Scene_Loop_Start_Special(1, 3, true); } //return true; }
void SceneScriptUG10::SceneFrameAdvanced(int frame) { if (frame == 121) { Ambient_Sounds_Play_Sound(558, 90, 0, 0, 99); } if (frame == 127) { Ambient_Sounds_Play_Sound(353, 90, 0, 0, 99); } if (frame == 147) { Ambient_Sounds_Play_Sound(353, 90, 0, 0, 99); } if (frame == 1) { Ambient_Sounds_Play_Sound(558, 90, 0, 0, 99); } if (frame == 3) { Ambient_Sounds_Play_Sound(353, 90, 0, 0, 99); } if (frame == 23) { Ambient_Sounds_Play_Sound(353, 90, 0, 0, 99); } if (frame == 58 || frame == 179) { Player_Gains_Control(); } //return false; }
bool ScriptDR01::ClickedOnExit(int exitId) { if (exitId == 0) { if (!Loop_Actor_Walk_To_XYZ(0, -835.0f, -0.04f, -118.0f, 0, 1, false, 0)) { Async_Actor_Walk_To_XYZ(0, -911.0f, -0.04f, -118.0f, 0, false); Ambient_Sounds_Adjust_Looping_Sound(112, 10, -100, 1); Game_Flag_Set(224); Set_Enter(7, 26); } return true; } if (exitId == 1) { if (!Loop_Actor_Walk_To_XYZ(0, -711.0f, -0.04f, 70.0f, 0, 1, false, 0)) { Async_Actor_Walk_To_XYZ(0, -796.0f, -0.04f, 166.0f, 0, false); Game_Flag_Set(10); Set_Enter(7, 28); } return true; } if (exitId == 2) { if (Loop_Actor_Walk_To_XYZ(0, -372.0f, -0.04f, -82.0f, 0, 1, false, 0)) { Game_Flag_Reset(176); Game_Flag_Reset(182); Game_Flag_Reset(179); Game_Flag_Reset(178); Game_Flag_Reset(180); Game_Flag_Reset(261); Game_Flag_Reset(177); Game_Flag_Reset(258); int spinnerDest = Spinner_Interface_Choose_Dest(-1, 0); switch (spinnerDest) { case 2: Game_Flag_Set(182); Game_Flag_Reset(253); Game_Flag_Set(249); Set_Enter(69, 78); break; case 3: Game_Flag_Set(176); Game_Flag_Reset(253); Game_Flag_Set(248); Set_Enter(4, 13); break; case 1: Game_Flag_Set(179); Game_Flag_Reset(253); Game_Flag_Set(250); Set_Enter(49, 48); break; case 0: Game_Flag_Set(178); Game_Flag_Reset(253); Game_Flag_Set(251); Set_Enter(61, 65); break; case 5: Game_Flag_Set(261); Game_Flag_Reset(253); Game_Flag_Set(307); Set_Enter(17, 82); break; case 4: Game_Flag_Set(180); Game_Flag_Reset(253); Game_Flag_Set(252); Set_Enter(0, 0); break; case 7: Game_Flag_Set(258); Game_Flag_Reset(253); Game_Flag_Set(254); Set_Enter(20, 2); break; case 8: Game_Flag_Set(181); Game_Flag_Reset(253); Game_Flag_Set(255); Set_Enter(54, 54); break; case 9: Game_Flag_Set(257); Game_Flag_Reset(253); Game_Flag_Set(256); Set_Enter(37, 34); break; default: Player_Loses_Control(); Game_Flag_Set(177); Loop_Actor_Walk_To_XYZ(0, -447.39f, 0.16f, -92.38f, 0, 0, true, 0); Player_Gains_Control(); break; } } return true; } if (exitId == 3) { float x, y, z; Actor_Query_XYZ(0, &x, &y, &z); bool v7 = false; if (-1200 < x) { v7 = Loop_Actor_Walk_To_XYZ(0, -1236.4f, -0.04f, -13.91f, 0, 1, false, 0); } if (!v7) { Game_Flag_Set(558); Game_Flag_Set(176); Game_Flag_Reset(177); Set_Enter(33, 23); } return true; } 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 SceneScriptCT01::ClickedOnExit(int exitId) { if (exitId == kCT01ExitCT02) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -327.5f, -6.5f, 352.28f, 0, true, false, 0)) { Player_Loses_Control(); Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 106, 0, false, false); Player_Gains_Control(); Game_Flag_Reset(kFlagArrivedFromSpinner1); Set_Enter(kSetCT02, kSceneCT02); } return true; } if (exitId == kCT01ExitCT03) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -259.0f, -6.5f, 710.0f, 0, true, false, 0)) { Game_Flag_Reset(kFlagArrivedFromSpinner1); Set_Enter(kSetCT03_CT04, kSceneCT03); } return true; } if (exitId == kCT01ExitCT12) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -419.0f, -6.5f, 696.0f, 0, true, false, 0)) { Game_Flag_Set(kFlagCT01toCT12); Game_Flag_Reset(kFlagArrivedFromSpinner1); Set_Enter(kSetCT01_CT12, kSceneCT12); } return true; } if (exitId == kCT01ExitSpinner) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, true, false, 0)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0); Game_Flag_Reset(kFlagMcCoyInChinaTown); Game_Flag_Reset(kFlagMcCoyInRunciters); Game_Flag_Reset(kFlagMcCoyInMcCoyApartment); Game_Flag_Reset(kFlagMcCoyInPoliceStation); Game_Flag_Reset(kFlagMcCoyInAnimoidRow); Game_Flag_Reset(kFlagMcCoyInTyrellBuilding); Game_Flag_Reset(kFlagMcCoyInDNARow); Game_Flag_Reset(kFlagMcCoyInBradburyBuilding); int spinnerDest = Spinner_Interface_Choose_Dest(-1, false); switch (spinnerDest) { case kSpinnerDestinationPoliceStation: Game_Flag_Set(kFlagMcCoyInPoliceStation); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtPS01); Set_Enter(kSetPS01, kScenePS01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationMcCoysApartment: Game_Flag_Set(kFlagMcCoyInMcCoyApartment); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtMA01); Set_Enter(kSetMA01, kSceneMA01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationRuncitersAnimals: Game_Flag_Set(kFlagMcCoyInRunciters); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtRC01); Set_Enter(kSetRC01, kSceneRC01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationAnimoidRow: Game_Flag_Set(kFlagMcCoyInAnimoidRow); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtAR01); Set_Enter(kSetAR01_AR02, kSceneAR01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationTyrellBuilding: Game_Flag_Set(kFlagMcCoyInTyrellBuilding); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Set(kFlagSpinnerAtTB02); Set_Enter(kSetTB02_TB03, kSceneTB02); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationDNARow: Game_Flag_Set(kFlagMcCoyInDNARow); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationBradburyBuilding: Game_Flag_Set(kFlagMcCoyInBradburyBuilding); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtBB01); Set_Enter(kSetBB01, kSceneBB01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationNightclubRow: Game_Flag_Set(kFlagMcCoyInNightclubRow); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtNR01); Set_Enter(kSetNR01, kSceneNR01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; case kSpinnerDestinationHysteriaHall: Game_Flag_Set(kFlagMcCoyInHysteriaHall); Game_Flag_Reset(kFlagArrivedFromSpinner1); Game_Flag_Reset(kFlagSpinnerAtCT01); Game_Flag_Set(kFlagSpinnerAtHF01); Set_Enter(kSetHF01, kSceneHF01); Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kCT01LoopOutshot, true); break; default: Game_Flag_Set(kFlagMcCoyInChinaTown); Player_Loses_Control(); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -530.0f, -6.5f, 241.0f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, true, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, false, false, 0); Player_Gains_Control(); break; } } 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; }
void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) { if (actorId == 18) { switch (newGoal) { case 214: Actor_Change_Animation_Mode(kActorEarlyQ, 29); Delay(2500); Actor_Says(kActorEarlyQ, 290, 3); sub_401DB0(); //return true; break; case 213: Actor_Clue_Acquire(kActorMcCoy, kClueDektorasDressingRoom, 0, kActorEarlyQ); Item_Pickup_Spin_Effect(984, 200, 160); Actor_Says(kActorEarlyQ, 200, 30); Actor_Says(kActorEarlyQ, 210, 30); Actor_Says(kActorEarlyQ, 220, 30); Actor_Says_With_Pause(kActorMcCoy, 3425, 1.5f, 23); Actor_Says(kActorMcCoy, 3430, 3); Actor_Says(kActorEarlyQ, 240, 30); Actor_Says(kActorMcCoy, 3435, 3); Actor_Says(kActorEarlyQ, 250, 30); Actor_Says(kActorMcCoy, 3440, 3); Actor_Says(kActorEarlyQ, 280, 30); Actor_Says(kActorMcCoy, 3445, 3); Actor_Set_Goal_Number(kActorEarlyQ, 214); //return true; break; case 209: Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true); Delay(3000); Actor_Says(kActorEarlyQ, 170, 30); Actor_Says(kActorMcCoy, 3415, 3); Actor_Says(kActorEarlyQ, 180, 30); Actor_Says_With_Pause(kActorMcCoy, 3420, 1.5f, 3); Actor_Says(kActorEarlyQ, 190, 30); Actor_Set_Goal_Number(kActorEarlyQ, 211); //return true; break; case 207: Loop_Actor_Walk_To_Waypoint(kActorEarlyQ, 445, 0, 1, false); Actor_Face_Heading(kActorEarlyQ, 49, false); Actor_Change_Animation_Mode(kActorEarlyQ, 85); Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true); Actor_Set_Goal_Number(kActorEarlyQ, 208); Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQInterview, 0, kActorEarlyQ); //return true; break; case 204: Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true); Actor_Says(kActorEarlyQ, 90, 73); Actor_Says(kActorMcCoy, 3390, 3); Actor_Face_Actor(kActorEarlyQ, kActorMcCoy, true); Actor_Says(kActorEarlyQ, 110, 74); Actor_Says(kActorMcCoy, 3385, 3); Actor_Says(kActorEarlyQ, 120, 74); Actor_Face_Actor(kActorEarlyQ, kActorMcCoy, true); Actor_Set_Goal_Number(kActorEarlyQ, 205); //return true; break; case 202: Actor_Face_Actor(kActorEarlyQ, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true); Actor_Says(kActorEarlyQ, 30, 3); Actor_Says(kActorMcCoy, 3375, 3); Actor_Says_With_Pause(kActorEarlyQ, 50, 1.5f, 3); Actor_Says(kActorEarlyQ, 60, 3); Actor_Says_With_Pause(kActorMcCoy, 3380, 1.0f, 3); Actor_Says(kActorEarlyQ, 70, 3); Actor_Says(kActorMcCoy, 3415, 3); Actor_Says(kActorEarlyQ, 80, 3); Player_Gains_Control(); Actor_Set_Goal_Number(kActorEarlyQ, 203); //return true; break; } } //return false; }
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); } }