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

979 lines
34 KiB
Scheme
Executable File

USING "tv_control_public.sch"
#IF IS_DEBUG_BUILD
USING "family_debug.sch"
#ENDIF
#if USE_CLF_DLC
USING "player_scene_Assets.sch"
USING "familycoords_private.sch"
#endif
#if USE_NRM_DLC
USING "player_scene_Assets.sch"
USING "familycoords_private.sch"
#ENDIF
///private header for family scripts
/// alwyn.roberts@rockstarnorth.com
///
// *******************************************************************************************
// FAMILY PRIVATE COORD FUNCTIONS
// *******************************************************************************************
FUNC enumCharacterList PRIVATE_Get_CharList_From_FamilyMember(enumFamilyMember eFamilyMember, MODEL_NAMES &eModelIfNoChar)
eModelIfNoChar = DUMMY_MODEL_FOR_SCRIPT
SWITCH eFamilyMember
CASE FM_MICHAEL_SON RETURN CHAR_JIMMY BREAK
CASE FM_MICHAEL_DAUGHTER RETURN CHAR_TRACEY BREAK
CASE FM_MICHAEL_WIFE
// IF TRUE //if Amandas heels are broken
RETURN CHAR_AMANDA
// ELSE
// eModelIfNoChar = S_F_Y_HOOKER_01 RETURN NO_CHARACTER
// ENDIF
BREAK
CASE FM_FRANKLIN_AUNT RETURN CHAR_DENISE BREAK
CASE FM_FRANKLIN_LAMAR RETURN CHAR_LAMAR BREAK
CASE FM_FRANKLIN_STRETCH RETURN CHAR_STRETCH BREAK
CASE FM_TREVOR_0_RON RETURN CHAR_RON BREAK
CASE FM_TREVOR_0_MICHAEL RETURN CHAR_MICHAEL BREAK
CASE FM_TREVOR_0_TREVOR RETURN CHAR_TREVOR BREAK
CASE FM_TREVOR_0_WIFE RETURN CHAR_PATRICIA BREAK
CASE FM_TREVOR_0_MOTHER eModelIfNoChar = S_F_M_MAID_01 RETURN NO_CHARACTER BREAK
CASE FM_TREVOR_1_FLOYD RETURN CHAR_FLOYD BREAK
CASE FM_TREVOR_1_WADE RETURN CHAR_WADE BREAK
//not a char
CASE FM_MICHAEL_MEXMAID eModelIfNoChar = S_F_M_MAID_01 RETURN NO_CHARACTER BREAK
CASE FM_MICHAEL_GARDENER eModelIfNoChar = S_M_M_GARDENER_01 RETURN NO_CHARACTER BREAK
//
CASE MAX_FAMILY_MEMBER RETURN GLOBAL_CHARACTER_SHEET_GET_MAX_CHARACTERS_FOR_GAMEMODE() BREAK
ENDSWITCH
RETURN NO_CHARACTER
ENDFUNC
// *******************************************************************************************
// FAMILY PUBLIC FUNCTIONS
// *******************************************************************************************
FUNC enumFamilyMember GET_enumFamilyMember_from_ped(PED_INDEX PedIndex)
MODEL_NAMES ePedIndexModel = GET_ENTITY_MODEL(PedIndex)
IF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_JIMMY)) RETURN FM_MICHAEL_SON
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_TRACEY)) RETURN FM_MICHAEL_DAUGHTER
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_AMANDA)) RETURN FM_MICHAEL_WIFE
ELIF (ePedIndexModel = S_F_M_MAID_01) RETURN FM_MICHAEL_MEXMAID
ELIF (ePedIndexModel = S_M_M_GARDENER_01) RETURN FM_MICHAEL_GARDENER
ELIF (ePedIndexModel = IG_DENISE) RETURN FM_FRANKLIN_AUNT
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_LAMAR)) RETURN FM_FRANKLIN_LAMAR
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_STRETCH)) RETURN FM_FRANKLIN_STRETCH
ELIF (ePedIndexModel = GET_PLAYER_PED_MODEL(CHAR_MICHAEL)) RETURN FM_TREVOR_0_MICHAEL
ELIF (ePedIndexModel = GET_PLAYER_PED_MODEL(CHAR_TREVOR)) RETURN FM_TREVOR_0_TREVOR
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_RON)) RETURN FM_TREVOR_0_RON
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_PATRICIA)) RETURN FM_TREVOR_0_WIFE
ELIF (ePedIndexModel = S_F_M_MAID_01) RETURN FM_TREVOR_0_MOTHER
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_FLOYD)) RETURN FM_TREVOR_1_FLOYD
ELIF (ePedIndexModel = GET_NPC_PED_MODEL(CHAR_WADE)) RETURN FM_TREVOR_1_WADE
ELSE
// #IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, "<")
// CPRINTLN(DEBUG_FAMILY, GET_THIS_SCRIPT_NAME())
// CPRINTLN(DEBUG_FAMILY, "> invalid ePedIndexModel in GET_enumFamilyMember_from_ped[")
//
// CPRINTLN(DEBUG_FAMILY, GET_MODEL_NAME_FOR_DEBUG(ePedIndexModel))
//
// CPRINTLN(DEBUG_FAMILY, "]")
// CprintNL()
// #ENDIF
//
// CASSERTLN(DEBUG_FAMILY, "invalid ePedIndexModel in GET_enumFamilyMember_from_ped()")
RETURN NO_FAMILY_MEMBER
ENDIF
ENDFUNC
PROC PRIVATE_Set_Additional_Current_Family_Member_Event(enumFamilyMember eAdditionalFamilyMember, enumFamilyEvents eFamilyEvent)
Update_Previous_Event_For_FamilyMember(eAdditionalFamilyMember)
g_eCurrentFamilyEvent[eAdditionalFamilyMember] = eFamilyEvent
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "ADDITIONAL: set current family event for ", Get_String_From_FamilyMember(eAdditionalFamilyMember), " to ", Get_String_From_FamilyEvent(eFamilyEvent))
#ENDIF
ENDPROC
PROC PRIVATE_Set_Current_Family_Member_Event(enumFamilyMember eFamilyMember, enumFamilyEvents eFamilyEvent)
Update_Previous_Event_For_FamilyMember(eFamilyMember)
g_eCurrentFamilyEvent[eFamilyMember] = eFamilyEvent
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "set current family event for ", Get_String_From_FamilyMember(eFamilyMember), " to ", Get_String_From_FamilyEvent(eFamilyEvent))
DEBUG_PRINTCALLSTACK()
#ENDIF
SWITCH eFamilyEvent
CASE FE_M_FAMILY_on_laptops
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_FAMILY_MIC4_locked_in_room
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M7_FAMILY_finished_breakfast
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M7_FAMILY_finished_pizza
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M7_FAMILY_watching_TV
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_SON_Fighting_with_sister_A
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_SON_Fighting_with_sister_B
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_SON_Fighting_with_sister_C
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_SON_Fighting_with_sister_D
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M7_SON_watching_TV_with_tracey
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_WIFE_screams_at_mexmaid
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_MEXMAID, eFamilyEvent)
BREAK
CASE FM_MICHAEL_MEXMAID
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
// CASE FE_M_WIFE_screaming_at_son_P1
// SWITCH eFamilyMember
// CASE FM_MICHAEL_WIFE
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
// BREAK
// CASE FM_MICHAEL_SON
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
// BREAK
// ENDSWITCH
//
// BREAK
CASE FE_M_WIFE_screaming_at_son_P2
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
BREAK
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_WIFE_screaming_at_son_P3
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
BREAK
CASE FM_MICHAEL_SON
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_M_WIFE_screaming_at_daughter
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
// CASE FE_M7_WIFE_shopping_with_son
// SWITCH eFamilyMember
// CASE FM_MICHAEL_WIFE
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_SON, eFamilyEvent)
// BREAK
// CASE FM_MICHAEL_SON
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
// BREAK
// ENDSWITCH
//
// BREAK
CASE FE_M7_WIFE_shopping_with_daughter
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_DAUGHTER, eFamilyEvent)
BREAK
CASE FM_MICHAEL_DAUGHTER
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_MICHAEL_WIFE, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
// CASE FE_F_LAMAR_and_STRETCH_chill_outside
// SWITCH eFamilyMember
// CASE FM_FRANKLIN_LAMAR
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_STRETCH, eFamilyEvent)
// BREAK
// CASE FM_FRANKLIN_STRETCH
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_LAMAR, eFamilyEvent)
// BREAK
// ENDSWITCH
//
// BREAK
// CASE FE_F_LAMAR_and_STRETCH_bbq_outside
// SWITCH eFamilyMember
// CASE FM_FRANKLIN_LAMAR
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_STRETCH, eFamilyEvent)
// BREAK
// CASE FM_FRANKLIN_STRETCH
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_LAMAR, eFamilyEvent)
// BREAK
// ENDSWITCH
//
// BREAK
// CASE FE_F_LAMAR_and_STRETCH_arguing
// SWITCH eFamilyMember
// CASE FM_FRANKLIN_LAMAR
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_STRETCH, eFamilyEvent)
// BREAK
// CASE FM_FRANKLIN_STRETCH
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_LAMAR, eFamilyEvent)
// BREAK
// ENDSWITCH
//
// BREAK
// CASE FE_F_LAMAR_and_STRETCH_shout_at_cops
// SWITCH eFamilyMember
// CASE FM_FRANKLIN_LAMAR
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_STRETCH, eFamilyEvent)
// BREAK
// CASE FM_FRANKLIN_STRETCH
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_LAMAR, eFamilyEvent)
// BREAK
// ENDSWITCH
//
// BREAK
CASE FE_F_LAMAR_and_STRETCH_wandering
SWITCH eFamilyMember
CASE FM_FRANKLIN_LAMAR
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_STRETCH, eFamilyEvent)
BREAK
CASE FM_FRANKLIN_STRETCH
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_FRANKLIN_LAMAR, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_T0_TREVOR_and_kidnapped_wife_walk
SWITCH eFamilyMember
CASE FM_TREVOR_0_TREVOR
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_WIFE, eFamilyEvent)
BREAK
CASE FM_TREVOR_0_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_TREVOR, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
CASE FE_T0_TREVOR_and_kidnapped_wife_stare
SWITCH eFamilyMember
CASE FM_TREVOR_0_TREVOR
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_WIFE, eFamilyEvent)
BREAK
CASE FM_TREVOR_0_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_TREVOR, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
/*
CASE FE_T0_TREVOR_and_kidnapped_wife_laugh
SWITCH eFamilyMember
CASE FM_TREVOR_0_TREVOR
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_WIFE, eFamilyEvent)
BREAK
CASE FM_TREVOR_0_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_TREVOR, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
*/
CASE FE_T0_KIDNAPPED_WIFE_talks_to_Michael
SWITCH eFamilyMember
CASE FM_TREVOR_0_WIFE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_MICHAEL, eFamilyEvent)
BREAK
CASE FM_TREVOR_0_MICHAEL
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_0_WIFE, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
// CASE FE_T1_FLOYD_with_wade_post_trevor3
//
// SWITCH eFamilyMember
// CASE FM_TREVOR_1_FLOYD
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_1_WADE] = FE_T1_FLOYD_with_wade_post_trevor3
//
// #IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, "ADDITIONAL: set current family event for ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(FM_TREVOR_1_WADE))
// CPRINTLN(DEBUG_FAMILY, " to ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(FE_T1_FLOYD_with_wade_post_trevor3))
// CprintNL()
// #ENDIF
//
// BREAK
// CASE FM_TREVOR_1_WADE
// PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_1_FLOYD] = FE_T1_FLOYD_with_wade_post_trevor3
//
// #IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, "ADDITIONAL: set current family event for ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(FM_TREVOR_1_FLOYD))
// CPRINTLN(DEBUG_FAMILY, " to ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(FE_T1_FLOYD_with_wade_post_trevor3))
// CprintNL()
// #ENDIF
//
// BREAK
// ENDSWITCH
//
// BREAK
CASE FE_T1_FLOYD_with_wade_post_docks1
SWITCH eFamilyMember
CASE FM_TREVOR_1_FLOYD
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_1_WADE, eFamilyEvent)
BREAK
CASE FM_TREVOR_1_WADE
PRIVATE_Set_Additional_Current_Family_Member_Event(FM_TREVOR_1_FLOYD, eFamilyEvent)
BREAK
ENDSWITCH
BREAK
ENDSWITCH
ENDPROC
FUNC BOOL SAVE_FORCE_ROOM_FOR_ENTITY(ENTITY_INDEX EntityIndex, INTERIOR_INSTANCE_INDEX InteriorInstanceIndex, INT RoomKey)
IF IS_VALID_INTERIOR(InteriorInstanceIndex)
IF IS_INTERIOR_READY(InteriorInstanceIndex)
FORCE_ROOM_FOR_ENTITY(EntityIndex, InteriorInstanceIndex, RoomKey)
RETURN TRUE
ELSE
RETAIN_ENTITY_IN_INTERIOR(EntityIndex, InteriorInstanceIndex)
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL PRIVATE_ForceRoomForFamilyEntity(ENTITY_INDEX pedIndex, enumFamilyMember eFamilyMember)
BOOL bForcedRoomForPed
//
STRING sRoomHashKey = ""
INTERIOR_INSTANCE_INDEX InteriorInstanceIndex = NULL
SWITCH g_eCurrentFamilyEvent[eFamilyMember]
CASE FE_M2_WIFE_with_shopping_bags_enter
CASE FE_M7_WIFE_with_shopping_bags_enter
// CASE FE_M7_WIFE_shopping_with_son
CASE FE_M7_WIFE_shopping_with_daughter
sRoomHashKey = "V_Michael_G_Hall"
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "<", GET_THIS_SCRIPT_NAME(), "> family member[", Get_String_From_FamilyMember(eFamilyMember), "] \"", Get_String_From_FamilyEvent(g_eCurrentFamilyEvent[eFamilyMember]), "\" force sRoomHashKey \"", sRoomHashKey, "\"")
#ENDIF
InteriorInstanceIndex = GET_INTERIOR_AT_COORDS_with_type(<< -812.6, 179.4,72.2 >>, "v_michael")
IF SAVE_FORCE_ROOM_FOR_ENTITY(PedIndex, InteriorInstanceIndex, GET_HASH_KEY(sRoomHashKey))
bForcedRoomForPed = TRUE
ENDIF
BREAK
// CASE FE_M_WIFE_screaming_at_son_P1 FALLTHRU
CASE FE_M_WIFE_screaming_at_son_P2 FALLTHRU
CASE FE_M_WIFE_screaming_at_son_P3
IF (eFamilyMember = FM_MICHAEL_SON)
sRoomHashKey = "V_Michael_1_Hall"
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "<", GET_THIS_SCRIPT_NAME(), "> family member[", Get_String_From_FamilyMember(eFamilyMember), "] \"", Get_String_From_FamilyEvent(g_eCurrentFamilyEvent[eFamilyMember]), "\" force sRoomHashKey \"", sRoomHashKey, "\"")
#ENDIF
InteriorInstanceIndex = GET_INTERIOR_AT_COORDS_with_type(<< -812.2079, 181.3398, 71.1530 >>, "v_michael")
IF SAVE_FORCE_ROOM_FOR_ENTITY(PedIndex, InteriorInstanceIndex, GET_HASH_KEY(sRoomHashKey))
bForcedRoomForPed = TRUE
ENDIF
ELSE
IF NOT g_bMagDemoActive
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "<", GET_THIS_SCRIPT_NAME(), "> family member[", Get_String_From_FamilyMember(eFamilyMember), "] DEFAULT room ")
#ENDIF
CLEAR_ROOM_FOR_ENTITY(PedIndex)
ENDIF
bForcedRoomForPed = FALSE
ENDIF
BREAK
CASE FE_M_SON_Fighting_with_sister_A FALLTHRU
CASE FE_M_SON_Fighting_with_sister_b FALLTHRU
CASE FE_M_SON_Fighting_with_sister_C FALLTHRU
CASE FE_M_SON_Fighting_with_sister_D
sRoomHashKey = "V_Michael_1_Hall"
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "<", GET_THIS_SCRIPT_NAME(), "> family member[", Get_String_From_FamilyMember(eFamilyMember), "] \"", Get_String_From_FamilyEvent(g_eCurrentFamilyEvent[eFamilyMember]), "\" force sRoomHashKey \"", sRoomHashKey, "\"")
#ENDIF
InteriorInstanceIndex = GET_INTERIOR_AT_COORDS_with_type(<< -812.2079, 181.3398, 71.1530 >>, "v_michael")
IF SAVE_FORCE_ROOM_FOR_ENTITY(PedIndex, InteriorInstanceIndex, GET_HASH_KEY(sRoomHashKey))
bForcedRoomForPed = TRUE
ENDIF
BREAK
CASE FE_M_WIFE_screams_at_mexmaid
sRoomHashKey = "V_Michael_G_Kitche"
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "<", GET_THIS_SCRIPT_NAME(), "> family member[", Get_String_From_FamilyMember(eFamilyMember), "] \"", Get_String_From_FamilyEvent(g_eCurrentFamilyEvent[eFamilyMember]), "\" force sRoomHashKey \"", sRoomHashKey, "\"")
#ENDIF
InteriorInstanceIndex = GET_INTERIOR_AT_COORDS_with_type(<<-803.4384, 182.9567, 73.2608>>, "v_michael")
IF SAVE_FORCE_ROOM_FOR_ENTITY(PedIndex, InteriorInstanceIndex, GET_HASH_KEY(sRoomHashKey))
bForcedRoomForPed = TRUE
ENDIF
BREAK
CASE FE_M2_MEXMAID_cleans_booze_pot_other
CASE FE_M7_MEXMAID_cleans_booze_pot_other
sRoomHashKey = "V_Michael_G_Kitche"
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "<", GET_THIS_SCRIPT_NAME(), "> family member[", Get_String_From_FamilyMember(eFamilyMember), "] \"", Get_String_From_FamilyEvent(g_eCurrentFamilyEvent[eFamilyMember]), "\" force sRoomHashKey \"", sRoomHashKey, "\"")
#ENDIF
InteriorInstanceIndex = GET_INTERIOR_AT_COORDS_with_type(<<-803.4384, 182.9567, 73.2608>>, "v_michael")
IF SAVE_FORCE_ROOM_FOR_ENTITY(PedIndex, InteriorInstanceIndex, GET_HASH_KEY(sRoomHashKey))
bForcedRoomForPed = TRUE
ENDIF
BREAK
DEFAULT
IF NOT g_bMagDemoActive
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "<", GET_THIS_SCRIPT_NAME(), "> family member[", Get_String_From_FamilyMember(eFamilyMember), "] no specified room ")
#ENDIF
// CLEAR_ROOM_FOR_ENTITY(PedIndex)
ENDIF
bForcedRoomForPed = FALSE
BREAK
ENDSWITCH
RETURN bForcedRoomForPed
ENDFUNC
PROC PRIVATE_Update_Tv_Globals(enumFamilyMember eFamilyMember, enumFamilyEvents eFamilyEvent)
// #IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, "Force Start Ambient TV as ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(eFamilyMember))
// CPRINTLN(DEBUG_FAMILY, " event is ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(eFamilyEvent))
// CprintNL()
// #ENDIF
SWITCH eFamilyEvent
CASE FE_M_DAUGHTER_dancing_practice
CASE FE_M_DAUGHTER_workout_with_mp3
// CASE FE_M_MEXMAID_watching_TV
IF IS_TV_SCRIPT_AVAILABLE_FOR_USE(TV_LOC_MICHAEL_PROJECTOR)
IF NOT IS_THIS_TV_FORCED_ON(TV_LOC_MICHAEL_PROJECTOR)
START_AMBIENT_TV_PLAYBACK(TV_LOC_MICHAEL_PROJECTOR, TVCHANNELTYPE_CHANNEL_SPECIAL, TV_PLAYLIST_SPECIAL_WORKOUT)
SET_TV_INDESTRUCTIBLE(TV_LOC_MICHAEL_PROJECTOR, TRUE)
ELSE
//B* 545077 - Tracey's dancing game not on the TV.
IF NOT IS_THIS_TV_ON(TV_LOC_JIMMY_BEDROOM)
IF NOT IS_TVSHOW_CURRENTLY_PLAYING( HASH("exerciseShow"))
SET_TV_CHANNEL_PLAYLIST(TVCHANNELTYPE_CHANNEL_SPECIAL, "PL_SP_WORKOUT")
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_SPECIAL)
CPRINTLN(DEBUG_FAMILY, "force TV channel to exerciseShow")
ENDIF
ENDIF
ENDIF
ELSE
#IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, " Ambient TV TV_LOC_MICHAEL_PROJECTOR not available for ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(eFamilyMember))
// CPRINTLN(DEBUG_FAMILY, " event is ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(eFamilyEvent))
// CprintNL()
#ENDIF
EXIT
ENDIF
BREAK
CASE FE_M_DAUGHTER_watching_TV_sober
CASE FE_M_DAUGHTER_watching_TV_drunk
CASE FE_M2_SON_watching_TV
CASE FE_M7_SON_watching_TV_with_tracey
CASE FE_M7_FAMILY_watching_TV
CASE FE_M2_WIFE_in_face_mask
CASE FE_M7_WIFE_in_face_mask
IF IS_TV_SCRIPT_AVAILABLE_FOR_USE(TV_LOC_MICHAEL_PROJECTOR)
IF NOT IS_THIS_TV_FORCED_ON(TV_LOC_MICHAEL_PROJECTOR)
START_AMBIENT_TV_PLAYBACK(TV_LOC_MICHAEL_PROJECTOR)
SET_TV_INDESTRUCTIBLE(TV_LOC_MICHAEL_PROJECTOR, TRUE)
ENDIF
ELSE
#IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, " Ambient TV TV_LOC_MICHAEL_PROJECTOR not available for ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(eFamilyMember))
// CPRINTLN(DEBUG_FAMILY, " event is ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(eFamilyEvent))
// CprintNL()
#ENDIF
EXIT
ENDIF
BREAK
CASE FE_M2_SON_gaming_loop
CASE FE_M7_SON_gaming
IF IS_TV_SCRIPT_AVAILABLE_FOR_USE(TV_LOC_JIMMY_BEDROOM)
IF NOT IS_THIS_TV_FORCED_ON(TV_LOC_JIMMY_BEDROOM)
START_AMBIENT_TV_PLAYBACK(TV_LOC_JIMMY_BEDROOM, TVCHANNELTYPE_CHANNEL_SPECIAL, TV_PLAYLIST_LO_RIGHTEOUS_SLAUGHTER)
SET_TV_INDESTRUCTIBLE(TV_LOC_JIMMY_BEDROOM, TRUE)
ENDIF
ELSE
#IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, " Ambient TV TV_LOC_JIMMY_BEDROOM not available for ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(eFamilyMember))
// CPRINTLN(DEBUG_FAMILY, " event is ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(eFamilyEvent))
// CprintNL()
#ENDIF
EXIT
ENDIF
BREAK
CASE FE_F_AUNT_watching_TV
CASE FE_F_AUNT_returned_to_aunts
IF IS_TV_SCRIPT_AVAILABLE_FOR_USE(TV_LOC_FRANKLIN_LIVING)
IF NOT IS_THIS_TV_FORCED_ON(TV_LOC_FRANKLIN_LIVING)
START_AMBIENT_TV_PLAYBACK(TV_LOC_FRANKLIN_LIVING)
SET_TV_INDESTRUCTIBLE(TV_LOC_FRANKLIN_LIVING, TRUE)
ENDIF
#IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, " Ambient TV TV_LOC_FRANKLIN_LIVING available for ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(eFamilyMember))
// CPRINTLN(DEBUG_FAMILY, " event is ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(eFamilyEvent))
IF NOT IS_THIS_TV_FORCED_ON(TV_LOC_FRANKLIN_LIVING)
// CPRINTLN(DEBUG_FAMILY, " NOT forced on")
ELSE
// CPRINTLN(DEBUG_FAMILY, " forced on")
ENDIF
// CprintNL()
#ENDIF
ELSE
#IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_FAMILY, " Ambient TV TV_LOC_FRANKLIN_LIVING not available for ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyMember(eFamilyMember))
// CPRINTLN(DEBUG_FAMILY, " event is ")
// CPRINTLN(DEBUG_FAMILY, Get_String_From_FamilyEvent(eFamilyEvent))
IF NOT IS_THIS_TV_FORCED_ON(TV_LOC_FRANKLIN_LIVING)
// CPRINTLN(DEBUG_FAMILY, " NOT forced on")
ELSE
// CPRINTLN(DEBUG_FAMILY, " forced on")
ENDIF
// CprintNL()
#ENDIF
EXIT
ENDIF
BREAK
DEFAULT
//RESTORE_STANDARD_CHANNELS()
eFamilyMember = eFamilyMember
BREAK
ENDSWITCH
ENDPROC
FUNC BOOL PRIVATE_FamilyMemberWatchingTv(PED_INDEX &PedIndex, enumFamilyMember eFamilyMember, enumFamilyEvents eFamilyEvent,
VECTOR vSequencePos, FLOAT fSequenceHead, INT &iWanderStage,
enumFamilyEvents eDesiredFamilyEvent = FE_ANY_find_family_event)
IF (g_eCurrentSafehouseActivity = SA_NONE)
IF IS_PLAYER_SWITCH_IN_PROGRESS()
RETURN FALSE
ENDIF
PED_REQUEST_SCENE_ENUM eScene = Get_Player_Timetable_Scene_In_Progress()
IF (eScene <> PR_SCENE_INVALID)
TEXT_LABEL_31 RoomName = ""
FLOAT fTurnOffTVPhase = 0.0
TV_LOCATION eRoomTVLocation
TVCHANNELTYPE eTVChannelType
TV_CHANNEL_PLAYLIST eTVPlaylist
IF CONTROL_PLAYER_WATCHING_TV(eScene, RoomName, fTurnOffTVPhase, eRoomTVLocation, eTVChannelType, eTVPlaylist)
RETURN FALSE
ENDIF
ENDIF
// #IF IS_DEBUG_BUILD
// IF (GET_TV_CHANNEL() <> TVCHANNELTYPE_CHANNEL_SPECIAL)
// CPRINTLN(DEBUG_FAMILY, "PRIVATE_FamilyMemberWatchingTv(GET_TV_CHANNEL() <> TVCHANNELTYPE_CHANNEL_SPECIAL)")
// CprintNL()
// ENDIF
// #ENDIF
#IF IS_DEBUG_BUILD
IF (iWanderStage <> 0)
CASSERTLN(DEBUG_FAMILY, "PRIVATE_FamilyMemberWatchingTv(iWanderStage <> ???)")
iWanderStage = 0
ENDIF
#ENDIF
PRIVATE_Update_Tv_Globals(eFamilyMember, eFamilyEvent)
RETURN TRUE
ELSE
VECTOR vGetupOffset
FLOAT fGetupHead
IF PRIVATE_Get_FamilyMember_Init_Offset(eFamilyMember, eFamilyEvent,
vGetupOffset, fGetupHead)
vGetupOffset += vSequencePos
fGetupHead += fSequenceHead
CONST_INT iGETUP_0_requestGetup 0
CONST_INT iGETUP_1_playGetup 1
CONST_INT iGETUP_2_endGetup 2
CONST_INT iGETUP_3_delete 3
STRING sGetupAnimDict = "AMB@PROP_HUMAN_SEAT_CHAIR@MALE@GENERIC@EXIT", sGetupAnimClip = "EXIT_FORWARD"
SWITCH eFamilyEvent
CASE FE_M7_FAMILY_watching_TV
iWanderStage = iGETUP_3_delete
BREAK
CASE FE_M2_SON_watching_TV
CASE FE_M7_SON_watching_TV_with_tracey
iWanderStage = iGETUP_3_delete
BREAK
CASE FE_M2_WIFE_in_face_mask
CASE FE_M7_WIFE_in_face_mask
sGetupAnimDict = ""
sGetupAnimClip = ""
iWanderStage = iGETUP_3_delete
BREAK
CASE FE_M_DAUGHTER_workout_with_mp3
CASE FE_M_DAUGHTER_dancing_practice
sGetupAnimDict = ""
sGetupAnimClip = ""
iWanderStage = iGETUP_3_delete
BREAK
CASE FE_M_DAUGHTER_watching_TV_sober
iWanderStage = iGETUP_3_delete
BREAK
CASE FE_M_DAUGHTER_watching_TV_drunk
iWanderStage = iGETUP_3_delete
BREAK
// CASE FE_M_MEXMAID_watching_TV
// BREAK
CASE FE_F_AUNT_watching_TV
CASE FE_F_AUNT_returned_to_aunts
iWanderStage = iGETUP_3_delete
BREAK
DEFAULT
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, GET_THIS_SCRIPT_NAME(), ": invalid eFamilyEvent for PRIVATE_FamilyMemberWatchingTv: ", Get_String_From_FamilyEvent(eFamilyEvent))
CASSERTLN(DEBUG_FAMILY, GET_THIS_SCRIPT_NAME(), ": invalid eFamilyEvent for PRIVATE_FamilyMemberWatchingTv: ", Get_String_From_FamilyEvent(eFamilyEvent))
#ENDIF
RETURN FALSE
BREAK
ENDSWITCH
SWITCH iWanderStage
CASE iGETUP_0_requestGetup
REQUEST_ANIM_DICT(sGetupAnimDict)
IF HAS_ANIM_DICT_LOADED(sGetupAnimDict)
TASK_PLAY_ANIM_ADVANCED(PedIndex, sGetupAnimDict, sGetupAnimClip,
vGetupOffset,
<<0,0,fGetupHead>>,
INSTANT_BLEND_IN, NORMAL_BLEND_OUT, -1,
AF_NOT_INTERRUPTABLE, 0)
CPRINTLN(DEBUG_FAMILY, "ped[", Get_String_From_FamilyMember(eFamilyMember), "] watching TV: iWanderStage = iGETUP_1_playGetup (g_eCurrentSafehouseActivity: ",g_eCurrentSafehouseActivity, ")")
iWanderStage = iGETUP_1_playGetup
RETURN FALSE
ENDIF
BREAK
CASE iGETUP_1_playGetup
IF NOT IS_ENTITY_PLAYING_ANIM(PedIndex, sGetupAnimDict, sGetupAnimClip)
CPRINTLN(DEBUG_FAMILY, "ped[", Get_String_From_FamilyMember(eFamilyMember), "] watching TV: iWanderStage = iGETUP_2_endGetup (g_eCurrentSafehouseActivity: ",g_eCurrentSafehouseActivity, ")")
iWanderStage = iGETUP_2_endGetup
RETURN FALSE
ENDIF
BREAK
CASE iGETUP_2_endGetup
IF NOT IS_STRING_NULL_OR_EMPTY(sGetupAnimDict)
REMOVE_ANIM_DICT(sGetupAnimDict)
ENDIF
PLAY_PED_AMBIENT_SPEECH(PedIndex, "GENERIC_INSULT_MED")
CLEAR_PED_TASKS(PedIndex)
PRIVATE_Set_Current_Family_Member_Event(eFamilyMember, eDesiredFamilyEvent)
CPRINTLN(DEBUG_FAMILY, "ped[", Get_String_From_FamilyMember(eFamilyMember), "] watching TV: iWanderStage = 0 (endGetup, g_eCurrentSafehouseActivity: ",g_eCurrentSafehouseActivity, ")")
iWanderStage = 0
RETURN FALSE
BREAK
CASE iGETUP_3_delete
IF NOT IS_STRING_NULL_OR_EMPTY(sGetupAnimDict)
REMOVE_ANIM_DICT(sGetupAnimDict)
ENDIF
IF DOES_ENTITY_EXIST(PedIndex)
DELETE_PED(PedIndex)
ENDIF
PRIVATE_Set_Current_Family_Member_Event(eFamilyMember, FAMILY_MEMBER_BUSY)
CPRINTLN(DEBUG_FAMILY, "ped[", Get_String_From_FamilyMember(eFamilyMember), "] watching TV: iWanderStage = 0 (delete, g_eCurrentSafehouseActivity: ",g_eCurrentSafehouseActivity, ")")
iWanderStage = 0
RETURN FALSE
BREAK
DEFAULT
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, GET_THIS_SCRIPT_NAME(), ": invalid iWanderStage for PRIVATE_FamilyMemberWatchingTv: ", Get_String_From_FamilyEvent(eFamilyEvent))
CASSERTLN(DEBUG_FAMILY, GET_THIS_SCRIPT_NAME(), ": invalid iWanderStage for PRIVATE_FamilyMemberWatchingTv: ", Get_String_From_FamilyEvent(eFamilyEvent))
#ENDIF
RETURN FALSE
BREAK
ENDSWITCH
ENDIF
RETURN FALSE
ENDIF
ENDFUNC
PROC PRIVATE_Cleanup_Tv_Globals()
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "PRIVATE_Cleanup_Tv_Globals -() STARTED ", GET_THIS_SCRIPT_NAME())
#ENDIF
IF IS_THIS_TV_FORCED_ON(TV_LOC_MICHAEL_PROJECTOR)
SET_TV_INDESTRUCTIBLE(TV_LOC_MICHAEL_PROJECTOR, FALSE)
STOP_AMBIENT_TV_PLAYBACK(TV_LOC_MICHAEL_PROJECTOR)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "PRIVATE_Cleanup_Tv_Globals -() CLEANUP MICHAEL'S PROJECTOR ", GET_THIS_SCRIPT_NAME())
#ENDIF
ENDIF
IF IS_THIS_TV_FORCED_ON(TV_LOC_JIMMY_BEDROOM)
SET_TV_INDESTRUCTIBLE(TV_LOC_JIMMY_BEDROOM, FALSE)
STOP_AMBIENT_TV_PLAYBACK(TV_LOC_JIMMY_BEDROOM)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "PRIVATE_Cleanup_Tv_Globals -() CLEANUP JIMMY'S TV ", GET_THIS_SCRIPT_NAME())
#ENDIF
ENDIF
IF IS_THIS_TV_FORCED_ON(TV_LOC_FRANKLIN_LIVING)
SET_TV_INDESTRUCTIBLE(TV_LOC_FRANKLIN_LIVING, FALSE)
STOP_AMBIENT_TV_PLAYBACK(TV_LOC_FRANKLIN_LIVING)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "PRIVATE_Cleanup_Tv_Globals -() CLEANUP DENISE'S TV ", GET_THIS_SCRIPT_NAME())
#ENDIF
ENDIF
ENDPROC
USING "familyCoords_private.sch"
USING "familyComponent_private.sch"
USING "familyDoor_private.sch"
USING "familyPtfx_private.sch"
#if USE_CLF_DLC
USING "familySchedule_privateCLF.sch"
#endif
#if USE_NRM_DLC
USING "familySchedule_privateNRM.sch"
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
USING "familySchedule_private.sch"
#endif
#endif
USING "familySfx_private.sch"
USING "familySpeech_private.sch"
USING "familyTask_private.sch"