Files
gtav-src/script/dev_ng/singleplayer/scripts/Minigames/Taxi/Taxi_Dialogue.sch
T
2025-09-29 00:52:08 +02:00

358 lines
9.5 KiB
XML
Executable File

USING "script_MATHS.sch" //need my bits defined but get cycle header include cause of taxi_globals.sch
CONST_FLOAT TAXIOJ_DIALOGUE_Q_DELAY_BEFORE_RESUME_LINE 1.5
CONST_INT CONST_TAXIOJ_SIZE_Q 5
CONST_INT CONST_TAXI_OJ_NUM_RESUME_INTERRUPT_LINES 5
CONST_INT CONST_TAXI_OJ_LINE_NUM_TO_CLOSE_DIALOGUE_Q 15 //Use this when you don't want the dialogue queue playing anymore lines period in conjunction with
//Example: CLEAR_DIALOGUE_QUEUE(tDialogueLine)
// CLOSE_DIALOGUE_QUEUE(tTaxiOJ_DQ_Data,CONST_TAXI_OJ_LINE_NUM_TO_CLOSE_DIALOGUE_Q)
// Different States for Dialogue Q
ENUM TAXIOJ_DIALOGUE_Q_STATES
TDQ_STOPPED = -1,
TDQ_CLOSED,
TDQ_PLAY_LINE,
TDQ_CONFIRM_LINE_IS_PLAYING,
TDQ_WAIT_FOR_INTERRUPTION,
TDQ_ADD_DELAY_BEFORE_RESUME,
TDQ_RESUME_FROM_INTERUPTION,
TDQ_RESUME_CONVERSATION,
TDQ_SPECIAL_CASE_FOR_LAST_LINE_IN_CONVERSATION_INTERRUPTION,
TDQ_TOTAL_NUM_STATES
ENDENUM
ENUM TAXI_DQ_LINE_BIT_FLAGS
TAXI_DQL_TIME_SENSITIVE = BIT0, //whether this is time sensitive otherwise it's just MISSION CRITICAL
TAXI_DQL_VALID = BIT1, //if this is a valid spot in the queue
TAXI_DQL_CURRENTLY_PLAYING = BIT2, //is this line currently playing
TAXI_DQL_DONE_PLAYING = BIT3, //is this line done playing
TAXI_DQL_TOTAL = BIT30
ENDENUM
STRUCT TAXI_OJ_DQ_CONVERSATION_LINE
TEXT_LABEL_23 sLineToSay
INT tTimeStamp
INT iDQFlagBits //See TAXI_DQ_LINE_BIT_FLAGS above
ENDSTRUCT
STRUCT TAXI_OJ_DIALOGUE_Q_DATA
TAXIOJ_DIALOGUE_Q_STATES tDialogueQStates = TDQ_STOPPED
TEXT_LABEL_23 sResumeLabel //the line to resume from
TEXT_LABEL_23 sTexLabelCurrentlyPlaying //the line Root to check if it's playing using
TEXT_LABEL_23 sCurrentConvoPlaying //keeps track of the conversation playing so we can see how many lines are remaining before it is completey finished
TEXT_LABEL_23 sLabelNowPlaying //this stores the label currently playing NOTE * Label is the line, where Root is the entire conversation
INT iResumeDXBitMask // needed by GET_TAXI_OJ_LINE_TO_SAY to loop through all the different resume one-offs
INT iDialogueQBITS //this Bitmask can be used as a way to verify that a line has played in global space(currently NOT USED)
INT iCurrentDQLine = 0 //the iterator into the dialogueQ array
INT iSpecialMissionBits
BOOL bPlayerWasInterupted //use this flag to track whether or not the player was the last one talking before an interuption kicked in
ENDSTRUCT
ENUM TAXI_SPECIAL_DQ_BITS
TAXI_SQB_TTB_BUMP_DROPPED = BIT0,
TAXI_SQB_NUM = BIT30
ENDENUM
ENUM TAXI_GATE_BITS
TAXI_GATE_CLEAR_PICKUP = BIT0,
TAXI_GATE_CLEAR_DROPOFF = BIT1,
TAXI_GATE_RETURN_TO_TAXI = BIT2,
TAXI_GATE_REGIVE_OBJ = BIT3,
TAXI_GATE_CYI_WAIT_PASS = BIT28,
TAXI_GATE_CYI_RETURN_RENDEVOUS = BIT29,
TAXI_GATES_NUM = BIT30
ENDENUM
ENUM TAXI_DIALOGUE_MISSION_SPECIFIC_FLAG_BITS
TAXI_DMSFB_BIT0 = BIT0,
TAXI_DMSFB_BIT1 = BIT1,
TAXI_DMSFB_BIT2 = BIT2,
TAXI_DMSFB_TOTAL = BIT30
ENDENUM
ENUM TAXI_DIALOGUE_FLAG_BITS
TAXI_DXF_SICK1 = BIT0,
TAXI_DXF_SICK2 = BIT1,
TAXI_DXF_TURNS1 = BIT2,
TAXI_DXF_TURNS2 = BIT3,
TAXI_DXF_CARHIT1 = BIT4,
TAXI_DXF_CARHIT2 = BIT5,
// TAXI_DXF_AIR1 = BIT6,
// TAXI_DXF_AIR2 = BIT7,
// TAXI_DXF_HITNR1 = BIT8,
// TAXI_DXF_HITNR2 = BIT9,
// TAXI_DXF_NEARMISS1 = BIT10,
// TAXI_DXF_NEARMISS2 = BIT11,
TAXI_DXF_SIDEWALK1 = BIT12,
TAXI_DXF_SIDEWALK2 = BIT13,
TAXI_DXF_LANE1 = BIT14,
TAXI_DXF_LANE2 = BIT15,
TAXI_DXF_LIGHT1 = BIT16,
TAXI_DXF_LIGHT2 = BIT17,
TAXI_DXF_RADIO_CHANGE = BIT18,
//TAXI_DXF_RADIO_LIKE = BIT19,
TAXI_DXF_RADIO_CHANGE2 = BIT20,
TAXI_DXF_THANKS = BIT21,
TAXI_DXF_MAKEPAY = BIT22,
TAXI_DXF_FORGOT = BIT23,
TAXI_DXF_RETURN = BIT24,
TAXI_DXF_RUNOFF = BIT25,
TAXI_DXF_BANTER = BIT26,
TAXI_DXF_BANTER2 = BIT27,
TAXI_DXF_KILLEDTHIEF = BIT28,
TAXI_DXF_REMINDCYIWAIT = BIT29,
TAXI_DXF_TOTAL_CLEAR = BIT30
ENDENUM
ENUM TAXI_REACT_DIALOGUE_FLAGS
TAXI_DXF_AIR1 = BIT0,
TAXI_DXF_AIR2 = BIT1,
TAXI_DXF_AIR3 = BIT2,
TAXI_DXF_HITNR1 = BIT3,
TAXI_DXF_HITNR2 = BIT4,
TAXI_DXF_HITNR3 = BIT5,
TAXI_DXF_HITNR4 = BIT6,
TAXI_DXF_NEARMISS1 = BIT7,
TAXI_DXF_NEARMISS2 = BIT8,
TAXI_DXF_NEARMISS3 = BIT9,
TAXI_DXF_SWRV1 = BIT10,
TAXI_DXF_SWRV2 = BIT11,
TAXI_DXF_SWRV3 = BIT12
ENDENUM
ENUM TAXI_DIALOGUE_FLAG_BITS_2
TAXI_DXF2_STOP_CLOSE1 = BIT0,
TAXI_DXF2_STOP_CLOSE2 = BIT1,
TAXI_DXF2_STOP_CLOSE3 = BIT2,
TAXI_DXF_BORED1 = BIT3,
TAXI_DXF_BORED2 = BIT4,
TAXI_DXF_BORED3 = BIT5,
TAXI_DRB_ROLLED1 = BIT6,
TAXI_DRB_ROLLED2 = BIT7,
// TAXI_DXF_SWRV1 = BIT8,
// TAXI_DXF_SWRV2 = BIT9,
TAXI_DXF_RVRS1 = BIT10,
TAXI_DXF_RVRS2 = BIT11,
TAXI_DXF_BANTER3 = BIT12,
TAXI_DXF_DEST_BANT = BIT13,
TAXI_DXF_SEEN_DEST = BIT14,
TAXI_DXF_SEEN_DEST_2 = BIT15,
TAXI_DXF_CC_BANTER = BIT16,
TAXI_DXF_CC_BANTER2 = BIT17,
TAXI_DXF_CC_TTB_BANTER = BIT18,
TAXI_DXF_BANTER4 = BIT19,
TAXI_DXF_CARHIT3 = BIT20,
TAXI_DXF_NOPUKE1 = BIT21,
TAXI_DXF_NOPUKE2 = BIT22,
TAXI_DXF_CC_CLOSE1 = BIT23,
TAXI_DXF_CC_CLOSE2 = BIT24,
TAXI_DXF_CC_CLOSE3 = BIT25,
TAXI_DXF_RADIO_LIKE = BIT26,
TAXI_DXF_RADIO_LIKE2 = BIT27,
TAXI_DXF_CC_DROPOFF = BIT28,
// TAXI_DXF_NEARMISS2 = BIT11,
// TAXI_DXF_SIDEWALK1 = BIT12,
// TAXI_DXF_SIDEWALK2 = BIT13,
// TAXI_DXF_LANE1 = BIT14,
// TAXI_DXF_LANE2 = BIT15,
// TAXI_DXF_LIGHT1 = BIT16,
// TAXI_DXF_LIGHT2 = BIT17,
// TAXI_DXF_RADIO_CHANGE = BIT18,
// TAXI_DXF_RADIO_LIKE = BIT19,
// TAXI_DXF_RADIO_CHANGE2 = BIT20,
// TAXI_DXF_THANKS = BIT21,
// TAXI_DXF_MAKEPAY = BIT22,
// TAXI_DXF_FORGOT = BIT23
// TAXI_DXF_RETURN = BIT24
// TAXI_DXF_RUNOFF = BIT25
// TAXI_DXF_BANTER = BIT26
TAXI_DXF2_TOTAL_CLEAR = BIT30
ENDENUM
ENUM TAXI_DIALOGUE_INDEX
TAXI_DISPATCH_DIRECTIONS = 0,
TAXI_OBJ_PICKUP, //Obj - "Pick up ~yPassenger"
TAXI_OBJ_LEFT_CAR,
TAXI_OBJ_RETURN,
TAXI_DI_HAIL, //Dialogue- "Taxi!"
TAXI_OBJ_PU_PASSENGER,
TAXI_DI_RATE_PICKUP,
TAXI_DI_TTB_SHOP,
TAXI_DI_OBJ,
TAXI_DI_GREET,
TAXI_OBJ_GIVE_MAIN,
TAXI_OBJ_GYN,
TAXI_OBJ_GYB,
TAXI_DI_FOLLOW_CAR_BARKS,
TAXI_DI_VARIABLE_BANTER,
TAXI_DI_BANTER, //10
TAXI_DI_BANTER_2,
TAXI_DI_BANTER_3,
TAXI_DI_BANTER_4,
TAXI_DI_BANTER_5,
TAXI_DI_TTB_BANTER,
TAXI_DI_SICK_WHOA,
TAXI_DI_DIDNT_PUKE,
TAXI_DI_IKW_SEEPT,
TAXI_OBJ_IKW_DROPOFF,
TAXI_DI_GET_CLOSER,
TAXI_DI_TIME_FAST,
TAXI_DI_TIME_BAD,
TAXI_DI_1ST_STOP,
TAXI_OBJ_WAIT_PASS, //20
TAXI_DI_TO_AIRPORT_AMAZING,
TAXI_DI_TO_AIRPORT_AVG,
TAXI_DI_TO_AIRPORT_ASS,
TAXI_OBJ_GO_AIRPORT,
TAXI_DI_AIRPORT_BANTER,
TAXI_DI_SEEN_DESTINATION,
TAXI_DI_SEEN_DESTINATION_2,
TAXI_DI_DROP_OFF,
TAXI_DI_GROUP_DROPOFF,
TAXI_DI_GROUP_DROPOFF_ASS,
TAXI_DI_GROUP_DROPOFF2,
TAXI_DI_GROUP_DROPOFF2_GOOD,
TAXI_DI_GROUP_DROPOFF2_BAD,
TAXI_DI_GROUP_DROPOFF3,
TAXI_OBJ_CC_2, //30
TAXI_OBJ_CC_3,
TAXI_OBJ_DROP,
TAXI_DI_HORN_HONK,
TAXI_DI_COMPLETE_STOP,
TAXI_LOSE_JEWELRY_POL,
TAXI_DI_WENT_WANTED,
TAXI_DI_ESCAPE_POLICE, //36
TAXI_OBJ_POLICE,
TAXI_DI_POLICE_LOST,
TAXI_DI_POLICE_ARREST,
TAXI_DI_CYI_GET_BACK_TO_CAR,
TAXI_DI_CYI_DONT_FOLLOW_ME,
TAXI_OBJ_CYI_RETURN_WAIT,
TAXI_DI_ENEMY_KILL,
TAXI_DI_ENEMY_EVADED,
TAXI_DI_PICKUP_MONEY,
TAXI_DI_PUKE,
TAXI_DI_PUKE_REACT_GOOD,
TAXI_DI_PUKE_REACT_BAD,
TAXI_DI_PUKE_PLAYER_REACT,
TAXI_DI_AGGRO,
TAXI_DI_SHOOTING,
TAXI_DI_OFFROAD,
TAXI_DI_OFFROAD_CHALLENGE,
TAXI_DI_REVERSE,
TAXI_DI_SWERVE,
TAXI_DI_POWERSLIDING,
TAXI_DI_COLLISION,
TAXI_DI_COLLISION_BIG,
TAXI_DI_ROLLED,
TAXI_DI_NEARMISS,
TAXI_DI_AIRBORN,
TAXI_DI_QUICKSTOP,
TAXI_DI_SPEEDING,
TAXI_DI_SIDEWALKIN,
TAXI_DI_OPPLANE,
TAXI_DI_RANRED,
TAXI_DI_HITNRUN,
TAXI_DI_BORING,
TAXI_DI_RADIO_CHANGE,
TAXI_DI_RADIO_LIKE,
TAXI_DI_RADIO_CHANGE_NEUTRAL,
TAXI_DI_RADIO_HINT,
TAXI_DI_FLEE,
TAXI_DI_AMBUSHED,
TAXI_DI_AMBUSHED_TALK,
TAXI_DI_AMBUSH_EXTRA_BANTER,
TAXI_DI_EXCITED_TO_BORED,
TAXI_DI_BORED_TO_EXCITED,
//Clown car banters
TAXI_DI_BUILD_HOTBOX,
TAXI_DI_BUILD_HOTBOX_ONE_LINE,
TAXI_DI_INIT_HOTBOX,
TAXI_DI_CC_BANTER,
TAXI_DI_CC_BANTER2,
TAXI_DI_CC_CLOSE,
TAXI_OBJ_RETURN_TO_PED,
//Tip ratings
TAXI_DI_RATE_TIP_AMAZING,
TAXI_DI_RATE_TIP_AVERAGE,
TAXI_DI_RATE_TIP_ASS,
TAXI_DI_JOKE,
TAXI_DI_RUNOFF,
TAXI_DI_RUNOFF_SHOUTS,
TAXI_DI_KILLED_THIEF,
TAXI_OBJ_RUNOFF,
TAXI_DI_MAKE_PAY,
TAXI_DI_MAKE_PAY_END,
TAXI_OBJ_GET_RUNAWAY_MONEY,
TAXI_DI_FORGOT,
TAXI_DI_CUTSCENE,
TAXI_DI_POST_CUTSCENE,
TAXI_DI_ENEMY_EGG_ON,
TAXI_DI_ENEMY_EGG_ON_2,
TAXI_DI_ENEMY_FIRES,
TAXI_DI_PLAYER_RUNS,
TAXI_DI_PLAYER_WINS_FAIR_FIGHT,
TAXI_DI_PUT_GUN_AWAY,
TAXI_DI_GIRL_NOTICE,
TAXI_DI_START_FIGHT,
TAXI_DI_GIRL_EGGON_PLAYER_NO_HIT,
TAXI_DI_GIRL_EGGON_BF,
TAXI_DI_GIRL_EGGON_PLAYER_WINNING,
TAXI_DI_GIRL_LEAVE,
TAXI_DI_GIRL_BF_KILLED,
TAXI_DI_GIRL_KOD,
TAXI_DI_GIRL_HELP,
TAXI_DI_GIRL_DEST,
TAXI_DI_GIRL_BANTER,
TAXI_DI_GIRL_THANKS,
TAXI_DI_GET_CAR,
TAXI_OBJ_GET_CAR,
TAXI_DI_JACKED_CAR,
TAXI_DI_WRONG_WAY,
TAXI_OBJ_FORGOT,
TAXI_DI_FOLLOW,
TAXI_OBJ_FTC2,
TAXI_DI_SHOOT,
TAXI_DI_RETURN,
TAXI_DI_EXCEPTION_DISABLED,
TAXI_DI_EMPTY, //Send here for debug only
TAXI_DI_NUM_DIALOGUE
ENDENUM
//EOF