Files
gtav-src/script/dev_ng/singleplayer/include/private/player_scene_objects.sch
T
2025-09-29 00:52:08 +02:00

1992 lines
55 KiB
Scheme
Executable File

//////////////////////////////////////////////////////////////////////////////////////////
// //
// SCRIPT NAME : player_scene_objects.sch //
// AUTHOR : Alwyn Roberts //
// DESCRIPTION : Contains the players timetable and procs to set up the //
// scenes for each slot in the timetable. //
// //
//////////////////////////////////////////////////////////////////////////////////////////
USING "building_globals.sch"
USING "commands_entity.sch"
#IF IS_DEBUG_BUILD
FUNC STRING SAFE_GET_MODEL_NAME_FOR_DEBUG(MODEL_NAMES ModelHashKey)
IF (ModelHashKey = DUMMY_MODEL_FOR_SCRIPT)
RETURN "dummy_model_for_script"
ENDIF
IF (ModelHashKey = V_RES_TT_FLUSHER)
RETURN "V_RES_TT_FLUSHER"
ENDIF
RETURN GET_MODEL_NAME_FOR_DEBUG(ModelHashKey)
ENDFUNC
#ENDIF
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// SCENE TIMETABLE ///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ENUM enumPlayerSceneObjectAction
PSOA_0_detach = 0,
PSOA_1_delete,
PSOA_2_synched,
PSOA_3_world,
PSOA_4_synchSwap,
PSOA_5_explode,
PSOA_6_keepHide,
PSOA_7_weaponSwap,
PSOA_8_ptfxSwap,
PSOA_9_synchAndPtfxSwap,
PSOA_NULL = -1
ENDENUM
FUNC BOOL GET_OBJECTS_FOR_SCENE(PED_REQUEST_SCENE_ENUM eScene,
MODEL_NAMES &ePropModel, VECTOR &propOffset, VECTOR &propRotation, PED_BONETAG &eAttachBonetag,
FLOAT &fDetachAnimPhase, enumPlayerSceneObjectAction &thisSceneObjectAction)
propOffset = <<0,0,0>>
propRotation= <<0,0,0>>
SWITCH eScene
// CASE PR_SCENE_M_S_FAMILY4
// ePropModel = P_KITCH_JUICER_S
//
// propRotation= <<0,0,-25.0>>
// propOffset = <<-0.72, -0.289, 1.09>>
//
// eAttachBonetag = BONETAG_NULL
// fDetachAnimPhase = 1.0
// thisSceneObjectAction = PSOA_0_detach
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_Fa_STRIPCLUB_ARM3
ePropModel = Prop_phone_ING_03
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.90
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
// CASE PR_SCENE_Fa_STRIPCLUB_FAM1
// RETURN GET_OBJECTS_FOR_SCENE(PR_SCENE_Fa_STRIPCLUB_ARM3,
// ePropModel, propOffset, propRotation, eAttachBonetag,
// fDetachAnimPhase, thisSceneObjectAction)
// BREAK
// CASE PR_SCENE_Fa_STRIPCLUB_FAM3
// RETURN GET_OBJECTS_FOR_SCENE(PR_SCENE_Fa_STRIPCLUB_ARM3,
// ePropModel, propOffset, propRotation, eAttachBonetag,
// fDetachAnimPhase, thisSceneObjectAction)
// BREAK
CASE PR_SCENE_F1_NEWHOUSE
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_Fa_STRIPCLUB_ARM3,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
fDetachAnimPhase = 0.7
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M2_SAVEHOUSE1_b
ePropModel = prop_table_05_chr
PropOffset = <<0,0,0>> //<<0.6619, 0.0777, -0.9754>> //<<0.0000, 0.1500, -0.5900>> //<<0.4867, 0.1893, -0.9754>>
propRotation = <<0,0,0>> //<<-27.000,0,180.000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.05
thisSceneObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_M_BENCHCALL_a
CASE PR_SCENE_M_BENCHCALL_b
ePropModel = Prop_phone_ING
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = -1
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_M6_ONPHONE
RETURN GET_OBJECTS_FOR_SCENE(PR_SCENE_M_BENCHCALL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
BREAK
CASE PR_SCENE_M6_DEPRESSED
RETURN GET_OBJECTS_FOR_SCENE(PR_SCENE_M_BENCHCALL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
BREAK
CASE PR_SCENE_M2_PHARMACY
ePropModel = Prop_phone_ING
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.9300
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_M4_WAKESUPSCARED
ePropModel = GET_WEAPONTYPE_MODEL(WEAPONTYPE_PISTOL)
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 1.0
thisSceneObjectAction = PSOA_7_weaponSwap
RETURN TRUE
BREAK
CASE PR_SCENE_M_CANAL_a
ePropModel = PROP_CIGAR_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.85
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_M_CANAL_b
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_CANAL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M_CANAL_c
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_CANAL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M_PIER_b
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_CANAL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M2_SMOKINGGOLF
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_CANAL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M_VWOODPARK_a
CASE PR_SCENE_M_VWOODPARK_b
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_CANAL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
fDetachAnimPhase = 0.7234 //0.7136 //0.723
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M6_MORNING_a
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_CANAL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_T6_SMOKECRYSTAL
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_CANAL_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M_COFFEE_a
ePropModel = P_ING_COFFEECUP_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.85
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_M_COFFEE_b
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_COFFEE_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
ePropModel = P_AMB_COFFEECUP_01
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M_COFFEE_c
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_COFFEE_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
ePropModel = P_ING_COFFEECUP_01
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M4_CINEMA
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_COFFEE_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
ePropModel = PROP_PLASTIC_CUP_02
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M7_COFFEE
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_M_COFFEE_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
ePropModel = P_ING_COFFEECUP_01
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M7_READSCRIPT
ePropModel = P_CS_SCRIPT_S
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.86
thisSceneObjectAction = PSOA_2_synched
RETURN TRUE
BREAK
CASE PR_SCENE_M7_FAKEYOGA
ePropModel = PROP_CIGAR_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.85
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_M7_WIFETENNIS
ePropModel = PROP_TENNIS_RACK_01
propOffset = <<GET_RANDOM_FLOAT_IN_RANGE(-1.0, 1.0), GET_RANDOM_FLOAT_IN_RANGE(-1.0, 1.0), -1.0000>>
propRotation = <<90,0,GET_RANDOM_FLOAT_IN_RANGE(-180.0, 180.0)>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.05
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_M7_KIDS_GAMING
ePropModel = PROP_CONTROLLER_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.85
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_M7_DROPPINGOFFJMY
ePropModel = P_BankNote_S
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.85
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_M7_TRACEYEXITSCAR
// CASE PR_SCENE_M_HOOKERCAR
ePropModel = P_BankNote_S
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.85
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_M7_LOUNGECHAIRS
ePropModel = PROP_BEACH_BAG_02 //Prop_Beach_lotion_01, Prop_Beach_lotion_02, Prop_Beach_lotion_03, Prop_Beach_bag_02, Prop_Beach_bag_01a, Prop_Beach_towel_03
propOffset = <<1.0027, 2.3148, -0.9300>>
propRotation = <<0.0000, 0.0000, 141.4800>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_F0_TANISHAFIGHT
ePropModel = v_ilev_fa_frontdoor
// propOffset = <<-14.959,-1441.302,30.910>> - <<-14.6713, -1438.8420, 31.1001>>
// propRotation = <<0.0000, 0.0000, 179.56 - -151.5000 - 360>>
PropOffset = <<0,-0.180,0>> //<<0,0,0>> //<<-0.1977, -2.3400, 0.0799>>
PropRotation = <<0,0,180>> //<<0,0,180>> //<<0.0000, 0.0000, -28.9400>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.01
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_F1_SH_ASLEEP
ePropModel = V_ILev_fh_lampA_on //V_Res_FH_lampA_on
thisSceneObjectAction = PSOA_3_world
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
propOffset = <<-2.895,525.526,170.134>> - <<-0.4500, 525.4900, 169.6400>>
propRotation = <<0.0, 0.0, 104.8200>> - <<0,0,-147.0000>>
thisSceneObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_F0_SH_READING
CASE PR_SCENE_F1_SH_READING
ePropModel = PROP_CS_BOOK_01
eAttachBonetag = BONETAG_PH_L_HAND
fDetachAnimPhase = 0.705
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_F0_GARBAGE
CASE PR_SCENE_F1_GARBAGE
ePropModel = PROP_CS_RUB_BINBAG_01 //Prop_LD_rub_binbag_01
eAttachBonetag = BONETAG_PH_R_HAND
IF(eScene = PR_SCENE_F0_GARBAGE)
fDetachAnimPhase = 0.6645 //0.6647
thisSceneObjectAction = PSOA_2_synched
ELIF(eScene = PR_SCENE_F1_GARBAGE)
fDetachAnimPhase = 0.9401
thisSceneObjectAction = PSOA_0_detach
ELSE
thisSceneObjectAction = PSOA_2_synched
fDetachAnimPhase = 0.8
ENDIF
RETURN TRUE
BREAK
CASE PR_SCENE_M4_WATCHINGTV
CASE PR_SCENE_T_FLOYDSAVEHOUSE
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_F1_WATCHINGTV,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
thisSceneObjectAction = PSOA_0_detach
IF (eScene = PR_SCENE_M4_WATCHINGTV)
thisSceneObjectAction = PSOA_3_world
ENDIF
IF (eScene = PR_SCENE_T_FLOYDSAVEHOUSE)
// ePropModel = V_RES_TRE_REMOTE
// thisSceneObjectAction = PSOA_3_world
ENDIF
fDetachAnimPhase = 0.3964
RETURN TRUE
ENDIF
BREAK
// CASE PR_SCENE_F0_WATCHINGTV
CASE PR_SCENE_F1_WATCHINGTV
ePropModel = PROP_CS_REMOTE_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.2706 //0.4206 //0.65
thisSceneObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_F0_CLEANCAR
CASE PR_SCENE_F1_CLEANCAR
ePropModel = Prop_Scourer_01
propOffset = <<0,0,0>>
propRotation = <<0,0,0>>
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
// CASE PR_SCENE_F1_CLEANINGAPT
// ePropModel = Prop_Wine_Glass
//
// eAttachBonetag = BONETAG_PH_R_HAND
// fDetachAnimPhase = 0.70
// thisSceneObjectAction = PSOA_0_detach
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_F1_SNACKING
ePropModel = Prop_Crisp
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.349
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_M7_ROUNDTABLE
ePropModel = Prop_Laptop_Jimmy
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_2_synched
RETURN TRUE
BREAK
CASE PR_SCENE_F1_ONLAPTOP
ePropModel = P_Laptop_02_S //Prop_Laptop_02_CLOSED
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.7558
thisSceneObjectAction = PSOA_4_synchSwap
RETURN TRUE
BREAK
CASE PR_SCENE_F1_ONCELL
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_Fa_STRIPCLUB_ARM3,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
fDetachAnimPhase = 0.85
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_F_S_AGENCY_2A_a
CASE PR_SCENE_F_S_AGENCY_2A_b
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_Fa_STRIPCLUB_ARM3,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
fDetachAnimPhase = 0.85
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M2_LUNCH_a
ePropModel = PROP_CHATEAU_TABLE_01
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
propOffset = <<-0.0002, 0.0002, 0.3640>>
thisSceneObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_M6_RONBORING //Michaels chair
ePropModel = PROP_CHAIR_06
propOffset = <<1975.425,3822.014,32.430>> - <<1978.0699, 3819.5640, 32.4290>>
propRotation = <<0.0000, 0.0000, 0.0000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.65
thisSceneObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_M7_RESTAURANT //players chair
ePropModel = PROP_CHATEAU_CHAIR_01
propOffset = <<-116.247,363.356,112.393>> - <<-115.9200, 363.5000, 112.8857>>
propRotation = <<0.0000, 0.0000, 0.0000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.90
thisSceneObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_F1_IRONING
ePropModel = PROP_IRON_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_F_KUSH_DOC_a
ePropModel = P_WEED_BOTTLE_S
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.25+0.1
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_F_MD_KUSH_DOC
ePropModel = P_WEED_BOTTLE_S
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.782 //0.738 //0.766
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_F_KUSH_DOC_b
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_F_KUSH_DOC_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
thisSceneObjectAction = PSOA_1_delete
fDetachAnimPhase = 0.65
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_F_KUSH_DOC_c
IF GET_OBJECTS_FOR_SCENE(PR_SCENE_F_KUSH_DOC_a,
ePropModel, propOffset, propRotation, eAttachBonetag,
fDetachAnimPhase, thisSceneObjectAction)
thisSceneObjectAction = PSOA_1_delete
fDetachAnimPhase = 0.65
RETURN TRUE
ENDIF
BREAK
CASE PR_SCENE_M_PIER_a
ePropModel = PROP_CIGAR_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.85
thisSceneObjectAction = PSOA_2_synched
RETURN TRUE
BREAK
CASE PR_SCENE_T_GARBAGE_FOOD
ePropModel = PROP_TACO_01
eAttachBonetag = BONETAG_PH_L_HAND
fDetachAnimPhase = 0.8308
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_T_THROW_FOOD
ePropModel = PROP_TACO_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.6
thisSceneObjectAction = PSOA_2_synched
RETURN TRUE
BREAK
CASE PR_SCENE_F_THROW_CUP
ePropModel = P_AMB_COFFEECUP_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.7
thisSceneObjectAction = PSOA_2_synched
RETURN TRUE
BREAK
CASE PR_SCENE_F_HIT_CUP_HAND
ePropModel = P_AMB_COFFEECUP_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.74
thisSceneObjectAction = PSOA_2_synched
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_BAR
ePropModel = PROP_CS_BEER_BOT_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_2_synched
RETURN TRUE
BREAK
CASE PR_SCENE_T_STRIPCLUB_out
ePropModel = P_PANTIES_S
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_1_delete
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
ePropModel = P_NOTEPAD_01_S
eAttachBonetag = BONETAG_PH_L_HAND
fDetachAnimPhase = 0.8989
thisSceneObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_BEAR
ePropModel = PROP_MR_RASPBERRY_01
propOffset = <<0.1774, 1.4431, 1.2766>>
propRotation= <<0,-85,0>>
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.7
thisSceneObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_T_GUITARBEATDOWN
ePropModel = PROP_ACC_GUITAR_01
propOffset = <<0.1,0,0>>
propRotation= <<0,-85,0>>
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.554
thisSceneObjectAction = PSOA_9_synchAndPtfxSwap
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
ePropModel = PROP_CS_BEER_BOT_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.527
thisSceneObjectAction = PSOA_8_ptfxSwap
RETURN TRUE
BREAK
CASE PR_SCENE_T_NAKED_ISLAND
ePropModel = PROP_CS_BEER_BOT_01
eAttachBonetag = BONETAG_PH_L_HAND
fDetachAnimPhase = 0.4548
thisSceneObjectAction = PSOA_8_ptfxSwap
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_DOLL
ePropModel = P_DEFILIED_RAGDOLL_01_S
propOffset = <<0,0,0>>
propRotation = <<0,0,0>>
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDPINEAPPLE
ePropModel = PROP_PINEAPPLE
propOffset = <<0,0,0>>
propRotation = <<0,0,0>>
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.114 //0.132 //0.1366
thisSceneObjectAction = PSOA_8_ptfxSwap
RETURN TRUE
BREAK
CASE PR_SCENE_T6_FLUSHESFOOT
ePropModel = P_HAND_TOILET_S
propOffset = <<1971.6298, 3819.5647, 32.9692>> - <<1972.2371, 3817.8601, 33.4287>>
propRotation= <<0,0,GET_RANDOM_FLOAT_IN_RANGE(-180.0, 180.0)>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
thisSceneObjectAction = PSOA_4_synchSwap
RETURN TRUE
BREAK
// CASE PR_SCENE_T_CR_DUMPSTER
// ePropModel = PROP_SKIP_01A
//
// propOffset = <<-0.2000, 0.0000, -1.1900>>
// propRotation = <<0.0000, 0.0000, 90.0000>>
//
// eAttachBonetag = BONETAG_NULL
// fDetachAnimPhase = 0.99
// thisSceneObjectAction = PSOA_0_detach
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_SMOKEMETH
CASE PR_SCENE_Ta_RC_MRSP2
ePropModel = Prop_CS_CRACKPIPE
eAttachBonetag = BONETAG_PH_R_HAND
propOffset = <<0,0,0>>
propRotation = <<0,0,0>>
fDetachAnimPhase = 0.65
thisSceneObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
// CASE PR_SCENE_T6_BLOWSHITUP
// ePropModel = GET_WEAPONTYPE_MODEL(WEAPONTYPE_GRENADE)
// eAttachBonetag = BONETAG_NULL
//
// propOffset = <<0,0,0>>
// propRotation = <<0,0,0>>
//
// fDetachAnimPhase = 0.60
// thisSceneObjectAction = PSOA_5_explode
//
// RETURN TRUE
// BREAK
ENDSWITCH
// #IF IS_DEBUG_BUILD
// TEXT_LABEL_63 sInvalid
// sInvalid = "no object for eScene: "
// sInvalid += Get_String_From_Ped_Request_Scene_Enum(eScene)
//
// CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> ", sInvalid)
// #ENDIF
ePropModel = DUMMY_MODEL_FOR_SCRIPT
propOffset = <<0,0,0>>
propRotation= <<0,0,0>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = -1.0
thisSceneObjectAction = PSOA_NULL
RETURN FALSE
ENDFUNC
FUNC BOOL GET_EXTRA_OBJECTS_FOR_SCENE(PED_REQUEST_SCENE_ENUM eScene,
MODEL_NAMES &eExtraObjectModel, VECTOR &extraPropOffset, VECTOR &extraPropRotation, PED_BONETAG &eAttachBonetag,
FLOAT &fDetachAnimPhase, enumPlayerSceneObjectAction &thisSceneExtraObjectAction, BOOL &bAttachedToBuddy)
extraPropOffset = <<0,0,0>>
extraPropRotation= <<0,0,0>>
bAttachedToBuddy = FALSE
SWITCH eScene
CASE PR_SCENE_F1_SNACKING
eExtraObjectModel = Prop_CS_Crisps_01
eAttachBonetag = BONETAG_PH_L_HAND
fDetachAnimPhase = 0.574
thisSceneExtraObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_F0_CLEANCAR
CASE PR_SCENE_F1_CLEANCAR
eExtraObjectModel = PROP_BUCKET_01A
IF (eScene = PR_SCENE_F0_CLEANCAR)
ExtraPropOffset = <<0.6277, -2.0464, -1.0000>>
extraPropRotation = <<0,0,0>>
ELIF (eScene = PR_SCENE_F1_CLEANCAR)
ExtraPropOffset = <<-0.3577, -0.8936, -0.9900>>
extraPropRotation = <<6,0,0>>
ENDIF
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
thisSceneExtraObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
CASE PR_SCENE_M7_FAKEYOGA
eExtraObjectModel = PROP_YOGA_MAT_03
eAttachBonetag = BONETAG_NULL
ExtraPropOffset = <<-0.6700, -0.1300, 0.0050>>
ExtraPropRotation = <<0.0000, 0.0000, 5.8800>>
fDetachAnimPhase = 0.99
thisSceneExtraObjectAction = PSOA_1_delete
bAttachedToBuddy = TRUE
RETURN TRUE
BREAK
CASE PR_SCENE_M7_WIFETENNIS
eExtraObjectModel = PROP_TENNIS_RACK_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.99
thisSceneExtraObjectAction = PSOA_0_detach
bAttachedToBuddy = TRUE
RETURN TRUE
BREAK
CASE PR_SCENE_M7_KIDS_GAMING
eExtraObjectModel = PROP_CONTROLLER_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = -1
thisSceneExtraObjectAction = PSOA_NULL
bAttachedToBuddy = TRUE
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_BLOCK_CAMERA
eExtraObjectModel = PROP_ING_CAMERA_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = -1
thisSceneExtraObjectAction = PSOA_1_delete
bAttachedToBuddy = TRUE
RETURN TRUE
BREAK
// CASE PR_SCENE_M7_ROUNDTABLE
// eExtraObjectModel = V_ILEV_M_DINECHAIR
// extraPropOffset = <<0.1044, 0.7528, 0.0077>>
//
// eAttachBonetag = BONETAG_NULL
// fDetachAnimPhase = -1
// thisSceneExtraObjectAction = PSOA_4_synchSwap
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_F1_ONLAPTOP
eExtraObjectModel = V_ILev_FH_DineEamesA //V_Res_FH_DineEamesA
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.65
thisSceneExtraObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_M6_RONBORING //Rons chair
eExtraObjectModel = PROP_CHAIR_06
extraPropOffset = <<1977.433,3819.045,32.453>> - <<1978.0699, 3819.5640, 32.4290>>
extraPropRotation = <<0.0000, 0.0000, 0.0000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 1.0
thisSceneExtraObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_M7_RESTAURANT /*wifes chair
eExtraObjectModel = PROP_CHATEAU_CHAIR_01
// extraPropOffset = <<-115.134,365.344,112.395>> - <<-115.9200, 363.5000, 112.8857>>
extraPropOffset = <<0.8706, 2.0176, -0.4948>>
extraPropRotation = <<0.0000, 0.0000, 0.0000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
thisSceneExtraObjectAction = PSOA_3_world
RETURN TRUE*/ //table
eExtraObjectModel = PROP_CHATEAU_TABLE_01
// extraPropOffset = <<-115.462,364.338,112.290>> - <<-115.9200, 363.5000, 112.8857>>
extraPropOffset = <<0.2733, 0.9596, -0.6005>>
extraPropRotation = <<0.0000, 0.0000, 0.0000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
thisSceneExtraObjectAction = PSOA_3_world
RETURN TRUE
BREAK
CASE PR_SCENE_F1_IRONING
eExtraObjectModel = Prop_CS_IRONING_BOARD
extraPropOffset = <<2.4300, -2.7600, 0.0250 - 0.0050>>
extraPropRotation = <<0.0000, 0.0000, 0.0000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.99
thisSceneExtraObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
// CASE PR_SCENE_F1_CLEANINGAPT
// eExtraObjectModel = V_RES_FH_EASYCHAIR
//
// extraPropOffset = <<2.5800, -2.7000, 0.0000>>
// extraPropRotation = <<0.0000, 0.0000, 0.0000>>
//
// eAttachBonetag = BONETAG_NULL
// fDetachAnimPhase = 0.99
// thisSceneExtraObjectAction = PSOA_3_world
//
// RETURN TRUE
// BREAK
CASE PR_SCENE_T6_FLUSHESFOOT
eExtraObjectModel = V_RES_TT_FLUSHER
extraPropOffset = <<0,0,0>>
extraPropRotation = <<0,0,0>>
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.5 //0.11 //0.5
thisSceneExtraObjectAction = PSOA_3_world
RETURN TRUE
BREAK
// CASE PR_SCENE_T_CR_DUMPSTER
// eExtraObjectModel = Prop_DUMPSTER_01A
//
// eAttachBonetag = BONETAG_NULL
// fDetachAnimPhase = -1.0
// thisSceneExtraObjectAction = PSOA_3_world
//
//
// RETURN TRUE
// BREAK
// CASE PR_SCENE_T_SMOKEMETH
// ePropModel = P_CS_LIGHTER_01
// eAttachBonetag = BONETAG_PH_L_HAND
//
// propOffset = <<0,0,0>>
// propRotation = <<0,0,0>>
//
// fDetachAnimPhase = 0.99
// thisSceneObjectAction = PSOA_0_detach
//
//
// RETURN TRUE
// BREAK
// CASE PR_SCENE_T6_BLOWSHITUP
// eExtraObjectModel = PROP_WHISKEY_BOTTLE
// eAttachBonetag = BONETAG_PH_L_HAND
//
// extraPropOffset = <<0,0,0>>
// extraPropRotation = <<0,0,0>>
//
// fDetachAnimPhase = 0.99
// thisSceneExtraObjectAction = PSOA_0_detach
//
// 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
eExtraObjectModel = PROP_PENCIL_01
eAttachBonetag = BONETAG_PH_R_HAND
fDetachAnimPhase = 0.8989
thisSceneExtraObjectAction = PSOA_1_delete
RETURN TRUE
BREAK
BREAK
CASE PR_SCENE_T_SC_BAR
eExtraObjectModel = PROP_STOOL_01
extraPropOffset = <<0.8100, -0.3600, -1.0300>>
extraPropRotation = <<0.0000, 0.0000, 0.0000>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = 0.65
thisSceneExtraObjectAction = PSOA_0_detach
RETURN TRUE
BREAK
ENDSWITCH
// #IF IS_DEBUG_BUILD
// TEXT_LABEL_63 sInvalid
// sInvalid = "no extra object for eScene: "
// sInvalid += Get_String_From_Ped_Request_Scene_Enum(eScene)
//
// CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> ", sInvalid)
// #ENDIF
eExtraObjectModel = DUMMY_MODEL_FOR_SCRIPT
extraPropOffset = <<0,0,0>>
extraPropRotation= <<0,0,0>>
eAttachBonetag = BONETAG_NULL
fDetachAnimPhase = -1.0
thisSceneExtraObjectAction = PSOA_NULL
bAttachedToBuddy = FALSE
RETURN FALSE
ENDFUNC
FUNC BOOL GET_SYNCHRONIZED_OBJ_FOR_TIMETABLE_LOOP_SCENE(PED_REQUEST_SCENE_ENUM eScene,
TEXT_LABEL_63 &tLoopSyncObjAnim,
TEXT_LABEL_63 &tLoopSyncExtraObjAnim)
tLoopSyncExtraObjAnim = ""
SWITCH eScene
CASE PR_SCENE_M7_ROUNDTABLE
tLoopSyncObjAnim = "AROUND_THE_TABLE_SELFISH_BASE_Lap_Top"
// tLoopSyncExtraObjAnim = "AROUND_THE_TABLE_SELFISH_BASE_Chair"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_ONLAPTOP
tLoopSyncObjAnim = "001927_01_FRAS_V2_4_ON_LAPTOP_IDLE_LAPTOP"
tLoopSyncExtraObjAnim = "001927_01_FRAS_V2_4_ON_LAPTOP_IDLE_CHAIR"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_LUNCH_a
tLoopSyncObjAnim = "loop_table"
tLoopSyncExtraObjAnim = ""
RETURN TRUE
BREAK
CASE PR_SCENE_M6_RONBORING
tLoopSyncObjAnim = "BASE_CHAIR_01"
tLoopSyncExtraObjAnim = "BASE_CHAIR_02"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_RESTAURANT
tLoopSyncObjAnim = ""
tLoopSyncExtraObjAnim = ""
RETURN FALSE
BREAK
CASE PR_SCENE_M7_DROPPINGOFFJMY
tLoopSyncObjAnim = "001839_02_MICS3_20_DROPPING_OFF_JMY_IDLE_$"
RETURN TRUE
BREAK
// CASE PR_SCENE_M7_TRACEYEXITSCAR
// CASE PR_SCENE_M_HOOKERCAR
// tLoopSyncObjAnim = "001839_02_MICS3_2""0_DROPPING_OFF_JMY_IDLE_$"
// RETURN TRUE
// BREAK
CASE PR_SCENE_M_PIER_a
tLoopSyncObjAnim = "pier_lean_smoke_idle_CIG"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_GARBAGE
tLoopSyncObjAnim = "Garbage_Idle_BAG"
RETURN TRUE
BREAK
CASE PR_SCENE_F_THROW_CUP
tLoopSyncObjAnim = "THROW_CUP_LOOP_CUP"
RETURN TRUE
BREAK
// CASE PR_SCENE_T_GARBAGE_FOOD
// tLoopSyncObjAnim = "LOOP_Taco"
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_THROW_FOOD
tLoopSyncObjAnim = "LOOP_Taco"
RETURN TRUE
BREAK
CASE PR_SCENE_F_HIT_CUP_HAND
tLoopSyncObjAnim = "HIT_CUP_HAND_LOOP_CUP"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_BAR
tLoopSyncObjAnim = "LOOP_Beer"
RETURN TRUE
BREAK
CASE PR_SCENE_T_GUITARBEATDOWN
tLoopSyncObjAnim = "001370_02_TRVS_8_GUITAR_BEATDOWN_IDLE_GUITAR"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_BEAR
tLoopSyncObjAnim = "BEAR_IN_FLOYDS_FACE_LOOP_rasp"
RETURN TRUE
BREAK
// CASE PR_SCENE_T_FLOYD_DOLL
// tLoopSyncObjAnim = "BEAR_FLOYDS_FACE_SMELL_LOOP_doll"
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_FLOYDPINEAPPLE
tLoopSyncObjAnim = "Pineapple_LOOP_PINEAPPLE"
RETURN TRUE
BREAK
CASE PR_SCENE_T6_FLUSHESFOOT
tLoopSyncObjAnim = "002057_03_TRVS_27_FLUSHES_FOOT_IDLE_Foot"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_SAVEHOUSE1_b
tLoopSyncObjAnim = "IDLE_CHAIR"
RETURN TRUE
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
FUNC BOOL GET_SYNCHRONIZED_OBJ_FOR_TIMETABLE_EXIT_SCENE(PED_REQUEST_SCENE_ENUM eScene,
TEXT_LABEL_63 &tExitSyncObjAnim,
TEXT_LABEL_63 &tExitSyncExtraObjAnim, INT &iFlags)
iFlags = 0
tExitSyncExtraObjAnim = ""
SWITCH eScene
CASE PR_SCENE_F_MD_KUSH_DOC
tExitSyncObjAnim = "002110_04_MAGD_3_WEED_EXCHANGE_WEEDBOTTLE"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_ROUNDTABLE
tExitSyncObjAnim = "AROUND_THE_TABLE_SELFISH_Lap_Top"
// tExitSyncExtraObjAnim = "AROUND_THE_TABLE_SELFISH_Chair"
RETURN TRUE
BREAK
CASE PR_SCENE_F1_ONLAPTOP
tExitSyncObjAnim = "001927_01_FRAS_V2_4_ON_LAPTOP_EXIT_LAPTOP"
tExitSyncExtraObjAnim = "001927_01_FRAS_V2_4_ON_LAPTOP_EXIT_CHAIR"
RETURN TRUE
BREAK
CASE PR_SCENE_M2_LUNCH_a
tExitSyncObjAnim = "exit_table"
tExitSyncExtraObjAnim = ""
RETURN TRUE
BREAK
CASE PR_SCENE_M6_RONBORING
tExitSyncObjAnim = "RONEX_IG5_P2_CHAIR_01"
tExitSyncExtraObjAnim = "RONEX_IG5_P2_CHAIR_02"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_RESTAURANT
tExitSyncObjAnim = "001510_02_GC_MICS3_IG_1_EXIT_CHAIR"
tExitSyncExtraObjAnim = "" //"001510_02_GC_MICS3_IG_1_EXIT_CHAIR_2"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_DROPPINGOFFJMY
tExitSyncObjAnim = "001839_02_MICS3_20_DROPPING_OFF_JMY_EXIT_$"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_TRACEYEXITSCAR
// CASE PR_SCENE_M_HOOKERCAR
tExitSyncObjAnim = "001840_01_MICS3_IG_21_TRACY_EXITS_CAR_CASH"
RETURN TRUE
BREAK
CASE PR_SCENE_T_GUITARBEATDOWN
tExitSyncObjAnim = "001370_02_TRVS_8_GUITAR_BEATDOWN_EXIT_GUITAR"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_BEAR
tExitSyncObjAnim = "BEAR_IN_FLOYDS_FACE_EXIT_rasp"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYD_DOLL
tExitSyncObjAnim = "BEAR_FLOYDS_FACE_SMELL_EXIT_doll"
RETURN TRUE
BREAK
CASE PR_SCENE_T_FLOYDPINEAPPLE
tExitSyncObjAnim = "Pineapple_EXIT_PINEAPPLE"
RETURN TRUE
BREAK
CASE PR_SCENE_T6_FLUSHESFOOT
tExitSyncObjAnim = "002057_03_TRVS_27_FLUSHES_FOOT_EXIT_Foot"
RETURN TRUE
BREAK
CASE PR_SCENE_M_PIER_a
tExitSyncObjAnim = "pier_lean_smoke_outro_CIG"
RETURN TRUE
BREAK
// CASE PR_SCENE_T_GARBAGE_FOOD
// tExitSyncObjAnim = "EXIT_Taco"
// RETURN TRUE
// BREAK
CASE PR_SCENE_T_THROW_FOOD
tExitSyncObjAnim = "EXIT_Taco"
RETURN TRUE
BREAK
CASE PR_SCENE_F0_GARBAGE
tExitSyncObjAnim = "Garbage_Toss_BAG"
iFlags = ENUM_TO_INT(SYNCED_SCENE_USE_PHYSICS)
RETURN TRUE
BREAK
CASE PR_SCENE_F_THROW_CUP
tExitSyncObjAnim = "THROW_CUP_EXIT_CUP"
RETURN TRUE
BREAK
CASE PR_SCENE_F_HIT_CUP_HAND
tExitSyncObjAnim = "HIT_CUP_HAND_EXIT_CUP"
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_BAR
tExitSyncObjAnim = "EXIT_Beer"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_READSCRIPT
tExitSyncObjAnim = "001404_01_MICS3_16_READS_SCRIPT_EXIT_PROP"
RETURN TRUE
BREAK
// CASE PR_SCENE_T6_BLOWSHITUP
// tExitSyncObjAnim = "GRENADE_THROWING_grenade"
// RETURN TRUE
// BREAK
CASE PR_SCENE_M2_SAVEHOUSE1_b
tExitSyncObjAnim = "EXIT_FORWARD_CHAIR"
RETURN TRUE
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
FUNC BOOL SET_SCENE_OBJECT_AS_NO_LONGER_NEEDED(OBJECT_INDEX &ObjectIndex, enumPlayerSceneObjectAction thisSceneObjectAction)
PED_REQUEST_SCENE_ENUM eScene = Get_Player_Timetable_Scene_In_Progress()
SWITCH thisSceneObjectAction
CASE PSOA_0_detach
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_0_detach ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
IF IS_ENTITY_ATTACHED(ObjectIndex)
DETACH_ENTITY(ObjectIndex)
ENDIF
IF (GET_ENTITY_MODEL(ObjectIndex) <> Prop_CS_IRONING_BOARD)
AND (GET_ENTITY_MODEL(ObjectIndex) <> PROP_IRON_01)
FREEZE_ENTITY_POSITION(ObjectIndex, FALSE)
SET_ENTITY_DYNAMIC(ObjectIndex, TRUE)
// FREEZE_ENTITY_POSITION(ObjectIndex, FALSE)
// APPLY_FORCE_TO_ENTITY(ObjectIndex, APPLY_TYPE_FORCE, <<0,0,-0.001>>, <<0,0,0>>, 0, TRUE, TRUE, TRUE)
ENDIF
IF (GET_ENTITY_MODEL(ObjectIndex) = PROP_IRON_01)
VECTOR vIronPos, vIronRot
vIronPos = GET_ENTITY_COORDS(ObjectIndex)
vIronRot = GET_ENTITY_ROTATION(ObjectIndex)
SET_ENTITY_COORDS(ObjectIndex, vIronPos+<<0,0,0.1>>)
SET_ENTITY_ROTATION(ObjectIndex, <<vIronRot.x,vIronRot.y,vIronRot.z>>)
ENDIF
IF (GET_ENTITY_MODEL(ObjectIndex) <> P_DEFILIED_RAGDOLL_01_S)
SET_OBJECT_AS_NO_LONGER_NEEDED(ObjectIndex)
ENDIF
RETURN TRUE
BREAK
CASE PSOA_1_delete
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_1_delete ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
DELETE_OBJECT(ObjectIndex)
RETURN TRUE
BREAK
CASE PSOA_2_synched
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_2_synched ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
STOP_SYNCHRONIZED_ENTITY_ANIM(ObjectIndex, NORMAL_BLEND_OUT, TRUE)
// do nothing...
IF IS_ENTITY_ATTACHED(ObjectIndex)
DETACH_ENTITY(ObjectIndex)
ENDIF
FREEZE_ENTITY_POSITION(ObjectIndex, FALSE)
SET_ENTITY_DYNAMIC(ObjectIndex, TRUE)
SET_OBJECT_AS_NO_LONGER_NEEDED(ObjectIndex)
ObjectIndex = NULL
RETURN TRUE
BREAK
CASE PSOA_3_world
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_3_world ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
// do nothing...
IF IS_ENTITY_ATTACHED(ObjectIndex)
DETACH_ENTITY(ObjectIndex)
ENDIF
IF (GET_ENTITY_MODEL(ObjectIndex) <> PROP_CHATEAU_TABLE_01)
AND (GET_ENTITY_MODEL(ObjectIndex) <> V_RES_TT_FLUSHER)
AND (GET_ENTITY_MODEL(ObjectIndex) <> V_ILev_fh_lampA_on)
AND (GET_ENTITY_MODEL(ObjectIndex) <> PROP_CS_REMOTE_01)
STOP_SYNCHRONIZED_ENTITY_ANIM(ObjectIndex, NORMAL_BLEND_OUT, TRUE)
ENDIF
IF (GET_ENTITY_MODEL(ObjectIndex) <> V_ILev_FH_DineEamesA)
AND (GET_ENTITY_MODEL(ObjectIndex) <> V_RES_TT_FLUSHER)
AND (GET_ENTITY_MODEL(ObjectIndex) <> V_ILev_fh_lampA_on) //V_ILev_fh_lampA_on)
FREEZE_ENTITY_POSITION(ObjectIndex, FALSE)
ENDIF
SET_ENTITY_DYNAMIC(ObjectIndex, TRUE)
SET_OBJECT_AS_NO_LONGER_NEEDED(ObjectIndex)
RETURN TRUE
BREAK
CASE PSOA_4_synchSwap
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_4_synchSwap ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
VECTOR v4ObjectCoord, v4ObjectRot
v4ObjectCoord = GET_ENTITY_COORDS(ObjectIndex)
v4ObjectRot = GET_ENTITY_ROTATION(ObjectIndex)
MODEL_NAMES e4ObjectSwapModel
e4ObjectSwapModel = DUMMY_MODEL_FOR_SCRIPT
SWITCH GET_ENTITY_MODEL(ObjectIndex)
CASE P_Laptop_02_S
e4ObjectSwapModel = PROP_LAPTOP_02_CLOSED
BREAK
CASE V_ILEV_M_DINECHAIR
e4ObjectSwapModel = P_DINECHAIR_01_S
BREAK
CASE PROP_ACC_GUITAR_01
e4ObjectSwapModel = Prop_ACC_Guitar_01_D1
BREAK
CASE P_DEFILIED_RAGDOLL_01_S
e4ObjectSwapModel = PROP_DEFILIED_RAGDOLL_01
BREAK
CASE P_HAND_TOILET_S
e4ObjectSwapModel = Prop_ToiletFoot_Static
BREAK
CASE PROP_LAPTOP_02_CLOSED
CASE P_DINECHAIR_01_S
CASE Prop_ACC_Guitar_01_D1
CASE PROP_DEFILIED_RAGDOLL_01
STOP_SYNCHRONIZED_ENTITY_ANIM(ObjectIndex, NORMAL_BLEND_OUT, TRUE)
RETURN TRUE
BREAK
CASE Prop_ToiletFoot_Static
VECTOR vProp_ToiletFoot_Static_Coord, vProp_ToiletFoot_Static_Rot
vProp_ToiletFoot_Static_Coord = <<1971.6689, 3819.4490, 32.7660>>
vProp_ToiletFoot_Static_Rot = <<0.0000, 0.0000, 53.6000>>
SET_ENTITY_COORDS(ObjectIndex, vProp_ToiletFoot_Static_Coord)
SET_ENTITY_ROTATION(ObjectIndex, vProp_ToiletFoot_Static_Rot)
// START_WIDGET_Group("Prop_ToiletFoot_Static")
// ADD_WIDGET_VECTOR_SLIDER("vProp_ToiletFoot_Static_Coord", vProp_ToiletFoot_Static_Coord, -4000, 4000, 0.001)
// ADD_WIDGET_VECTOR_SLIDER("vProp_ToiletFoot_Static_Rot", vProp_ToiletFoot_Static_Rot, -180, 180, 0.1)
// STOP_WIDGET_Group()
// WHILE DOES_ENTITY_EXIST(ObjectIndex)
// SET_ENTITY_COORDS(ObjectIndex, vProp_ToiletFoot_Static_Coord)
// SET_ENTITY_ROTATION(ObjectIndex, vProp_ToiletFoot_Static_Rot)
//
// IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_C)
//
// SAVE_STRING_TO_DEBUG_FILE("vProp_ToiletFoot_Static_Coord = ")
// SAVE_VECTOR_TO_DEBUG_FILE(vProp_ToiletFoot_Static_Coord)
// SAVE_NEWLINE_TO_DEBUG_FILE()
// SAVE_STRING_TO_DEBUG_FILE("vProp_ToiletFoot_Static_Rot = ")
// SAVE_VECTOR_TO_DEBUG_FILE(vProp_ToiletFoot_Static_Rot)
// SAVE_NEWLINE_TO_DEBUG_FILE()
// SAVE_NEWLINE_TO_DEBUG_FILE()
//
// FREEZE_ENTITY_POSITION(ObjectIndex, TRUE)
// RETURN TRUE
// ENDIF
//
// WAIT(0)
// ENDWHILE
FREEZE_ENTITY_POSITION(ObjectIndex, TRUE)
RETURN TRUE
BREAK
DEFAULT
e4ObjectSwapModel = DUMMY_MODEL_FOR_SCRIPT
SCRIPT_ASSERT("invalid swap model (4)")
RETURN FALSE
BREAK
ENDSWITCH
REQUEST_MODEL(e4ObjectSwapModel)
WHILE NOT HAS_MODEL_LOADED(e4ObjectSwapModel)
// Hide the HUD
HIDE_HUD_AND_RADAR_THIS_FRAME()
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
CLEAR_REMINDER_MESSAGE()
IF (g_Cellphone.PhoneDS <> PDS_DISABLED)
DISABLE_CELLPHONE(TRUE)
ENDIF
WAIT(0)
ENDWHILE
// Hide the HUD
HIDE_HUD_AND_RADAR_THIS_FRAME()
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
CLEAR_REMINDER_MESSAGE()
IF (g_Cellphone.PhoneDS <> PDS_DISABLED)
DISABLE_CELLPHONE(TRUE)
ENDIF
DELETE_OBJECT(ObjectIndex)
ObjectIndex = CREATE_OBJECT(e4ObjectSwapModel, v4ObjectCoord)
SET_ENTITY_ROTATION(ObjectIndex, v4ObjectRot)
SET_MODEL_AS_NO_LONGER_NEEDED(e4ObjectSwapModel)
// SET_OBJECT_AS_NO_LONGER_NEEDED(ObjectIndex)
RETURN TRUE
BREAK
CASE PSOA_5_explode
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_5_explode ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
ADD_EXPLOSION(GET_ENTITY_COORDS(ObjectIndex),EXP_TAG_GRENADE)
DELETE_OBJECT(ObjectIndex)
RETURN TRUE
BREAK
CASE PSOA_6_keepHide
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_6_keepHide ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
// IF IS_ENTITY_ATTACHED(ObjectIndex)
// DETACH_ENTITY(ObjectIndex)
// ENDIF
// FREEZE_ENTITY_POSITION(ObjectIndex, FALSE)
// APPLY_FORCE_TO_ENTITY(ObjectIndex, APPLY_TYPE_FORCE, <<0,0,-0.001>>, <<0,0,0>>, 0, TRUE, TRUE, TRUE)
// SET_OBJECT_AS_NO_LONGER_NEEDED(ObjectIndex)
RETURN TRUE
BREAK
CASE PSOA_7_weaponSwap
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_7_weaponSwap ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
IF (GET_ENTITY_MODEL(ObjectIndex) = GET_WEAPONTYPE_MODEL(WEAPONTYPE_PISTOL))
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
IF NOT HAS_PED_GOT_WEAPON(PLAYER_PED_ID(), WEAPONTYPE_PISTOL)
GIVE_WEAPON_TO_PED(PLAYER_PED_ID(), WEAPONTYPE_PISTOL, 30)
ENDIF
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(), WEAPONTYPE_PISTOL, TRUE)
ENDIF
DELETE_OBJECT(ObjectIndex)
RETURN TRUE
ELSE
SCRIPT_ASSERT("missing prop details???")
DELETE_OBJECT(ObjectIndex)
RETURN FALSE
ENDIF
BREAK
CASE PSOA_8_ptfxSwap
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_8_ptfxSwap ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
VECTOR v8ObjectCoord, v8ObjectRot
v8ObjectCoord = GET_ENTITY_COORDS(ObjectIndex)
v8ObjectRot = GET_ENTITY_ROTATION(ObjectIndex)
STRING fx8Name
fx8Name = ""
SWITCH GET_ENTITY_MODEL(ObjectIndex)
CASE PROP_CS_BEER_BOT_01
fx8Name = "scr_pts_glass_bottle"
BREAK
CASE PROP_PINEAPPLE
fx8Name = "ent_dst_pineapple"
BREAK
CASE PROP_ACC_GUITAR_01
fx8Name = "scr_pts_guitar_break"
BREAK
DEFAULT
fx8Name = ""
SCRIPT_ASSERT("invalid ptfx model (8)")
RETURN FALSE
BREAK
ENDSWITCH
REQUEST_PTFX_ASSET()
WHILE NOT HAS_PTFX_ASSET_LOADED()
CPRINTLN(DEBUG_SWITCH, "HAS_PTFX_ASSET_LOADED()")
// Hide the HUD
HIDE_HUD_AND_RADAR_THIS_FRAME()
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
CLEAR_REMINDER_MESSAGE()
IF (g_Cellphone.PhoneDS <> PDS_DISABLED)
DISABLE_CELLPHONE(TRUE)
ENDIF
WAIT(0)
ENDWHILE
// Hide the HUD
HIDE_HUD_AND_RADAR_THIS_FRAME()
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
CLEAR_REMINDER_MESSAGE()
IF (g_Cellphone.PhoneDS <> PDS_DISABLED)
DISABLE_CELLPHONE(TRUE)
ENDIF
START_PARTICLE_FX_NON_LOOPED_AT_COORD(fx8Name, v8ObjectCoord, v8ObjectRot)
DELETE_OBJECT(ObjectIndex)
RETURN TRUE
BREAK
CASE PSOA_9_synchAndPtfxSwap
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_SWITCH, " * PSOA_9_synchAndPtfxSwap ", SAFE_GET_MODEL_NAME_FOR_DEBUG(GET_ENTITY_MODEL(ObjectIndex)))
#ENDIF
VECTOR v9ObjectCoord, v9ObjectRot
v9ObjectCoord = GET_ENTITY_COORDS(ObjectIndex)
v9ObjectRot = GET_ENTITY_ROTATION(ObjectIndex)
STRING fx9Name
fx9Name = ""
SWITCH GET_ENTITY_MODEL(ObjectIndex)
CASE PROP_CS_BEER_BOT_01
fx9Name = "scr_pts_glass_bottle"
BREAK
CASE PROP_PINEAPPLE
fx9Name = "ent_dst_pineapple"
BREAK
CASE PROP_ACC_GUITAR_01
CASE Prop_ACC_Guitar_01_D1
fx9Name = "scr_pts_guitar_break"
BREAK
DEFAULT
fx9Name = ""
SCRIPT_ASSERT("invalid ptfx model (9)")
RETURN FALSE
BREAK
ENDSWITCH
REQUEST_PTFX_ASSET()
WHILE NOT HAS_PTFX_ASSET_LOADED()
CPRINTLN(DEBUG_SWITCH, "HAS_PTFX_ASSET_LOADED()")
// Hide the HUD
HIDE_HUD_AND_RADAR_THIS_FRAME()
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
CLEAR_REMINDER_MESSAGE()
IF (g_Cellphone.PhoneDS <> PDS_DISABLED)
DISABLE_CELLPHONE(TRUE)
ENDIF
WAIT(0)
ENDWHILE
MODEL_NAMES e9ObjectSwapModel
e9ObjectSwapModel = DUMMY_MODEL_FOR_SCRIPT
SWITCH GET_ENTITY_MODEL(ObjectIndex)
CASE Prop_ACC_Guitar_01_D1
RETURN FALSE
BREAK
CASE P_Laptop_02_S
e9ObjectSwapModel = PROP_LAPTOP_02_CLOSED
BREAK
CASE V_ILEV_M_DINECHAIR
e9ObjectSwapModel = P_DINECHAIR_01_S
BREAK
CASE PROP_ACC_GUITAR_01
e9ObjectSwapModel = Prop_ACC_Guitar_01_D1
BREAK
CASE P_DEFILIED_RAGDOLL_01_S
e9ObjectSwapModel = PROP_DEFILIED_RAGDOLL_01
BREAK
DEFAULT
e9ObjectSwapModel = DUMMY_MODEL_FOR_SCRIPT
SCRIPT_ASSERT("invalid swap model (9)")
RETURN FALSE
BREAK
ENDSWITCH
REQUEST_MODEL(e9ObjectSwapModel)
WHILE NOT HAS_MODEL_LOADED(e9ObjectSwapModel)
// Hide the HUD
HIDE_HUD_AND_RADAR_THIS_FRAME()
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
CLEAR_REMINDER_MESSAGE()
IF (g_Cellphone.PhoneDS <> PDS_DISABLED)
DISABLE_CELLPHONE(TRUE)
ENDIF
WAIT(0)
ENDWHILE
// Hide the HUD
HIDE_HUD_AND_RADAR_THIS_FRAME()
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_FEED)
CLEAR_REMINDER_MESSAGE()
IF (g_Cellphone.PhoneDS <> PDS_DISABLED)
DISABLE_CELLPHONE(TRUE)
ENDIF
START_PARTICLE_FX_NON_LOOPED_AT_COORD(fx9Name, v9ObjectCoord, v9ObjectRot)
DELETE_OBJECT(ObjectIndex)
ObjectIndex = CREATE_OBJECT(e9ObjectSwapModel, v9ObjectCoord)
SET_ENTITY_ROTATION(ObjectIndex, v9ObjectRot)
TEXT_LABEL_63 tPlayerSceneSyncObject, tPlayerSceneSyncExtraObject
INT iFlags
IF GET_SYNCHRONIZED_OBJ_FOR_TIMETABLE_EXIT_SCENE(eScene, tPlayerSceneSyncObject, tPlayerSceneSyncExtraObject, iFlags)
TEXT_LABEL_63 tPlayerSceneSyncAnimDict, tPlayerSceneSyncAnimLoop, tPlayerSceneSyncAnimOut
ANIMATION_FLAGS playerSyncLoopFlag, playerSyncOutFlag
//enumPlayerSceneAnimProgress ePlayerSyncLoopProgress
IF GET_PLAYER_ANIM_FOR_TIMETABLE_SCENE(eScene,
tPlayerSceneSyncAnimDict, tPlayerSceneSyncAnimLoop, tPlayerSceneSyncAnimOut,
playerSyncLoopFlag, playerSyncOutFlag) //, ePlayerSyncLoopProgress)
IF NOT IS_ENTITY_PLAYING_ANIM(ObjectIndex,
tPlayerSceneSyncAnimDict,
tPlayerSceneSyncObject, ANIM_SYNCED_SCENE)
PLAY_SYNCHRONIZED_ENTITY_ANIM(ObjectIndex,
g_iPlayer_Timetable_Exit_SynchSceneID,
tPlayerSceneSyncObject, tPlayerSceneSyncAnimDict,
INSTANT_BLEND_IN, NORMAL_BLEND_OUT, iFlags)
CPRINTLN(DEBUG_SWITCH, "PLAY_SYNCHRONIZED_ENTITY_ANIM")
ELSE
CPRINTLN(DEBUG_SWITCH, "is playing anim")
ENDIF
ELSE
CPRINTLN(DEBUG_SWITCH, "no anim dict")
ENDIF
ELSE
CPRINTLN(DEBUG_SWITCH, "no object anim")
ENDIF
SET_MODEL_AS_NO_LONGER_NEEDED(e9ObjectSwapModel)
// SET_OBJECT_AS_NO_LONGER_NEEDED(ObjectIndex)
RETURN TRUE
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
FUNC BOOL GET_DOORS_FOR_SCENE(PED_REQUEST_SCENE_ENUM eScene,
MODEL_NAMES &eDoorModel_L, MODEL_NAMES &eDoorModel_R,
VECTOR &vDoorOffset_L, VECTOR &vDoorOffset_R,
DOOR_HASH_ENUM &eDoorHash_L, DOOR_HASH_ENUM &eDoorHash_R,
BOOL &bReplaceDoor, FLOAT &fHideDoorRadius)
eDoorHash_L = DUMMY_DOORHASH
eDoorHash_R = DUMMY_DOORHASH
vDoorOffset_L = <<0,0,0>>
vDoorOffset_R= <<0,0,0>>
SWITCH eScene
// CASE PR_SCENE_M4_DOORSTUMBLE
// eDoorModel_L = PROP_HW1_04_DOOR_L1
// eDoorModel_R = PROP_HW1_04_DOOR_R1
//
// bReplaceDoor = TRUE
// fHideDoorRadius = 5.0
// RETURN TRUE
// BREAK
CASE PR_SCENE_M7_EXITBARBER
eDoorModel_L = V_ILEV_HD_DOOR_L vDoorOffset_L = <<-2.3267, -0.7259, 0.2500>>
eDoorModel_R = V_ILEV_HD_DOOR_R vDoorOffset_R = <<-1.5708, -2.0352, 0.2500>>
eDoorHash_L = DOORHASH_HAIR_SALON_L
eDoorHash_R = DOORHASH_HAIR_SALON_R
bReplaceDoor = TRUE
fHideDoorRadius = 5.0
RETURN TRUE
BREAK
CASE PR_SCENE_M7_EXITFANCYSHOP
eDoorModel_L = V_ILEV_CH_GLASSDOOR vDoorOffset_L = <<GET_RANDOM_FLOAT_IN_RANGE(-3,3),GET_RANDOM_FLOAT_IN_RANGE(-3,3),0>>
eDoorModel_R = V_ILEV_CH_GLASSDOOR vDoorOffset_R = <<GET_RANDOM_FLOAT_IN_RANGE(-3,3),GET_RANDOM_FLOAT_IN_RANGE(-3,3),0>>
eDoorHash_L = DUMMY_DOORHASH
eDoorHash_R = DUMMY_DOORHASH
bReplaceDoor = TRUE
fHideDoorRadius = 5.0
RETURN TRUE
BREAK
CASE PR_SCENE_M7_BYESOLOMON_a
CASE PR_SCENE_M7_BYESOLOMON_b
eDoorModel_L = prop_ss1_10_door_l vDoorOffset_L = <<-720.393,256.862,80.290>> - <<-718.8135, 256.7636, 79.8384>>
eDoorModel_R = prop_ss1_10_door_r vDoorOffset_R = <<-718.417,257.789,80.290>> - <<-718.8135, 256.7636, 79.8384>>
eDoorHash_L = DUMMY_DOORHASH
eDoorHash_R = DUMMY_DOORHASH
bReplaceDoor = FALSE
fHideDoorRadius = 2.0
RETURN TRUE
BREAK
CASE PR_SCENE_M7_LOUNGECHAIRS
eDoorModel_L = PROP_PATIO_LOUNGER1 vDoorOffset_L = <<-1353.544,356.114,63.084>> - <<-1353.7910, 355.1845, 64.0800>>
// eDoorModel_R = PROP_PATIO_LOUNGER1 vDoorOffset_R = <<-1352.644,357.697,63.082>> - <<-1353.7910, 355.1845, 64.0800>>
eDoorHash_L = DUMMY_DOORHASH
eDoorHash_R = DUMMY_DOORHASH
bReplaceDoor = FALSE
fHideDoorRadius = 1.0
RETURN TRUE
BREAK
CASE PR_SCENE_M7_ROUNDTABLE
eDoorModel_L = DUMMY_MODEL_FOR_SCRIPT
eDoorModel_R = V_ILEV_M_DINECHAIR vDoorOffset_R = <<-796.655,181.225,71.836>> - <<-796.7593, 180.4725, 71.8266>>
eDoorHash_R = DUMMY_DOORHASH
bReplaceDoor = FALSE
fHideDoorRadius = -1 //grab from the world instead of hide
RETURN TRUE
BREAK
CASE PR_SCENE_F0_TANISHAFIGHT
eDoorModel_L = DUMMY_MODEL_FOR_SCRIPT
eDoorModel_R = v_ilev_fa_frontdoor vDoorOffset_R = <<-14.869,-1441.182,31.193>> - <<-14.8689, -1441.1821, 31.1932>>
eDoorHash_R = DOORHASH_F_HOUSE_SC_F
bReplaceDoor = TRUE
fHideDoorRadius = 5.0
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_LINGERIE
eDoorModel_L = DUMMY_MODEL_FOR_SCRIPT
eDoorModel_R = Prop_HW1_23_Door
eDoorHash_R = DUMMY_DOORHASH
bReplaceDoor = TRUE
fHideDoorRadius = 5.0
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_CHASE
eDoorModel_L = DUMMY_MODEL_FOR_SCRIPT
eDoorModel_R = PROP_STRIP_DOOR_01 vDoorOffset_R = <<127.941,-1298.486,29.420>> - <<127.957,-1298.513,29.420>>
eDoorHash_R = DOORHASH_STRIPCLUB_F
bReplaceDoor = TRUE
fHideDoorRadius = 5.0
RETURN TRUE
BREAK
CASE PR_SCENE_M7_BIKINGJIMMY
eDoorModel_L = V_ILEV_MM_DOORM_L vDoorOffset_L = <<1.0340, 9.0780, 2.2874>>
eDoorModel_R = V_ILEV_MM_DOORM_R vDoorOffset_R = <<1.6432, 7.4908, 2.2874>>
eDoorHash_L = DOORHASH_M_MANSION_F_L
eDoorHash_R = DOORHASH_M_MANSION_F_R
bReplaceDoor = TRUE
fHideDoorRadius = 5.0
RETURN TRUE
BREAK
CASE PR_SCENE_F1_SNACKING
eDoorModel_L = V_ILEV_FH_KITCHENSTOOL vDoorOffset_L = <<0.8976*2, 0.3148*2, -0.9993>>
eDoorModel_R = DUMMY_MODEL_FOR_SCRIPT
eDoorHash_L = DUMMY_DOORHASH
bReplaceDoor = TRUE
fHideDoorRadius = -1 //grab from the world instead of hide
RETURN TRUE
BREAK
CASE PR_SCENE_M2_LUNCH_a
eDoorModel_L = PROP_CHATEAU_CHAIR_01 vDoorOffset_L = <<0.5,0.5,0.5>>
eDoorModel_R = PROP_CHATEAU_CHAIR_01 vDoorOffset_R = vDoorOffset_L*-1.0
eDoorHash_L = DUMMY_DOORHASH
eDoorHash_R = DUMMY_DOORHASH
bReplaceDoor = TRUE
fHideDoorRadius = 0.5
RETURN TRUE
BREAK
ENDSWITCH
// #IF IS_DEBUG_BUILD
// TEXT_LABEL_63 sInvalid
// sInvalid = "no Doors for eScene: "
// sInvalid += Get_String_From_Ped_Request_Scene_Enum(eScene)
//
// CPRINTLN(DEBUG_SWITCH, "<", GET_THIS_SCRIPT_NAME(), "> ", sInvalid)
// #ENDIF
eDoorModel_L = DUMMY_MODEL_FOR_SCRIPT
eDoorModel_R = DUMMY_MODEL_FOR_SCRIPT
vDoorOffset_L = <<0,0,0>>
vDoorOffset_R = <<0,0,0>>
fHideDoorRadius = -1
RETURN FALSE
ENDFUNC
FUNC BOOL GET_SYNCHRONIZED_DOOR_FOR_TIMETABLE_EXIT_SCENE(PED_REQUEST_SCENE_ENUM eScene, TEXT_LABEL_63 &tExitSyncDoorAnimL, TEXT_LABEL_63 &tExitSyncDoorAnimR)
tExitSyncDoorAnimL = ""
tExitSyncDoorAnimR = ""
SWITCH eScene
// CASE PR_SCENE_M4_DOORSTUMBLE
// tExitSyncDoorAnimL = "000610_03_MICS2_4_STUMBLES_THROUGH_DOORS_EXIT_L_DOOR"
// tExitSyncDoorAnimR = "000610_03_MICS2_4_STUMBLES_THROUGH_DOORS_EXIT_R_DOOR"
// RETURN TRUE
// BREAK
CASE PR_SCENE_M7_EXITBARBER
tExitSyncDoorAnimL = "001406_01_MICS3_7_EXITS_BARBER_EXIT_L_DOOR"
tExitSyncDoorAnimR = "001406_01_MICS3_7_EXITS_BARBER_EXIT_R_DOOR"
//SWITCH@/MICHAEL@/EXITS_BARBER/001406_01_MICS3_7_EXITS_BARBER_IDLE_L_DOOR.anim #0/1 <binary>
//SWITCH@/MICHAEL@/EXITS_BARBER/001406_01_MICS3_7_EXITS_BARBER_IDLE_R_DOOR.anim #0/1 <binary>
RETURN TRUE
BREAK
CASE PR_SCENE_M7_EXITFANCYSHOP
tExitSyncDoorAnimL = "001405_01_MICS3_8_EXITS_FANCYSHOP_EXIT_L_DOOR"
tExitSyncDoorAnimR = "001405_01_MICS3_8_EXITS_FANCYSHOP_EXIT_R_DOOR"
RETURN TRUE
BREAK
CASE PR_SCENE_M7_LOUNGECHAIRS
tExitSyncDoorAnimL = "001523_01_MICS3_9_LOUNGE_CHAIRS_EXIT_Lounger_01"
tExitSyncDoorAnimR = "001523_01_MICS3_9_LOUNGE_CHAIRS_EXIT_Lounger_02"
//SWITCH@\MICHAEL@\LOUNGE_CHAIRS\001523_01_MICS3_9_LOUNGE_CHAIRS_IDLE_Lounger_01.anim
//SWITCH@\MICHAEL@\LOUNGE_CHAIRS\001523_01_MICS3_9_LOUNGE_CHAIRS_IDLE_Lounger_02.anim
RETURN TRUE
BREAK
CASE PR_SCENE_M7_ROUNDTABLE
tExitSyncDoorAnimL = ""
tExitSyncDoorAnimR = "AROUND_THE_TABLE_SELFISH_Chair"
//AROUND_THE_TABLE_SELFISH_BASE_Chair
RETURN TRUE
BREAK
CASE PR_SCENE_F0_TANISHAFIGHT
tExitSyncDoorAnimL = ""
tExitSyncDoorAnimR = "Tanisha_Argue_DOOR"
RETURN TRUE
BREAK
CASE PR_SCENE_T_CR_LINGERIE
tExitSyncDoorAnimL = ""
tExitSyncDoorAnimR = "trev_exit_lingerie_shop_outro_DOOR"
//SWITCH@TREVOR@LINGERIE_SHOP/trev_exit_lingerie_shop_idle_DOOR.anim
RETURN TRUE
BREAK
CASE PR_SCENE_T_SC_CHASE
tExitSyncDoorAnimL = ""
tExitSyncDoorAnimR = "EXIT_DOOR"
//SWITCH@TREVOR@CHASE_STRIPPERS/LOOP_DOOR.anim
RETURN TRUE
BREAK
CASE PR_SCENE_M7_BIKINGJIMMY
tExitSyncDoorAnimL = "EXIT_LEFT_DOOR"
tExitSyncDoorAnimR = "EXIT_RIGHT_DOOR"
//SWITCH@/MICHAEL@/BIKING_WITH_JIMMY/LOOP_LEFT_DOOR.anim
//SWITCH@/MICHAEL@/BIKING_WITH_JIMMY/LOOP_RIGHT_DOOR.anim
RETURN TRUE
BREAK
CASE PR_SCENE_F1_SNACKING
tExitSyncDoorAnimL = "001922_01_FRAS_V2_3_SNACKING_EXIT_STOOL"
tExitSyncDoorAnimR = ""
//SWITCH@FRANKLIN@SNACKING/001922_01_FRAS_V2_3_SNACKING_IDLE_STOOL.anim
RETURN TRUE
BREAK
CASE PR_SCENE_M2_LUNCH_a
tExitSyncDoorAnimL = "exit_chair_02"
tExitSyncDoorAnimR = "exit_chair_01"
//tLoopSyncObjAnim = "loop_chair_01"
//tLoopSyncExtraObjAnim = "loop_chair_02"
RETURN TRUE
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC