Files
2025-09-29 00:52:08 +02:00

2475 lines
76 KiB
XML
Executable File

USING "familyAnim_private.sch"
USING "player_scene_assets.sch"
//////////////////////////////////////////////////////////////////////////////////////////
// //
// SCRIPT NAME : player_scene_anim.sch //
// AUTHOR : Alwyn Roberts //
// DESCRIPTION : Contains the players timetable and procs to set up the //
// scenes for each slot in the timetable. //
// //
//////////////////////////////////////////////////////////////////////////////////////////
// *******************************************************************************************
// SCENE TIMETABLE
// *******************************************************************************************
PROC InitialisePlaceholderPlayerAnim(PED_REQUEST_SCENE_ENUM ePedScene, TEXT_LABEL_63 &tPlayerAnimDict, TEXT_LABEL_63 &tPlayerAnimLoop, TEXT_LABEL_63 &tPlayerAnimOut,
STRING sPlayerAnimDict, STRING sPlayerAnimLoop, STRING sPlayerAnimOut) //, enumPlayerSceneAnimProgress &ePlayerSceneAnimProgress)
PRINTSTRING("placeholder anim for scene ")
#IF IS_DEBUG_BUILD
PRINTSTRING(Get_String_From_Ped_Request_Scene_Enum(ePedScene))
#ENDIF
#IF NOT IS_DEBUG_BUILD
PRINTSTRING("pr_scene_")
PRINTINT(ENUM_TO_INT(ePedScene))
#ENDIF
PRINTSTRING(" (\"")
PRINTSTRING(sPlayerAnimDict)
PRINTSTRING("\", \"")
PRINTSTRING(sPlayerAnimLoop)
PRINTSTRING("\", \"")
PRINTSTRING(sPlayerAnimOut)
PRINTSTRING("\")")
PRINTNL()
tPlayerAnimDict = sPlayerAnimDict
tPlayerAnimLoop = sPlayerAnimLoop
tPlayerAnimOut = sPlayerAnimOut
//ePlayerSceneAnimProgress = PAP_1_placeholder
ENDPROC
PROC InitialisePlaceholderPlayerSmokeAnim(PED_REQUEST_SCENE_ENUM ePedScene, TEXT_LABEL_63 &tPlayerAnimDict, TEXT_LABEL_63 &tPlayerAnimLoop, TEXT_LABEL_63 &tPlayerAnimOut) //, enumPlayerSceneAnimProgress &ePlayerSceneAnimProgress)
tPlayerAnimDict = "AMB@WORLD_HUMAN_SMOKING@MALE@MALE_A@IDLE_A" //"amb@hooker",
tPlayerAnimLoop = "IDLE_A" //"smoke_stand_a",
tPlayerAnimOut = "IDLE_A" //"smoke_stub_out",
PRINTSTRING("smoking placeholder anim for scene ")
#IF IS_DEBUG_BUILD
PRINTSTRING(Get_String_From_Ped_Request_Scene_Enum(ePedScene))
#ENDIF
#IF NOT IS_DEBUG_BUILD
PRINTSTRING("pr_scene_")
PRINTINT(ENUM_TO_INT(ePedScene))
#ENDIF
PRINTSTRING(" (\"")
PRINTSTRING(tPlayerAnimDict)
PRINTSTRING("\", \"")
PRINTSTRING(tPlayerAnimLoop)
PRINTSTRING("\", \"")
PRINTSTRING(tPlayerAnimOut)
PRINTSTRING("\")")
PRINTNL()
//ePlayerSceneAnimProgress = PAP_1_placeholder
ENDPROC
// *******************************************************************************************
// SCENE PRIVATE EVENT FUNCTIONS
// *******************************************************************************************
FUNC BOOL BLENDOUT_OF_SYNCH_TASK_FOR_TIMETABLE_SCENE(PED_REQUEST_SCENE_ENUM ePedScene, INT &iSimulatePlayerInputGait)
SWITCH ePedScene
CASE PR_SCENE_M7_WIFETENNIS iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_T_CR_BLOCK_CAMERA iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
// CASE PR_SCENE_M7_RESTAURANT iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_M7_KIDS_GAMING iSimulatePlayerInputGait = (0750) RETURN TRUE BREAK
CASE PR_SCENE_T_ESCORTED_OUT iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_T_CR_DUMPSTER iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_F_MD_KUSH_DOC iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_F_KUSH_DOC_a iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_T6_DIGGING iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_T_NAKED_BRIDGE iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
// CASE PR_SCENE_T_DOCKS_a iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_M4_WASHFACE iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
// CASE PR_SCENE_M_HOOKERMOTEL iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_M7_HOOKERS iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
CASE PR_SCENE_F0_GARBAGE iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
// CASE PR_SCENE_F1_GARBAGE iSimulatePlayerInputGait = (1500) RETURN TRUE BREAK
ENDSWITCH
iSimulatePlayerInputGait = -1
RETURN FALSE
ENDFUNC
PROC P_GET_PLAYER_SYNCHRONIZED_SCENE_DATA(PED_REQUEST_SCENE_ENUM ePedScene, SYNCED_SCENE_PLAYBACK_FLAGS &scpf_Flags, FLOAT &fBlendIn, FLOAT &fBlendOut, RAGDOLL_BLOCKING_FLAGS &ragdollFlags, IK_CONTROL_FLAGS &ikFlags)
fBlendIn = INSTANT_BLEND_IN
fBlendOut = WALK_BLEND_OUT
scpf_Flags = SYNCED_SCENE_DONT_INTERRUPT | SYNCED_SCENE_USE_PHYSICS
ragdollFlags = RBF_NONE
ikFlags = AIK_NONE
SWITCH ePedScene
CASE PR_SCENE_M_BENCHCALL_a
CASE PR_SCENE_M_BENCHCALL_b
CASE PR_SCENE_M6_ONPHONE
CASE PR_SCENE_M6_DEPRESSED
fBlendIn = INSTANT_BLEND_IN
fBlendOut = WALK_BLEND_OUT
BREAK
CASE PR_SCENE_T_CR_BLOCK_CAMERA
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_T6_DIGGING
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_T_ESCORTED_OUT
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
fBlendOut = SLOW_BLEND_OUT //1175231
BREAK
CASE PR_SCENE_T_CR_DUMPSTER
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_F_MD_KUSH_DOC
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_M7_WIFETENNIS
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_M7_KIDS_GAMING
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_T_NAKED_BRIDGE
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
// CASE PR_SCENE_M7_RESTAURANT
// scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
// BREAK
// CASE PR_SCENE_T_DOCKS_a
// scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
// BREAK
CASE PR_SCENE_F_KUSH_DOC_a
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_M4_WASHFACE
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
// CASE PR_SCENE_M_HOOKERMOTEL
// scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
// BREAK
CASE PR_SCENE_T_GUITARBEATDOWN
ikFlags = AIK_DISABLE_HEAD_IK
BREAK
CASE PR_SCENE_M7_LOUNGECHAIRS
ikFlags = AIK_DISABLE_HEAD_IK
BREAK
CASE PR_SCENE_M7_HOOKERS
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_F0_GARBAGE
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_F_LAMTAUNT_P5
ikFlags = AIK_DISABLE_HEAD_IK
BREAK
// CASE PR_SCENE_F1_GARBAGE
// scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
// BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
INT iTempSimulatePlayerInputGait
IF BLENDOUT_OF_SYNCH_TASK_FOR_TIMETABLE_SCENE(ePedScene, iTempSimulatePlayerInputGait)
IF NOT IS_BITMASK_ENUM_AS_ENUM_SET(scpf_Flags, SYNCED_SCENE_TAG_SYNC_OUT)
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
SCRIPT_ASSERT("blendout of synch task without TAG_SYNC_OUT??")
ENDIF
ENDIF
#ENDIF
ENDPROC
/// PURPOSE: Returns the coords and heading of the ped we are going to hotswap to for the specified scene.
FUNC BOOL GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PED_REQUEST_SCENE_ENUM ePedScene,
TEXT_LABEL_63 &tPlayerAnimDict, TEXT_LABEL_63 &tPlayerAnimLoop, TEXT_LABEL_63 &tPlayerAnimOut,
ANIMATION_FLAGS &playerAnimLoopFlag, ANIMATION_FLAGS &playerAnimOutFlag) //, enumPlayerSceneAnimProgress &ePlayerSceneAnimProgress)
playerAnimLoopFlag = AF_LOOPING | AF_NOT_INTERRUPTABLE
playerAnimOutFlag = AF_DEFAULT
//ePlayerSceneAnimProgress = PAP_0_default
SWITCH ePedScene
CASE PR_SCENE_Fa_STRIPCLUB_ARM3
tPlayerAnimDict = "SWITCH@FRANKLIN@STRIPCLUB"
tPlayerAnimLoop = "002113_02_FRAS_15_STRIPCLUB_IDLE"
tPlayerAnimOut = "002113_02_FRAS_15_STRIPCLUB_EXIT"
RETURN TRUE
BREAK
// CASE PR_SCENE_Ma_ARM3
// InitialisePlaceholderPlayerSmokeAnim(PED_REQUEST_SCENE_ENUM ePedScene, TEXT_LABEL_63 &tPlayerAnimDict, TEXT_LABEL_63 &tPlayerAnimLoop, TEXT_LABEL_63 &tPlayerAnimOut, enumPlayerSceneAnimProgress &ePlayerSceneAnimProgress)
// RETURN TRUE
// BREAK
// CASE PR_SCENE_Fa_STRIPCLUB_FAM1
// tPlayerAnimDict = "SWITCH@FRANKLIN@STRIPCLUB2"
// tPlayerAnimLoop = "IG_16_BASE"
// tPlayerAnimOut = "IG_16_EXIT"
//
// RETURN TRUE
// BREAK
// CASE PR_SCENE_Fa_STRIPCLUB_FAM3
// tPlayerAnimDict = "SWITCH@FRANKLIN@STRIPCLUB3"
// tPlayerAnimLoop = "IG_17_BASE"
// tPlayerAnimOut = "IG_17_EXIT"
//
// RETURN TRUE
// BREAK
// CASE PR_SCENE_Fa_FAMILY1
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Fa_FAMILY3
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Fa_FBI1
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Fa_FBI4
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Ma_FAMILY4_a
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_M_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Ma_CARSTEAL1
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_M_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Fa_AGENCY1
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Ma_EXILE2
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_T_SMOKEMETH,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
CASE PR_SCENE_M4_WASHFACE
tPlayerAnimDict = "SWITCH@MICHAEL@WASH_FACE"
tPlayerAnimLoop = "LOOP_Michael"
tPlayerAnimOut = "EXIT_Michael"
RETURN TRUE
BREAK
// CASE PR_SCENE_Ma_AGENCY2A
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_T_SWEATSHOP,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Ma_AGENCY3A
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_T_SWEATSHOP,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
// CASE PR_SCENE_Fa_RURAL2A
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F_TRAFFIC_a,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
#IF NOT IS_JAPANESE_BUILD
CASE PR_SCENE_T_SHIT
tPlayerAnimDict = "SWITCH@TREVOR@ON_TOILET"
tPlayerAnimLoop = "trev_on_toilet_loop"
tPlayerAnimOut = "trev_on_toilet_exit"
playerAnimLoopFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE | AF_LOOPING
playerAnimOutFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE
RETURN TRUE
BREAK
CASE PR_SCENE_T_JERKOFF
tPlayerAnimDict = "SWITCH@TREVOR@JERKING_OFF"
tPlayerAnimLoop = "trev_jerking_off_loop"
tPlayerAnimOut = "trev_jerking_off_exit"
playerAnimLoopFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE | AF_LOOPING
playerAnimOutFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE
RETURN TRUE
BREAK
#ENDIF
CASE PR_SCENE_M2_BEDROOM
tPlayerAnimDict = "SWITCH@MICHAEL@BEDROOM"
tPlayerAnimLoop = "BED_LOOP_Michael"
tPlayerAnimOut = "BED_EXIT_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_SAVEHOUSE0_b
tPlayerAnimDict = "SWITCH@MICHAEL@BEDROOM2"
tPlayerAnimLoop = "BED_LOOP_Michael"
tPlayerAnimOut = "BED_EXIT_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_SAVEHOUSE1_a
tPlayerAnimDict = "SAFE@MICHAEL@IG_3"
tPlayerAnimLoop = "BASE_MICHAEL"
tPlayerAnimOut = "EXIT_MICHAEL"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_SAVEHOUSE1_b
tPlayerAnimDict = "SWITCH@MICHAEL@SITTING"
tPlayerAnimLoop = "IDLE"
tPlayerAnimOut = "EXIT_FORWARD"
RETURN TRUE
BREAK
CASE PR_SCENE_M4_WAKEUPSCREAM
// CASE PR_SCENE_M4_HOUSEBED_b
tPlayerAnimDict = "SWITCH@MICHAEL@WAKES_UP_SCREAMING"
tPlayerAnimLoop = "001671_02_MICS2_1_WAKES_UP_SCREAMING_IDLE"
tPlayerAnimOut = "001671_02_MICS2_1_WAKES_UP_SCREAMING_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_M6_HOUSEBED
tPlayerAnimDict = "SAVECountryside@"
tPlayerAnimLoop = "M_Sleep_Loop_countryside"
tPlayerAnimOut = "M_GetOut_countryside"
//x:\gta5\art\anim\export_mb\SAVE\Countryside@\M_GetIn_countryside.anim
//x:\gta5\art\anim\export_mb\SAVE\Countryside@\M_GetIn_countryside_CAM.anim
//x:\gta5\art\anim\export_mb\SAVE\Countryside@\M_GetOut_countryside.anim
//x:\gta5\art\anim\export_mb\SAVE\Countryside@\M_GetOut_countryside_CAM.anim
//x:\gta5\art\anim\export_mb\SAVE\Countryside@\M_Sleep_Loop_countryside.anim
//x:\gta5\art\anim\export_mb\SAVE\Countryside@\M_Sleep_Loop_countryside_CAM.anim
RETURN TRUE
BREAK
CASE PR_SCENE_M4_WAKESUPSCARED
tPlayerAnimDict = "SWITCH@MICHAEL@WAKES_UP_SCARED"
tPlayerAnimLoop = "001672_02_MICS2_1_WAKES_UP_SCARED_IDLE"
tPlayerAnimOut = "001672_02_MICS2_1_WAKES_UP_SCARED_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_M4_WATCHINGTV
tPlayerAnimDict = "SWITCH@MICHAEL@WATCHING_TV"
tPlayerAnimLoop = "LOOP_Michael"
tPlayerAnimOut = "EXIT_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDSAVEHOUSE
tPlayerAnimDict = "SWITCH@TREVOR@WATCHING_TV"
tPlayerAnimLoop = "LOOP"
tPlayerAnimOut = "EXIT"
RETURN TRUE
BREAK
// CASE PR_SCENE_M6_HOUSETV_b
CASE PR_SCENE_M6_HOUSETV_a
tPlayerAnimDict = "SWITCH@MICHAEL@SITTING"
tPlayerAnimLoop = "IDLE"
tPlayerAnimOut = "EXIT_FORWARD"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_KIDS_TV
tPlayerAnimDict = "SWITCH@MICHAEL@ON_SOFA"
tPlayerAnimLoop = "BASE_Michael"
tPlayerAnimOut = "EXIT_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M_POOLSIDE_a
CASE PR_SCENE_M_POOLSIDE_b
CASE PR_SCENE_F1_POOLSIDE_a
CASE PR_SCENE_F1_POOLSIDE_b
tPlayerAnimDict = "SWITCH@MICHAEL@SUNLOUNGER"
tPlayerAnimLoop = "SunLounger_Idle" //(Michael Idling on the Sunlounger Loop)
tPlayerAnimOut = "SunLounger_GetUp" //(Michael Getting up off the Sunlounger into his standing idle)
playerAnimLoopFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE | AF_LOOPING
playerAnimOutFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE
RETURN TRUE
BREAK
CASE PR_SCENE_M2_CARSLEEP_a
CASE PR_SCENE_M2_CARSLEEP_b
tPlayerAnimDict = "SWITCH@MICHAEL@SLEEP_IN_CAR"
tPlayerAnimLoop = "BASE_MICHAEL"
tPlayerAnimOut = "SLEEP_IN_CAR_MICHAEL"
//ePlayerSceneAnimProgress = PAP_0_default
RETURN TRUE
BREAK
CASE PR_SCENE_M6_CARSLEEP
tPlayerAnimDict = "SWITCH@MICHAEL@SLEEP_IN_CAR"
tPlayerAnimLoop = "BASE_PREMIER_MICHAEL"
tPlayerAnimOut = "SLEEP_IN_CAR_PREMIER_MICHAEL"
//ePlayerSceneAnimProgress = PAP_0_default
RETURN TRUE
BREAK
CASE PR_SCENE_M_CANAL_a
CASE PR_SCENE_M_CANAL_b
CASE PR_SCENE_M_CANAL_c
CASE PR_SCENE_M_PIER_b
CASE PR_SCENE_M2_SMOKINGGOLF
CASE PR_SCENE_M6_MORNING_a
tPlayerAnimDict = "SWITCH@MICHAEL@SMOKING2"
tPlayerAnimLoop = "LOOP"
tPlayerAnimOut = "EXIT"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
RETURN TRUE
BREAK
CASE PR_SCENE_M2_LUNCH_a
tPlayerAnimDict = "SWITCH@MICHAEL@CAFE"
tPlayerAnimLoop = "LOOP_Michael"
tPlayerAnimOut = "EXIT_Michael"
RETURN TRUE
BREAK
// CASE PR_SCENE_M7_LUNCH_b
// tPlayerAnimDict = "SWITCH@MICHAEL@CAFE2"
// tPlayerAnimLoop = "LOOP_Michael"
// tPlayerAnimOut = "EXIT_Michael"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_M4_EXITRESTAURANT
// CASE PR_SCENE_M4_LUNCH_b
tPlayerAnimDict = "SWITCH@MICHAEL@EXIT_RESTAURANT"
tPlayerAnimLoop = "mic_exit_restaurant_loop"
tPlayerAnimOut = "mic_exit_restaurant_exit"
RETURN TRUE
BREAK
// CASE PR_SCENE_M_BAR_a
// CASE PR_SCENE_M_BAR_b
CASE PR_SCENE_M6_LIQUORSTORE
tPlayerAnimDict = "SWITCH@MICHAEL@DRUNK_BAR"
tPlayerAnimLoop = "Drunk_Idle_PED"
tPlayerAnimOut = "Drunk_Exit_PED"
RETURN TRUE
BREAK
CASE PR_SCENE_M_VWOODPARK_a
CASE PR_SCENE_M_VWOODPARK_b
tPlayerAnimDict = "SWITCH@MICHAEL@PARKBENCH_SMOKE_RANGER"
tPlayerAnimLoop = "parkbench_smoke_ranger_loop"
tPlayerAnimOut = "parkbench_smoke_ranger_exit"
RETURN TRUE
BREAK
CASE PR_SCENE_M_PARKEDHILLS_a
CASE PR_SCENE_M_PARKEDHILLS_b
CASE PR_SCENE_M4_PARKEDBEACH
tPlayerAnimDict = "SWITCH@MICHAEL@SITTING_ON_CAR_BONNET"
tPlayerAnimLoop = "sitting_on_car_bonnet_loop"
tPlayerAnimOut = "sitting_on_car_bonnet_exit"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
RETURN TRUE
BREAK
CASE PR_SCENE_Ma_RURAL1
CASE PR_SCENE_M6_PARKEDHILLS_a
CASE PR_SCENE_M6_PARKEDHILLS_b
CASE PR_SCENE_M6_PARKEDHILLS_c
CASE PR_SCENE_M6_PARKEDHILLS_d
CASE PR_SCENE_M6_PARKEDHILLS_e
tPlayerAnimDict = "SWITCH@MICHAEL@SITTING_ON_CAR_PREMIERE"
tPlayerAnimLoop = "SITTING_ON_CAR_PREMIERE_LOOP_PLAYER"
tPlayerAnimOut = "SITTING_ON_CAR_PREMIERE_EXIT_PLAYER"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
RETURN TRUE
BREAK
CASE PR_SCENE_M2_PHARMACY
tPlayerAnimDict = "SWITCH@MICHAEL@PHARMACY"
tPlayerAnimLoop = "mics1_ig_11_loop"
tPlayerAnimOut = "mics1_ig_11_exit"
RETURN TRUE
BREAK
// CASE PR_SCENE_M4_DOORSTUMBLE
// tPlayerAnimDict = "SWITCH@MICHAEL@STUMBLES_THROUGH_DOORS"
// tPlayerAnimLoop = "000610_03_MICS2_4_STUMBLES_THROUGH_DOORS_IDLE" //(Michael Generally Aggitated)
// tPlayerAnimOut = "000610_03_MICS2_4_STUMBLES_THROUGH_DOORS_EXIT" //(Michael Hitting the Steering wheel)
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_M_TRAFFIC_a
tPlayerAnimDict = "SWITCH@MICHAEL@STUCKINTRAFFIC"
tPlayerAnimLoop = ""
tPlayerAnimOut = "StuckInTraffic_Aggitated" //(Michael Generally Aggitated)
// tPlayerAnimOut = "StuckInTraffic_HitWheel" //(Michael Hitting the Steering wheel)
// tPlayerAnimOut = "StuckInTraffic_HitHorn" //(Michael Hitting the Steering wheel Horn)
// playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_SECONDARY
RETURN TRUE
BREAK
CASE PR_SCENE_M_TRAFFIC_b
tPlayerAnimDict = "SWITCH@MICHAEL@STUCKINTRAFFIC"
tPlayerAnimLoop = ""
// tPlayerAnimOut = "StuckInTraffic_Aggitated" //(Michael Generally Aggitated)
tPlayerAnimOut = "StuckInTraffic_HitWheel" //(Michael Hitting the Steering wheel)
// tPlayerAnimOut = "StuckInTraffic_HitHorn" //(Michael Hitting the Steering wheel Horn)
// playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_SECONDARY
RETURN TRUE
BREAK
CASE PR_SCENE_M_TRAFFIC_c
tPlayerAnimDict = "SWITCH@MICHAEL@STUCKINTRAFFIC"
tPlayerAnimLoop = ""
// tPlayerAnimOut = "StuckInTraffic_Aggitated" //(Michael Generally Aggitated)
// tPlayerAnimOut = "StuckInTraffic_HitWheel" //(Michael Hitting the Steering wheel)
tPlayerAnimOut = "StuckInTraffic_HitHorn" //(Michael Hitting the Steering wheel Horn)
// playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_SECONDARY
RETURN TRUE
BREAK
CASE PR_SCENE_M2_WIFEEXITSCAR
// SWITCH@MICHAEL@AMANDA_EXITS_CAR/000606_02_MICS1_5_AMANDA_EXITS_CAR_IDLE_MIC.anim
// SWITCH@MICHAEL@AMANDA_EXITS_CAR/000606_02_MICS1_5_AMANDA_EXITS_CAR_EXIT_MIC.anim
tPlayerAnimDict = "SWITCH@MICHAEL@AMANDA_EXITS_CAR"
tPlayerAnimLoop = "000606_02_MICS1_5_AMANDA_EXITS_CAR_IDLE_MIC"
tPlayerAnimOut = "000606_02_MICS1_5_AMANDA_EXITS_CAR_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_OPENDOORFORAMA
tPlayerAnimDict = "SWITCH@MICHAEL@OPENS_DOOR_FOR_AMA"
tPlayerAnimLoop = "001895_02_MICS3_17_OPENS_DOOR_FOR_AMA_IDLE_MIC"
tPlayerAnimOut = "001895_02_MICS3_17_OPENS_DOOR_FOR_AMA_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_DROPPINGOFFJMY
tPlayerAnimDict = "SWITCH@MICHAEL@DROPPING_OFF_JMY"
tPlayerAnimLoop = "001839_02_MICS3_20_DROPPING_OFF_JMY_IDLE_MIC"
tPlayerAnimOut = "001839_02_MICS3_20_DROPPING_OFF_JMY_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_TRACEYEXITSCAR
// CASE PR_SCENE_M_HOOKERCAR
tPlayerAnimDict = "SWITCH@MICHAEL@TRACY_EXITS_CAR"
tPlayerAnimLoop = "001840_01_MICS3_IG_21_TRACY_EXITS_CAR_IDLE_MIC"
tPlayerAnimOut = "001840_01_MICS3_IG_21_TRACY_EXITS_CAR_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M_PIER_a
tPlayerAnimDict = "SWITCH@MICHAEL@PIER"
tPlayerAnimLoop = "pier_lean_smoke_idle"
tPlayerAnimOut = "pier_lean_smoke_outro"
// playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_REPOSITION_WHEN_FINISHED | AF_REORIENT_WHEN_FINISHED
RETURN TRUE
BREAK
CASE PR_SCENE_M2_MARINA
tPlayerAnimDict = "SWITCH@MICHAEL@MARINA"
tPlayerAnimLoop = "loop"
tPlayerAnimOut = "exit"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_ARGUEWITHWIFE
tPlayerAnimDict = "SWITCH@MICHAEL@ARGUE_WITH_AMANDA"
tPlayerAnimLoop = "argue_with_amanda_loop_michael"
tPlayerAnimOut = "argue_with_amanda_exit_michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M_HOOKERMOTEL
tPlayerAnimDict = "SWITCH@MICHAEL@WALK_AND_TALK"
tPlayerAnimLoop = ""
tPlayerAnimOut = "Im_A_Married_Man_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M_COFFEE_a
CASE PR_SCENE_M_COFFEE_b
CASE PR_SCENE_M_COFFEE_c
CASE PR_SCENE_M4_CINEMA
CASE PR_SCENE_M7_COFFEE
tPlayerAnimDict = "SWITCH@MICHAEL@CAFE"
tPlayerAnimLoop = "Cafe_Idle_PED"
tPlayerAnimOut = "Cafe_Exit_PED"
RETURN TRUE
BREAK
CASE PR_SCENE_M_BENCHCALL_a
CASE PR_SCENE_M_BENCHCALL_b
CASE PR_SCENE_M6_ONPHONE
CASE PR_SCENE_M6_DEPRESSED
/*
x:\gta5\art\anim\export_mb\SWITCH@\MICHAEL@\BENCH\CELLPHONE_CALL_LISTEN_BASE.anim
x:\gta5\art\anim\export_mb\SWITCH@\MICHAEL@\BENCH\EXIT_FORWARD.anim
x:\gta5\art\anim\export_mb\SWITCH@\MICHAEL@\BENCH\CELLPHONE_CALL_OUT.anim
*/
tPlayerAnimDict = "SWITCH@MICHAEL@BENCH"
tPlayerAnimLoop = "bench_on_phone_idle" //"bench_on_phone_idle"
tPlayerAnimOut = "EXIT_FORWARD" //"bench_on_phone_outro"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS | AF_HOLD_LAST_FRAME
RETURN TRUE
BREAK
CASE PR_SCENE_M6_SUNBATHING
tPlayerAnimDict = "SWITCH@MICHAEL@ON_CLUBCHAIR"
tPlayerAnimLoop = "Switch_ON_CLUBCHAIR_BASE"
tPlayerAnimOut = "Switch_ON_CLUBCHAIR"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_M6_DRINKINGBEER
tPlayerAnimDict = "SAFE@MICHAEL@IG_5"
tPlayerAnimLoop = "BASE_MICHAEL"
tPlayerAnimOut = "EXIT_1_MICHAEL"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_M6_RONBORING
tPlayerAnimDict = "SWITCH@MICHAEL@RONEX_IG_5_P2"
tPlayerAnimLoop = "BASE_MICHAEL"
tPlayerAnimOut = "RONEX_IG5_P2_MICHAEL"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_RESTAURANT
tPlayerAnimDict = "SWITCH@MICHAEL@RESTAURANT"
tPlayerAnimLoop = "001510_02_GC_MICS3_IG_1_BASE_MICHAEL"
tPlayerAnimOut = "001510_02_GC_MICS3_IG_1_EXIT_MICHAEL"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_LOUNGECHAIRS
tPlayerAnimDict = "SWITCH@MICHAEL@LOUNGE_CHAIRS"
tPlayerAnimLoop = "001523_01_MICS3_9_LOUNGE_CHAIRS_IDLE_MIC"
tPlayerAnimOut = "001523_01_MICS3_9_LOUNGE_CHAIRS_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_BYESOLOMON_a
tPlayerAnimDict = "SWITCH@MICHAEL@GOODBYE_TO_SOLOMAN"
tPlayerAnimLoop = "001400_01_MICS3_5_BYE_TO_SOLOMAN_IDLE"
tPlayerAnimOut = "001400_01_MICS3_5_BYE_TO_SOLOMAN_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_BYESOLOMON_b
tPlayerAnimDict = "SWITCH@MICHAEL@GOODBYE_TO_SOLOMAN"
tPlayerAnimLoop = "LOOP_Michael"
tPlayerAnimOut = "EXIT_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_WIFETENNIS
tPlayerAnimDict = "SWITCH@MICHAEL@AMA_TENNIS"
tPlayerAnimLoop = "001833_01_MICS3_18_AMA_TENNIS_IDLE_MIC"
tPlayerAnimOut = "001833_01_MICS3_18_AMA_TENNIS_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_ROUNDTABLE
tPlayerAnimDict = "SWITCH@MICHAEL@AROUND_THE_TABLE_SELFISH"
tPlayerAnimLoop = "AROUND_THE_TABLE_SELFISH_BASE_Michael"
tPlayerAnimOut = "AROUND_THE_TABLE_SELFISH_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_REJECTENTRY
tPlayerAnimDict = "SWITCH@MICHAEL@REJECTED_ENTRY"
tPlayerAnimLoop = "001396_01_MICS3_6_REJECTED_ENTRY_IDLE_MIC"
tPlayerAnimOut = "001396_01_MICS3_6_REJECTED_ENTRY_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_EXITBARBER
tPlayerAnimDict = "SWITCH@MICHAEL@EXITS_BARBER"
tPlayerAnimLoop = "001406_01_MICS3_7_EXITS_BARBER_IDLE"
tPlayerAnimOut = "001406_01_MICS3_7_EXITS_BARBER_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_EXITFANCYSHOP
tPlayerAnimDict = "SWITCH@MICHAEL@EXITS_FANCYSHOP"
tPlayerAnimLoop = "001405_01_MICS3_8_EXITS_FANCYSHOP_IDLE"
tPlayerAnimOut = "001405_01_MICS3_8_EXITS_FANCYSHOP_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_FAKEYOGA
tPlayerAnimDict = "SWITCH@MICHAEL@SMOKING"
tPlayerAnimLoop = "LOOP_Michael"
tPlayerAnimOut = "EXIT_Michael"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_GETSREADY
tPlayerAnimDict = "SWITCH@MICHAEL@GETS_READY"
tPlayerAnimLoop = "001520_02_MICS3_14_GETS_READY_IDLE_MIC"
tPlayerAnimOut = "001520_02_MICS3_14_GETS_READY_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_READSCRIPT
tPlayerAnimDict = "SWITCH@MICHAEL@READS_SCRIPT"
tPlayerAnimLoop = "001404_01_MICS3_16_READS_SCRIPT_IDLE"
tPlayerAnimOut = "001404_01_MICS3_16_READS_SCRIPT_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_EMPLOYEECONVO
tPlayerAnimDict = "SWITCH@MICHAEL@BAR_EMPLOYEE_CONVO"
tPlayerAnimLoop = "001387_03_MICS3_2_BAR_EMPLOYEE_CONVO_IDLE_MIC"
tPlayerAnimOut = "001387_03_MICS3_2_BAR_EMPLOYEE_CONVO_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_HOOKERS
tPlayerAnimDict = "SWITCH@MICHAEL@PROSTITUTE"
tPlayerAnimLoop = "BASE_MICHAEL"
tPlayerAnimOut = "EXIT_MICHAEL"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_TALKTOGUARD
tPlayerAnimDict = "SWITCH@MICHAEL@TALKS_TO_GUARD"
tPlayerAnimLoop = "001393_02_MICS3_3_TALKS_TO_GUARD_IDLE_MIC"
tPlayerAnimOut = "001393_02_MICS3_3_TALKS_TO_GUARD_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_LOT_JIMMY
tPlayerAnimDict = "SWITCH@MICHAEL@ON_SET_W_JMY"
tPlayerAnimLoop = ""
tPlayerAnimOut = "001513_03_GC_MICS3_IG_4_ON_SET_W_JMY_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_KIDS_TV
tPlayerAnimDict = "SWITCH@MICHAEL@TV_W_KIDS"
tPlayerAnimLoop = "001520_02_MICS3_14_TV_W_KIDS_IDLE_MIC"
tPlayerAnimOut = "001520_02_MICS3_14_TV_W_KIDS_EXIT_MIC"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_BIKINGJIMMY
tPlayerAnimDict = "SWITCH@MICHAEL@BIKING_WITH_JIMMY"
tPlayerAnimLoop = "LOOP_Michael"
tPlayerAnimOut = "EXIT_Michael"
//SWITCH@/MICHAEL@/BIKING_WITH_JIMMY/LOOP_Cruiser.anim
//SWITCH@/MICHAEL@/BIKING_WITH_JIMMY/EXIT_Cruiser.anim
//SWITCH@/MICHAEL@/BIKING_WITH_JIMMY/LOOP_TriBike.anim
//SWITCH@/MICHAEL@/BIKING_WITH_JIMMY/EXIT_TriBike.anim
RETURN TRUE
BREAK
CASE PR_SCENE_M7_KIDS_GAMING
tPlayerAnimDict = "SWITCH@MICHAEL@GAMING_W_JMY"
tPlayerAnimLoop = "001518_02_MICS3_11_GAMING_W_JMY_IDLE_MIC"
tPlayerAnimOut = "001518_02_MICS3_11_GAMING_W_JMY_EXIT_MIC"
RETURN TRUE
BREAK
// CASE PR_SCENE_M_S_FAMILY4
// tPlayerAnimDict = "SWITCH@MICHAEL@FAMILY_4_INTP1"
// tPlayerAnimLoop = "idle_LOOP"
// tPlayerAnimOut = "idle_LOOP"
//
// RETURN TRUE
// BREAK
ENDSWITCH
SWITCH ePedScene
CASE PR_SCENE_F1_CLEANINGAPT
tPlayerAnimDict = "SWITCH@FRANKLIN@CLEANING_APT"
tPlayerAnimLoop = "001918_01_FRAS_V2_1_CLEANING_APT_IDLE"
tPlayerAnimOut = "001918_01_FRAS_V2_1_CLEANING_APT_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_ONCELL
tPlayerAnimDict = "SWITCH@FRANKLIN@ON_CELL"
tPlayerAnimLoop = "001914_01_FRAS_V2_2_ON_CELL_IDLE"
tPlayerAnimOut = "001914_01_FRAS_V2_2_ON_CELL_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_SNACKING
tPlayerAnimDict = "SWITCH@FRANKLIN@SNACKING"
tPlayerAnimLoop = "001922_01_FRAS_V2_3_SNACKING_IDLE"
tPlayerAnimOut = "001922_01_FRAS_V2_3_SNACKING_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_ONLAPTOP
tPlayerAnimDict = "SWITCH@FRANKLIN@ON_LAPTOP"
tPlayerAnimLoop = "001927_01_FRAS_V2_4_ON_LAPTOP_IDLE"
tPlayerAnimOut = "001927_01_FRAS_V2_4_ON_LAPTOP_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_IRONING
tPlayerAnimDict = "SWITCH@FRANKLIN@IRONING"
tPlayerAnimLoop = "001947_01_GC_FRAS_V2_IG_6_BASE"
tPlayerAnimOut = "001947_01_GC_FRAS_V2_IG_6_EXIT"
RETURN TRUE
BREAK
// CASE PR_SCENE_F0_WATCHINGTV
// //PR_SCENE_F1_WATCHINGTV //PR_SCENE_M2_KIDS_TV
// tPlayerAnimDict = "SWITCH@FRANKLIN@WATCHING_TV"
// tPlayerAnimLoop = "001915_01_FRAS_V2_8_WATCHING_TV_IDLE"
// tPlayerAnimOut = "001915_01_FRAS_V2_8_WATCHING_TV_EXIT"
//
// tPlayerAnimDict = "SWITCH@MICHAEL@WATCHING_TV"
// tPlayerAnimLoop = "LOOP_Michael"
// tPlayerAnimOut = "EXIT_Michael"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_F1_WATCHINGTV
tPlayerAnimDict = "SWITCH@FRANKLIN@WATCHING_TV"
tPlayerAnimLoop = "001915_01_FRAS_V2_8_WATCHING_TV_IDLE"
tPlayerAnimOut = "001915_01_FRAS_V2_8_WATCHING_TV_EXIT"
RETURN TRUE
BREAK
// CASE PR_SCENE_F0_SAVEHOUSE
// InitialisePlaceholderPlayerSmokeAnim(ePedScene, tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut) //, ePlayerSceneAnimProgress)
// RETURN TRUE
// BREAK
CASE PR_SCENE_F0_SH_ASLEEP
CASE PR_SCENE_F1_SH_ASLEEP
tPlayerAnimDict = "SWITCH@FRANKLIN@BED"
tPlayerAnimLoop = "Sleep_LOOP"
tPlayerAnimOut = "Sleep_GetUp_RubEyes"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_NAPPING
tPlayerAnimDict = "SWITCH@FRANKLIN@NAPPING"
tPlayerAnimLoop = "002333_01_FRAS_V2_10_NAPPING_IDLE"
tPlayerAnimOut = "002333_01_FRAS_V2_10_NAPPING_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_GETTINGREADY
tPlayerAnimDict = "SWITCH@FRANKLIN@GETTING_READY"
tPlayerAnimLoop = "002334_02_FRAS_V2_11_GETTING_DRESSED_IDLE"
tPlayerAnimOut = "002334_02_FRAS_V2_11_GETTING_DRESSED_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_SH_READING
CASE PR_SCENE_F1_SH_READING
tPlayerAnimDict = "SWITCH@FRANKLIN@BED"
tPlayerAnimLoop = "Bed_Reading_LOOP" //(Franklin reading the book loop)
tPlayerAnimOut = "Bed_Reading_GetUp" //(Franklin Gets up and drops the book back on the bed)
RETURN TRUE
BREAK
CASE PR_SCENE_F0_SH_PUSHUP_a
CASE PR_SCENE_F0_SH_PUSHUP_b
CASE PR_SCENE_F1_SH_PUSHUP
tPlayerAnimDict = "SWITCH@FRANKLIN@PRESS_UPS"
tPlayerAnimLoop = "PressUps_LOOP" //"PressUps_INTO"
tPlayerAnimOut = "PressUps_OUT"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS /*| AF_DISABLE_LEG_IK*/
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS /*| AF_DISABLE_LEG_IK*/
RETURN TRUE
BREAK
// CASE PR_SCENE_F1_SAVEHOUSE
// RETURN GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F0_SAVEHOUSE,
// tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut,
// playerAnimLoopFlag, playerAnimOutFlag) //, ePlayerSceneAnimProgress)
// BREAK
CASE PR_SCENE_F_MD_KUSH_DOC
tPlayerAnimDict = "SWITCH@FRANKLIN@002110_04_MAGD_3_WEED_EXCHANGE"
tPlayerAnimLoop = "002110_04_MAGD_3_WEED_EXCHANGE_SHOPKEEPER"
tPlayerAnimOut = "002110_04_MAGD_3_WEED_EXCHANGE_FRANKLIN"
RETURN TRUE
BREAK
CASE PR_SCENE_F_KUSH_DOC_a
tPlayerAnimDict = "SWITCH@FRANKLIN@DISPENSARY"
tPlayerAnimLoop = "exit_dispensary_idle"
tPlayerAnimOut = "exit_dispensary_outro_ped"
RETURN TRUE
BREAK
CASE PR_SCENE_F_KUSH_DOC_b
tPlayerAnimDict = "SWITCH@FRANKLIN@DISPENSARY"
tPlayerAnimLoop = "exit_dispensary_idle"
tPlayerAnimOut = "exit_dispensary_outro"
RETURN TRUE
BREAK
CASE PR_SCENE_F_KUSH_DOC_c
tPlayerAnimDict = "SWITCH@FRANKLIN@DISPENSARY"
tPlayerAnimLoop = "exit_dispensary_idle"
tPlayerAnimOut = "exit_dispensary_outro"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_GARBAGE
tPlayerAnimDict = "SWITCH@FRANKLIN@GARBAGE"
tPlayerAnimLoop = "Garbage_Idle_PLYR" //(Franklin idles holding the rubbish bag)
tPlayerAnimOut = "Garbage_Toss_PLYR" //(Franklin goes and throws the rubbish onto the pavement and ends in his idle pose)
RETURN TRUE
BREAK
CASE PR_SCENE_F1_GARBAGE
tPlayerAnimDict = "SWITCH@FRANKLIN@GARBAGE_B"
tPlayerAnimLoop = "Garbage_Idle_PLYR" //(Franklin idles holding the rubbish bag)
tPlayerAnimOut = "Garbage_Toss_PLYR" //(Franklin goes and throws the rubbish onto the pavement and ends in his idle pose)
RETURN TRUE
BREAK
CASE PR_SCENE_F_THROW_CUP
tPlayerAnimDict = "SWITCH@FRANKLIN@THROW_CUP"
tPlayerAnimLoop = "throw_cup_loop"
tPlayerAnimOut = "throw_cup_exit"
RETURN TRUE
BREAK
CASE PR_SCENE_F_HIT_CUP_HAND
tPlayerAnimDict = "SWITCH@FRANKLIN@HIT_CUP_HAND"
tPlayerAnimLoop = "hit_cup_hand_loop"
tPlayerAnimOut = "hit_cup_hand_exit"
RETURN TRUE
BREAK
CASE PR_SCENE_F_GYM
tPlayerAnimDict = "SWITCH@FRANKLIN@GYM"
tPlayerAnimLoop = "001942_02_GC_FRAS_IG_5_BASE"
tPlayerAnimOut = "001942_02_GC_FRAS_IG_5_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_WALKCHOP
// CASE PR_SCENE_F1_WALKCHOP
CASE PR_SCENE_F_WALKCHOP_a
CASE PR_SCENE_F_WALKCHOP_b
tPlayerAnimDict = "SWITCH@FRANKLIN@PLAYS_W_DOG"
tPlayerAnimLoop = "001916_01_FRAS_V2_9_PLAYS_W_DOG_IDLE"
tPlayerAnimOut = "001916_01_FRAS_V2_9_PLAYS_W_DOG_EXIT"
//ePlayerSceneAnimProgress = PAP_1_placeholder
RETURN TRUE
BREAK
CASE PR_SCENE_F0_PLAYCHOP
CASE PR_SCENE_F1_PLAYCHOP
tPlayerAnimDict = "SWITCH@FRANKLIN@PLAYS_W_DOG"
tPlayerAnimLoop = "001916_01_FRAS_V2_9_PLAYS_W_DOG_IDLE"
tPlayerAnimOut = "001916_01_FRAS_V2_9_PLAYS_W_DOG_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_BIKE
CASE PR_SCENE_F1_BIKE
CASE PR_SCENE_F_BIKE_c
CASE PR_SCENE_F_BIKE_d
tPlayerAnimDict = "SWITCH@FRANKLIN@ADMIRE_MOTORCYCLE"
tPlayerAnimLoop = "BASE_FRANKLIN"
tPlayerAnimOut = "EXIT_FRANKLIN"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_CLEANCAR
CASE PR_SCENE_F1_CLEANCAR
tPlayerAnimDict = "SWITCH@FRANKLIN@CLEANING_CAR"
tPlayerAnimLoop = "001946_01_GC_FRAS_V2_IG_5_BASE"
tPlayerAnimOut = "001946_01_GC_FRAS_V2_IG_5_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_TANISHAFIGHT
tPlayerAnimDict = "SWITCH@FRANKLIN@TANISHA_ARGUE"
tPlayerAnimLoop = "BASE_Franklin"
tPlayerAnimOut = "Tanisha_Argue_Franklin"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_NEWHOUSE
tPlayerAnimDict = "SWITCH@FRANKLIN@WALK_AROUND_HOUSE"
tPlayerAnimLoop = "IDLE_FRANKLIN"
tPlayerAnimOut = "EXIT_FRANKLIN"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_BYETAXI
tPlayerAnimDict = "SWITCH@FRANKLIN@BYE_TAXI"
tPlayerAnimLoop = "001938_01_FRAS_V2_7_BYE_TAXI_IDLE_FRA"
tPlayerAnimOut = "001938_01_FRAS_V2_7_BYE_TAXI_EXIT_FRA"
RETURN TRUE
BREAK
// CASE PR_SCENE_F_LAMGRAFF
// tPlayerAnimDict = "SWITCH@FRANKLIN@LAMAR_TAGGING_WALL"
// tPlayerAnimLoop = "lamar_tagging_wall_LOOP_FRANKLIN"
// tPlayerAnimOut = "lamar_tagging_wall_EXIT_FRANKLIN"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_F_CLUB
tPlayerAnimDict = "SWITCH@FRANKLIN@PICKUP_LINE"
tPlayerAnimLoop = "base_Franklin"
tPlayerAnimOut = "switch_P1_Franklin"
RETURN TRUE
BREAK
CASE PR_SCENE_F_CS_CHECKSHOE
tPlayerAnimDict = "SWITCH@FRANKLIN@CHOPSHOP"
tPlayerAnimLoop = "BASE"
tPlayerAnimOut = "CheckShoe"
RETURN TRUE
BREAK
CASE PR_SCENE_F_CS_WIPEHANDS
tPlayerAnimDict = "SWITCH@FRANKLIN@CHOPSHOP"
tPlayerAnimLoop = "BASE"
tPlayerAnimOut = "WipeHands"
RETURN TRUE
BREAK
CASE PR_SCENE_F_CS_WIPERIGHT
tPlayerAnimDict = "SWITCH@FRANKLIN@CHOPSHOP"
tPlayerAnimLoop = "BASE"
tPlayerAnimOut = "WipeRight"
RETURN TRUE
BREAK
CASE PR_SCENE_F_BAR_a_01
CASE PR_SCENE_F_BAR_b_01
CASE PR_SCENE_F_BAR_e_01
tPlayerAnimDict = "SWITCH@FRANKLIN@EXIT_BUILDING"
tPlayerAnimLoop = "loop"
tPlayerAnimOut = "switch_01"
RETURN TRUE
BREAK
CASE PR_SCENE_F_BAR_c_02
CASE PR_SCENE_F_BAR_d_02
tPlayerAnimDict = "SWITCH@FRANKLIN@EXIT_BUILDING"
tPlayerAnimLoop = "loop"
tPlayerAnimOut = "switch_02"
RETURN TRUE
BREAK
CASE PR_SCENE_F_LAMTAUNT_P1
tPlayerAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P1"
tPlayerAnimLoop = "gang_taunt_loop_franklin"
tPlayerAnimOut = "gang_taunt_exit_franklin"
RETURN TRUE
BREAK
CASE PR_SCENE_F_LAMTAUNT_P3
tPlayerAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P3"
tPlayerAnimLoop = "gang_taunt_with_lamar_loop_frank"
tPlayerAnimOut = "gang_taunt_with_lamar_exit_frank"
RETURN TRUE
BREAK
CASE PR_SCENE_F_LAMTAUNT_P5
tPlayerAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P5"
tPlayerAnimLoop = "fras_ig_6_p5_loop_frank"
tPlayerAnimOut = "fras_ig_6_p5_exit_frank"
RETURN TRUE
BREAK
CASE PR_SCENE_F_LAMTAUNT_NIGHT
tPlayerAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P3"
tPlayerAnimLoop = "fras_ig_10_p3_loop_frank"
tPlayerAnimOut = "fras_ig_10_p3_exit_frank"
RETURN TRUE
BREAK
CASE PR_SCENE_F_S_AGENCY_2A_a
CASE PR_SCENE_F_S_AGENCY_2A_b
tPlayerAnimDict = "missheist_agency2aig_9"
tPlayerAnimLoop = "Franklin_call_Michael_IDLE_PLAYER"
tPlayerAnimOut = "Franklin_call_Michael_EXIT_PLAYER"
RETURN TRUE
BREAK
// CASE PR_SCENE_F_S_FBI1end
// tPlayerAnimDict = "MISSFBI1LEADINOUTFBI_1_EXT"
// tPlayerAnimLoop = "_LeadIn_Franklin"
// tPlayerAnimOut = "_LeadIn_Franklin"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_SC_MOCKLAPDANCE
tPlayerAnimDict = "SWITCH@TREVOR@MOCKS_LAPDANCE"
tPlayerAnimLoop = "001443_01_TRVS_28_IDLE_TRV"
tPlayerAnimOut = "001443_01_TRVS_28_EXIT_TRV"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_BAR
tPlayerAnimDict = "SWITCH@TREVOR@BAR"
tPlayerAnimLoop = "LOOP_Trevor"
tPlayerAnimOut = "EXIT_Trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_CHASE
tPlayerAnimDict = "SWITCH@TREVOR@CHASE_STRIPPERS"
tPlayerAnimLoop = "LOOP_Trevor"
tPlayerAnimOut = "EXIT_Trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_STRIPCLUB_out
tPlayerAnimDict = "SWITCH@TREVOR@STRIPCLUB"
tPlayerAnimLoop = "trev_leave_stripclub_idle"
tPlayerAnimOut = "trev_leave_stripclub_outro"
RETURN TRUE
BREAK
CASE PR_SCENE_T_ESCORTED_OUT
tPlayerAnimDict = "SWITCH@TREVOR@ESCORTED_OUT"
tPlayerAnimLoop = "001215_02_TRVS_12_ESCORTED_OUT_IDLE_TRV"
tPlayerAnimOut = "001215_02_TRVS_12_ESCORTED_OUT_EXIT_TRV"
RETURN TRUE
BREAK
CASE PR_SCENE_T_PUKEINTOFOUNT
CASE PR_SCENE_T_CN_PARK_b
// CASE PR_SCENE_T_CN_PARK_c
tPlayerAnimDict = "SWITCH@TREVOR@PUKING_INTO_FOUNTAIN"
tPlayerAnimLoop = "trev_fountain_puke_loop"
tPlayerAnimOut = "trev_fountain_puke_exit"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SMOKEMETH
CASE PR_SCENE_Ta_RC_MRSP2
tPlayerAnimDict = "SWITCH@TREVOR@TREV_SMOKING_METH"
tPlayerAnimLoop = "TREV_SMOKING_METH_LOOP"
tPlayerAnimOut = "TREV_SMOKING_METH_EXIT"
playerAnimLoopFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE | AF_LOOPING
playerAnimOutFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE
RETURN TRUE
BREAK
CASE PR_SCENE_T_HEADINSINK
tPlayerAnimDict = "SWITCH@TREVOR@HEAD_IN_SINK"
tPlayerAnimLoop = "trev_sink_idle"
tPlayerAnimOut = "trev_sink_exit"
playerAnimLoopFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE | AF_LOOPING
playerAnimOutFlag = /* |*/ AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION /*| AF_EXTRACT_INITIAL_OFFSET*/ | AF_NOT_INTERRUPTABLE
RETURN TRUE
BREAK
CASE PR_SCENE_T_DOCKS_a
CASE PR_SCENE_T_DOCKS_b
CASE PR_SCENE_T_DOCKS_c
CASE PR_SCENE_T_DOCKS_d
tPlayerAnimDict = "SWITCH@TREVOR@AT_THE_DOCKS"
tPlayerAnimLoop = "001209_01_TRVS_3_AT_THE_DOCKS_IDLE"
tPlayerAnimOut = "001209_01_TRVS_3_AT_THE_DOCKS_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_T_KONEIGHBOUR
tPlayerAnimDict = "SWITCH@TREVOR@KO_NEIGHBOUR"
tPlayerAnimLoop = "001500_03_TRVS_19_KO_NEIGHBOUR_LOOP_TRV"
tPlayerAnimOut = "001500_03_TRVS_19_KO_NEIGHBOUR_EXIT_TRV"
RETURN TRUE
BREAK
CASE PR_SCENE_T_GARBAGE_FOOD
tPlayerAnimDict = "SWITCH@TREVOR@GARBAGE_FOOD"
tPlayerAnimLoop = "LOOP_Trevor"
tPlayerAnimOut = "EXIT_Trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_THROW_FOOD
tPlayerAnimDict = "SWITCH@TREVOR@THROW_FOOD"
tPlayerAnimLoop = "LOOP_Trevor"
tPlayerAnimOut = "EXIT_Trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_ALLEYDRUNK
CASE PR_SCENE_T_SC_ALLEYDRUNK
CASE PR_SCENE_T_CN_WAKETRASH_b
CASE PR_SCENE_T_CR_WAKEBEACH
CASE PR_SCENE_T_CN_WAKEBARN
CASE PR_SCENE_T_CN_WAKETRAIN
CASE PR_SCENE_T_CR_WAKEROOFTOP
CASE PR_SCENE_T_CN_WAKEMOUNTAIN
CASE PR_SCENE_T_NAKED_GARDEN
CASE PR_SCENE_T_CN_CHATEAU_b
CASE PR_SCENE_T_CN_CHATEAU_c
CASE PR_SCENE_T_CR_CHATEAU_d
tPlayerAnimDict = "SWITCH@TREVOR@SLOUCHED_GET_UP"
tPlayerAnimLoop = "TREV_SLOUCHED_GET_UP_IDLE"
tPlayerAnimOut = "TREV_SLOUCHED_GET_UP_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_T_NAKED_ISLAND
tPlayerAnimDict = "SWITCH@TREVOR@NAKED_ISLAND"
tPlayerAnimLoop = "loop"
tPlayerAnimOut = "exit"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FIGHTBBUILD
// SWITCH@TREVOR@PUSHES_BODYBUILDER/001426_03_TRVS_5_PUSHES_BODYBUILDER_IDLE_TRV.anim
// SWITCH@TREVOR@PUSHES_BODYBUILDER/001426_03_TRVS_5_PUSHES_BODYBUILDER_IDLE_BB1.anim
// SWITCH@TREVOR@PUSHES_BODYBUILDER/001426_03_TRVS_5_PUSHES_BODYBUILDER_IDLE_BB2.anim
// SWITCH@TREVOR@PUSHES_BODYBUILDER/001426_03_TRVS_5_PUSHES_BODYBUILDER_EXIT_TRV.anim
// SWITCH@TREVOR@PUSHES_BODYBUILDER/001426_03_TRVS_5_PUSHES_BODYBUILDER_EXIT_BB1.anim
// SWITCH@TREVOR@PUSHES_BODYBUILDER/001426_03_TRVS_5_PUSHES_BODYBUILDER_EXIT_BB2.anim
tPlayerAnimDict = "SWITCH@TREVOR@PUSHES_BODYBUILDER"
tPlayerAnimLoop = "001426_03_TRVS_5_PUSHES_BODYBUILDER_IDLE_TRV"
tPlayerAnimOut = "001426_03_TRVS_5_PUSHES_BODYBUILDER_EXIT_TRV"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_RUDEATCAFE
tPlayerAnimDict = "SWITCH@TREVOR@RUDE_AT_CAFE"
tPlayerAnimLoop = "001218_03_TRVS_23_RUDE_AT_CAFE_IDLE_TRV"
tPlayerAnimOut = "001218_03_TRVS_23_RUDE_AT_CAFE_EXIT_TRV"
RETURN TRUE
BREAK
CASE PR_SCENE_T_ANNOYSUNBATHERS
tPlayerAnimDict = "SWITCH@TREVOR@ANNOYS_SUNBATHERS"
tPlayerAnimLoop = "trev_annoys_sunbathers_loop_trevor"
tPlayerAnimOut = "trev_annoys_sunbathers_exit_trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SCARETRAMP
tPlayerAnimDict = "SWITCH@TREVOR@SCARES_TRAMP"
tPlayerAnimLoop = "TREV_SCARES_TRAMP_IDLE_TREVOR"
tPlayerAnimOut = "TREV_SCARES_TRAMP_EXIT_TREVOR"
RETURN TRUE
BREAK
CASE PR_SCENE_T_NAKED_BRIDGE
tPlayerAnimDict = "SWITCH@TREVOR@NAKED_ON_BRIDGE"
tPlayerAnimLoop = "002055_01_TRVS_17_NAKED_ON_BRIDGE_IDLE"
tPlayerAnimOut = "002055_01_TRVS_17_NAKED_ON_BRIDGE_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_DUMPSTER
tPlayerAnimDict = "SWITCH@TREVOR@DUMPSTER"
tPlayerAnimLoop = "002002_01_TRVS_14_DUMPSTER_IDLE"
tPlayerAnimOut = "002002_01_TRVS_14_DUMPSTER_EXIT"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_FUNERAL
tPlayerAnimDict = "SWITCH@TREVOR@FUNERAL_HOME"
tPlayerAnimLoop = "trvs_ig_11_loop"
tPlayerAnimOut = "trvs_ig_11_exit"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_BRIDGEDROP
tPlayerAnimDict = "SWITCH@TREVOR@BRIDGE"
tPlayerAnimLoop = "HOLD_LOOP_trevor"
tPlayerAnimOut = "THROW_EXIT_trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_YELLATDOORMAN
tPlayerAnimDict = "SWITCH@TREVOR@YELLS_AT_DOORMAN"
tPlayerAnimLoop = "001430_01_TRVS_21_YELLS_AT_DOORMAN_IDLE_TRV"
tPlayerAnimOut = "001430_01_TRVS_21_YELLS_AT_DOORMAN_EXIT_TRV"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_BLOCK_CAMERA
tPlayerAnimDict = "SWITCH@TREVOR@BLOCK_CAMERA"
tPlayerAnimLoop = "001220_03_GC_TRVS_IG_7_BASE_TREVOR"
tPlayerAnimOut = "001220_03_GC_TRVS_IG_7_EXIT_TREVOR"
RETURN TRUE
BREAK
CASE PR_SCENE_T_GUITARBEATDOWN
tPlayerAnimDict = "SWITCH@TREVOR@GUITAR_BEATDOWN"
tPlayerAnimLoop = "001370_02_TRVS_8_GUITAR_BEATDOWN_IDLE_TRV"
tPlayerAnimOut = "001370_02_TRVS_8_GUITAR_BEATDOWN_EXIT_TRV"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_LINGERIE
tPlayerAnimDict = "SWITCH@TREVOR@LINGERIE_SHOP"
tPlayerAnimLoop = "trev_exit_lingerie_shop_idle"
tPlayerAnimOut = "trev_exit_lingerie_shop_outro"
RETURN TRUE
BREAK
// CASE PR_SCENE_T_CR_MACHINE
// InitialisePlaceholderPlayerSmokeAnim(ePedScene, tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut) //, ePlayerSceneAnimProgress)
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_CR_RAND_TEMPLE
tPlayerAnimDict = "SWITCH@TREVOR@RAND_TEMPLE"
tPlayerAnimLoop = ""
tPlayerAnimOut = "TAI_CHI_Trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_UNDERPIER
tPlayerAnimDict = "SWITCH@TREVOR@UNDER_PIER"
tPlayerAnimLoop = "LOOP_Trevor"
tPlayerAnimOut = "EXIT_Trevor"
RETURN TRUE
BREAK
CASE PR_SCENE_T_DRUNKHOWLING
tPlayerAnimDict = "SWITCH@TREVOR@DRUNK_HOWLING"
tPlayerAnimLoop = "loop"
tPlayerAnimOut = "exit"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_DRUNKHOWLING
tPlayerAnimDict = "SWITCH@TREVOR@DRUNK_HOWLING_SC"
tPlayerAnimLoop = "loop"
tPlayerAnimOut = "exit"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDSPOON_A
CASE PR_SCENE_T_FLOYDSPOON_A2
tPlayerAnimDict = "SWITCH@TREVOR@BED"
tPlayerAnimLoop = "Bed_Sleep_TREVOR"
tPlayerAnimOut = "Bed_GetUp_1_TREVOR"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDSPOON_B
CASE PR_SCENE_T_FLOYDSPOON_B2
tPlayerAnimDict = "SWITCH@TREVOR@BED"
tPlayerAnimLoop = "Bed_Sleep_TREVOR"
tPlayerAnimOut = "Bed_GetUp_2_TREVOR"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDCRYING_A
tPlayerAnimDict = "SWITCH@TREVOR@FLOYD_CRYING"
tPlayerAnimLoop = "Console_LOOP_TREVOR"
tPlayerAnimOut = "Console_Wasnt_Fun_TREVOR"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDCRYING_E0
CASE PR_SCENE_T_FLOYDCRYING_E1
CASE PR_SCENE_T_FLOYDCRYING_E2
CASE PR_SCENE_T_FLOYDCRYING_E3
tPlayerAnimDict = "SWITCH@TREVOR@FLOYD_CRYING"
tPlayerAnimLoop = "Console_LOOP_TREVOR"
tPlayerAnimOut = "Console_Get_Along_TREVOR"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_BEAR
tPlayerAnimDict = "SWITCH@TREVOR@BEAR_IN_FLOYDS_FACE"
tPlayerAnimLoop = "bear_in_floyds_face_loop_trev"
tPlayerAnimOut = "bear_in_floyds_face_exit_trev"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_DOLL
tPlayerAnimDict = "SWITCH@TREVOR@BEAR_FLOYDS_FACE_SMELL"
tPlayerAnimLoop = "bear_floyds_face_smell_loop_trev"
tPlayerAnimOut = "bear_floyds_face_smell_exit_trev"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDPINEAPPLE
tPlayerAnimDict = "SWITCH@TREVOR@PINEAPPLE"
tPlayerAnimLoop = "Pineapple_LOOP_TREVOR"
tPlayerAnimOut = "Pineapple_EXIT_TREVOR"
RETURN TRUE
BREAK
CASE PR_SCENE_T6_SMOKECRYSTAL
tPlayerAnimDict = "SWITCH@MICHAEL@SMOKING2"
tPlayerAnimLoop = "LOOP"
tPlayerAnimOut = "EXIT"
playerAnimLoopFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
playerAnimOutFlag |= AF_OVERRIDE_PHYSICS | AF_TURN_OFF_COLLISION
RETURN TRUE
BREAK
// CASE PR_SCENE_T6_BLOWSHITUP
// tPlayerAnimDict = "TIMETABLE@TREVOR@GRENADE_THROWING"
// tPlayerAnimLoop = ""
// tPlayerAnimOut = "GRENADE_THROWING_trev"
//
// RETURN TRUE
// BREAK
// CASE PR_SCENE_T6_EVENING
// InitialisePlaceholderPlayerSmokeAnim(ePedScene, tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut) //, ePlayerSceneAnimProgress)
// RETURN TRUE
// BREAK
CASE PR_SCENE_T6_METHLAB
InitialisePlaceholderPlayerSmokeAnim(ePedScene, tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut) //, ePlayerSceneAnimProgress)
RETURN TRUE
BREAK
// CASE PR_SCENE_T6_HUNTING1
// CASE PR_SCENE_T6_HUNTING2
// CASE PR_SCENE_T6_HUNTING3
// InitialisePlaceholderPlayerSmokeAnim(ePedScene, tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut) //, ePlayerSceneAnimProgress)
// RETURN TRUE
// BREAK
// CASE PR_SCENE_T6_TRAF_AIR
// InitialisePlaceholderPlayerSmokeAnim(ePedScene, tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut) //, ePlayerSceneAnimProgress)
// RETURN TRUE
// BREAK
// CASE PR_SCENE_T6_DISPOSEBODY_A
// InitialisePlaceholderPlayerSmokeAnim(ePedScene, tPlayerAnimDict, tPlayerAnimLoop, tPlayerAnimOut) //, ePlayerSceneAnimProgress)
// RETURN TRUE
// BREAK
CASE PR_SCENE_T6_DIGGING
tPlayerAnimDict = "SWITCH@TREVOR@DIGGING"
tPlayerAnimLoop = "001433_01_TRVS_26_DIGGING_IDLE"
tPlayerAnimOut = "001433_01_TRVS_26_DIGGING_EXIT"
playerAnimOutFlag |= AF_TAG_SYNC_OUT
RETURN TRUE
BREAK
CASE PR_SCENE_T6_FLUSHESFOOT
tPlayerAnimDict = "SWITCH@TREVOR@FLUSHES_FOOT"
tPlayerAnimLoop = "002057_03_TRVS_27_FLUSHES_FOOT_IDLE"
tPlayerAnimOut = "002057_03_TRVS_27_FLUSHES_FOOT_EXIT"
playerAnimOutFlag |= AF_TAG_SYNC_OUT
RETURN TRUE
BREAK
DEFAULT
#IF IS_DEBUG_BUILD
// PRINTSTRING("<")
// PRINTSTRING(GET_THIS_SCRIPT_NAME())
// PRINTSTRING("> no anim for eScene in ")
// PRINTSTRING(Get_String_From_Ped_Request_Scene_Enum(ePedScene))
// PRINTNL()
PED_SCENE_STRUCT sPedScene
PLAYER_TIMETABLE_SCENE_STRUCT sDefaultScene
sPedScene.eScene = ePedScene
SETUP_PLAYER_TIMETABLE_FOR_SCENE(sPedScene, sDefaultScene)
IF sDefaultScene.eLoopTask = SCRIPT_TASK_play_anim
OR sDefaultScene.eLoopTask = SCRIPT_TASK_play_anim
TEXT_LABEL_63 sDefault
sDefault = "no anim for eScene in GET_PLAYER_ANIM_FOR_PLAYER_TIMETABLE_SCENE: "
sDefault += Get_String_From_Ped_Request_Scene_Enum(ePedScene)
SCRIPT_ASSERT(sDefault)
tPlayerAnimDict = Get_String_From_Ped_Request_Scene_Enum(ePedScene)
tPlayerAnimLoop = Get_String_From_Ped_Request_Scene_Enum(ePedScene)
tPlayerAnimOut = Get_String_From_Ped_Request_Scene_Enum(ePedScene)
RETURN TRUE
ENDIF
#ENDIF
tPlayerAnimDict = "NULL"
tPlayerAnimLoop = "NULL"
tPlayerAnimOut = "NULL"
//ePlayerSceneAnimProgress = MAX_PLAYER_SCENE_ANIM_PROGRESS
RETURN FALSE
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
TEXT_LABEL_63 sInvalid
sInvalid = "invalid eScene for GET_PLAYER_ANIM_FOR_PLAYER_TIMETABLE_SCENE: "
sInvalid += Get_String_From_Ped_Request_Scene_Enum(ePedScene)
PRINTSTRING(GET_THIS_SCRIPT_NAME())PRINTSTRING(": ")PRINTSTRING(sInvalid)PRINTNL()
SCRIPT_ASSERT(sInvalid)
#ENDIF
tPlayerAnimDict = "NULL"
tPlayerAnimLoop = "NULL"
tPlayerAnimOut = "NULL"
//ePlayerSceneAnimProgress = MAX_PLAYER_SCENE_ANIM_PROGRESS
RETURN FALSE
ENDFUNC
FUNC BOOL GET_PLAYER_WARDROBE_ANIM_FOR_TIMETABLE_SCENE(PED_INDEX pedID, PED_REQUEST_SCENE_ENUM ePedScene)
SWITCH ePedScene
CASE PR_SCENE_M2_BEDROOM
// CASE PR_SCENE_M2_SAVEHOUSE0_b //1556272
CASE PR_SCENE_M4_WAKESUPSCARED
CASE PR_SCENE_M4_WAKEUPSCREAM
// CASE PR_SCENE_M7_GETSREADY
IF DOES_ENTITY_EXIST(pedID)
ENDIF
RETURN TRUE
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
PROC InitialiseBuddyWithAnim(TEXT_LABEL_63 &tBuddyAnimDict, TEXT_LABEL_63 &tBuddyAnimLoop, TEXT_LABEL_63 &tBuddyAnimOut,
STRING sBuddyAnimDict, STRING sBuddyAnimLoop, STRING sBuddyAnimOut)
tBuddyAnimDict = sBuddyAnimDict
tBuddyAnimLoop = sBuddyAnimLoop
tBuddyAnimOut = sBuddyAnimOut
ENDPROC
/// PURPOSE: Returns the flag needed for the synchronized scene
PROC F_GET_BUDDY_SYNCHRONIZED_SCENE_FLAG(PED_REQUEST_SCENE_ENUM ePedScene, SYNCED_SCENE_PLAYBACK_FLAGS &scpf_Flags, IK_CONTROL_FLAGS &ikFlags)
scpf_Flags = SYNCED_SCENE_DONT_INTERRUPT | SYNCED_SCENE_USE_PHYSICS
ikFlags = AIK_NONE
SWITCH ePedScene
CASE PR_SCENE_M2_WIFEEXITSCAR
CASE PR_SCENE_M7_OPENDOORFORAMA
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_M7_DROPPINGOFFJMY
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_M7_LOUNGECHAIRS
ikFlags = AIK_DISABLE_HEAD_IK
BREAK
CASE PR_SCENE_T_FLOYDCRYING_A
CASE PR_SCENE_T_FLOYDCRYING_E0
CASE PR_SCENE_T_FLOYDCRYING_E1
CASE PR_SCENE_T_FLOYDCRYING_E2
CASE PR_SCENE_T_FLOYDCRYING_E3
ikFlags = AIK_DISABLE_HEAD_IK
BREAK
// CASE PR_SCENE_F_KUSH_DOC_a
// scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
// BREAK
// CASE PR_SCENE_F_MD_KUSH_DOC
// scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
// BREAK
CASE PR_SCENE_F_LAMTAUNT_P1
CASE PR_SCENE_F_LAMTAUNT_P3
CASE PR_SCENE_F_LAMTAUNT_P5
CASE PR_SCENE_F_LAMTAUNT_NIGHT
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
CASE PR_SCENE_F_CLUB
scpf_Flags |= SYNCED_SCENE_TAG_SYNC_OUT
BREAK
ENDSWITCH
ENDPROC
FUNC BOOL IS_BUDDY_ASLEEP_FOR_TIMETABLE_SCENE(PED_REQUEST_SCENE_ENUM ePedScene)
SWITCH ePedScene
CASE PR_SCENE_T_FLOYDSPOON_A
CASE PR_SCENE_T_FLOYDSPOON_A2
CASE PR_SCENE_T_FLOYDSPOON_B
CASE PR_SCENE_T_FLOYDSPOON_B2
RETURN TRUE
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
FUNC BOOL IS_BUDDY_QUITING_EXIT_TIMETABLE_SCENE(PED_REQUEST_SCENE_ENUM ePedScene, FLOAT &fExitPhase)
SWITCH ePedScene
CASE PR_SCENE_M7_FAKEYOGA
fExitPhase = 0.75
RETURN TRUE
BREAK
ENDSWITCH
fExitPhase = -1
RETURN FALSE
ENDFUNC
/// PURPOSE: Returns the coords and heading of the ped we are going to hotswap to for the specified scene.
FUNC BOOL GET_BUDDY_ANIM_FOR_TIMETABLE_SCENE(PED_REQUEST_SCENE_ENUM ePedScene,
TEXT_LABEL_63 &tBuddyAnimDict, TEXT_LABEL_63 &tBuddyAnimLoop, TEXT_LABEL_63 &tBuddyAnimOut,
ANIMATION_FLAGS &buddyAnimLoopFlag, ANIMATION_FLAGS &buddyAnimOutFlag)
buddyAnimLoopFlag = AF_LOOPING | AF_NOT_INTERRUPTABLE
buddyAnimOutFlag = AF_NOT_INTERRUPTABLE
SWITCH ePedScene
CASE PR_SCENE_M2_BEDROOM
tBuddyAnimDict = "SWITCH@MICHAEL@BEDROOM"
tBuddyAnimLoop = "BED_LOOP_Amanda"
tBuddyAnimOut = "BED_REACT_Amanda"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_SAVEHOUSE0_b
tBuddyAnimDict = "SWITCH@MICHAEL@BEDROOM2"
tBuddyAnimLoop = "BED_LOOP_Amanda"
tBuddyAnimOut = "BED_EXIT_Amanda"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_SAVEHOUSE1_a
InitialiseBuddyWithAnim(tBuddyAnimDict, tBuddyAnimLoop, tBuddyAnimOut,
"SWITCH@MICHAEL@SITTING", "IDLE", "EXIT_FORWARD")
buddyAnimLoopFlag |= AF_OVERRIDE_PHYSICS
buddyAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_M2_KIDS_TV
tBuddyAnimDict = "SWITCH@MICHAEL@ON_SOFA"
tBuddyAnimLoop = "BASE_Jimmy"
tBuddyAnimOut = "EXIT_Jimmy"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_LUNCH_a
tBuddyAnimDict = "SWITCH@MICHAEL@CAFE"
tBuddyAnimLoop = "LOOP_Amanda"
tBuddyAnimOut = "EXIT_Amanda"
RETURN TRUE
BREAK
// CASE PR_SCENE_M7_LUNCH_b
// tBuddyAnimDict = "SWITCH@MICHAEL@CAFE2"
// tBuddyAnimLoop = "LOOP_Amanda"
// tBuddyAnimOut = "EXIT_Amanda"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_M2_ARGUEWITHWIFE
tBuddyAnimDict = "SWITCH@MICHAEL@ARGUE_WITH_AMANDA"
tBuddyAnimLoop = "argue_with_amanda_loop_amanda"
tBuddyAnimOut = "argue_with_amanda_exit_amanda"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_WIFEEXITSCAR
tBuddyAnimDict = "SWITCH@MICHAEL@AMANDA_EXITS_CAR"
tBuddyAnimLoop = "000606_02_MICS1_5_AMANDA_EXITS_CAR_IDLE_AMA"
tBuddyAnimOut = "000606_02_MICS1_5_AMANDA_EXITS_CAR_EXIT_AMA"
RETURN TRUE
BREAK
CASE PR_SCENE_M6_RONBORING
tBuddyAnimDict = "SWITCH@MICHAEL@RONEX_IG_5_P2"
tBuddyAnimLoop = "BASE_RON"
tBuddyAnimOut = "RONEX_IG5_P2_RON"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_OPENDOORFORAMA
tBuddyAnimDict = "SWITCH@MICHAEL@OPENS_DOOR_FOR_AMA"
tBuddyAnimLoop = "001895_02_MICS3_17_OPENS_DOOR_FOR_AMA_IDLE_AMA"
tBuddyAnimOut = "001895_02_MICS3_17_OPENS_DOOR_FOR_AMA_EXIT_AMA"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_DROPPINGOFFJMY
tBuddyAnimDict = "SWITCH@MICHAEL@DROPPING_OFF_JMY"
tBuddyAnimLoop = "001839_02_MICS3_20_DROPPING_OFF_JMY_IDLE_JMY"
tBuddyAnimOut = "001839_02_MICS3_20_DROPPING_OFF_JMY_EXIT_JMY"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_TRACEYEXITSCAR
// CASE PR_SCENE_M_HOOKERCAR
tBuddyAnimDict = "SWITCH@MICHAEL@TRACY_EXITS_CAR"
tBuddyAnimLoop = "001840_01_MICS3_IG_21_TRACY_EXITS_CAR_IDLE_TRA"
tBuddyAnimOut = "001840_01_MICS3_IG_21_TRACY_EXITS_CAR_TRA"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_GETSREADY
tBuddyAnimDict = "SWITCH@MICHAEL@GETS_READY"
tBuddyAnimLoop = "001520_02_MICS3_14_GETS_READY_IDLE_AMA"
tBuddyAnimOut = "001520_02_MICS3_14_GETS_READY_EXIT_AMA"
buddyAnimOutFlag |= AF_USE_KINEMATIC_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_M7_RESTAURANT
tBuddyAnimDict = "SWITCH@MICHAEL@RESTAURANT"
tBuddyAnimLoop = "001510_02_GC_MICS3_IG_1_BASE_AMANDA"
tBuddyAnimOut = "001510_02_GC_MICS3_IG_1_EXIT_AMANDA"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_ROUNDTABLE
tBuddyAnimDict = "SWITCH@MICHAEL@AROUND_THE_TABLE_SELFISH"
tBuddyAnimLoop = "AROUND_THE_TABLE_SELFISH_BASE_Jimmy"
tBuddyAnimOut = "AROUND_THE_TABLE_SELFISH_Jimmy"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_LOUNGECHAIRS
tBuddyAnimDict = "SWITCH@MICHAEL@LOUNGE_CHAIRS"
tBuddyAnimLoop = "001523_01_MICS3_9_LOUNGE_CHAIRS_IDLE_AMA"
tBuddyAnimOut = "001523_01_MICS3_9_LOUNGE_CHAIRS_EXIT_AMA"
buddyAnimOutFlag |= AF_USE_KINEMATIC_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_M7_HOOKERS
tBuddyAnimDict = "SWITCH@MICHAEL@PROSTITUTE"
tBuddyAnimLoop = "BASE_HOOKER"
tBuddyAnimOut = "EXIT_HOOKER"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_LOT_JIMMY
tBuddyAnimDict = "SWITCH@MICHAEL@ON_SET_W_JMY"
tBuddyAnimLoop = ""
tBuddyAnimOut = "001513_03_GC_MICS3_IG_4_ON_SET_W_JMY_EXIT_JMY"
RETURN TRUE
BREAK
// CASE PR_SCENE_M7_KIDS_TV
// IF GET_BUDDY_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_M2_KIDS_TV,
// tBuddyAnimDict, tBuddyAnimLoop, tBuddyAnimOut,
// buddyAnimLoopFlag, buddyAnimOutFlag)
// RETURN TRUE
// ENDIF
// BREAK
CASE PR_SCENE_M7_KIDS_GAMING
tBuddyAnimDict = "SWITCH@MICHAEL@GAMING_W_JMY"
tBuddyAnimLoop = "001518_02_MICS3_11_GAMING_W_JMY_IDLE_JMY"
tBuddyAnimOut = "001518_02_MICS3_11_GAMING_W_JMY_EXIT_JMY"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_WIFETENNIS
tBuddyAnimDict = "SWITCH@MICHAEL@AMA_TENNIS"
tBuddyAnimLoop = "001833_01_MICS3_18_AMA_TENNIS_IDLE_AMA"
tBuddyAnimOut = "001833_01_MICS3_18_AMA_TENNIS_EXIT_AMA"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_WALKCHOP
// CASE PR_SCENE_F1_WALKCHOP
CASE PR_SCENE_F_WALKCHOP_a
CASE PR_SCENE_F_WALKCHOP_b
IF GET_BUDDY_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F1_PLAYCHOP,
tBuddyAnimDict, tBuddyAnimLoop, tBuddyAnimOut,
buddyAnimLoopFlag, buddyAnimOutFlag)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_F0_PLAYCHOP
IF GET_BUDDY_ANIM_FOR_TIMETABLE_SCENE(PR_SCENE_F1_PLAYCHOP,
tBuddyAnimDict, tBuddyAnimLoop, tBuddyAnimOut,
buddyAnimLoopFlag, buddyAnimOutFlag)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_F1_PLAYCHOP
tBuddyAnimDict = "SWITCH@FRANKLIN@PLAYS_W_DOG"
tBuddyAnimLoop = "001916_01_FRAS_V2_9_PLAYS_W_DOG_IDLE_ROT"
tBuddyAnimOut = "001916_01_FRAS_V2_9_PLAYS_W_DOG_EXIT_ROT"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_TANISHAFIGHT
tBuddyAnimDict = "SWITCH@FRANKLIN@TANISHA_ARGUE"
tBuddyAnimLoop = "BASE_Tanisha"
tBuddyAnimOut = "Tanisha_Argue_Tanisha"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_BYETAXI
tBuddyAnimDict = "SWITCH@FRANKLIN@BYE_TAXI"
tBuddyAnimLoop = "001938_01_FRAS_V2_7_BYE_TAXI_IDLE_GIRL"
tBuddyAnimOut = "001938_01_FRAS_V2_7_BYE_TAXI_EXIT_GIRL"
RETURN TRUE
BREAK
CASE PR_SCENE_F_CLUB
tBuddyAnimDict = "SWITCH@FRANKLIN@PICKUP_LINE"
tBuddyAnimLoop = "base_Hooker"
tBuddyAnimOut = "switch_ped_Hooker"
RETURN TRUE
BREAK
// CASE PR_SCENE_F_LAMGRAFF
// tBuddyAnimDict = "SWITCH@FRANKLIN@LAMAR_TAGGING_WALL"
// tBuddyAnimLoop = "lamar_tagging_wall_LOOP_LAMAR"
// tBuddyAnimOut = "lamar_tagging_wall_EXIT_LAMAR"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_F_LAMTAUNT_P1
tBuddyAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P1"
tBuddyAnimLoop = "gang_taunt_loop_lamar"
tBuddyAnimOut = "gang_taunt_exit_lamar"
RETURN TRUE
BREAK
// CASE PR_SCENE_F_LAMTAUNT_P2
// tBuddyAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P2"
// tBuddyAnimLoop = "fras_ig_6_p2_loop_lamar"
// tBuddyAnimOut = "fras_ig_6_p2_exit_lamar"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_F_LAMTAUNT_P3
tBuddyAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P3"
tBuddyAnimLoop = "gang_taunt_with_lamar_loop_lamar"
tBuddyAnimOut = "gang_taunt_with_lamar_exit_lamar"
RETURN TRUE
BREAK
CASE PR_SCENE_F_LAMTAUNT_P5
tBuddyAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P5"
tBuddyAnimLoop = "fras_ig_6_p5_loop_lamar"
tBuddyAnimOut = "fras_ig_6_p5_exit_lamar"
RETURN TRUE
BREAK
CASE PR_SCENE_F_LAMTAUNT_NIGHT
tBuddyAnimDict = "SWITCH@FRANKLIN@GANG_TAUNT_P3"
tBuddyAnimLoop = "fras_ig_10_p3_loop_lamar"
tBuddyAnimOut = "fras_ig_10_p3_exit_lamar"
RETURN TRUE
BREAK
CASE PR_SCENE_F_KUSH_DOC_a
tBuddyAnimDict = "SWITCH@FRANKLIN@DISPENSARY"
tBuddyAnimLoop = ""
tBuddyAnimOut = "exit_dispensary_outro_ped_f_a"
RETURN TRUE
BREAK
CASE PR_SCENE_F_MD_KUSH_DOC
tBuddyAnimDict = "SWITCH@FRANKLIN@002110_04_MAGD_3_WEED_EXCHANGE"
tBuddyAnimLoop = "002110_04_MAGD_3_WEED_EXCHANGE_SHOPKEEPER"
tBuddyAnimOut = "002110_04_MAGD_3_WEED_EXCHANGE_SHOPKEEPER"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_BAR
tBuddyAnimDict = "SWITCH@TREVOR@BAR"
tBuddyAnimLoop = "LOOP_Bartender"
tBuddyAnimOut = "EXIT_Bartender"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_CHASE
tBuddyAnimDict = "SWITCH@TREVOR@CHASE_STRIPPERS"
tBuddyAnimLoop = "LOOP_BOUNCER"
tBuddyAnimOut = "EXIT_BOUNCER"
RETURN TRUE
BREAK
// CASE PR_SCENE_T_STRIPCLUB_a
// InitialiseBuddyWithAnim(tBuddyAnimDict, tBuddyAnimLoop, tBuddyAnimOut, "s""i""t", "plyr_sit_LOOP","plyr_sit_LOOP")
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_DRUNKHOWLING
// CASE PR_SCENE_T_SC_DRUNKHOWLING
InitialiseBuddyWithAnim(tBuddyAnimDict, tBuddyAnimLoop, tBuddyAnimOut, "SWITCH@MICHAEL@PIER", "pier_lean_smoke_idle", "pier_lean_smoke_idle")
RETURN TRUE
BREAK
CASE PR_SCENE_T_KONEIGHBOUR
tBuddyAnimDict = "SWITCH@TREVOR@KO_NEIGHBOUR"
tBuddyAnimLoop = "001500_03_TRVS_19_KO_NEIGHBOUR_LOOP_NBR"
tBuddyAnimOut = "001500_03_TRVS_19_KO_NEIGHBOUR_EXIT_NBR"
RETURN TRUE
BREAK
// CASE PR_SCENE_T_THROW_FOOD
// tBuddyAnimDict = "SWITCH@TREVOR@THROW_FOOD"
// tBuddyAnimLoop = "LOOP_Ped"
// tBuddyAnimOut = "EXIT_Ped"
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_CR_BLOCK_CAMERA
tBuddyAnimDict = "SWITCH@TREVOR@BLOCK_CAMERA"
tBuddyAnimLoop = "001220_03_GC_TRVS_IG_7_BASE_GENERIC"
tBuddyAnimOut = "001220_03_GC_TRVS_IG_7_EXIT_GENERIC"
RETURN TRUE
BREAK
CASE PR_SCENE_T_GUITARBEATDOWN
tBuddyAnimDict = "SWITCH@TREVOR@GUITAR_BEATDOWN"
tBuddyAnimLoop = "001370_02_TRVS_8_GUITAR_BEATDOWN_IDLE_BUSKER"
tBuddyAnimOut = "001370_02_TRVS_8_GUITAR_BEATDOWN_EXIT_BUSKER"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDSPOON_A
CASE PR_SCENE_T_FLOYDSPOON_A2
tBuddyAnimDict = "SWITCH@TREVOR@BED"
tBuddyAnimLoop = "Bed_Sleep_FLOYD"
tBuddyAnimOut = "Bed_GetUp_1_FLOYD"
buddyAnimLoopFlag |= AF_OVERRIDE_PHYSICS
buddyAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDSPOON_B
CASE PR_SCENE_T_FLOYDSPOON_B2
tBuddyAnimDict = "SWITCH@TREVOR@BED"
tBuddyAnimLoop = "Bed_Sleep_FLOYD"
tBuddyAnimOut = "Bed_GetUp_2_FLOYD"
buddyAnimLoopFlag |= AF_OVERRIDE_PHYSICS
buddyAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDCRYING_A
tBuddyAnimDict = "SWITCH@TREVOR@FLOYD_CRYING"
tBuddyAnimLoop = "Console_LOOP_FLOYD"
tBuddyAnimOut = "Console_Wasnt_Fun_FLOYD"
buddyAnimLoopFlag |= AF_OVERRIDE_PHYSICS
buddyAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDCRYING_E0
CASE PR_SCENE_T_FLOYDCRYING_E1
CASE PR_SCENE_T_FLOYDCRYING_E2
CASE PR_SCENE_T_FLOYDCRYING_E3
tBuddyAnimDict = "SWITCH@TREVOR@FLOYD_CRYING"
tBuddyAnimLoop = "Console_LOOP_FLOYD"
tBuddyAnimOut = "Console_Get_Along_FLOYD"
buddyAnimLoopFlag |= AF_OVERRIDE_PHYSICS
buddyAnimOutFlag |= AF_OVERRIDE_PHYSICS
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_BEAR
tBuddyAnimDict = "SWITCH@TREVOR@BEAR_IN_FLOYDS_FACE"
tBuddyAnimLoop = "bear_in_floyds_face_loop_floyd"
tBuddyAnimOut = "bear_in_floyds_face_exit_floyd"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_DOLL
tBuddyAnimDict = "SWITCH@TREVOR@BEAR_FLOYDS_FACE_SMELL"
tBuddyAnimLoop = "bear_floyds_face_smell_loop_floyd"
tBuddyAnimOut = "bear_floyds_face_smell_exit_floyd"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDPINEAPPLE
tBuddyAnimDict = "SWITCH@TREVOR@PINEAPPLE"
tBuddyAnimLoop = "Pineapple_LOOP_FLOYD"
tBuddyAnimOut = "Pineapple_EXIT_FLOYD"
RETURN TRUE
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
TEXT_LABEL_63 sInvalid
sInvalid = "invalid eScene for buddy timetable setup: "
sInvalid += Get_String_From_Ped_Request_Scene_Enum(ePedScene)
PRINTSTRING(GET_THIS_SCRIPT_NAME())PRINTSTRING(": ")PRINTSTRING(sInvalid)PRINTNL()
SCRIPT_ASSERT(sInvalid)
#ENDIF
tBuddyAnimDict = "NULL"
tBuddyAnimLoop = "NULL"
tBuddyAnimOut = "NULL"
RETURN FALSE
ENDFUNC
FUNC BOOL GET_SPEECH_FACIAL_ANIM_FOR_TIMETABLE_SCENE(PED_REQUEST_SCENE_ENUM ePedScene,
TEXT_LABEL_63 &tFacialClip)
TEXT_LABEL rootLabel = g_ConversationData.ConversationSegmentToGrab
INT iRootFilenameNum = -1
SWITCH ePedScene
CASE PR_SCENE_M7_LOUNGECHAIRS //1314197
// rootLabel += "A"
// iRootFilenameNum = GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE(rootLabel)
INT rootLabelLength
TEXT_LABEL rootLabelChar
rootLabelLength = GET_LENGTH_OF_LITERAL_STRING(rootLabel)
rootLabelChar = GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME(rootLabel, rootLabelLength-1, rootLabelLength)
rootLabel += "_1A"
SWITCH GET_HASH_KEY(rootLabelChar)
CASE HASH("a")
iRootFilenameNum = 1
BREAK
CASE HASH("b")
iRootFilenameNum = 2
BREAK
CASE HASH("c")
iRootFilenameNum = 3
BREAK
CASE HASH("d")
iRootFilenameNum = 4
BREAK
DEFAULT
iRootFilenameNum = GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE(rootLabel)
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
SAVE_STRING_TO_DEBUG_FILE("GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE(\"")
SAVE_STRING_TO_DEBUG_FILE(rootLabel)
SAVE_STRING_TO_DEBUG_FILE("\"): ")
SAVE_INT_TO_DEBUG_FILE(iRootFilenameNum)
SAVE_NEWLINE_TO_DEBUG_FILE()
#ENDIF
SWITCH iRootFilenameNum
CASE 1 /* It's so good to spend some time together.
It's great, but I've got to run. You relax and enjoy yourself. */
tFacialClip = "EXIT_MIC_YOU_ENJOY_YOURSELF_FACIAL"
RETURN TRUE
BREAK
CASE 2 /* So... how do you feel about remodeling the house?
Can we talk about it later? I've got a meeting. Sorry. */
tFacialClip = "EXIT_MIC_GOTTA_MEETING_SORRY_FACIAL"
RETURN TRUE
BREAK
CASE 3 /* Hey, you want another drink, Michael?
Oh, baby, I would love one, but I'm kind of late for a meeting. */
tFacialClip = "EXIT_MIC_LATE_FOR_A_MEETING_FACIAL"
RETURN TRUE
BREAK
ENDSWITCH
SCRIPT_ASSERT("invalid iRootFilenameNum scene:PR_SCENE_M7_LOUNGECHAIRS")
tFacialClip = ""
RETURN FALSE
BREAK
ENDSWITCH
tFacialClip = ""
RETURN FALSE
ENDFUNC
FUNC BOOL GET_TASK_FACIAL_ANIM_FOR_TIMETABLE_SCENE(PED_REQUEST_SCENE_ENUM ePedScene,
TEXT_LABEL_63 &tFacialClip)
SWITCH ePedScene
CASE PR_SCENE_F1_SNACKING //1546382
tFacialClip = "001922_01_FRAS_V2_3_SNACKING_EXIT_FACE"
RETURN TRUE
BREAK
ENDSWITCH
tFacialClip = ""
RETURN FALSE
ENDFUNC
// *******************************************************************************************
// SCENE PRIVATE EVENT FUNCTIONS
// *******************************************************************************************
FUNC BOOL HasAnimEventPassed(STRING pEventName, FLOAT fPlayerSceneAnimOutTime,
STRING pAnimDictName, STRING pAnimName,
INT &iDrawSceneRot)
FLOAT ReturnStartPhase, ReturnEndPhase
IF FIND_ANIM_EVENT_PHASE(pAnimDictName, pAnimName, pEventName, ReturnStartPhase, ReturnEndPhase)
#IF IS_DEBUG_BUILD
TEXT_LABEL_63 str = ("\"")
str += (pEventName)
str += ("\" [")
str += GET_STRING_FROM_FLOAT(ReturnStartPhase)
str += ("]")
#ENDIF
IF fPlayerSceneAnimOutTime < ReturnStartPhase
#IF IS_DEBUG_BUILD
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_GREENLIGHT)
#ENDIF
iDrawSceneRot++
ELSE
#IF IS_DEBUG_BUILD
str += " break"
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_GREENDARK)
#ENDIF
iDrawSceneRot++
RETURN TRUE
ENDIF
ENDIF
IF ARE_STRINGS_EQUAL(pEventName, "WalkInterruptible")
IF HasAnimEventPassed("END_IN_WALK", fPlayerSceneAnimOutTime,
pAnimDictName, pAnimName, iDrawSceneRot)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL HasAnimPhasePassed_SCRIPT(PED_REQUEST_SCENE_ENUM eScene, STRING pEventName, FLOAT fPlayerSceneAnimOutTime,
STRING pAnimDictName, STRING pAnimName,
INT &iDrawSceneRot)
FLOAT fEventPhase = -1
UNUSED_PARAMETER(pAnimDictName)
UNUSED_PARAMETER(pAnimName)
UNUSED_PARAMETER(iDrawSceneRot)
IF ARE_STRINGS_EQUAL(pEventName, "victim_fall")
SWITCH eScene
CASE PR_SCENE_T_CR_BRIDGEDROP fEventPhase = 0.571 BREAK
CASE PR_SCENE_T_KONEIGHBOUR fEventPhase = 0.805 /*0.870*/ BREAK
CASE PR_SCENE_T_GUITARBEATDOWN fEventPhase = 0.813 /*0.905*/ BREAK
DEFAULT
fEventPhase = -1
RETURN FALSE
BREAK
ENDSWITCH
ELIF ARE_STRINGS_EQUAL(pEventName, "victim_die")
SWITCH eScene
CASE PR_SCENE_T_KONEIGHBOUR fEventPhase = 0.904 BREAK
CASE PR_SCENE_T_GUITARBEATDOWN fEventPhase = 0.905 BREAK
DEFAULT
fEventPhase = -1
RETURN FALSE
BREAK
ENDSWITCH
ELIF ARE_STRINGS_EQUAL(pEventName, "close_veh_doors")
SWITCH eScene
CASE PR_SCENE_M2_WIFEEXITSCAR fEventPhase = 0.70 BREAK
CASE PR_SCENE_M7_OPENDOORFORAMA fEventPhase = 0.95 BREAK
DEFAULT
fEventPhase = -1
RETURN FALSE
BREAK
ENDSWITCH
ELIF ARE_STRINGS_EQUAL(pEventName, "WalkInterruptible")
SWITCH eScene
CASE PR_SCENE_M4_WAKESUPSCARED fEventPhase = 0.95 BREAK
DEFAULT
fEventPhase = -1
RETURN FALSE
BREAK
ENDSWITCH
ELSE
fEventPhase = -1
RETURN FALSE
ENDIF
IF (fEventPhase >= 0 AND fEventPhase <= 1)
#IF IS_DEBUG_BUILD
TEXT_LABEL_63 str = (pEventName)
str += (" phase [")
str += GET_STRING_FROM_FLOAT(fEventPhase)
str += ("]")
#ENDIF
IF fPlayerSceneAnimOutTime < fEventPhase
#IF IS_DEBUG_BUILD
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_YELLOWDARK)
iDrawSceneRot++
#ENDIF
ELSE
#IF IS_DEBUG_BUILD
str = (pEventName)
str += (" break [")
str += GET_STRING_FROM_FLOAT(fEventPhase)
str += ("]")
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_YELLOWDARK)
iDrawSceneRot++
FLOAT ReturnStartPhase, ReturnEndPhase
IF NOT FIND_ANIM_EVENT_PHASE(pAnimDictName, pAnimName, pEventName,
ReturnStartPhase, ReturnEndPhase)
str = ("not in clip...")
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_RED)
iDrawSceneRot++
ELSE
IF (ReturnStartPhase <> fEventPhase)
str = ("doesnt match clip...")
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_RED)
iDrawSceneRot++
ELSE
str = ("matches clip...")
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_BLUELIGHT)
iDrawSceneRot++
ENDIF
ENDIF
#ENDIF
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL HasQuitAnimPhasePassed(PED_REQUEST_SCENE_ENUM eScene, FLOAT fPlayerSceneAnimOutTime,
INT &iDrawSceneRot)
FLOAT fEventPhase = -1
SWITCH eScene
CASE PR_SCENE_F0_GARBAGE fEventPhase = 0.9 BREAK
CASE PR_SCENE_T_FLOYD_BEAR fEventPhase = 0.6 BREAK
#IF NOT USE_TU_CHANGES
DEFAULT
PRINTSTRING("is TU wardrobe scene ???? ")PRINTNL()
fEventPhase = -1 RETURN FALSE BREAK
#ENDIF
#IF USE_TU_CHANGES
DEFAULT
IF GET_PLAYER_WARDROBE_ANIM_FOR_TIMETABLE_SCENE(PLAYER_PED_ID(), eScene)
PRINTSTRING("is wardrobe scene - ")PRINTNL()
fEventPhase = 0.95
ELSE
PRINTSTRING("is NOT wardrobe scene - ")PRINTNL()
fEventPhase = -1
RETURN FALSE
ENDIF
BREAK
#ENDIF
ENDSWITCH
eScene = eScene
IF (fEventPhase >= 0 AND fEventPhase <= 1)
#IF IS_DEBUG_BUILD
TEXT_LABEL_63 str = ("quit event phase [")
str += GET_STRING_FROM_FLOAT(fEventPhase)
str += ("]")
#ENDIF
IF fPlayerSceneAnimOutTime < fEventPhase
#IF IS_DEBUG_BUILD
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_YELLOWDARK)
#ENDIF
iDrawSceneRot++
ELSE
#IF IS_DEBUG_BUILD
str += " break"
DrawLiteralSceneString(str, iDrawSceneRot, HUD_COLOUR_YELLOWDARK)
#ENDIF
iDrawSceneRot++
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL GetPlayerAnimComponentForTimetableScene(PED_REQUEST_SCENE_ENUM ePedScene,
FLOAT &fPlayerSceneAnimTime, PED_COMPONENT &ComponentID[], INT &DrawableID[], INT &TextureID[])
#IF NOT IS_JAPANESE_BUILD
SWITCH ePedScene
CASE PR_SCENE_T_SHIT
fPlayerSceneAnimTime = 0.55 //0.5
ComponentID[0] = PED_COMP_LEG
DrawableID[0] = 23 //LEGS_P2_SWEAT_PANTS
TextureID[0] = 0
ComponentID[1] = PED_COMP_FEET
DrawableID[1] = 11
TextureID[1] = 0
ComponentID[2] = PED_COMP_SPECIAL
DrawableID[2] = 0
TextureID[2] = 0
RETURN TRUE
BREAK
ENDSWITCH
#ENDIF
#IF IS_JAPANESE_BUILD
ePedScene = ePedScene
#ENDIF
fPlayerSceneAnimTime = -1
ComponentID[0] = INT_TO_ENUM(PED_COMPONENT, -1)
DrawableID[0] = -1
TextureID[0] = -1
RETURN FALSE
ENDFUNC