239 lines
8.1 KiB
Python
Executable File
239 lines
8.1 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 "initial_scenes_MrsPhilips.sch"
|
|
USING "commands_recording.sch"
|
|
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
//
|
|
// MISSION NAME : MrsPhilips1.sc
|
|
// AUTHOR : David Roberts
|
|
// DESCRIPTION : Trevor encounters his mother at his trailer
|
|
//
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
g_structRCScriptArgs sRCLauncherDataLocal
|
|
|
|
ENUM eRC_MainState
|
|
RC_MEET_MRS_PHILIPS
|
|
ENDENUM
|
|
|
|
ENUM eRC_SubState
|
|
SS_SETUP = 0,
|
|
SS_UPDATE,
|
|
SS_CLEANUP
|
|
ENDENUM
|
|
|
|
// Mission state
|
|
eRC_MainState m_eState = RC_MEET_MRS_PHILIPS
|
|
eRC_SubState m_eSubState = SS_SETUP
|
|
|
|
INT iCutsceneStage
|
|
BOOL bCutsceneSkipped
|
|
|
|
// ===========================================================================================================
|
|
// Termination
|
|
// ===========================================================================================================
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// Script Cleanup
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
PROC Script_Cleanup()
|
|
|
|
// Ensure launcher is cleaned up
|
|
RC_CLEANUP_LAUNCHER()
|
|
|
|
// If the mission was triggered then additional mission cleanup will be required.
|
|
IF (Random_Character_Cleanup_If_Triggered())
|
|
CPRINTLN(DEBUG_MISSION, "...Random Character Script was triggered so additional cleanup required")
|
|
ENDIF
|
|
|
|
// Cleanup the scene created by the launcher
|
|
RC_CleanupSceneEntities(sRCLauncherDataLocal, TRUE)
|
|
|
|
TERMINATE_THIS_THREAD()
|
|
ENDPROC
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// Script Pass
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
PROC Script_Passed()
|
|
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
|
|
IF IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_T_TRAILER_CS))
|
|
DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_T_TRAILER_CS), 0.0)
|
|
DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_T_TRAILER_CS), DOORSTATE_LOCKED) // B*1292771
|
|
CPRINTLN(DEBUG_MISSION, "Locked door into Trevor's trailer")
|
|
ENDIF
|
|
Random_Character_Passed(CP_RAND_C_MRS1)
|
|
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))
|
|
OR (IS_KEYBOARD_KEY_JUST_PRESSED(KEY_J))
|
|
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()
|
|
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:
|
|
/// Triggers the mocap cutscene, places Trevor outside the trailer, locks the door and completes mission
|
|
PROC STATE_MeetMrsPhilips()
|
|
|
|
SWITCH m_eSubState
|
|
CASE SS_SETUP
|
|
RC_REQUEST_CUTSCENE("TMOM_1_RCM")
|
|
iCutsceneStage = 0
|
|
bCutsceneSkipped = FALSE
|
|
m_eSubState = SS_UPDATE
|
|
BREAK
|
|
CASE SS_UPDATE
|
|
SWITCH iCutsceneStage
|
|
CASE 0
|
|
IF RC_IS_CUTSCENE_OK_TO_START()
|
|
RC_CLEANUP_LAUNCHER()
|
|
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
|
|
IF IS_DOOR_REGISTERED_WITH_SYSTEM(ENUM_TO_INT(DOORHASH_T_TRAILER_CS))
|
|
DOOR_SYSTEM_SET_OPEN_RATIO(ENUM_TO_INT(DOORHASH_T_TRAILER_CS), 0.0)
|
|
DOOR_SYSTEM_SET_DOOR_STATE(ENUM_TO_INT(DOORHASH_T_TRAILER_CS), DOORSTATE_UNLOCKED) // B*1556640
|
|
CPRINTLN(DEBUG_MISSION, "Unlocked door into Trevor's trailer")
|
|
ENDIF
|
|
START_CUTSCENE()
|
|
|
|
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(<< 1974.5129, 3814.5791, 32.4266 >>, TRUE, TRUE, TRUE, TRUE, FALSE) // B*1901880 - don't clear objects in order to prevent broken fences being immediately respawned
|
|
iCutsceneStage++
|
|
ENDIF
|
|
BREAK
|
|
CASE 2
|
|
IF IS_CUTSCENE_PLAYING()
|
|
IF CAN_SET_EXIT_STATE_FOR_REGISTERED_ENTITY("Trevor")
|
|
SAFE_TELEPORT_ENTITY(PLAYER_PED_ID(), <<1974.5129, 3814.5791, 32.4266>>, 270) // Teleport Trevor back outside the trailer
|
|
FORCE_PED_MOTION_STATE(PLAYER_PED_ID(), MS_ON_FOOT_WALK, FALSE, FAUS_CUTSCENE_EXIT)
|
|
SIMULATE_PLAYER_INPUT_GAIT(PLAYER_ID(), PEDMOVEBLENDRATIO_WALK, 4000)
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
CPRINTLN(DEBUG_MISSION, "Making Trevor walk forwards after intro")
|
|
ENDIF
|
|
IF WAS_CUTSCENE_SKIPPED()
|
|
bCutsceneSkipped = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF bCutsceneSkipped = TRUE
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
ENDIF
|
|
REPLAY_STOP_EVENT()
|
|
RC_END_CUTSCENE_MODE()
|
|
RC_SET_ENTITY_PROOFS_FOR_CUTSCENE(sRCLauncherDataLocal, FALSE)
|
|
Script_Passed()
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
// ===========================================================================================================
|
|
// Script Loop
|
|
// ===========================================================================================================
|
|
|
|
SCRIPT(g_structRCScriptArgs sRCLauncherDataIn)
|
|
|
|
sRCLauncherDataLocal = sRCLauncherDataIn
|
|
RC_TakeEntityOwnership(sRCLauncherDataLocal)
|
|
|
|
SET_MISSION_FLAG(TRUE)
|
|
|
|
// Setup callback when player is killed, arrested or goes to multiplayer
|
|
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
|
|
|
|
// Loop within here until the mission passes or fails
|
|
WHILE(TRUE)
|
|
|
|
WAIT(0)
|
|
|
|
REPLAY_CHECK_FOR_EVENT_THIS_FRAME("SF_MrsPhilips")
|
|
|
|
UPDATE_MISSION_NAME_DISPLAYING(sRCLauncherDataLocal.sIntroCutscene)
|
|
|
|
REPLAY_DISABLE_CAMERA_MOVEMENT_THIS_FRAME() //Fix for bug 2197988
|
|
|
|
SWITCH(m_eState)
|
|
CASE RC_MEET_MRS_PHILIPS
|
|
STATE_MeetMrsPhilips()
|
|
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
|
|
|