602 lines
23 KiB
Scheme
Executable File
602 lines
23 KiB
Scheme
Executable File
USING "player_ped_scenes.sch"
|
|
|
|
///private header for player scene scripts
|
|
/// alwyn.roberts@rockstarnorth.com
|
|
///
|
|
|
|
// *******************************************************************************************
|
|
// SCENE PRIVATE COORD FUNCTIONS
|
|
// *******************************************************************************************
|
|
|
|
FUNC BOOL Should_Switch_Cleanup_Be_Forced()
|
|
|
|
IF g_bMagDemoActive
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
VEHICLE_INDEX switch_scene_veh = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
|
|
IF IS_VEHICLE_DRIVEABLE(switch_scene_veh)
|
|
IF IS_PLAYBACK_GOING_ON_FOR_VEHICLE(switch_scene_veh)
|
|
|
|
CPRINTLN(DEBUG_SWITCH, "!!! IS_PLAYBACK_GOING_ON_FOR_VEHICLE !!!")
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_STORY)
|
|
OR IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_STORY_FRIENDS)
|
|
OR IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_STORY_PREP)
|
|
IF NOT IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
AND NOT Is_Player_Timetable_Scene_In_Progress()
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> Should_Switch_Cleanup_Be_Forced: mission is launched/mission flag true ")
|
|
#ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SCRIPT_HUD_DISPLAYING(HUDPART_TRANSITIONHUD)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> Should_Switch_Cleanup_Be_Forced: mp hud is on screen ")
|
|
#ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
#IF USE_TU_CHANGES
|
|
IF MPGlobals.g_bEndSingleplayerNow
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> Should_Switch_Cleanup_Be_Forced: g_bEndSingleplayerNow")
|
|
|
|
// CASSERTLN(DEBUG_SWITCH, "Should_Switch_Cleanup_Be_Forced: g_bEndSingleplayerNow")
|
|
#ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
// IF (g_sPlayerPedRequest.eType = PR_TYPE_AMBIENT)
|
|
IF (g_sPlayerPedRequest.eState = PR_STATE_PROCESSING)
|
|
IF (g_sPlayerPedRequest.iStage = 0)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> Should_Switch_Cleanup_Be_Forced: new SCRIPT switch has started ")
|
|
#ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
// ENDIF
|
|
|
|
IF IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
IF (GET_PLAYER_SWITCH_TYPE() <> SWITCH_TYPE_SHORT)
|
|
IF (GET_PLAYER_SWITCH_STATE() <= SWITCH_STATE_PREP_FOR_CUT)
|
|
AND (GET_PLAYER_SWITCH_STATE() <> SWITCH_STATE_PREP_DESCENT)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> Should_Switch_Cleanup_Be_Forced: new CODE switch has started ")
|
|
#ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL ProgressScene(INT iPedBit, ENTITY_INDEX entityID)
|
|
|
|
|
|
IF IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
IF (GET_PLAYER_SWITCH_TYPE() <> SWITCH_TYPE_SHORT)
|
|
IF (GET_PLAYER_SWITCH_STATE() <= SWITCH_STATE_PREP_FOR_CUT)
|
|
AND (GET_PLAYER_SWITCH_STATE() <> SWITCH_STATE_PREP_DESCENT)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> ProgressScene: new CODE switch has started ")
|
|
#ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
|
|
IF IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_DIRECTOR)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> STOP ProgressScene: currently on mission type director ")
|
|
#ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF GET_IS_PLAYER_IN_ANIMAL_FORM()
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> STOP ProgressScene: currently is in animal form.")
|
|
#ENDIF
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NOT IS_BITMASK_SET(iPedBit, GET_CURRENT_PLAYER_PED_BIT())
|
|
#IF IS_DEBUG_BUILD
|
|
CDEBUG3LN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> STOP ProgressScene: current ped changed ", GET_CURRENT_PLAYER_PED_STRING(), " <> ")
|
|
|
|
BOOL bCharBitFound = FALSE
|
|
IF IS_BITMASK_SET(iPedBit, BIT_MICHAEL)
|
|
CDEBUG3LN(DEBUG_SWITCH, "BIT_MICHAEL")
|
|
bCharBitFound = TRUE
|
|
ENDIF
|
|
IF IS_BITMASK_SET(iPedBit, BIT_FRANKLIN)
|
|
IF bCharBitFound
|
|
CDEBUG3LN(DEBUG_SWITCH, "|")
|
|
ENDIF
|
|
CDEBUG3LN(DEBUG_SWITCH, "BIT_FRANKLIN")
|
|
bCharBitFound = TRUE
|
|
ENDIF
|
|
IF IS_BITMASK_SET(iPedBit, BIT_TREVOR)
|
|
IF bCharBitFound
|
|
CDEBUG3LN(DEBUG_SWITCH, "|")
|
|
ENDIF
|
|
CDEBUG3LN(DEBUG_SWITCH, "BIT_TREVOR")
|
|
bCharBitFound = TRUE
|
|
ENDIF
|
|
IF NOT bCharBitFound
|
|
CDEBUG3LN(DEBUG_SWITCH, "BIT_unknown")
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF DOES_ENTITY_EXIST(entityID)
|
|
|
|
VECTOR vEntityCoord = GET_ENTITY_COORDS(entityID, FALSE)
|
|
FLOAT fDist = VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), vEntityCoord)
|
|
|
|
IF fDist > 250.0
|
|
IF NOT IS_ENTITY_DEAD(entityID)
|
|
IF NOT IS_ENTITY_ON_SCREEN(entityID)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CDEBUG3LN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> STOP ProgressScene: current entity distance ", fDist)
|
|
#ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
ELSE
|
|
IF NOT IS_SPHERE_VISIBLE(vEntityCoord, 1.5)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CDEBUG3LN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> STOP ProgressScene: current entity distance ", fDist)
|
|
#ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
|
|
IF (entityID = GET_ENTITY_FROM_PED_OR_VEHICLE(g_pScene_buddy))
|
|
AND (entityID != NULL)
|
|
CASSERTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> ProgressScene: clean up non existant pedID for #2327327 (entityID: ", NATIVE_TO_INT(entityID), ")")
|
|
g_pScene_buddy = NULL
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
|
|
|
|
// *******************************************************************************************
|
|
// SCENE PRIVATE EVENT FUNCTIONS
|
|
// *******************************************************************************************
|
|
|
|
|
|
FUNC BOOL IsPlayerMovingLeftStick(INT &iDrawSceneRot, INT iLEFT_STICK_THRESHOLD = 64)
|
|
|
|
INT ReturnLeftX = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_AXIS_X) -128
|
|
INT ReturnLeftY = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_AXIS_Y) -128
|
|
|
|
IF ReturnLeftX < iLEFT_STICK_THRESHOLD
|
|
AND ReturnLeftX > -iLEFT_STICK_THRESHOLD
|
|
AND ReturnLeftY < iLEFT_STICK_THRESHOLD
|
|
AND ReturnLeftY > -iLEFT_STICK_THRESHOLD
|
|
|
|
//
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 strStick
|
|
strStick = "left stick("
|
|
strStick += ReturnLeftX
|
|
strStick += ", "
|
|
strStick += ReturnLeftY
|
|
strStick += ")"
|
|
|
|
DrawLiteralSceneString(strStick, iDrawSceneRot, HUD_COLOUR_BLUEDARK)
|
|
#ENDIF
|
|
iDrawSceneRot++
|
|
//
|
|
|
|
ELSE
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IsPlayerUsingAccelerateOrBrake(VEHICLE_INDEX vehIndex, INT &iDrawSceneRot)
|
|
|
|
IF NOT IS_VEHICLE_DRIVEABLE(vehIndex)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
CONTROL_ACTION eInputVehAccelerate = INPUT_VEH_ACCELERATE
|
|
IF (IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(vehIndex)))
|
|
eInputVehAccelerate = INPUT_SPRINT
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(PLAYER_CONTROL, eInputVehAccelerate)
|
|
OR IS_CONTROL_PRESSED(PLAYER_CONTROL, INPUT_VEH_BRAKE)
|
|
RETURN TRUE
|
|
ELSE
|
|
|
|
//
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
INT ReturnLeftX = GET_CONTROL_VALUE(PLAYER_CONTROL,eInputVehAccelerate)
|
|
INT ReturnLeftY = GET_CONTROL_VALUE(PLAYER_CONTROL,INPUT_VEH_BRAKE)
|
|
|
|
TEXT_LABEL_63 strStick
|
|
strStick = "acc:"
|
|
strStick += ReturnLeftX
|
|
strStick += " brake:"
|
|
strStick += ReturnLeftY
|
|
|
|
DrawLiteralSceneString(strStick, iDrawSceneRot, HUD_COLOUR_BLUEDARK)
|
|
#ENDIF
|
|
iDrawSceneRot++
|
|
//
|
|
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
// *******************************************************************************************
|
|
// SCENE PRIVATE PAUSE FUNCTIONS
|
|
// *******************************************************************************************
|
|
|
|
//PAUSE_BEFORE_PAN
|
|
PROC ar_ALLOW_PLAYER_SWITCH_PAN()
|
|
|
|
IF NOT IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_PAN() if player switch not in progress")
|
|
#ENDIF
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF (GET_PLAYER_SWITCH_TYPE() = SWITCH_TYPE_SHORT)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_PAN() during SWITCH_TYPE_SHORT")
|
|
#ENDIF
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> ar_ALLOW_PLAYER_SWITCH_PAN()")
|
|
#ENDIF
|
|
|
|
ALLOW_PLAYER_SWITCH_PAN()
|
|
ENDPROC
|
|
|
|
//PAUSE_BEFORE_OUTRO
|
|
PROC ar_ALLOW_PLAYER_SWITCH_OUTRO()
|
|
|
|
IF NOT IS_PLAYER_SWITCH_IN_PROGRESS()
|
|
IF IS_SCREEN_FADED_OUT()
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") if player switch not in progress [g_iPauseOnOutro:", g_iPauseOnOutro, "] - screen faded out")
|
|
// CASSERTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") if player switch not in progress [g_iPauseOnOutro:", g_iPauseOnOutro, "] - screen faded out")
|
|
#ENDIF
|
|
|
|
CLEAR_Pause_Outro_Count()
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") if player switch not in progress [g_iPauseOnOutro:", g_iPauseOnOutro, "] - screen faded in")
|
|
//Steve T removed this assert only for bug 2484303. Looks like all similar asserts in this proc had been previously removed, so safe enough to remove this one too.
|
|
//CASSERTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") if player switch not in progress [g_iPauseOnOutro:", g_iPauseOnOutro, "] - screen faded in")
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF (GET_PLAYER_SWITCH_TYPE() = SWITCH_TYPE_SHORT)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") during SWITCH_TYPE_SHORT [g_iPauseOnOutro:", g_iPauseOnOutro, "]")
|
|
// CASSERTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") during SWITCH_TYPE_SHORT [g_iPauseOnOutro:", g_iPauseOnOutro, "]")
|
|
#ENDIF
|
|
|
|
CLEAR_Pause_Outro_Count()
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
DECRAMENT_Pause_Outro_Count()
|
|
IF (g_iPauseOnOutro > 0)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") g_iPauseOnOutro is still greater than zero [g_iPauseOnOutro:", g_iPauseOnOutro, "]")
|
|
// CASSERTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> cannot call ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") g_iPauseOnOutro is still greater than zero [g_iPauseOnOutro:", g_iPauseOnOutro, "]")
|
|
#ENDIF
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> ar_ALLOW_PLAYER_SWITCH_OUTRO(", Get_String_From_Ped_Request_Scene_Enum(g_eRecentlySelectedScene), ") //g_iPauseOnOutro:", g_iPauseOnOutro)
|
|
#ENDIF
|
|
|
|
ALLOW_PLAYER_SWITCH_OUTRO()
|
|
ENDPROC
|
|
|
|
// *******************************************************************************************
|
|
// SCENE PRIVATE OVERRIDE FUNCTIONS
|
|
// *******************************************************************************************
|
|
|
|
PROC SET_PED_SWITCH_OVERRIDECLF(enumCharacterList ePed, VECTOR vPos, FLOAT fHeading)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> SET_PED_SWITCH_OVERRIDE(", GET_PLAYER_PED_STRING(ePed), ", ", vPos, ", ", fHeading, ")")
|
|
#ENDIF
|
|
|
|
SWITCH ePed
|
|
CASE CHAR_MICHAEL
|
|
g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_M_OVERRIDE
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_F_OVERRIDE
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_T_OVERRIDE
|
|
BREAK
|
|
|
|
DEFAULT
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 str
|
|
str = "invalid ePed in SET_PED_SWITCH_OVERRIDE: "
|
|
str += GET_PLAYER_PED_STRING(ePed)
|
|
|
|
CPRINTLN(DEBUG_SWITCH, GET_THIS_SCRIPT_NAME(), ": ", str)
|
|
CASSERTLN(DEBUG_SWITCH, str)
|
|
#ENDIF
|
|
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
g_sOverrideScene[ePed].ePed = ePed
|
|
g_sOverrideScene[ePed].eScene = g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed]
|
|
g_sOverrideScene[ePed].vCreateCoords = vPos
|
|
g_sOverrideScene[ePed].fCreateHead = fHeading
|
|
|
|
ENDPROC
|
|
PROC SET_PED_SWITCH_OVERRIDENRM(enumCharacterList ePed, VECTOR vPos, FLOAT fHeading)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> SET_PED_SWITCH_OVERRIDE(", GET_PLAYER_PED_STRING(ePed), ", ", vPos, ", ", fHeading, ")")
|
|
#ENDIF
|
|
|
|
SWITCH ePed
|
|
CASE CHAR_MICHAEL
|
|
g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_M_OVERRIDE
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_F_OVERRIDE
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_T_OVERRIDE
|
|
BREAK
|
|
|
|
DEFAULT
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 str
|
|
str = "invalid ePed in SET_PED_SWITCH_OVERRIDE: "
|
|
str += GET_PLAYER_PED_STRING(ePed)
|
|
|
|
CPRINTLN(DEBUG_SWITCH, GET_THIS_SCRIPT_NAME(), ": ", str)
|
|
CASSERTLN(DEBUG_SWITCH, str)
|
|
#ENDIF
|
|
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
g_sOverrideScene[ePed].ePed = ePed
|
|
g_sOverrideScene[ePed].eScene = g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed]
|
|
g_sOverrideScene[ePed].vCreateCoords = vPos
|
|
g_sOverrideScene[ePed].fCreateHead = fHeading
|
|
|
|
ENDPROC
|
|
PROC SET_PED_SWITCH_OVERRIDE(enumCharacterList ePed, VECTOR vPos, FLOAT fHeading)
|
|
#if USE_CLF_DLC
|
|
if g_bLoadedClifford
|
|
SET_PED_SWITCH_OVERRIDECLF(ePed,vPos,fHeading)
|
|
EXIT
|
|
endif
|
|
#endif
|
|
#if USE_NRM_DLC
|
|
if g_bLoadedNorman
|
|
SET_PED_SWITCH_OVERRIDENRM(ePed)
|
|
EXIT
|
|
endif
|
|
#endif
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> SET_PED_SWITCH_OVERRIDE(", GET_PLAYER_PED_STRING(ePed), ", ", vPos, ", ", fHeading, ")")
|
|
#ENDIF
|
|
|
|
SWITCH ePed
|
|
CASE CHAR_MICHAEL
|
|
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_M_OVERRIDE
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_F_OVERRIDE
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_T_OVERRIDE
|
|
BREAK
|
|
|
|
DEFAULT
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 str
|
|
str = "invalid ePed in SET_PED_SWITCH_OVERRIDE: "
|
|
str += GET_PLAYER_PED_STRING(ePed)
|
|
|
|
CPRINTLN(DEBUG_SWITCH, GET_THIS_SCRIPT_NAME(), ": ", str)
|
|
CASSERTLN(DEBUG_SWITCH, str)
|
|
#ENDIF
|
|
|
|
EXIT
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
g_sOverrideScene[ePed].ePed = ePed
|
|
g_sOverrideScene[ePed].eScene = g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed]
|
|
g_sOverrideScene[ePed].vCreateCoords = vPos
|
|
g_sOverrideScene[ePed].fCreateHead = fHeading
|
|
|
|
ENDPROC
|
|
PROC CLEAR_PED_SWITCH_OVERRIDECLF(enumCharacterList ePed)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> CLEAR_PED_SWITCH_OVERRIDE(", GET_PLAYER_PED_STRING(ePed), ")")
|
|
#ENDIF
|
|
|
|
IF (g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_M_OVERRIDE)
|
|
AND (g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_F_OVERRIDE)
|
|
AND (g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_T_OVERRIDE)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 str
|
|
str = "invalid ePed in CLEAR_PED_SWITCH_OVERRIDE: "
|
|
str += GET_PLAYER_PED_STRING(ePed)
|
|
|
|
CPRINTLN(DEBUG_SWITCH, GET_THIS_SCRIPT_NAME(), ": ", str, ", ", Get_String_From_Ped_Request_Scene_Enum(g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed]))
|
|
|
|
CASSERTLN(DEBUG_SWITCH, str)
|
|
#ENDIF
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
g_savedGlobalsClifford.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
|
|
|
g_sOverrideScene[ePed].ePed = NO_CHARACTER
|
|
g_sOverrideScene[ePed].eScene = PR_SCENE_INVALID
|
|
g_sOverrideScene[ePed].vCreateCoords = <<0,0,0>>
|
|
g_sOverrideScene[ePed].fCreateHead = 0
|
|
|
|
ENDPROC
|
|
PROC CLEAR_PED_SWITCH_OVERRIDENRM(enumCharacterList ePed)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> CLEAR_PED_SWITCH_OVERRIDE(", GET_PLAYER_PED_STRING(ePed), ")")
|
|
#ENDIF
|
|
|
|
IF (g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_M_OVERRIDE)
|
|
AND (g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_F_OVERRIDE)
|
|
AND (g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_T_OVERRIDE)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 str
|
|
str = "invalid ePed in CLEAR_PED_SWITCH_OVERRIDE: "
|
|
str += GET_PLAYER_PED_STRING(ePed)
|
|
|
|
CPRINTLN(DEBUG_SWITCH, GET_THIS_SCRIPT_NAME(), ": ", str, ", ", Get_String_From_Ped_Request_Scene_Enum(g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed]))
|
|
|
|
CASSERTLN(DEBUG_SWITCH, str)
|
|
#ENDIF
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
g_savedGlobalsnorman.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
|
|
|
g_sOverrideScene[ePed].ePed = NO_CHARACTER
|
|
g_sOverrideScene[ePed].eScene = PR_SCENE_INVALID
|
|
g_sOverrideScene[ePed].vCreateCoords = <<0,0,0>>
|
|
g_sOverrideScene[ePed].fCreateHead = 0
|
|
|
|
ENDPROC
|
|
PROC CLEAR_PED_SWITCH_OVERRIDE(enumCharacterList ePed)
|
|
|
|
#IF USE_CLF_DLC
|
|
IF g_bLoadedClifford
|
|
CLEAR_PED_SWITCH_OVERRIDECLF(ePed)
|
|
EXIT
|
|
ENDIF
|
|
#ENDIF
|
|
#IF USE_NRM_DLC
|
|
IF g_bLoadedNorman
|
|
CLEAR_PED_SWITCH_OVERRIDENRM(ePed)
|
|
EXIT
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> CLEAR_PED_SWITCH_OVERRIDE(", GET_PLAYER_PED_STRING(ePed), ")")
|
|
#ENDIF
|
|
|
|
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_M_OVERRIDE)
|
|
AND (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_F_OVERRIDE)
|
|
AND (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] <> PR_SCENE_T_OVERRIDE)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
TEXT_LABEL_63 str
|
|
str = "invalid ePed in CLEAR_PED_SWITCH_OVERRIDE: "
|
|
str += GET_PLAYER_PED_STRING(ePed)
|
|
|
|
CPRINTLN(DEBUG_SWITCH, GET_THIS_SCRIPT_NAME(), ": ", str, ", ", Get_String_From_Ped_Request_Scene_Enum(g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed]))
|
|
|
|
CASSERTLN(DEBUG_SWITCH, str)
|
|
#ENDIF
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
|
|
|
g_sOverrideScene[ePed].ePed = NO_CHARACTER
|
|
g_sOverrideScene[ePed].eScene = PR_SCENE_INVALID
|
|
g_sOverrideScene[ePed].vCreateCoords = <<0,0,0>>
|
|
g_sOverrideScene[ePed].fCreateHead = 0
|
|
|
|
ENDPROC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
PROC DrawLiteralSceneTitle(PED_REQUEST_SCENE_ENUM eScene, INT iColumn, HUD_COLOURS eColour = HUD_COLOUR_PURE_WHITE, FLOAT fAlphaMult = 1.0)
|
|
|
|
STRING sScene = Get_String_From_Ped_Request_Scene_Enum(eScene)
|
|
DrawLiteralSceneString(GET_STRING_FROM_STRING(sScene,
|
|
GET_LENGTH_OF_LITERAL_STRING("PR_SCENE_"),
|
|
GET_LENGTH_OF_LITERAL_STRING(sScene)),
|
|
iColumn, eColour, fAlphaMult)
|
|
|
|
ENDPROC
|
|
#ENDIF
|
|
|