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

986 lines
34 KiB
XML
Executable File

///private header for family task control scripts
/// alwyn.roberts@rockstarnorth.com
///
USING "commands_misc.sch"
USING "commands_task.sch"
// *******************************************************************************************
// FAMILY DIALOGUE ANIM TASKS PRIVATE FUNCTIONS
// *******************************************************************************************
FUNC INT PRIVATE_GetIntFromConv(enumFamilyEvents eFamilyEvent, TEXT_LABEL &rootLabel)
rootLabel = g_ConversationData.ConversationSegmentToGrab
INT iRandCount, iSpeechBit, iPlayerBitset
Get_SpeechLabel_From_FamilyEvent(eFamilyEvent, iRandCount, iSpeechBit, iPlayerBitset)
IF IS_BITMASK_AS_ENUM_SET(iSpeechBit, FSC_singleRandomLine)
rootLabel += "A"
RETURN GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE(rootLabel)
ELSE
INT rootLabelLength = GET_LENGTH_OF_LITERAL_STRING(rootLabel)
IF rootLabelLength <= 0
RETURN -1
ENDIF
TEXT_LABEL rootLabelChar = GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME(rootLabel, rootLabelLength-1, rootLabelLength)
rootLabel += "_1A"
SWITCH GET_HASH_KEY(rootLabelChar)
CASE HASH("a")
RETURN 1
BREAK
CASE HASH("b")
RETURN 2
BREAK
CASE HASH("c")
RETURN 3
BREAK
CASE HASH("d")
RETURN 4
BREAK
ENDSWITCH
RETURN GET_VARIATION_CHOSEN_FOR_SCRIPTED_LINE(rootLabel)
ENDIF
ENDFUNC
FUNC BOOL PRIVATE_GetTextLabelFromConv(enumFamilyMember eFamilyMember, enumFamilyEvents eFamilyEvent, TEXT_LABEL_63 &tAnimDialogueDict, TEXT_LABEL_63 &tAnimDialogueClip, INT iRootFilenameNum = -1)
tAnimDialogueDict = "null"
tAnimDialogueClip = "null"
TEXT_LABEL rootLabel = "" //g_ConversationData.ConversationSegmentToGrab
IF (iRootFilenameNum = -1)
iRootFilenameNum = PRIVATE_GetIntFromConv(eFamilyEvent, rootLabel)
IF (iRootFilenameNum = -1)
INT iRandCount, iSpeechBit, iPlayerBitset
STRING sExpectedRootLabel = Get_SpeechLabel_From_FamilyEvent(eFamilyEvent, iRandCount, iSpeechBit, iPlayerBitset)
/*
unrecognised root filename num: M7_SON_jumping_jacks
[rootLabel: FMM_HOME3A != FAMR_IG_2a, line: -1]
*/
IF NOT ARE_STRINGS_EQUAL(rootLabel, sExpectedRootLabel)
#IF IS_DEBUG_BUILD
CWARNINGLN(DEBUG_FAMILY, "negative root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), " [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, "]")
#ENDIF
RETURN FALSE
ENDIF
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
INT iRandCount, iSpeechBit, iPlayerBitset
STRING sExpectedRootLabel = Get_SpeechLabel_From_FamilyEvent(eFamilyEvent, iRandCount, iSpeechBit, iPlayerBitset)
INT iRootLength = GET_LENGTH_OF_LITERAL_STRING(rootLabel)
INT iExpectedRootLength = GET_LENGTH_OF_LITERAL_STRING(sExpectedRootLabel)
TEXT_LABEL sDiddyRootLabel = ""
IF iExpectedRootLength <= iRootLength
IF iExpectedRootLength > 0
sDiddyRootLabel = GET_STRING_FROM_STRING(rootLabel, 0, iExpectedRootLength)
ENDIF
IF ARE_STRINGS_EQUAL(sDiddyRootLabel, sExpectedRootLabel)
//
CWARNINGLN(DEBUG_FAMILY, "<famConvTest> ", Get_String_From_FamilyEvent(eFamilyEvent),
" [rootLabel: ", rootLabel, ", ", iExpectedRootLength,
" <= sExpectedRootLabel: ", sExpectedRootLabel, ", ", iExpectedRootLength,
"] == sDiddyRootLabel: ", sDiddyRootLabel)
ELSE
//
CWARNINGLN(DEBUG_FAMILY, "<famConvTest> ", Get_String_From_FamilyEvent(eFamilyEvent),
" [rootLabel: ", rootLabel, ", ", iExpectedRootLength,
" <= sExpectedRootLabel: ", sExpectedRootLabel, ", ", iExpectedRootLength,
"] != sDiddyRootLabel: ", sDiddyRootLabel)
ENDIF
ELSE
//
sDiddyRootLabel = ""
CWARNINGLN(DEBUG_FAMILY, "<famConvTest> ", Get_String_From_FamilyEvent(eFamilyEvent),
" [rootLabel: ", rootLabel, ", ", iExpectedRootLength,
" > sExpectedRootLabel: ", sExpectedRootLabel, ", ", iExpectedRootLength,
"]")
ENDIF
#ENDIF
SWITCH eFamilyEvent
CASE FE_T0_RON_monitoring_police_frequency
SWITCH eFamilyMember
CASE FM_TREVOR_0_RON
SWITCH iRootFilenameNum
CASE 1
tAnimDialogueDict = "TIMETABLE@RON@HAND_RADIO_IG_1"
tAnimDialogueClip = "IG_1_IDLE_A_FascistPricks"
BREAK
CASE 2
tAnimDialogueDict = "TIMETABLE@RON@HAND_RADIO_IG_1"
tAnimDialogueClip = "IG_1_IDLE_B_RoutineProcedureMyAss"
BREAK
CASE 3
tAnimDialogueDict = "TIMETABLE@RON@HAND_RADIO_IG_1"
tAnimDialogueClip = "IG_1_IDLE_C_ThoseFederalChumps"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "T0_RON_monitoring_police_frequency [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_T0_RON_ranting_about_government_LAYING
CASE FE_T0_RON_ranting_about_government_SITTING
SWITCH eFamilyMember
CASE FM_TREVOR_0_RON
SWITCH iRootFilenameNum
CASE 1
tAnimDialogueDict = "TIMETABLE@RON@IG_3_COUCH"
tAnimDialogueClip = "TrevorDidYouHearAbout"
BREAK
CASE 2
tAnimDialogueDict = "TIMETABLE@RON@IG_3_COUCH"
tAnimDialogueClip = "TrevorTrevorYouWouldnt"
BREAK
CASE 3
tAnimDialogueDict = "TIMETABLE@RON@IG_3_COUCH"
tAnimDialogueClip = "TrevorYouAreReallyGonnaWant"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "T0_RON_ranting_about_government [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_T0_RON_smoking_crystal
SWITCH eFamilyMember
CASE FM_TREVOR_0_RON
SWITCH iRootFilenameNum
CASE 1
tAnimDialogueDict = "TIMETABLE@RON@IG_4_SMOKING_METH"
tAnimDialogueClip = "ChefIsCookingUp" //0.2
BREAK
CASE 2
tAnimDialogueDict = "TIMETABLE@RON@IG_4_SMOKING_METH"
tAnimDialogueClip = "IfYouWantToBorrow" //0.6
BREAK
CASE 3
tAnimDialogueDict = "TIMETABLE@RON@IG_4_SMOKING_METH"
tAnimDialogueClip = "OneMoreHit" //0.4
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "T0_RON_smoking_crystal [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
#IF NOT IS_JAPANESE_BUILD
CASE FE_T0_TREVOR_doing_a_shit
SWITCH eFamilyMember
CASE FM_TREVOR_0_TREVOR
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "TrevOnLav_Midwife" //('I need a fuckin midwife for this thing)
tAnimDialogueDict = "TIMETABLE@TREVOR@ON_THE_TOILET"
tAnimDialogueClip = "TrevOnLav_Midwife"
BREAK
CASE 2
// sShit_anim = "TrevOnLav_ComeHere" //('Come Here!! I wanna talk to you')
tAnimDialogueDict = "TIMETABLE@TREVOR@ON_THE_TOILET"
tAnimDialogueClip = "TrevOnLav_ComeHere"
BREAK
CASE 3
// sShit_anim = "TrevOnLav_BackedUp" //('ARrgghh, I'm backed up, gonna need a C-Section')
tAnimDialogueDict = "TIMETABLE@TREVOR@ON_THE_TOILET"
tAnimDialogueClip = "TrevOnLav_BackedUp"
BREAK
CASE 4
// "Ach! No, It's good."
RETURN FALSE
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "T0_TREVOR_doing_a_shit [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
#ENDIF
// CASE FE_M2_SON_gaming_exit
// SWITCH eFamilyMember
// CASE FM_MICHAEL_SON
// SWITCH iRootFilenameNum
// CASE 1
// tAnimDialogueDict = "TIMETABLE@JIMMY@IG_2@IG_2_P2"
// tAnimDialogueClip = "JIM_IG_2_P2_Lagging"
// BREAK
// CASE 2
// tAnimDialogueDict = "TIMETABLE@JIMMY@IG_2@EXIT"
// tAnimDialogueClip = "Exit"
// BREAK
//
// DEFAULT
// #IF IS_DEBUG_BUILD
// SAVE_STRING_TO_DEBUG_FILE("ANY_SPEECH_PLAYING")
//
// SAVE_STRING_TO_DEBUG_FILE(", rootLabel: ")
// SAVE_STRING_TO_DEBUG_FILE(rootLabel)
//
// SAVE_STRING_TO_DEBUG_FILE(" line: ")
// SAVE_INT_TO_DEBUG_FILE(iRo""otFilenameNum)
//
// SAVE_NEWLINE_TO_DEBUG_FILE()
// #ENDIF
//
// CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M2_SON_gaming_exit")
//
//
// RETURN FALSE
// BREAK
//
// ENDSWITCH
//
// //
// RETURN TRUE
// BREAK
// ENDSWITCH
// BREAK
CASE FE_M_SON_smoking_weed_in_a_bong
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "Thats_Good_Shit_Dog" //(Uhhh...That's good shit.)
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_1@IDLE_A"
tAnimDialogueClip = "Thats_Some_Good_Shit"
BREAK
CASE 2
// sShit_anim = "That_Was_The_Whole" //(whoa That was the whole fucking chamber, dog. )
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_1@IDLE_A"
tAnimDialogueClip = "Whole_Chamber_Dog"
BREAK
CASE 3
// sShit_anim = "This_Is_Some_Serious" //(Oh, This is some serious bud. It's like Hydrotropic or something. )
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_1@IDLE_A"
tAnimDialogueClip = "Hydrotropic_Bud_Or_Something"
BREAK
CASE 4
// sShit_anim = "Dont_You_Dare_Judge" //(Don't you dare judge me, dad)
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_1@IDLE_A"
tAnimDialogueClip = "Dont_Dudge_Me_Dad"
BREAK
CASE 5
// // sShit_anim = "Hot_I_Need_Ice" //(Ahh! Hot! I need ice in this fucking chamber. )
// tAnimDialogueDict = "TIMETABLE@JIMMY@IG_1@IDLE_B"
// tAnimDialogueClip = "Hot_I_Need_Ice"
RETURN FALSE
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_SON_smoking_weed_in_a_bong [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M7_SON_jumping_jacks
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
SWITCH iRootFilenameNum
CASE 1 //Oh, God, I thought masturbation was exercise.
CASE 4 //Eugh. Come on.
CASE 7 //This. Is. Like. Impossible.
tAnimDialogueDict = "TIMETABLE@REUNITED@IG_2"
tAnimDialogueClip = "Jimmy_Masterbation"
BREAK
CASE 2 //Rolls. Flapping. Everywhere.
CASE 5 //I'm gonna be a better me.
CASE 8 //Argh. Argh.
tAnimDialogueDict = "TIMETABLE@REUNITED@IG_2"
tAnimDialogueClip = "Jimmy_RollsFlapping"
BREAK
CASE 3 //Oh, God, I'm going to get knocked out by my own man boobs.
CASE 6 //I need a burger.
CASE 9 //Come onnnn.
tAnimDialogueDict = "TIMETABLE@REUNITED@IG_2"
tAnimDialogueClip = "Jimmy_GetKnocked"
BREAK
DEFAULT
#IF IS_DEBUG_BUILD
IF ARE_STRINGS_EQUAL(rootLabel, sExpectedRootLabel)
CASSERTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), " [rootLabel: ", rootLabel, " == ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
ELSE
IF ARE_STRINGS_EQUAL(sDiddyRootLabel, sExpectedRootLabel)
CASSERTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), " [sDiddyRootLabel: ", sDiddyRootLabel, " == ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
ELSE
CASSERTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), " [rootLabel: ", rootLabel, " != ", sExpectedRootLabel, ", sDiddyRootLabel: ", sDiddyRootLabel, ", line: ", iRootFilenameNum, "]")
ENDIF
ENDIF
#ENDIF
#IF NOT IS_DEBUG_BUILD
CASSERTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), " [rootLabel: ", rootLabel, ", line: ", iRootFilenameNum, "]")
#ENDIF
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M_SON_in_room_asks_for_munchies
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
SWITCH iRootFilenameNum
CASE 1
//(When they said body high, they weren't bullshitting.)
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_3@SLEEPING"
tAnimDialogueClip = "Body_High2"
BREAK
CASE 2
//(Ahhh. I really got to start growing this strain.)
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_3@SLEEPING"
tAnimDialogueClip = "Grow_This_Strain"
BREAK
CASE 3
//(Ahhh. This shit really helps my glands.)
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_3@SLEEPING"
tAnimDialogueClip = "Helps_My_Glands"
BREAK
CASE 4
//(Dad! Dad! Can you bring me some food please? For your only son? )
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_3@SLEEPING"
tAnimDialogueClip = "Bring_Me_Some_Food"
BREAK
CASE 5
//(Ugh, my mouth is so dry. It's like the Sahara in here.)
tAnimDialogueDict = ""
tAnimDialogueClip = ""
RETURN TRUE
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_SON_in_room_asks_for_munchies [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M_SON_on_ecstasy_AND_friendly
SWITCH eFamilyMember
CASE FM_MICHAEL_SON
SWITCH iRootFilenameNum
CASE 1
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_5@IDLE_A"
tAnimDialogueClip = "Good_To_See_You"
BREAK
CASE 2
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_5@IDLE_A"
tAnimDialogueClip = "I_Dont_Tell_You"
BREAK
CASE 3
tAnimDialogueDict = "TIMETABLE@JIMMY@IG_5@IDLE_A"
tAnimDialogueClip = "Its_The_Big_Man"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_SON_on_ecstasy_AND_friendly [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M2_WIFE_in_face_mask
CASE FE_M7_WIFE_in_face_mask
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "idle_worry_lines" //(Have you seen the worry lines you've given me!)
tAnimDialogueDict = "TIMETABLE@AMANDA@FACEMASK@IDLE_A"
tAnimDialogueClip = "idle_worry_lines"
BREAK
CASE 2
// sShit_anim = "idle_old_hag" //(It's a waste of time! I'm an old hag.)
tAnimDialogueDict = "TIMETABLE@AMANDA@FACEMASK@IDLE_A"
tAnimDialogueClip = "idle_old_hag"
BREAK
CASE 3
// sShit_anim = "idle_years_wasted" //(When I think of the years I've wasted on you...)
tAnimDialogueDict = "TIMETABLE@AMANDA@FACEMASK@IDLE_A"
tAnimDialogueClip = "idle_years_wasted"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_WIFE_in_face_mask [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M_WIFE_passed_out_BED
CASE FE_M2_WIFE_passed_out_SOFA
CASE FE_M7_WIFE_passed_out_SOFA
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "idle_buzzed" //(I'm really buzzed.)
tAnimDialogueDict = "TIMETABLE@AMANDA@DRUNK@IDLE_A"
tAnimDialogueClip = "idle_buzzed"
BREAK
CASE 2
// sShit_anim = "idle_only_you" //(I only had a glass of pinot and a downer. Not sure what's wrong. Come here.)
tAnimDialogueDict = "TIMETABLE@AMANDA@DRUNK@IDLE_A"
tAnimDialogueClip = "idle_only_you"
BREAK
CASE 3
// sShit_anim = "idle_pinot" //(Oh. It's only you...)
tAnimDialogueDict = "TIMETABLE@AMANDA@DRUNK@IDLE_A"
tAnimDialogueClip = "idle_pinot"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_WIFE_passed_out [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M2_WIFE_sunbathing
CASE FE_M7_WIFE_sunbathing
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "idle_buzzed" //(Oh God, You're creeping me out. Uch.)
tAnimDialogueDict = "TIMETABLE@AMANDA@IG_5"
tAnimDialogueClip = "IG_5_YouRCreepingMeOut"
BREAK
CASE 2
// sShit_anim = "idle_only_you" //(Not now, Michael. I was almost happy.)
tAnimDialogueDict = "TIMETABLE@AMANDA@IG_5"
tAnimDialogueClip = "IG_5_NotNowMichael"
BREAK
CASE 3
// sShit_anim = "idle_pinot" //(Please. I was trying to forget what a mess you've made of my life. )
tAnimDialogueDict = "TIMETABLE@AMANDA@IG_5"
tAnimDialogueClip = "IG_5_IWasTryingToForget"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_WIFE_sunbathing [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M_WIFE_hangs_up_and_wanders
SWITCH eFamilyMember
CASE FM_MICHAEL_WIFE
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "IG_11_EXIT_OhShit" //(Uh huh, yes. Stop it!)
tAnimDialogueDict = "TIMETABLE@AMANDA@IG_11"
tAnimDialogueClip = "IG_11_EXIT_OhShit"
BREAK
CASE 2
// sShit_anim = "IG_11_EXIT_IMAFastLearner" //(You are so bad. )
tAnimDialogueDict = "TIMETABLE@AMANDA@IG_11"
tAnimDialogueClip = "IG_11_EXIT_IKnowHeIsInTherapy" //"IG_11_EXIT_IMAFastLearner"
BREAK
CASE 3
// sShit_anim = "IG_11_EXIT_IKnowHeIsInTherapy" //(Um hum, yes. I know, I know! Still.)
tAnimDialogueDict = "TIMETABLE@AMANDA@IG_11"
tAnimDialogueClip = "IG_11_EXIT_IKnowHeIsInTherapy"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_WIFE_hangs_up_and_wanders [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_T0_MICHAEL_hangs_up_and_wanders
SWITCH eFamilyMember
CASE FM_TREVOR_0_MICHAEL
SWITCH iRootFilenameNum
CASE 1
//TIMETABLE@MICHAEL@TALK_PHONEEXIT_A
//TALK_PHONE_Exit_A.anim
//TALK_PHONE_Exit_B.anim
//TALK_PHONE_Exit_C.anim
//(Doc Freidlander, I don't think tough love is going to work on this guy,)
tAnimDialogueDict = "TIMETABLE@MICHAEL@TALK_PHONEEXIT_A"
tAnimDialogueClip = "TALK_PHONE_Exit_A"
BREAK
CASE 2
//TIMETABLE@MICHAEL@TALK_PHONEEXIT_B
//TALK_PHONE_Exit_D.anim
//TALK_PHONE_Exit_E.anim
//(Please, baby. I know I was an asshole, okay? Just take one of my calls one day. Okay.)
tAnimDialogueDict = "TIMETABLE@MICHAEL@TALK_PHONEEXIT_B"
tAnimDialogueClip = "TALK_PHONE_Exit_D"
BREAK
CASE 3
//TIMETABLE@MICHAEL@TALK_PHONEEXIT_C
//TALK_PHONE_Exit_F.anim
//TALK_PHONE_Exit_G.anim
//(Look, Doc, I really don't think I'm enabling him ok? He does that all by himself.)
tAnimDialogueDict = "TIMETABLE@MICHAEL@TALK_PHONEEXIT_C"
tAnimDialogueClip = "TALK_PHONE_Exit_F"
BREAK
CASE 4
//TIMETABLE@MICHAEL@TALK_PHONEEXIT_D
//TALK_PHONE_Exit_H.anim
//TALK_PHONE_Exit_I.anim
//(Look Doc, all I'm saying is; you know how you spoke about my need to find humility? I think I might have found it.)
tAnimDialogueDict = "TIMETABLE@MICHAEL@TALK_PHONEEXIT_D"
tAnimDialogueClip = "TALK_PHONE_Exit_I"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "T0_MICHAEL_hangs_up_and_wanders [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M2_DAUGHTER_sunbathing
SWITCH eFamilyMember
CASE FM_MICHAEL_DAUGHTER
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "Im_Youre_Daughter" //(I'm your daughter, you pervert.)
tAnimDialogueDict = "TIMETABLE@TRACY@IG_3@IDLE_A"
tAnimDialogueClip = "Im_Youre_Daughter"
BREAK
CASE 2
// sShit_anim = "Get_Out_Of_The" //(Get out of the sun, dad. You're too old.)
tAnimDialogueDict = "TIMETABLE@TRACY@IG_3@IDLE_A"
tAnimDialogueClip = "Get_Out_Of_The"
BREAK
CASE 3
// sShit_anim = "Fucking_Old_Geezer" //(Fuckin' old geezer...jesus.)
tAnimDialogueDict = "TIMETABLE@TRACY@IG_3@IDLE_B"
tAnimDialogueClip = "Fucking_Old_Geezer"
BREAK
CASE 4
// sShit_anim = "Youll_Melt_Out_Here" //(You'll melt out here, big man.)
tAnimDialogueDict = "TIMETABLE@TRACY@IG_3@IDLE_B"
tAnimDialogueClip = "Youll_Melt_Out_Here"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M2_DAUGHTER_sunbathing [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M_DAUGHTER_crying_over_a_guy
SWITCH eFamilyMember
CASE FM_MICHAEL_DAUGHTER
SWITCH iRootFilenameNum
CASE 1
tAnimDialogueDict = "TIMETABLE@TRACY@IG_1@IDLE_A"
tAnimDialogueClip = "Of_Course_I_Go"
BREAK
CASE 2
tAnimDialogueDict = "TIMETABLE@TRACY@IG_1@IDLE_A"
tAnimDialogueClip = "Go_Stick_Youre_Head"
BREAK
CASE 3
tAnimDialogueDict = "TIMETABLE@TRACY@IG_1@IDLE_A"
tAnimDialogueClip = "Youre_All_The_Fucking"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_DAUGHTER_crying_over_a_guy [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M_DAUGHTER_Coming_home_drunk
SWITCH eFamilyMember
CASE FM_MICHAEL_DAUGHTER
SWITCH iRootFilenameNum
CASE 1 RETURN TRUE BREAK //You're the best.
CASE 2 //Parenting at its finest.
tAnimDialogueDict = "TIMETABLE@TRACY@IG_14@"
tAnimDialogueClip = "IG_14_ParentingAtItsFinest"
BREAK
CASE 3 //I wish all the boys were like you.
tAnimDialogueDict = "TIMETABLE@TRACY@IG_14@"
tAnimDialogueClip = "IG_14_IWishAll_A"
BREAK
CASE 4 RETURN TRUE BREAK //That wasn't so hard.
CASE 5 RETURN TRUE BREAK //Thank you.
CASE 6 RETURN TRUE BREAK //You ain't so bad, daddio.
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_DAUGHTER_Coming_home_drunk [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_M_MEXMAID_stealing_stuff_caught
SWITCH eFamilyMember
CASE FM_MICHAEL_MEXMAID
SWITCH iRootFilenameNum
CASE 1
tAnimDialogueDict = "TIMETABLE@MAID@IG_8@"
tAnimDialogueClip = "IG_8_IDLE_A" //"IG_8_P2_IBringThisToday"
BREAK
CASE 2
tAnimDialogueDict = "TIMETABLE@MAID@IG_8@"
tAnimDialogueClip = "IG_8_IDLE_A" //"IG_8_P3_ItLooksBroken"
BREAK
CASE 3
tAnimDialogueDict = "TIMETABLE@MAID@IG_8@"
tAnimDialogueClip = "IG_8_IDLE_A" //"IG_8_P4_ITakeHomeToPolish"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "M_MEXMAID_stealing_stuff_caught [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_F_AUNT_in_face_mask
SWITCH eFamilyMember
CASE FM_FRANKLIN_AUNT
SWITCH iRootFilenameNum
CASE 1
// sShit_anim = "idle_A_WhenWasYourLastTime" //(When's the last time you gave your auntie a foot rub, boy? These corns ain't never bit nobody.)
tAnimDialogueDict = "TIMETABLE@DENICE@IG_2"
tAnimDialogueClip = "idle_A_WhenWasYourLastTime"
BREAK
CASE 2
// sShit_anim = "idle_B_BoyU" //(Boy, you drive me sick with worry.)
tAnimDialogueDict = "TIMETABLE@DENICE@IG_2"
tAnimDialogueClip = "idle_B_BoyU"
BREAK
CASE 3
// sShit_anim = "idle_C_ImSoStressedOut" //(I am so stressed out, you've interrupted my menopause)
tAnimDialogueDict = "TIMETABLE@DENICE@IG_2"
tAnimDialogueClip = "idle_C_ImSoStressedOut"
BREAK
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "F_AUNT_in_face_mask [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
CASE FE_T1_FLOYD_on_phone_to_girlfriend
SWITCH eFamilyMember
CASE FM_TREVOR_1_FLOYD
SWITCH iRootFilenameNum
CASE 1
tAnimDialogueDict = "TIMETABLE@FLOYD@CALLING"
tAnimDialogueClip = "FL_IG_3_ThatsJustTheTv" //(Oh, That's just the TV. I got Fame or Shame on.)
BREAK
CASE 2 RETURN TRUE BREAK //Well, It might not be swearing, but it still hurts my feelings.
CASE 3 RETURN TRUE BREAK //How, How's Bill? Is He enjoying himself out there?
CASE 4 RETURN TRUE BREAK //Well It sounds like you're learning a lot at the conference.
CASE 5
tAnimDialogueDict = "TIMETABLE@FLOYD@CALLING"
tAnimDialogueClip = "FL_IG_3_NoTheCondoIsFine" //(N-n-n-no no, the condo is fine. It's fine)
BREAK
CASE 6 RETURN TRUE BREAK //You made any new friends out there? any uh, Male or female friends.
CASE 7
tAnimDialogueDict = "TIMETABLE@FLOYD@CALLING"
tAnimDialogueClip = "FL_IG_3_IAmNotBeingJealous" //(I ain't being jealous. I'm just interested in what you're up to.)
BREAK
CASE 8 RETURN TRUE BREAK //I tried your room last night and nobody was in.
CASE 9 RETURN TRUE BREAK //I just miss you so g-damn much.
CASE 10 RETURN TRUE BREAK //No, I understand that you can't say you love me with your work friends around, you know, but that don't explain why I aint able to.
CASE 11 RETURN TRUE BREAK //Now I'm the one hearing things. Who's that man in the back ground?
CASE 12 RETURN TRUE BREAK //Well you know, Maybe next time I can come on the conference with you. No? I'll stay here.
DEFAULT
CPRINTLN(DEBUG_FAMILY, "unrecognised root filename num: ", Get_String_From_FamilyEvent(eFamilyEvent), "T1_FLOYD_on_phone_to_girlfriend [rootLabel: ", rootLabel, ", ", sExpectedRootLabel, ", line: ", iRootFilenameNum, "]")
RETURN FALSE
BREAK
ENDSWITCH
//
RETURN TRUE
BREAK
ENDSWITCH
BREAK
DEFAULT
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "invalid eFamilyEvent ", Get_String_From_FamilyMember(eFamilyMember), " in PRIVATE_Update_Family_DialogueAnim(", Get_String_From_FamilyEvent(eFamilyEvent), ") \"", rootLabel, "\", ", iRootFilenameNum)
CASSERTLN(DEBUG_FAMILY, "invalid eFamilyEvent ", Get_String_From_FamilyMember(eFamilyMember), " in PRIVATE_Update_Family_DialogueAnim(", Get_String_From_FamilyEvent(eFamilyEvent), ") \"", rootLabel, "\", ", iRootFilenameNum)
#ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL PRIVATE_Update_Family_DialogueAnim(PED_INDEX PedIndex, enumFamilyMember eFamilyMember, enumFamilyEvents eFamilyEvent,
TEXT_LABEL_63 &tAnimDict, TEXT_LABEL_63 &tAnimClip,
VECTOR vFamilyScenePos, FLOAT fFamilySceneHead)
vFamilyScenePos = vFamilyScenePos
fFamilySceneHead = fFamilySceneHead
IF NOT IS_STRING_NULL_OR_EMPTY(tAnimDict)
AND NOT IS_STRING_NULL_OR_EMPTY(tAnimClip)
//#1718486
#IF IS_DEBUG_BUILD
IF ARE_STRINGS_EQUAL(tAnimDict, "null")
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "somehow a null dict eFamilyMember ", Get_String_From_FamilyMember(eFamilyMember), " in PRIVATE_Update_Family_DialogueAnim(\"", Get_String_From_FamilyEvent(eFamilyEvent), "\", 1718486)")
CASSERTLN(DEBUG_FAMILY, "somehow a null dict eFamilyMember ", Get_String_From_FamilyMember(eFamilyMember), " in PRIVATE_Update_Family_DialogueAnim(\"", Get_String_From_FamilyEvent(eFamilyEvent), "\", 1718486)")
#ENDIF
RETURN FALSE
ENDIF
#ENDIF
// // // // //
IF IS_ENTITY_PLAYING_ANIM(PedIndex, tAnimDict, tAnimClip)
#IF IS_DEBUG_BUILD
TEXT_LABEL_63 str
str = ("tDialogueClip: ")
str += (tAnimClip)
str += " "
str += GET_STRING_FROM_FLOAT(GET_ENTITY_ANIM_CURRENT_TIME(PedIndex, tAnimDict, tAnimClip))
DrawDebugFamilyTextWithOffset(str, GET_ENTITY_COORDS(PedIndex, FALSE), 2, HUD_COLOUR_RED)
#ENDIF
CONST_FLOAT fANIM_CLIP_MAX_TIME 0.99
FLOAT fAnimClipCurrentTime = GET_ENTITY_ANIM_CURRENT_TIME(PedIndex, tAnimDict, tAnimClip)
IF fAnimClipCurrentTime <= fANIM_CLIP_MAX_TIME
RETURN TRUE
ENDIF
ENDIF
tAnimDict = ""
tAnimClip = ""
ENDIF
IF IS_ANY_SPEECH_PLAYING(PedIndex)
TEXT_LABEL_63 tAnimDialogueDict, tAnimDialogueClip
IF PRIVATE_GetTextLabelFromConv(eFamilyMember, eFamilyEvent, tAnimDialogueDict, tAnimDialogueClip)
REQUEST_ANIM_DICT(tAnimDialogueDict)
IF HAS_ANIM_DICT_LOADED(tAnimDialogueDict)
IF NOT IS_ENTITY_PLAYING_ANIM(PedIndex, tAnimDialogueDict, tAnimDialogueClip)
TEXT_LABEL_63 tFamilyAnimDict
TEXT_LABEL_63 tFamilyAnimClip
ANIMATION_FLAGS eFamilyAnimFlag
enumFamilyAnimProgress eFamilyAnimProgress
IF PRIVATE_Get_FamilyMember_Anim(eFamilyMember, eFamilyEvent,
tFamilyAnimDict, tFamilyAnimClip, eFamilyAnimFlag, eFamilyAnimProgress)
#IF IS_DEBUG_BUILD
#IF NOT IS_JAPANESE_BUILD
IF (eFamilyAnimProgress <> FAP_2_dialogue)
IF (eFamilyEvent = FE_T0_TREVOR_doing_a_shit)
AND (eFamilyAnimProgress = FAP_3_array)
CPRINTLN(DEBUG_FAMILY, "eFamilyAnimProgress <> FAP_2_dialogue for ", Get_String_From_FamilyEvent(eFamilyEvent))
ELSE
CASSERTLN(DEBUG_FAMILY, "eFamilyAnimProgress <> FAP_2_dialogue for ", Get_String_From_FamilyEvent(eFamilyEvent), ", eFamilyAnimProgress: FAP_", eFamilyAnimProgress)
ENDIF
ENDIF
#ENDIF
#ENDIF
IF IS_BITMASK_ENUM_AS_ENUM_SET(eFamilyAnimFlag, AF_LOOPING)
CLEAR_BITMASK_ENUM_AS_ENUM(eFamilyAnimFlag, AF_LOOPING)
ELSE
//
ENDIF
IF IS_BITMASK_ENUM_AS_ENUM_SET(eFamilyAnimFlag, AF_USE_KINEMATIC_PHYSICS)
SET_RAGDOLL_BLOCKING_FLAGS(PedIndex, RBF_PLAYER_IMPACT) //#1421348
SET_PED_CAN_EVASIVE_DIVE(PedIndex, FALSE)
ENDIF
IK_CONTROL_FLAGS ikFlags
PRIVATE_Get_FamilyMember_Anim_Ik_Control_Flags(eFamilyMember, eFamilyEvent, ikFlags)
FLOAT blendOutDelta = NORMAL_BLEND_OUT
IF eFamilyEvent = FE_M_WIFE_hangs_up_and_wanders
OR eFamilyEvent = FE_M_MEXMAID_stealing_stuff_caught
blendOutDelta = WALK_BLEND_OUT
ENDIF
IF eFamilyEvent = FE_M_WIFE_hangs_up_and_wanders
IF IS_BITMASK_ENUM_AS_ENUM_SET(eFamilyAnimFlag, AF_DISABLE_FORCED_PHYSICS_UPDATE)
//
ELSE
SET_BITMASK_ENUM_AS_ENUM(eFamilyAnimFlag, AF_DISABLE_FORCED_PHYSICS_UPDATE)
ENDIF
blendOutDelta = SLOW_BLEND_OUT
ENDIF
TASK_PLAY_ANIM(PedIndex, tAnimDialogueDict, tAnimDialogueClip,
NORMAL_BLEND_IN, blendOutDelta, -1,
eFamilyAnimFlag, 0, DEFAULT, ikFlags)
tAnimDict = tAnimDialogueDict
tAnimClip = tAnimDialogueClip
RETURN TRUE
ENDIF
RETURN FALSE
ENDIF
#IF IS_DEBUG_BUILD
TEXT_LABEL_63 str
str = ("dialogueAnim: ")
str += (tAnimDialogueClip)
DrawDebugFamilyTextWithOffset(str, GET_ENTITY_COORDS(PedIndex, FALSE), 2, HUD_COLOUR_PINK)
#ENDIF
// RETURN TRUE
ENDIF
RETURN FALSE
ENDIF
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_FAMILY, "invalid eFamilyMember ", Get_String_From_FamilyMember(eFamilyMember), " in PRIVATE_Update_Family_DialogueAnim(", Get_String_From_FamilyEvent(eFamilyEvent))
#ENDIF
RETURN FALSE
ENDIF
RETURN FALSE
ENDFUNC