922 lines
27 KiB
XML
Executable File
922 lines
27 KiB
XML
Executable File
//╒═════════════════════════════════════════════════════════════════════════════╕
|
|
//│ Communication Controller Global Header │
|
|
//╞═════════════════════════════════════════════════════════════════════════════╡
|
|
//│ │
|
|
//│ AUTHOR: Ben Rollinson │
|
|
//│ DATE: 13/10/10 │
|
|
//│ DESCRIPTION: All global definitions required by the communication │
|
|
//│ controller system. │
|
|
//│ │
|
|
//╘═════════════════════════════════════════════════════════════════════════════╛
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "cellphone_globals.sch"
|
|
USING "vector_id_globals.sch"
|
|
USING "email_generated_globals.sch"
|
|
USING "flow_commands_enums_game.sch"
|
|
USING "script_maths.sch"
|
|
USING "code_control_globals.sch"
|
|
USING "candidate_enums.sch"
|
|
|
|
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//════════════════════════════╡ Global Constants ╞═══════════════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
CONST_INT CC_MAX_QUEUED_CALLS 9
|
|
CONST_INT CC_MAX_QUEUED_TEXTS 8
|
|
CONST_INT CC_MAX_QUEUED_EMAILS 10
|
|
CONST_INT CC_MAX_MISSED_CALLS 4
|
|
CONST_INT CC_MAX_CHAT_CALLS 30
|
|
CONST_INT CC_MAX_SENT_TEXTS 3
|
|
|
|
CONST_INT CC_GLOBAL_DELAY_BETWEEN_COMMS 20000 //Time to wait between communications going to the player.
|
|
CONST_INT CC_GLOBAL_DELAY_POST_MISSION 30000 //Time to wait after a mission has been played before allowing communications.
|
|
CONST_INT CC_CHARACTER_DELAY_BETWEEN_COMMS 20000 //Time to wait between communications going to the player from the same character.
|
|
CONST_INT CC_DELAY_POST_AMBIENT_SWITCH 8000 //Time to wait after an off-mission switch before allowing communications.
|
|
CONST_INT CC_END_OF_MISSION_QUEUE_TIME 6000 //Standard delay time for an end of mission call after a mission passes.
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//══════════════════════════════╡ Global Enums ╞═════════════════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
HASH_ENUM CC_CommID
|
|
//Normal calls.
|
|
CALL_AGENCY_2_TRIGGER,
|
|
CALL_AGENCY_P_M_DONE,
|
|
CALL_AGENCY_P_F_DONE,
|
|
CALL_B_AGENCY_P_M_READY,
|
|
CALL_B_AGENCY_P_M_WAIT,
|
|
CALL_B_AGENCY_P_F_READY,
|
|
CALL_B_AGENCY_P_F_WAIT,
|
|
// CALL_AGENCY_3_M_UNLOCK,
|
|
// CALL_AGENCY_3_F_UNLOCK,
|
|
CALL_AGENCY_3A_DONE,
|
|
CALL_AGENCY_3B_DONE,
|
|
CALL_ARM2_UNLOCK,
|
|
CALL_CARDMG_ARM2_UNLOCK,
|
|
CALL_ARM3_DONE,
|
|
CALL_ASS1_UNLOCK,
|
|
CALL_ASS1_DONE,
|
|
CALL_CARS1_UNLOCK,
|
|
CALL_CARS4_F_DONE,
|
|
CALL_CHIN1_UNLOCK,
|
|
CALL_DOCKS_POST_PLAN,
|
|
CALL_DOCKS_POST_PLANALT,
|
|
CALL_B_DOCKS_POST_PLAN_FLYING,
|
|
CALL_DOCKS_PREP1_DONE_SOME,
|
|
CALL_DOCKS_PREP1_DONE_ALL,
|
|
CALL_DOCKS_2_T_UNLOCK,
|
|
CALL_EXILE_1_END,
|
|
CALL_EXILE_CALL1,
|
|
CALL_EXILE_CALL2,
|
|
CALL_EXILE_AMANDA,
|
|
CALL_EXILE_STEVE,
|
|
CALL_EXILE_M_MARTIN1,
|
|
CALL_EXILE_M_MARTIN2,
|
|
CALL_EXILE_M_MARTIN3,
|
|
CALL_EXILE_M_MARTIN4,
|
|
CALL_EXILE_T_MARTIN1,
|
|
CALL_EXILE_T_MARTIN2,
|
|
CALL_EXILE_T_MARTIN3,
|
|
CALL_EXILE_T_MARTIN4,
|
|
CALL_EPSILON_DESERT_NEAR,
|
|
CALL_EPSILON_DESERT_DONE,
|
|
CALL_EPSILON8_STOLE,
|
|
CALL_EPSILON8_DONE,
|
|
CALL_FAM4_DONE,
|
|
CALL_FAM5_DONE,
|
|
CALL_FIB3_M_TRIGGER,
|
|
CALL_FIB3_T_TRIGGER,
|
|
CALL_FIB4I_DONE,
|
|
CALL_FIB4_P1_M_DONE,
|
|
CALL_FIB4_P1_F_DONE,
|
|
CALL_FIB4_P1_T_DONE,
|
|
CALL_FIB4_P2_M_DONE,
|
|
CALL_FIB4_P2_F_DONE,
|
|
CALL_FIB4_P2_T_DONE,
|
|
CALL_FIB4_P4_M_DONE,
|
|
CALL_FIB4_P4_F_DONE,
|
|
CALL_FIB4_P4_T_DONE,
|
|
CALL_FIB4_P5_M_DONE,
|
|
CALL_FIB4_P5_F_DONE,
|
|
CALL_FIB4_P5_T_DONE,
|
|
CALL_FIB4_PREPS_DONE,
|
|
CALL_FIB4_PREPS_DONE_WAIT,
|
|
CALL_FIB4_M_UNLOCK,
|
|
CALL_FIB4_F_UNLOCK,
|
|
CALL_FIB4_T_UNLOCK,
|
|
CALL_FIB4_GO_TIME,
|
|
CALL_FIN_CHOICE_1A,
|
|
CALL_FIN_CHOICE_1B,
|
|
CALL_FIN_CHOICE_2A,
|
|
CALL_FIN_CHOICE_2B,
|
|
CALL_FIN_CHOICE_3,
|
|
CALL_FIN_TANISHA,
|
|
CALL_FIN_AMANDA,
|
|
CALL_FIN_DAVE,
|
|
CALL_FIN_DEVIN,
|
|
CALL_FIN_LAMAR,
|
|
CALL_FIN_MDEAD1,
|
|
CALL_FIN_MDEAD2,
|
|
CALL_FIN_MDEAD3,
|
|
CALL_FIN_STEVE,
|
|
CALL_FIN_TDEAD1,
|
|
CALL_FIN_TDEAD2,
|
|
CALL_FINH_PA_M_DONE,
|
|
CALL_FINH_PA_F_DONE,
|
|
CALL_FINH_PA_T_DONE,
|
|
CALL_FINH_PB_M_DONE,
|
|
CALL_FINH_PB_F_DONE,
|
|
CALL_FINH_PB_T_DONE,
|
|
CALL_FINH_PC1_M_DONE,
|
|
CALL_FINH_PC1_F_DONE,
|
|
CALL_FINH_PC1_T_DONE,
|
|
CALL_FINH_PC2_M_DONE,
|
|
CALL_FINH_PC2_F_DONE,
|
|
CALL_FINH_PC2_T_DONE,
|
|
CALL_FINH_PC_M_DONE,
|
|
CALL_FINH_PC_F_DONE,
|
|
CALL_FINH_PC_T_DONE,
|
|
CALL_FINH_PD_M_DONE,
|
|
CALL_FINH_PD_F_DONE,
|
|
CALL_FINH_PD_T_DONE,
|
|
CALL_FINH_PE_M_DONE,
|
|
CALL_FINH_PE_F_DONE,
|
|
CALL_FINH_PE_T_DONE,
|
|
CALL_B_FINH_P_READY,
|
|
CALL_B_FINH_P_PREPS,
|
|
CALL_B_FINH_P_STING,
|
|
CALL_B_FINH_P_GETAW,
|
|
CALL_B_FINH_P_DRILL,
|
|
CALL_B_FINH_P_TRAIN,
|
|
CALL_B_FINH_P_GAUNT,
|
|
CALL_FRAN_CHOP_UNLOCK,
|
|
CALL_JEWEL_SETUP_UNLOCK,
|
|
CALL_JEWEL_POST_PLAN,
|
|
CALL_JEWEL_PREP1A_DONE_UNLOCK_P2A,
|
|
CALL_JEWEL_PREP1A_DONE_NEED_P2A,
|
|
CALL_JEWEL_PREP2A_DONE,
|
|
CALL_M_JHEIST_PAY,
|
|
CALL_F_JHEIST_PAY,
|
|
CALL_HACKER_1,
|
|
CALL_HACKER_2,
|
|
CALL_HACKER_3,
|
|
CALL_HACKER_4,
|
|
CALL_MIKE_1,
|
|
CALL_MIKE_3,
|
|
CALL_MICHAEL4_M_UNLOCK,
|
|
CALL_MIKE_4,
|
|
CALL_PAP3A_DONE,
|
|
CALL_PATRICIA_1,
|
|
CALL_PATRICIA_2,
|
|
CALL_PATRICIA_3,
|
|
CALL_RURAL_PREP_DONE1,
|
|
CALL_B_RURAL_PREP_DONE1_WAIT,
|
|
CALL_RURAL_PREP_DONE2,
|
|
CALL_B_RURAL_PREP_DONE2_WAIT,
|
|
CALL_RURAL_HEIST_UNLOCK,
|
|
CALL_SHRINK1_UNLOCK,
|
|
CALL_SOLOMON1_DONE,
|
|
CALL_SOLOMON3_DONE,
|
|
CALL_DIVING_DONE,
|
|
CALL_SONAR_COLLECT_DONE,
|
|
CALL_TRV5_LESCALL,
|
|
CALL_RE_BURIAL_M_DONE,
|
|
CALL_RE_BURIAL_F_DONE,
|
|
CALL_RE_BURIAL_T_DONE,
|
|
CALL_RACES_DONE,
|
|
CALL_PROP_TOWING,
|
|
CALL_PROP_GOLF_T,
|
|
CALL_PROP_GOLF_M,
|
|
CALL_PROP_GOLF_F,
|
|
CALL_PROP_CINEMA_M,
|
|
CALL_PROP_TAXI_F,
|
|
|
|
//Chat calls.
|
|
CHAT_AMA01,
|
|
CHAT_AMA02,
|
|
CHAT_AMA03,
|
|
CHAT_AMA04,
|
|
CHAT_CLE1_1,
|
|
CHAT_CLE1_2,
|
|
CHAT_CLE2_1,
|
|
CHAT_CLE2_2,
|
|
CHAT_CLE3_1,
|
|
CHAT_DAVE01,
|
|
CHAT_DEV03,
|
|
CHAT_DEV04,
|
|
CHAT_DEV05,
|
|
CHAT_DEV06,
|
|
CHAT_DEV07,
|
|
CHAT_DEV08,
|
|
CHAT_JIM05,
|
|
CHAT_JIM06,
|
|
CHAT_JIM07,
|
|
CHAT_JIM08,
|
|
CHAT_JIM09,
|
|
CHAT_JIM10,
|
|
CHAT_JIM11,
|
|
CHAT_JIM12,
|
|
CHAT_JIM13,
|
|
CHAT_JIM14,
|
|
CHAT_JIM15,
|
|
CHAT_JIM16,
|
|
CHAT_JIM17,
|
|
CHAT_JIM18,
|
|
CHAT_JIM19,
|
|
CHAT_JIM20,
|
|
CHAT_JIM21,
|
|
CHAT_JIM22,
|
|
CHAT_JIM23,
|
|
CHAT_JIM24,
|
|
CHAT_LAM06,
|
|
CHAT_LAM08,
|
|
CHAT_LAM09,
|
|
CHAT_LAM10,
|
|
CHAT_LAM11,
|
|
CHAT_LAM12,
|
|
CHAT_LAM13,
|
|
CHAT_LAM14,
|
|
CHAT_LAM15,
|
|
CHAT_LAM16,
|
|
CHAT_LAM17,
|
|
CHAT_LAM18,
|
|
CHAT_LAM19,
|
|
CHAT_LAM20,
|
|
CHAT_LAM21,
|
|
CHAT_RON01,
|
|
CHAT_RON02,
|
|
CHAT_RON03,
|
|
CHAT_SOL01,
|
|
CHAT_SOL02,
|
|
CHAT_SOL03,
|
|
CHAT_SOL04,
|
|
CHAT_STR01,
|
|
CHAT_STR02,
|
|
CHAT_STR03,
|
|
CHAT_STR04,
|
|
CHAT_STR05,
|
|
CHAT_TEXL1,
|
|
CHAT_TEXL2,
|
|
CHAT_TEXL3,
|
|
CHAT_TEXL4,
|
|
CHAT_TEXL5,
|
|
CHAT_TEXL6,
|
|
CHAT_TEXL7,
|
|
CHAT_TNOT,
|
|
CHAT_TRA01,
|
|
CHAT_TRA02,
|
|
CHAT_TRA03,
|
|
CHAT_WADE01,
|
|
CHAT_WADE02,
|
|
CHAT_WADE03,
|
|
CHAT_WADE04,
|
|
CHAT_MAR01,
|
|
CHAT_MAR02,
|
|
CHAT_MAR03,
|
|
CHAT_CHG1,
|
|
CHAT_CHG2,
|
|
CHAT_CHG3,
|
|
CHAT_HOSP,
|
|
|
|
//Calls with questions.
|
|
QCALL_ME_AMANDA,
|
|
QCALL_ME_JIMMY,
|
|
QCALL_ME_TRACEY,
|
|
QCALL_PROP_TAXI_TAKE_IT_EASY,
|
|
QCALL_PROP_TAXI_NEED_EXCITEMENT,
|
|
QCALL_PROP_TAXI_DEADLINE,
|
|
QCALL_PROP_TAXI_FOLLOW_THAT_CAR,
|
|
QCALL_PROP_TAXI_GOT_YOUR_BACK,
|
|
QCALL_PROP_TAXI_TAKE_TO_BEST,
|
|
QCALL_PROP_TAXI_CUT_YOU_IN,
|
|
QCALL_PROP_TAXI_GOT_YOU_NOW,
|
|
QCALL_PROP_TAXI_CLOWN_CAR,
|
|
|
|
//Family griefing calls.
|
|
CALL_FAM_M_GRIEF_GENERAL,
|
|
CALL_FAM_M_GRIEF_FIRING_ROCKETS,
|
|
CALL_FAM_M_GRIEF_STOLE_CAR,
|
|
CALL_FAM_M_GRIEF_SHOOTING_HOUSE,
|
|
|
|
CALL_FAM_F_GRIEF_GENERAL,
|
|
CALL_FAM_F_GRIEF_FIRING_ROCKETS,
|
|
CALL_FAM_F_GRIEF_STOLE_CAR_c,
|
|
CALL_FAM_F_GRIEF_STOLE_CAR_b,
|
|
CALL_FAM_F_GRIEF_SHOOTING_HOUSE,
|
|
|
|
CALL_FAM_T_GRIEF_GENERAL,
|
|
CALL_FAM_T_GRIEF_FIRING_ROCKETS,
|
|
CALL_FAM_T_GRIEF_STOLE_CAR,
|
|
CALL_FAM_T_GRIEF_SHOOTING_HOUSE,
|
|
|
|
//Text messages.
|
|
TEXT_AGENCY_1_UNLOCK,
|
|
TEXT_AGENCY_2_UNLOCK,
|
|
TEXT_AGENCY_P_UNLOCK,
|
|
TEXT_AGENCY_GETA_REMINDER,
|
|
TEXT_AGENCY_3B_UNLOCK,
|
|
TEXT_ASS1_UNLOCK_MISSED,
|
|
TEXT_ASS_FIN_A,
|
|
TEXT_ASS_FIN_B,
|
|
TEXT_ARM2_END,
|
|
TEXT_ARM3_BAGGER_UNLOCK,
|
|
TEXT_ARM3_DONE_MISSED,
|
|
TEXT_CAR1_UNLOCK,
|
|
TEXT_CARS2_DONE,
|
|
TEXT_CAR3_F_REM,
|
|
TEXT_CAR3_MT_REM,
|
|
TEXT_CARS4_T_DONE_MISSED,
|
|
TEXT_CHOP_UNLOCK,
|
|
TEXT_CITY_RON_CHINESE,
|
|
TEXT_CREW_CHEF_UNLOCK,
|
|
TEXT_DOCKS_F_SHOOT,
|
|
TEXT_DOCKS_P1_UNLOCK,
|
|
TEXT_DOCKS_P2B_UNLOCK,
|
|
TEXT_DOCKS_P2B_REMINDER,
|
|
TEXT_DOCKS_MIKE_FLY,
|
|
TEXT_DOCKS_2_MF_UNLOCK,
|
|
TEXT_EXILE2_UNLOCK,
|
|
TEXT_EXILE2_OSCAR,
|
|
TEXT_EXILE_WADE_CHINESE,
|
|
TEXT_EXILE_HUNTER_PIE,
|
|
TEXT_EXILE_PAT_LOVE,
|
|
TEXT_JIM_CAR_BACK,
|
|
TEXT_FAMILY1_END,
|
|
TEXT_FAMILY_DADDYS_GIRL,
|
|
TEXT_FAMILY5_END,
|
|
TEXT_FIB4I_UNLOCK,
|
|
TEXT_FIB4_P3_M_REMINDER,
|
|
TEXT_FIB4_P3_FT_REMINDER,
|
|
TEXT_FIB4_M_UNLOCK,
|
|
TEXT_FIB4_FT_UNLOCK,
|
|
TEXT_FIB4_F_ASS1,
|
|
TEXT_FIB4_MT_ASS1,
|
|
TEXT_FINH_PA_UNLOCK,
|
|
TEXT_FINH_PB_UNLOCK,
|
|
TEXT_FINH_PD_UNLOCK,
|
|
TEXT_FINH_GETA_REMINDER,
|
|
TEXT_FINH_KILLM,
|
|
TEXT_FINH_KILLT,
|
|
TEXT_FORSALESIGNS_DONE,
|
|
TEXT_FRAN0_END,
|
|
TEXT_FRAN1_END,
|
|
TEXT_JEWEL_P1A_UNLOCK,
|
|
TEXT_JEWEL_FRANK_PREP,
|
|
TEXT_JEWEL_P2A_UNLOCK,
|
|
TEXT_JEWEL_P1B_UNLOCK,
|
|
TEXT_JEWEL_P1B_HOSTAGE_END,
|
|
TEXT_JEWEL_2_DONE,
|
|
TEXT_JOSH_1,
|
|
TEXT_MARTIN_1_UNLOCK_MISSED,
|
|
TEXT_MARTIN1_TREV_SILENT,
|
|
TEXT_ME_AMANDA_FAIL,
|
|
TEXT_ME_MANADA_FAIL2,
|
|
TEXT_ME_JIMMY_FAIL,
|
|
TEXT_ME_TRACEY_FAIL,
|
|
TEXT_MICHAEL4_M_UNLOCK,
|
|
TEXT_MICHAEL4_F_UNLOCK,
|
|
TEXT_PILOTS_UNLOCK,
|
|
TEXT_RC_BARRY3_UNLOCK,
|
|
TEXT_RC_BARRY4_UNLOCK,
|
|
TEXT_RC_EPSILON6_UNLOCK,
|
|
TEXT_RC_EXTR2_UNLOCK,
|
|
TEXT_RC_EXTR3_UNLOCK,
|
|
TEXT_RC_HUNT1_UNLOCK,
|
|
TEXT_RC_PAP_3_UNLOCK,
|
|
TEXT_RC_TONYA_3_UNLOCK,
|
|
TEXT_RC_TONYA_4_UNLOCK,
|
|
TEXT_RE_BURIAL_END,
|
|
TEXT_RBH_UNLOCK,
|
|
TEXT_RBH_PREP_UNLOCK,
|
|
TEXT_SOL2_END,
|
|
TEXT_SRANGE_UNLOCK,
|
|
TEXT_SHRINK3_UNLOCK,
|
|
TEXT_SHRINK4_UNLOCK,
|
|
TEXT_STREET_RACE_AIRPORT,
|
|
TEXT_STREET_RACE_FREEWAY,
|
|
TEXT_STREET_RACE_CANALS,
|
|
TEXT_TENNIS_UNLOCK,
|
|
TEXT_TENNIS_UNLOCK_POST_FAM3,
|
|
TEXT_TREV_LOST_HANGER,
|
|
TEXT_UFOPARTS_DONE,
|
|
TEXT_PROP_UNAV_TOWING,
|
|
TEXT_MARTIN_THREAT,
|
|
TEXT_MARTIN_CASH_RECIEVED,
|
|
TEXT_TREVOR_BLAZER3_UNLOCK,
|
|
TEXT_ABIGAIL_MISSED,
|
|
TEXT_HAO1,
|
|
TEXT_PAP1_WILDLIFE_UNLOCK,
|
|
TEXT_MONKEY_CAR_UNLOCK,
|
|
TEXT_MONKEY_MOSAIC_LAMAR,
|
|
TEXT_COUNTRY_RACE_UNLOCK,
|
|
|
|
|
|
//Composite bases.
|
|
TEXT_SEXT,
|
|
TEXT_FRIEND,
|
|
TEXT_FRIEND_GRIEF_MICHAEL,
|
|
TEXT_FRIEND_GRIEF_FRANKLIN,
|
|
TEXT_FRIEND_GRIEF_TREVOR,
|
|
TEXT_FRIEND_GRIEF_LAMAR,
|
|
TEXT_FRIEND_GRIEF_JIMMY,
|
|
TEXT_FRIEND_GRIEF_AMANDA,
|
|
TEXT_PROPERTY,
|
|
TEXT_BS_PREPC,
|
|
|
|
//Family griefing texts.
|
|
TEXT_FAM_GRIEF_MICHAEL,
|
|
TEXT_FAM_GRIEF_FRANKLIN,
|
|
TEXT_FAM_GRIEF_TREVOR,
|
|
|
|
TEXT_FAM_HOSPITALBILL,
|
|
|
|
//Emails.
|
|
EMAIL_CARMOD_UNLOCK,
|
|
EMAIL_HEIST_PAY,
|
|
EMAIL_OFFROAD_UNLOCK,
|
|
EMAIL_SEARACE_M_UNLOCK,
|
|
EMAIL_SEARACE_F_UNLOCK,
|
|
EMAIL_SEARACE_T_UNLOCK,
|
|
EMAIL_STOCKMARKET,
|
|
EMAIL_WEAPON_STOCK_1,
|
|
EMAIL_WEAPON_STOCK_2,
|
|
EMAIL_WEAPON_STOCK_3,
|
|
EMAIL_WEAPON_STOCK_4,
|
|
EMAIL_WEAPON_STOCK_5,
|
|
EMAIL_WEAPON_STOCK_6,
|
|
EMAIL_WEAPON_STOCK_7,
|
|
EMAIL_WEAPON_STOCK_8,
|
|
EMAIL_WEAPON_STOCK_9,
|
|
EMAIL_FINH_GOOD_HACKER,
|
|
EMAIL_FINH_MED_HACKER,
|
|
EMAIL_FINH_BAD_HACKER,
|
|
EMAIL_RECARTHEFT2_T_PASS,
|
|
EMAIL_RECARTHEFT2_M_PASS,
|
|
EMAIL_RECARTHEFT2_F_PASS,
|
|
EMAIL_EPSILON1_DONATE,
|
|
EMAIL_EPSILON2_DONATE,
|
|
EMAIL_EPSILON4_DONATE,
|
|
EMAIL_DRFRIEDLANDER_EMAIL_A1,
|
|
EMAIL_DRFRIEDLANDER_EMAIL_END,
|
|
EMAIL_TRACEY_EMAIL_EXILE,
|
|
EMAIL_DAVE_EMAIL_FBI1,
|
|
EMAIL_DAVE_EMAIL_EG,
|
|
EMAIL_DAVE_EMAIL_EGBB,
|
|
EMAIL_AMANDA_EMAIL_FAM6,
|
|
EMAIL_AMANDA_EMAIL_EGKM,
|
|
EMAIL_MERRYWETHER_EMAIL_EG,
|
|
EMAIL_RON_EMAIL_EG,
|
|
EMAIL_RON_EMAIL_FAM4,
|
|
EMAIL_TANISHA_EMAIL_NG,
|
|
EMAIL_DENISE_EMAIL_FNH,
|
|
EMAIL_LAMAR_EMAIL_FNK0,
|
|
EMAIL_LAMAR_EMAIL_EGKT,
|
|
EMAIL_LAMAR_EMAIL_EGKM,
|
|
EMAIL_LAMAR_EMAIL_EGSB,
|
|
EMAIL_TREVOR_EMAIL_EGKM,
|
|
EMAIL_MICHAEL_EMAIL_EGKT,
|
|
EMAIL_MICHAEL_EMAIL_EGSB,
|
|
EMAIL_JIMMY_EMAIL_FAM4,
|
|
EMAIL_PATRICIA_EMAIL_MIC4,
|
|
EMAIL_REHO_BMS_EMAIL,
|
|
EMAIL_BITH_AA_EMAIL_M,
|
|
EMAIL_BITH_AA_EMAIL_F,
|
|
EMAIL_BITH_AA_EMAIL_T,
|
|
EMAIL_RC_NIG_1_UNLOCK,
|
|
EMAIL_BRAD_EMAIL_TRV1,
|
|
EMAIL_BRAD_EMAIL_FIB1,
|
|
EMAIL_BRAD_EMAIL_MIC1,
|
|
EMAIL_RON_CULT_TREV,
|
|
EMAIL_PRO_TOWING_IMPOUND_F,
|
|
EMAIL_PRO_ARMS_TRAFFICKING_T,
|
|
EMAIL_PRO_SONAR_COLLECTIONS_M,
|
|
EMAIL_PRO_SONAR_COLLECTIONS_T,
|
|
EMAIL_PRO_SONAR_COLLECTIONS_F,
|
|
EMAIL_PRO_CAR_MOD_SHOP_F,
|
|
EMAIL_PRO_CINEMA_VINEWOOD_M,
|
|
EMAIL_PRO_CINEMA_DOWNTOWN_M,
|
|
EMAIL_PRO_CAR_SCRAP_YARD_M,
|
|
EMAIL_PRO_CAR_SCRAP_YARD_T,
|
|
EMAIL_PRO_CAR_SCRAP_YARD_F,
|
|
EMAIL_PRO_WEED_SHOP_F,
|
|
EMAIL_PRO_BAR_TEQUILALA_M,
|
|
EMAIL_PRO_BAR_TEQUILALA_T,
|
|
EMAIL_PRO_BAR_TEQUILALA_F,
|
|
EMAIL_PRO_BAR_PITCHERS_M,
|
|
EMAIL_PRO_BAR_PITCHERS_T,
|
|
EMAIL_PRO_BAR_PITCHERS_F,
|
|
EMAIL_PRO_BAR_HEN_HOUSE_M,
|
|
EMAIL_PRO_BAR_HEN_HOUSE_T,
|
|
EMAIL_PRO_BAR_HEN_HOUSE_F,
|
|
EMAIL_PRO_BAR_HOOKIES_M,
|
|
EMAIL_PRO_BAR_HOOKIES_F,
|
|
EMAIL_COTM_ADRIAN_1,
|
|
EMAIL_COTM_ADRIAN_2,
|
|
EMAIL_COTM_ADRIAN_3,
|
|
EMAIL_COTM_ADRIAN_4,
|
|
EMAIL_WILDLIFE_PHOTOGRAPHY,
|
|
|
|
//Christmas 2 DLC weapons.
|
|
EMAIL_WEAPON_STOCK_10, //Proximity mine
|
|
EMAIL_WEAPON_STOCK_11, //Homing launcher
|
|
|
|
//Luxe DLC weapons.
|
|
EMAIL_WEAPON_STOCK_12, //Knuckle duster
|
|
EMAIL_WEAPON_STOCK_13, //Combat PDW
|
|
EMAIL_WEAPON_STOCK_14, //Marksman pistol
|
|
|
|
//Lowrider DLC weapons.
|
|
EMAIL_WEAPON_STOCK_15, //Machete
|
|
EMAIL_WEAPON_STOCK_16, //Machine Pistol
|
|
|
|
//==== Agent T comms ===
|
|
|
|
//calls
|
|
CALL_CLF_TEST01,
|
|
//calls with Q
|
|
QCALL_CLF_TEST01,
|
|
//texts
|
|
TEXT_CLF_TEST01,
|
|
//chat
|
|
CHAT_CLF_TEST01,
|
|
//email
|
|
EMAIL_CLF_TEST01,
|
|
|
|
//==== Agent T comms ===
|
|
|
|
//calls
|
|
CALL_NRM_TEST01,
|
|
//calls with Q
|
|
QCALL_NRM_TEST01,
|
|
//texts
|
|
TEXT_NRM_TEST01,
|
|
//chat
|
|
CHAT_NRM_TEST01,
|
|
//email
|
|
EMAIL_NRM_TEST01,
|
|
|
|
COMM_NONE = -1
|
|
|
|
ENDENUM
|
|
|
|
ENUM CC_QuestionCallResponse
|
|
RESP_ME_AMANDA_YES,
|
|
RESP_ME_AMANDA_NO,
|
|
RESP_ME_JIMMY_YES,
|
|
RESP_ME_JIMMY_NO,
|
|
RESP_ME_TRACEY_YES,
|
|
RESP_ME_TRACEY_NO,
|
|
RESP_PROP_TAXI_M_YES,
|
|
RESP_PROP_TAXI_M_NO,
|
|
RESP_PROP_TAXI_F_YES,
|
|
RESP_PROP_TAXI_F_NO,
|
|
RESP_PROP_TAXI_T_YES,
|
|
RESP_PROP_TAXI_T_NO,
|
|
RESP_PROP_TAXI_TAKE_IT_EASY_YES,
|
|
RESP_PROP_TAXI_NEED_EXCITEMENT_YES,
|
|
RESP_PROP_TAXI_DEADLINE_YES,
|
|
RESP_PROP_TAXI_FOLLOW_THAT_CAR_YES,
|
|
RESP_PROP_TAXI_GOT_YOUR_BACK_YES,
|
|
RESP_PROP_TAXI_TAKE_TO_BEST_YES,
|
|
RESP_PROP_TAXI_CUT_YOU_IN_YES,
|
|
RESP_PROP_TAXI_GOT_YOU_NOW_YES,
|
|
RESP_PROP_TAXI_CLOWN_CAR_YES,
|
|
|
|
|
|
RESP_MAX,
|
|
RESP_NONE
|
|
ENDENUM
|
|
|
|
ENUM CC_TextPart
|
|
//Sext character composition parts.
|
|
TPART_SEXT_JULIET,
|
|
TPART_SEXT_NIKKI,
|
|
TPART_SEXT_SAPPHIRE,
|
|
TPART_SEXT_INFERNUS,
|
|
TPART_SEXT_LIZ,
|
|
TPART_SEXT_HITCHER,
|
|
|
|
//Sext type composition parts.
|
|
TPART_SEXT_STUP,
|
|
TPART_SEXT_RUDE,
|
|
TPART_SEXT_1,
|
|
TPART_SEXT_2,
|
|
TPART_SEXT_NEED,
|
|
|
|
//Grief type parts.
|
|
TPART_GRIEF_FIRING_ROCKETS,
|
|
TPART_GRIEF_CREEP,
|
|
TPART_GRIEF_STOLE_CAR_P,
|
|
TPART_GRIEF_STOLE_CAR_W,
|
|
TPART_GRIEF_STOLE_CAR_D,
|
|
TPART_GRIEF_SET_FIRE,
|
|
TPART_GRIEF_SHOOTING_HOUSE,
|
|
TPART_GRIEF_GRENADE_HOUSE,
|
|
|
|
//Grief random parts.
|
|
TPART_GRIEF_ZERO,
|
|
TPART_GRIEF_ONE,
|
|
TPART_GRIEF_TWO,
|
|
TPART_GRIEF_THREE,
|
|
TPART_GRIEF_FOUR,
|
|
|
|
//Grief family hospital.
|
|
TPART_FHOS_M_SON,
|
|
TPART_FHOS_M_DAU,
|
|
TPART_FHOS_M_WIF,
|
|
TPART_FHOS_M_MAI,
|
|
TPART_FHOS_M_GAR,
|
|
|
|
TPART_FHOS_F_AUN,
|
|
|
|
TPART_FHOS_T_RON,
|
|
TPART_FHOS_T_WIF,
|
|
TPART_FHOS_T_FLO,
|
|
|
|
//Property type parts.
|
|
TPART_PROP_NOTI1,
|
|
TPART_PROP_NOTI2,
|
|
TPART_PROP_NOTI3,
|
|
TPART_PROP_NOTI4,
|
|
TPART_PROP_NOTI5,
|
|
TPART_PROP_NOTI6,
|
|
TPART_PROP_PASS1,
|
|
TPART_PROP_PASS2,
|
|
TPART_PROP_PASS3,
|
|
TPART_PROP_PASS4,
|
|
TPART_PROP_PASS5,
|
|
TPART_PROP_PASS6,
|
|
TPART_PROP_FAIL1,
|
|
TPART_PROP_FAIL2,
|
|
TPART_PROP_FAIL3,
|
|
TPART_PROP_FAIL4,
|
|
TPART_PROP_FAIL5,
|
|
TPART_PROP_FAIL6,
|
|
TPART_PROP_FAIL7,
|
|
TPART_PROP_FAIL8,
|
|
|
|
//Property mission parts.
|
|
TPART_PROP_WEED_DEL,
|
|
TPART_PROP_BAR_DEL,
|
|
TPART_PROP_BAR_GANG,
|
|
TPART_PROP_BAR_STLN,
|
|
TPART_PROP_BAR_PAP,
|
|
TPART_PROP_SCRAP_DEF,
|
|
TPART_PROP_TAXI,
|
|
TPART_PROP_CIN_PLANE,
|
|
|
|
//friends
|
|
TPART_FRND_MIKE,
|
|
TPART_FRND_FRANK,
|
|
TPART_FRND_TREVOR,
|
|
TPART_FRND_LAMAR,
|
|
TPART_FRND_JIMMY,
|
|
TPART_FRND_AMANDA,
|
|
|
|
//situation for Friends
|
|
TPART_FRND_SIT_LOSTA,
|
|
TPART_FRND_SIT_LOSTB,
|
|
TPART_FRND_SIT_LATEA,
|
|
TPART_FRND_SIT_LATEB,
|
|
TPART_FRND_SIT_HOSPA,
|
|
TPART_FRND_SIT_HOSPB,
|
|
TPART_FRND_SIT_DIEDA,
|
|
TPART_FRND_SIT_DIEDB,
|
|
TPART_FRND_SIT_BUSTA,
|
|
TPART_FRND_SIT_BUSTB,
|
|
|
|
//Big Score Prep C
|
|
//Hackers
|
|
TPART_BS_GH,
|
|
TPART_BS_AH,
|
|
TPART_BS_BH,
|
|
|
|
//Mission variations.
|
|
TPART_BS_C1,
|
|
TPART_BS_C2,
|
|
TPART_BS_C3,
|
|
|
|
TPART_MAX,
|
|
TPART_NONE = -1
|
|
ENDENUM
|
|
|
|
ENUM CC_CommunicationForm
|
|
CF_CALL,
|
|
CF_QUESTION_CALL,
|
|
CF_TEXT,
|
|
CF_EMAIL,
|
|
|
|
CF_NO_COMM_FORMS,
|
|
CF_ERROR = -1
|
|
ENDENUM
|
|
|
|
ENUM CC_CommunicationPriority
|
|
CPR_VERY_LOW = 0,
|
|
CPR_LOW,
|
|
CPR_MEDIUM,
|
|
CPR_MEDIUM_HIGH,
|
|
CPR_HIGH,
|
|
CPR_VERY_HIGH,
|
|
|
|
CPR_NO_PRIORITY_LEVELS,
|
|
CPR_ERROR
|
|
ENDENUM
|
|
|
|
ENUM CC_CommunicationType
|
|
CT_END_OF_MISSION = 0,
|
|
CT_FLOW,
|
|
CT_FLOW_URGENT,
|
|
CT_FRIEND,
|
|
CT_FRIEND_urgent,
|
|
CT_MINIGAME,
|
|
CT_AMBIENT,
|
|
CT_ON_MISSION,
|
|
|
|
CT_NONE,
|
|
CT_ERROR
|
|
ENDENUM
|
|
|
|
ENUM CC_CommunicationStatus
|
|
CS_IN_PROGRESS = 0,
|
|
CS_INACTIVE,
|
|
CS_WAITING_FOR_GLOBAL_DELAY,
|
|
CS_WAITING_FOR_CHARACTER_DELAY,
|
|
CS_WAITING_FOR_QUEUE_TIMER,
|
|
CS_WAITING_FOR_HIGHER_PRIORITY,
|
|
|
|
CS_ERROR
|
|
ENDENUM
|
|
|
|
ENUM CC_CallMissedResponse
|
|
CMR_REQUEUE = 0,
|
|
CMR_SEND_TEXT,
|
|
CMR_REMOVE
|
|
ENDENUM
|
|
|
|
// Call setting bit indexes.
|
|
CONST_INT COMM_FLAG_FROM_CHAR_IS_PLAYER BIT0
|
|
CONST_INT COMM_FLAG_HAS_QUESTION BIT1
|
|
CONST_INT COMM_FLAG_UNLOCKS_MISSION BIT2
|
|
CONST_INT COMM_FLAG_TRIGGERS_MISSION BIT3
|
|
CONST_INT COMM_FLAG_TODS_SKIP_TIMER BIT4
|
|
CONST_INT COMM_FLAG_ADD_CONTACT BIT5
|
|
CONST_INT COMM_FLAG_DONT_SAVE BIT6
|
|
CONST_INT COMM_FLAG_CALL_IS_QUICK BIT7
|
|
CONST_INT COMM_FLAG_CALL_IS_MISSED BIT8
|
|
CONST_INT COMM_FLAG_CALL_IS_CONFERENCE BIT9
|
|
CONST_INT COMM_FLAG_CALL_REQUEUE_ON_MISS BIT10
|
|
CONST_INT COMM_FLAG_CALL_TEXT_ON_MISS BIT11
|
|
CONST_INT COMM_FLAG_CALL_BLOCK_HANGUP BIT12
|
|
CONST_INT COMM_FLAG_CALL_BRANCHED BIT13
|
|
CONST_INT COMM_FLAG_CALL_ADD_TEMP_CONTACT BIT14
|
|
//CONST_INT COMM_FLAG_CALL_REMOVE_TEMP_CONTACT BIT15 //Private system use only.
|
|
CONST_INT COMM_FLAG_TXTMSG_NOT_CRITICAL BIT16
|
|
CONST_INT COMM_FLAG_TXTMSG_LOCKED BIT17
|
|
CONST_INT COMM_FLAG_TXTMSG_NO_SILENT BIT18
|
|
CONST_INT COMM_FLAG_TXTMSG_FORCE_SILENT BIT19
|
|
CONST_INT COMM_FLAG_TXTMSG_AWAITING_RESP BIT20
|
|
CONST_INT COMM_FLAG_INGORE_GLOBAL_DELAY BIT21
|
|
|
|
|
|
CONST_INT COMM_BIT_FROM_CHAR_IS_PLAYER 0
|
|
CONST_INT COMM_BIT_HAS_QUESTION 1
|
|
CONST_INT COMM_BIT_UNLOCKS_MISSION 2
|
|
CONST_INT COMM_BIT_TRIGGERS_MISSION 3
|
|
CONST_INT COMM_BIT_TODS_SKIP_TIMER 4
|
|
CONST_INT COMM_BIT_ADD_CONTACT 5
|
|
CONST_INT COMM_BIT_DONT_SAVE 6
|
|
CONST_INT COMM_BIT_CALL_IS_QUICK 7
|
|
CONST_INT COMM_BIT_CALL_IS_MISSED 8
|
|
CONST_INT COMM_BIT_CALL_IS_CONFERENCE 9
|
|
CONST_INT COMM_BIT_CALL_REQUEUE_ON_MISS 10
|
|
CONST_INT COMM_BIT_CALL_TEXT_ON_MISS 11
|
|
CONST_INT COMM_BIT_CALL_BLOCK_HANGUP 12
|
|
CONST_INT COMM_BIT_CALL_BRANCHED 13
|
|
CONST_INT COMM_BIT_CALL_ADD_TEMP_CONTACT 14
|
|
CONST_INT COMM_BIT_CALL_REMOVE_TEMP_CONTACT 15
|
|
CONST_INT COMM_BIT_TXTMSG_NOT_CRITICAL 16
|
|
CONST_INT COMM_BIT_TXTMSG_LOCKED 17
|
|
CONST_INT COMM_BIT_TXTMSG_NO_SILENT 18
|
|
CONST_INT COMM_BIT_TXTMSG_FORCE_SILENT 19
|
|
CONST_INT COMM_BIT_TXTMSG_AWAITING_RESP 20
|
|
CONST_INT COMM_BIT_INGORE_GLOBAL_DELAY 21
|
|
|
|
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//═════════════════════════════╡ Global Structs ╞════════════════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
//Shared data struct for phonecalls and text messages.
|
|
STRUCT CC_CommData
|
|
CC_CommID eID // A unique ID that can be used to reference this communication.
|
|
INT iSettings // A bitset contain setting flags for this communication.
|
|
INT iPlayerCharBitset // A bitset containing which player characters this communication is for.
|
|
CC_CommunicationPriority ePriority // An ENUM that denotes the priority of this communication.
|
|
INT iQueueTime // The time at which this communication is allowed to trigger.
|
|
INT iRequeueTime // The base time to add when requeuing this communication.
|
|
enumCharacterList eNPCCharacter // An ENUM pointing to the NPC character who is involved in this communication.
|
|
VectorID eRestrictedAreaID // A vector ID that defines an area in the world that the player must not be in for the communication to trigger.
|
|
CC_CodeID eExecuteOnCompleteID // A code ID that defines a block of script that should be executed when the communication is completed sucessfully.
|
|
FLOW_CHECK_IDS eSendCheck // A custom check that must pass before this communication is sent.
|
|
ENDSTRUCT
|
|
|
|
//Phonecall specific data struct.
|
|
STRUCT CC_CallData
|
|
CC_CommData sCommData // The generic communication data for this phonecall.
|
|
CC_CommID eCommExtra // The ID of first part of additional data for this call.
|
|
CC_CommID eCommExtra2 // The ID of second part of additional data for this call.
|
|
CC_QuestionCallResponse eYesResponse
|
|
CC_QuestionCallResponse eNoResponse
|
|
INT iSpeakerID // The speaker ID for the character in the conversation that is not a main character.
|
|
ENDSTRUCT
|
|
|
|
//Text message specific data struct.
|
|
STRUCT CC_TextMessageData
|
|
CC_CommData sCommData // The generic communication data for this text message.
|
|
CC_TextPart ePart1 // An ID for the first composite part that should make up the text label for this message.
|
|
CC_TextPart ePart2 // An ID for the second composite part that should make up the text label for this message.
|
|
INT iFailCount // How many times has this text failed to send?
|
|
enumTxtMsgCanCallSender WhichCanCallSenderStatus // Can player call back the char texting them
|
|
ENDSTRUCT
|
|
|
|
//Email specific data struct.
|
|
STRUCT CC_EmailData
|
|
CC_CommData sCommData // The generic communication data for this text message.
|
|
ENDSTRUCT
|
|
|
|
//Global control struct for tracking the state of peds involved in any communcation controller phonecall conversations.
|
|
structPedsForConversation g_sPedsForConversation
|
|
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//════════════════════════════╡ Global Variables ╞═══════════════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
INT g_iCallInProgress = -1 //The queue index of any call that is currently in progress. -1 if no calls are in progress.
|
|
INT g_iCommsCandidateID = NO_CANDIDATE_ID //CandidateID that the comms controller can use to secure the mission flag for a mission
|
|
//that triggers off a phonecall.
|
|
|
|
//Communication timers.
|
|
BOOL g_bPauseCommsQueues = FALSE //Should the communication controller queues be halted at the moment?
|
|
BOOL g_bPauseCommsQueuesThisFrame = FALSE //Should the communication controller queues be halted for this frame only?
|
|
INT g_iGlobalWaitTime //The time at which next communication is allowed to be sent to the player.
|
|
INT g_iCharWaitTime[MAX_CHARACTERS_MP] //The time at which the next communication from a specific character can be sent to the player.
|
|
|
|
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
//═══════════════════════════╡ Globals to be saved ╞═════════════════════════════
|
|
//═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
STRUCT CommsControlSaved
|
|
|
|
//The queued calls list and counter.
|
|
CC_CallData sQueuedCalls[CC_MAX_QUEUED_CALLS]
|
|
INT iNoQueuedCalls
|
|
|
|
//The queued missed calls list and counter.
|
|
CC_CallData sMissedCalls[CC_MAX_MISSED_CALLS]
|
|
INT iNoMissedCalls
|
|
|
|
//The registered chat calls list and counter.
|
|
CC_CallData sChatCalls[CC_MAX_CHAT_CALLS]
|
|
INT iNoChatCalls
|
|
|
|
//The queued text messages list and counter.
|
|
CC_TextMessageData sQueuedTexts[CC_MAX_QUEUED_TEXTS]
|
|
INT iNoQueuedTexts
|
|
|
|
//The queued email list and counter.
|
|
CC_EmailData sQueuedEmails[CC_MAX_QUEUED_EMAILS]
|
|
INT iNoQueuedEmails
|
|
|
|
//Sent text queue.
|
|
CC_TextMessageData sSentTexts[CC_MAX_SENT_TEXTS]
|
|
INT iNoSentTexts
|
|
|
|
//Last call data.
|
|
CC_CommID eLastCompletedCall = COMM_NONE
|
|
BOOL bLastCallAnswered
|
|
BOOL bLastCallHadResponse
|
|
BOOL bLastCallResponse
|
|
|
|
//Last text data.
|
|
CC_CommID eLastCompletedText = COMM_NONE
|
|
BOOL bLastTextHadResponse
|
|
BOOL bLastTextResponse
|
|
|
|
//Last email data.
|
|
CC_CommID eLastCompletedEmail = COMM_NONE
|
|
|
|
//Playable Character communication priority levels.
|
|
CC_CommunicationPriority eCharacterPriorityLevel[3] //One priority level for each playable character.
|
|
|
|
INT iExileWarningBitset
|
|
|
|
INT iCommsGameTime
|
|
|
|
ENDSTRUCT
|