487 lines
18 KiB
Python
Executable File
487 lines
18 KiB
Python
Executable File
|
|
//Compile out Title Update changes to header functions.
|
|
//Must be before includes.
|
|
//CONST_INT USE_TU_CHANGES 0 // Removed by Kenneth R.
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "cutscene_public.sch"
|
|
USING "commands_cutscene.sch"
|
|
USING "commands_entity.sch"
|
|
USING "commands_script.sch"
|
|
USING "script_player.sch"
|
|
USING "randomChar_public.sch"
|
|
USING "RC_helper_functions.sch"
|
|
USING "player_ped_scenes.sch"
|
|
USING "commands_recording.sch"
|
|
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
//
|
|
// MISSION NAME : MrsPhilips2.sc
|
|
// AUTHOR : David Roberts
|
|
// DESCRIPTION : Trevor must deliver the truck back to his mother at the trailer
|
|
//
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
g_structRCScriptArgs sRCLauncherDataLocal
|
|
|
|
ENUM eRC_MainState
|
|
RC_DELIVER_TRUCK,
|
|
RC_GO_IN_TRAILER,
|
|
RC_MEET_MRS_PHILIPS,
|
|
RC_MISSION_FAILED
|
|
ENDENUM
|
|
|
|
ENUM eRC_SubState
|
|
SS_SETUP = 0,
|
|
SS_UPDATE,
|
|
SS_CLEANUP
|
|
ENDENUM
|
|
|
|
// Mission state
|
|
eRC_MainState m_eState = RC_DELIVER_TRUCK
|
|
eRC_SubState m_eSubState = SS_SETUP
|
|
|
|
INT iCutsceneStage
|
|
|
|
VEHICLE_INDEX vehDrugsVan
|
|
BLIP_INDEX blipDrugsVan
|
|
BLIP_INDEX blipTrailer
|
|
VECTOR vParkOutsideTrailer = <<1990.67, 3810.16, 31.24>>
|
|
VECTOR vWalkInTrailer = <<1973.84, 3814.89, 32.43>>
|
|
|
|
BOOL bDisplayedGoToTrailer = FALSE
|
|
BOOL bDisplayedGetInVan = FALSE
|
|
BOOL bDisplayedGoInTrailer = FALSE
|
|
|
|
INT iTrevorSynchedScene
|
|
|
|
structPedsForConversation sConversation
|
|
|
|
CAMERA_INDEX camDownAtTrevor
|
|
|
|
// ===========================================================================================================
|
|
// Termination
|
|
// ===========================================================================================================
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// Script Cleanup
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
PROC Script_Cleanup()
|
|
|
|
// If the mission was triggered then additional mission cleanup will be required.
|
|
IF (Random_Character_Cleanup_If_Triggered())
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: ...Random Character Script was triggered so additional cleanup required")
|
|
ENDIF
|
|
|
|
REMOVE_ANIM_DICT("rcmtmom_2leadinout")
|
|
|
|
// Cleanup the scene created by the launcher
|
|
RC_CleanupSceneEntities(sRCLauncherDataLocal, TRUE)
|
|
|
|
TERMINATE_THIS_THREAD()
|
|
ENDPROC
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// Script Pass
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
PROC Script_Passed(BOOL b_do_switch_scene)
|
|
IF b_do_switch_scene = TRUE
|
|
Trigger_Specific_Switch_And_Wait(PR_SCENE_F_CLUB, ENUM_TO_INT(SWITCH_FLAG_SKIP_INTRO)) // B*1482800
|
|
RC_END_CUTSCENE_MODE(DEFAULT, FALSE, FALSE, FALSE) // B*1546355 - Don't turn radar etc back on prior to the switch scene, the switch scene will turn them back on when it's finished
|
|
ELSE
|
|
RC_END_CUTSCENE_MODE()
|
|
ENDIF
|
|
Random_Character_Passed(CP_RAND_C_MRS2)
|
|
|
|
//forces post-mission switch state for switching back to Trevor
|
|
UpdatePostMissionInfo(g_savedGlobals.sPlayerData.sInfo, CHAR_TREVOR, PR_SCENE_Ta_RC_MRSP2)
|
|
|
|
Script_Cleanup()
|
|
ENDPROC
|
|
|
|
// ===========================================================================================================
|
|
// DEBUG FUNCTIONS
|
|
// ===========================================================================================================
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
// PURPOSE: Check for Forced Pass or Fail
|
|
PROC DEBUG_Check_Debug_Keys()
|
|
|
|
// Check for Pass
|
|
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S))
|
|
IF IS_CUTSCENE_ACTIVE()
|
|
STOP_CUTSCENE()
|
|
SET_SCRIPTS_SAFE_FOR_CUTSCENE(FALSE)
|
|
|
|
DISPLAY_RADAR(TRUE)
|
|
DISPLAY_HUD(TRUE)
|
|
CLEAR_HELP()
|
|
|
|
SET_WIDESCREEN_BORDERS(FALSE, 0)
|
|
ENDIF
|
|
CLEAR_PRINTS()
|
|
Script_Passed(FALSE)
|
|
ENDIF
|
|
|
|
// Check for Fail
|
|
IF (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F))
|
|
CLEAR_HELP()
|
|
CLEAR_PRINTS()
|
|
WAIT_FOR_CUTSCENE_TO_STOP()
|
|
Random_Character_Failed()
|
|
Script_Cleanup()
|
|
ENDIF
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
// ===========================================================================================================
|
|
// MISSION FUNCTIONS & PROCEDURES
|
|
// ===========================================================================================================
|
|
/// PURPOSE: Sets the new mission state and initialises the substate.
|
|
PROC SetState(eRC_MainState in)
|
|
m_eState = in
|
|
m_eSubState = SS_SETUP
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles the player delivering the truck
|
|
PROC STATE_DeliverTruck()
|
|
|
|
SWITCH m_eSubState
|
|
|
|
CASE SS_SETUP
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Initialising STATE_DeliverTruck")
|
|
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
|
|
REQUEST_ADDITIONAL_TEXT("MRSP2", MISSION_TEXT_SLOT)
|
|
WHILE NOT HAS_ADDITIONAL_TEXT_LOADED(MISSION_TEXT_SLOT)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
m_eSubState = SS_UPDATE
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
IF IS_ENTITY_ALIVE(vehDrugsVan)
|
|
IF IS_PED_IN_VEHICLE(PLAYER_PED_ID(), vehDrugsVan)
|
|
SAFE_REMOVE_BLIP(blipDrugsVan)
|
|
IF NOT DOES_BLIP_EXIST(blipTrailer)
|
|
CLEAR_PRINTS()
|
|
blipTrailer = CREATE_COORD_BLIP(vParkOutsideTrailer)
|
|
ENDIF
|
|
IF bDisplayedGoToTrailer = FALSE
|
|
PRINT_NOW("MRSP2_OBJ_01", DEFAULT_GOD_TEXT_TIME, 1) // Go to the ~y~trailer.
|
|
bDisplayedGoToTrailer = TRUE
|
|
ENDIF
|
|
IF IS_ENTITY_AT_COORD(vehDrugsVan, vParkOutsideTrailer, g_vAnyMeansLocate, TRUE)
|
|
REPLAY_RECORD_BACK_FOR_TIME(5.0, 2.0, REPLAY_IMPORTANCE_LOW)
|
|
BRING_VEHICLE_TO_HALT(vehDrugsVan, 10.0, 1)
|
|
m_eSubState = SS_CLEANUP
|
|
ENDIF
|
|
ELIF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) // Player has got into something other than the drugs van
|
|
IF GET_ENTITY_MODEL(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())) = RUMPO2 // Check if he's got into another drugs van
|
|
SAFE_REMOVE_BLIP(blipDrugsVan)
|
|
SAFE_RELEASE_VEHICLE(vehDrugsVan)
|
|
vehDrugsVan = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Player got into a different drugs van")
|
|
ENDIF
|
|
ELSE
|
|
SAFE_REMOVE_BLIP(blipTrailer)
|
|
IF NOT DOES_BLIP_EXIST(blipDrugsVan)
|
|
CLEAR_PRINTS()
|
|
blipDrugsVan = CREATE_VEHICLE_BLIP(vehDrugsVan)
|
|
ENDIF
|
|
IF bDisplayedGetInVan = FALSE
|
|
PRINT_NOW("MRSP2_OBJ_02", DEFAULT_GOD_TEXT_TIME, 1) // Get back in the ~b~van.
|
|
bDisplayedGetInVan = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
SetState(RC_MISSION_FAILED)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Cleaning up STATE_DeliverTruck")
|
|
SAFE_REMOVE_BLIP(blipTrailer)
|
|
SAFE_REMOVE_BLIP(blipDrugsVan)
|
|
SetState(RC_GO_IN_TRAILER)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles the player going in the trailer
|
|
PROC STATE_GoInTrailer()
|
|
|
|
SWITCH m_eSubState
|
|
|
|
CASE SS_SETUP
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Initialising STATE_GoInTrailer")
|
|
IF bDisplayedGoInTrailer = FALSE
|
|
PRINT_NOW("MRSP2_OBJ_03", DEFAULT_GOD_TEXT_TIME, 1) // Go into the ~y~trailer.
|
|
bDisplayedGoInTrailer = TRUE
|
|
ENDIF
|
|
blipTrailer = CREATE_COORD_BLIP(vWalkInTrailer, BLIPPRIORITY_MED, FALSE)
|
|
REQUEST_CUTSCENE("TMOM_2_RCM")
|
|
m_eSubState = SS_UPDATE
|
|
BREAK
|
|
|
|
CASE SS_UPDATE
|
|
IF IS_ENTITY_ALIVE(vehDrugsVan)
|
|
IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(), vWalkInTrailer, <<1,1,g_vOnFootLocate.z>>, TRUE) // This is just for the visible locate
|
|
ENDIF
|
|
IF IS_ENTITY_IN_ANGLED_AREA(PLAYER_PED_ID(), <<1973.323730,3815.593994,31.429359>>, <<1974.935791,3812.747314,34.438004>>, 6.5)
|
|
m_eSubState = SS_CLEANUP
|
|
ELIF NOT IS_ENTITY_AT_COORD(vehDrugsVan, vParkOutsideTrailer, <<10,10,10>>, FALSE)
|
|
REMOVE_CUTSCENE()
|
|
SAFE_REMOVE_BLIP(blipTrailer)
|
|
SetState(RC_DELIVER_TRUCK)
|
|
ENDIF
|
|
ELSE
|
|
SetState(RC_MISSION_FAILED)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE SS_CLEANUP
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Cleaning up STATE_GoInTrailer")
|
|
SAFE_REMOVE_BLIP(blipTrailer)
|
|
IF IS_FLOW_HELP_MESSAGE_QUEUED("MRSP_01_HELP")
|
|
REMOVE_HELP_FROM_FLOW_QUEUE("MRSP_01_HELP") // B*2083119 Remove help text from the flow queue if it's still queued for whatever reason
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Removed MRSP_01_HELP from flow queue")
|
|
ELSE
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: MRSP_01_HELP already displayed so no need to remove it from flow queue")
|
|
ENDIF
|
|
SetState(RC_MEET_MRS_PHILIPS)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Triggers the mocap cutscene upon delivering the truck
|
|
PROC STATE_MeetMrsPhilips()
|
|
|
|
SWITCH m_eSubState
|
|
CASE SS_SETUP
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Initialising STATE_MeetMrsPhilips")
|
|
RC_REQUEST_CUTSCENE("TMOM_2_RCM")
|
|
iCutsceneStage = 0
|
|
m_eSubState = SS_UPDATE
|
|
BREAK
|
|
CASE SS_UPDATE
|
|
SWITCH iCutsceneStage
|
|
CASE 0
|
|
REQUEST_ANIM_DICT("rcmtmom_2leadinout")
|
|
IF RC_IS_CUTSCENE_OK_TO_START()
|
|
AND HAS_ANIM_DICT_LOADED("rcmtmom_2leadinout")
|
|
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_T_TRAILER_CS))
|
|
ADD_DOOR_TO_SYSTEM(ENUM_TO_INT(DOORHASH_T_TRAILER_CS), v_ilev_trevtraildr, <<1972.77, 3815.37, 33.66>>)
|
|
ENDIF
|
|
START_CUTSCENE(CUTSCENE_SUPPRESS_FP_TRANSITION_FLASH)
|
|
|
|
REPLAY_START_EVENT(REPLAY_IMPORTANCE_LOW)
|
|
|
|
SAFE_FADE_SCREEN_IN_FROM_BLACK(500, FALSE) // Just in case screen is faded out
|
|
iCutsceneStage++
|
|
ENDIF
|
|
BREAK
|
|
CASE 1
|
|
IF IS_CUTSCENE_PLAYING()
|
|
RC_START_CUTSCENE_MODE(vWalkInTrailer)
|
|
iCutsceneStage++
|
|
ENDIF
|
|
BREAK
|
|
CASE 2
|
|
IF IS_CUTSCENE_PLAYING()
|
|
IF CAN_SET_EXIT_STATE_FOR_CAMERA()
|
|
REPLAY_STOP_EVENT()
|
|
camDownAtTrevor = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA", TRUE)
|
|
SET_CAM_PARAMS(camDownAtTrevor, <<1973.8564, 3818.2217, 34.3958>>, <<-89.4995, 0.0000, 65.3191>>, 50.0)
|
|
SET_CAM_PARAMS(camDownAtTrevor, <<1973.8564, 3818.2217, 34.3958>>, <<-89.4995, 0.0000, 65.3191>>, 50.0)
|
|
RENDER_SCRIPT_CAMS(TRUE, FALSE)
|
|
ENDIF
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Trevor")
|
|
iTrevorSynchedScene = CREATE_SYNCHRONIZED_SCENE(<<1973.909, 3817.762, 33.438>>, <<-0.000, 0.000, -59.400>>)
|
|
SET_SYNCHRONIZED_SCENE_LOOPED(iTrevorSynchedScene, FALSE)
|
|
TASK_SYNCHRONIZED_SCENE(PLAYER_PED_ID(), iTrevorSynchedScene, "rcmtmom_2leadinout", "tmom_2_leadout_loop", INSTANT_BLEND_IN, INSTANT_BLEND_OUT, SYNCED_SCENE_DONT_INTERRUPT|SYNCED_SCENE_USE_PHYSICS)
|
|
FORCE_PED_AI_AND_ANIMATION_UPDATE(PLAYER_PED_ID())
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Playing anim on Trevor")
|
|
ADD_PED_FOR_DIALOGUE(sConversation, 0, PLAYER_PED_ID(), "TREVOR")
|
|
ENDIF
|
|
ELSE
|
|
//CREATE_CONVERSATION(sConversation, "TMOMAUD", "TMOM_2_RCMLO", CONV_PRIORITY_HIGH, DO_NOT_DISPLAY_SUBTITLES)
|
|
ADD_NON_CRITICAL_STANDARD_CONVERSATION_TO_BUFFER(sConversation, "TMOMAUD", "TMOM_2_RCMLO", CONV_PRIORITY_AMBIENT_MEDIUM, DO_NOT_DISPLAY_SUBTITLES)
|
|
Script_Passed(TRUE)
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Starts the mission failed sequence.
|
|
PROC STATE_Failed()
|
|
SWITCH m_eSubState
|
|
CASE SS_SETUP
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Initialising STATE_Failed")
|
|
CLEAR_PRINTS()
|
|
IF IS_ENTITY_ALIVE(vehDrugsVan)
|
|
Random_Character_Failed()
|
|
ELSE
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Drugs van was destroyed")
|
|
Random_Character_Failed_With_Reason("MRSP2_F_01")
|
|
ENDIF
|
|
m_eSubState = SS_UPDATE
|
|
BREAK
|
|
CASE SS_UPDATE
|
|
IF GET_MISSION_FLOW_SAFE_TO_CLEANUP()
|
|
Script_Cleanup()
|
|
ELSE
|
|
// not finished fading out: handle dialogue etc here
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
// ===========================================================================================================
|
|
// Script Loop
|
|
// ===========================================================================================================
|
|
|
|
SCRIPT(g_structRCScriptArgs sRCLauncherDataIn)
|
|
|
|
sRCLauncherDataLocal = sRCLauncherDataIn
|
|
RC_TakeEntityOwnership(sRCLauncherDataLocal)
|
|
RC_CLEANUP_LAUNCHER()
|
|
|
|
SET_MISSION_FLAG(TRUE)
|
|
|
|
IF (HAS_FORCE_CLEANUP_OCCURRED(DEFAULT_FORCE_CLEANUP_FLAGS|FORCE_CLEANUP_FLAG_DEBUG_MENU))
|
|
PRINT_LAUNCHER_DEBUG("Force cleanup [TERMINATING]")
|
|
Random_Character_Failed()
|
|
Script_Cleanup()
|
|
ENDIF
|
|
|
|
IF NOT IS_REPLAY_IN_PROGRESS()
|
|
IF NOT IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
PRINT_LAUNCHER_DEBUG("Player not in a vehicle [TERMINATING]")
|
|
Random_Character_Failed()
|
|
Script_Cleanup()
|
|
ELSE
|
|
vehDrugsVan = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
// Find out which veh gen the player got in
|
|
IF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), <<68.169144,-1558.958130,29.469042>>) < 10 // VEHGEN_MRSP_PHARMACY1
|
|
g_replay.iReplayInt[0] = 0
|
|
ELIF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), <<589.439880,2736.707764,42.033165>>) < 10 // VEHGEN_MRSP_PHARMACY2
|
|
g_replay.iReplayInt[0] = 1
|
|
ELIF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), <<-488.773956,-344.572052,34.363564>>) < 10 // VEHGEN_MRSP_HOSPITAL1
|
|
g_replay.iReplayInt[0] = 2
|
|
ELIF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), <<288.880829,-585.472839,43.154282>>) < 10 // VEHGEN_MRSP_HOSPITAL2
|
|
g_replay.iReplayInt[0] = 3
|
|
ELIF GET_DISTANCE_BETWEEN_ENTITY_AND_COORD(PLAYER_PED_ID(), <<304.829376,-1383.674194,31.677443>>) < 10 // VEHGEN_MRSP_HOSPITAL3
|
|
g_replay.iReplayInt[0] = 4
|
|
ELSE // VEHGEN_MRSP_HOSPITAL4
|
|
g_replay.iReplayInt[0] = 5
|
|
ENDIF
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Storing g_replay.iReplayInt[0] = ", g_replay.iReplayInt[0])
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Starting setting up MrsPhilips2 replay")
|
|
// Put the player back in the same van
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Retrieving g_replay.iReplayInt[0] = ", g_replay.iReplayInt[0])
|
|
VECTOR v_replay_start
|
|
FLOAT f_replay_start
|
|
IF g_replay.iReplayInt[0] = 0 // VEHGEN_MRSP_PHARMACY1
|
|
v_replay_start = <<68.169144,-1558.958130,29.469042>>
|
|
f_replay_start = 49.905754
|
|
SET_VEHICLE_GEN_AVAILABLE(VEHGEN_MRSP_PHARMACY1, FALSE) // B*1569619 Prevent veh gen appearing in the same place
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Set VEHGEN_MRSP_PHARMACY1 veh gen off")
|
|
ELIF g_replay.iReplayInt[0] = 1 // VEHGEN_MRSP_PHARMACY2
|
|
v_replay_start = <<589.439880,2736.707764,42.033165>>
|
|
f_replay_start = -175.710495
|
|
SET_VEHICLE_GEN_AVAILABLE(VEHGEN_MRSP_PHARMACY2, FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Set VEHGEN_MRSP_PHARMACY2 veh gen off")
|
|
ELIF g_replay.iReplayInt[0] = 2 // VEHGEN_MRSP_HOSPITAL1
|
|
v_replay_start = <<-488.773956,-344.572052,34.363564>>
|
|
f_replay_start = 82.404198
|
|
SET_VEHICLE_GEN_AVAILABLE(VEHGEN_MRSP_HOSPITAL1, FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Set VEHGEN_MRSP_HOSPITAL1 veh gen off")
|
|
ELIF g_replay.iReplayInt[0] = 3 // VEHGEN_MRSP_HOSPITAL2
|
|
v_replay_start = <<288.880829,-585.472839,43.154282>>
|
|
f_replay_start = -20.807068
|
|
SET_VEHICLE_GEN_AVAILABLE(VEHGEN_MRSP_HOSPITAL2, FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Set VEHGEN_MRSP_HOSPITAL2 veh gen off")
|
|
ELIF g_replay.iReplayInt[0] = 4 // VEHGEN_MRSP_HOSPITAL3
|
|
v_replay_start = <<304.829376,-1383.674194,31.677443>>
|
|
f_replay_start = -41.116028
|
|
SET_VEHICLE_GEN_AVAILABLE(VEHGEN_MRSP_HOSPITAL3, FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Set VEHGEN_MRSP_HOSPITAL3 veh gen off")
|
|
ELSE // VEHGEN_MRSP_HOSPITAL4
|
|
v_replay_start = <<1126.194336,-1481.485962,34.701603>>
|
|
f_replay_start = -91.433693
|
|
SET_VEHICLE_GEN_AVAILABLE(VEHGEN_MRSP_HOSPITAL4, FALSE)
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Set VEHGEN_MRSP_HOSPITAL4 veh gen off")
|
|
ENDIF
|
|
START_REPLAY_SETUP(v_replay_start, f_replay_start)
|
|
RC_START_Z_SKIP()
|
|
REQUEST_MODEL(RUMPO2)
|
|
WHILE NOT HAS_MODEL_LOADED(RUMPO2)
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Loading RUMPO2")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Loaded RUMPO2")
|
|
CLEAR_AREA(v_replay_start, 10.0, TRUE)
|
|
vehDrugsVan = CREATE_VEHICLE(RUMPO2, v_replay_start, f_replay_start)
|
|
SET_VEHICLE_ON_GROUND_PROPERLY(vehDrugsVan)
|
|
END_REPLAY_SETUP(vehDrugsVan)
|
|
SetState(RC_DELIVER_TRUCK)
|
|
bDisplayedGoToTrailer = FALSE
|
|
bDisplayedGetInVan = FALSE
|
|
bDisplayedGoInTrailer = FALSE
|
|
WAIT(250) // Wait for van to settle
|
|
CPRINTLN(DEBUG_MISSION, "MRSPHILIPS2: Finished setting up MrsPhilips2 replay")
|
|
RC_END_Z_SKIP()
|
|
ENDIF
|
|
|
|
WHILE(TRUE)
|
|
|
|
WAIT(0)
|
|
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("SF_DG")
|
|
|
|
UPDATE_MISSION_NAME_DISPLAYING(sRCLauncherDataLocal.sIntroCutscene)
|
|
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2197988
|
|
|
|
SWITCH(m_eState)
|
|
|
|
CASE RC_DELIVER_TRUCK
|
|
STATE_DeliverTruck()
|
|
BREAK
|
|
|
|
CASE RC_GO_IN_TRAILER
|
|
STATE_GoInTrailer()
|
|
BREAK
|
|
|
|
CASE RC_MEET_MRS_PHILIPS
|
|
STATE_MeetMrsPhilips()
|
|
BREAK
|
|
|
|
CASE RC_MISSION_FAILED
|
|
STATE_Failed()
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
// Check debug completion/failure
|
|
#IF IS_DEBUG_BUILD
|
|
DEBUG_Check_Debug_Keys()
|
|
#ENDIF
|
|
ENDWHILE
|
|
|
|
// Script should never reach here. Always terminate with cleanup function.
|
|
ENDSCRIPT
|