6724 lines
294 KiB
XML
Executable File
6724 lines
294 KiB
XML
Executable File
|
||
USING "rage_builtins.sch"
|
||
USING "globals.sch"
|
||
USING "friends_public.sch"
|
||
USING "selector_public.sch"
|
||
USING "comms_control_public.sch"
|
||
|
||
USING "script_clock.sch"
|
||
#if not USE_CLF_DLC
|
||
#if not USE_NRM_DLC
|
||
USING "properties_public.sch"
|
||
#endif
|
||
#endif
|
||
|
||
USING "player_scene_coords.sch"
|
||
USING "player_scene_vehicle.sch"
|
||
USING "player_scene_assets.sch"
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
USING "flow_debug_GAME.sch"
|
||
USING "player_ped_debug.sch"
|
||
USING "respawn_location_private.sch"
|
||
USING "vector_id_public.sch"
|
||
#ENDIF
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////////////
|
||
// //
|
||
// SCRIPT NAME : player_scene_schedule.sch //
|
||
// AUTHOR : Alwyn Roberts //
|
||
// DESCRIPTION : Contains the players timetable and procs to set up the //
|
||
// scenes for each slot in the timetable. //
|
||
// //
|
||
//////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
|
||
SP_MISSIONS eTREV_CITY_SAFEHOUSE_REMOVED = SP_MISSION_TREVOR_4 //SP_MISSION_TREVOR_5
|
||
|
||
SP_MISSIONS eMichHasMetSolomon = SP_MISSION_MICHAEL_4 //SP_MISSION_SOLOMON_4
|
||
SP_MISSIONS old_sp_mission_trevor_4 = SP_MISSION_TREVOR_3
|
||
|
||
|
||
// *******************************************************************************************
|
||
// PED REQUEST BIT FUNCTIONS AND PROCEDURES
|
||
// *******************************************************************************************
|
||
|
||
FUNC BOOL GET_ONE_OFF_BIT_FOR_PED_REQUEST_SCENE(PED_REQUEST_SCENE_ENUM eScene, INT &iOneOffBit)
|
||
|
||
SWITCH eScene
|
||
CASE PR_SCENE_M2_PHARMACY iOneOffBit = 1 RETURN TRUE BREAK
|
||
CASE PR_SCENE_M_VWOODPARK_a iOneOffBit = 2 RETURN TRUE BREAK
|
||
CASE PR_SCENE_M_VWOODPARK_b iOneOffBit = 3 RETURN TRUE BREAK
|
||
CASE PR_SCENE_M_BENCHCALL_a iOneOffBit = 4 RETURN TRUE BREAK
|
||
CASE PR_SCENE_F_LAMTAUNT_P1 iOneOffBit = 5 RETURN TRUE BREAK
|
||
CASE PR_SCENE_F_CLUB iOneOffBit = 6 RETURN TRUE BREAK
|
||
CASE PR_SCENE_F1_ONCELL iOneOffBit = 7 RETURN TRUE BREAK
|
||
CASE PR_SCENE_F0_TANISHAFIGHT iOneOffBit = 8 RETURN TRUE BREAK
|
||
CASE PR_SCENE_F1_NEWHOUSE iOneOffBit = 9 RETURN TRUE BREAK
|
||
CASE PR_SCENE_T_FIGHTBBUILD iOneOffBit = 10 RETURN TRUE BREAK
|
||
CASE PR_SCENE_T_CR_CHASEBIKE iOneOffBit = 11 RETURN TRUE BREAK
|
||
CASE PR_SCENE_M4_WASHFACE iOneOffBit = 12 RETURN TRUE BREAK
|
||
|
||
//#1568441
|
||
CASE PR_SCENE_Fa_PHONECALL_ARM3 iOneOffBit = 13 RETURN TRUE BREAK
|
||
CASE PR_SCENE_Fa_PHONECALL_FAM1 iOneOffBit = 13 RETURN TRUE BREAK
|
||
CASE PR_SCENE_Fa_PHONECALL_FAM3 iOneOffBit = 13 RETURN TRUE BREAK
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CASE NUM_OF_PED_REQUEST_SCENES iOneOffBit = 14 RETURN FALSE BREAK
|
||
#ENDIF
|
||
ENDSWITCH
|
||
|
||
iOneOffBit = -1
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
// *******************************************************************************************
|
||
// GENERAL SCHEDULE FUNCTIONS AND PROCEDURES
|
||
// *******************************************************************************************
|
||
|
||
FUNC BOOL HasHourPassedSincePedTimeStruct(TIMEOFDAY sLastTimeActive)
|
||
RETURN HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 1)
|
||
ENDFUNC
|
||
FUNC BOOL HasHourPassedSinceCharLastTimeActive(enumCharacterList sceneCharID)
|
||
TIMEOFDAY sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[sceneCharID]
|
||
RETURN HasHourPassedSincePedTimeStruct(sLastTimeActive)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL IsCharPresentInWorld(enumCharacterList sceneCharID)
|
||
|
||
SELECTOR_SLOTS_ENUM eSceneSlot = GET_SELECTOR_SLOT_FROM_PLAYER_PED_ENUM(sceneCharID)
|
||
PED_INDEX scenePedID = g_sPlayerPedRequest.sSelectorPeds.pedID[eSceneSlot]
|
||
|
||
IF DOES_ENTITY_EXIST(scenePedID)
|
||
IF NOT IS_PED_INJURED(scenePedID)
|
||
// VECTOR vPlayerCurrentCoord = GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE)
|
||
// VECTOR vScenePedCurrentCoord = GET_ENTITY_COORDS(scenePedID)
|
||
//
|
||
// FLOAT fDistanceFromPlayerToScenePed = VDIST(vPlayerCurrentCoord, vScenePedCurrentCoord)
|
||
//
|
||
// CONST_FLOAT fRADIUS_FROM_SCENEPED_TO_CHECK 4.0
|
||
//
|
||
// CONST_FLOAT fDIST_FROM_SCENEPED_VISIBLE_FOR_DEFAULT 140.0
|
||
// CONST_FLOAT fDIST_FROM_SCENEPED_HIDDEN_FOR_DEFAULT 40.0
|
||
//
|
||
// IF IS_SPHERE_VISIBLE(vScenePedCurrentCoord, fRADIUS_FROM_SCENEPED_TO_CHECK)
|
||
// #IF IS_DEBUG_BUILD
|
||
// DrawDebugSceneLineBetweenEntities(PLAYER_PED_ID(), scenePedID, HUD_COLOUR_BLUELIGHT)
|
||
//
|
||
// TEXT_LABEL_63 str = GET_PLAYER_PED_STRING(sceneCharID)
|
||
// str += " visible "
|
||
// str += GET_STRING_FROM_FLOAT(fDistanceFromPlayerToScenePed)
|
||
// str += " < "
|
||
// str += (ROUND(fDIST_FROM_SCENEPED_VISIBLE_FOR_DEFAULT))
|
||
// DrawDebugSceneTextWithOffset(str, vPlayerCurrentCoord, 0, HUD_COLOUR_BLUELIGHT)
|
||
// #ENDIF
|
||
//
|
||
// IF fDistanceFromPlayerToScenePed < fDIST_FROM_SCENEPED_VISIBLE_FOR_DEFAULT
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
// ELSE
|
||
// #IF IS_DEBUG_BUILD
|
||
// DrawDebugSceneLineBetweenEntities(PLAYER_PED_ID(), scenePedID, HUD_COLOUR_BLUEDARK)
|
||
//
|
||
// TEXT_LABEL_63 str = GET_PLAYER_PED_STRING(sceneCharID)
|
||
// str += " hidden "
|
||
// str += GET_STRING_FROM_FLOAT(fDistanceFromPlayerToScenePed)
|
||
// str += " < "
|
||
// str += ROUND(fDIST_FROM_SCENEPED_HIDDEN_FOR_DEFAULT)
|
||
// DrawDebugSceneTextWithOffset(str, vPlayerCurrentCoord, 0, HUD_COLOUR_BLUEDARK)
|
||
// #ENDIF
|
||
//
|
||
// IF fDistanceFromPlayerToScenePed < fDIST_FROM_SCENEPED_HIDDEN_FOR_DEFAULT
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
// ENDIF
|
||
|
||
RETURN TRUE
|
||
|
||
ELSE
|
||
#IF IS_DEBUG_BUILD
|
||
DrawDebugSceneLineBetweenEntities(PLAYER_PED_ID(), scenePedID, HUD_COLOUR_REDLIGHT)
|
||
#ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL HasDayPassedSincePedTimeStruct(TIMEOFDAY sLastTimeActive)
|
||
IF NOT Is_TimeOfDay_Valid(sLastTimeActive)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
INT iSeconds, iMinutes, iHours, iDays, iMonths, iYears
|
||
GET_DIFFERENCE_BETWEEN_NOW_AND_TIMEOFDAY(sLastTimeActive, iSeconds, iMinutes, iHours, iDays, iMonths, iYears)
|
||
|
||
IF (iYears > 0)
|
||
OR (iMonths > 0)
|
||
OR (iDays > 0)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_IsRandomCharFlagSet(g_eRC_MissionIDs eRCMission, g_eRC_FlagIDs eRCFlagID)
|
||
#if USE_CLF_DLC
|
||
unused_parameter(eRCMission)
|
||
unused_parameter(eRCFlagID)
|
||
RETURN FALSE
|
||
#endif
|
||
#if USE_NRM_DLC
|
||
unused_parameter(eRCMission)
|
||
unused_parameter(eRCFlagID)
|
||
RETURN FALSE
|
||
#endif
|
||
#if not USE_CLF_DLC
|
||
#if not USE_NRM_DLC
|
||
IF IS_BIT_SET(g_savedGlobals.sRandomChars.savedRC[eRCMission].rcFlags, ENUM_TO_INT(eRCFlagID))
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
|
||
g_structRCMissionsStatic sRCMissionDetails
|
||
Retrieve_Random_Character_Static_Mission_Details(eRCMission, sRCMissionDetails)
|
||
|
||
CPRINTLN(DEBUG_SWITCH, "PRIVATE_IsRandomCharFlagSet(", sRCMissionDetails.rcScriptName, ", ", ENUM_TO_INT(eRCFlagID), ")")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
RETURN FALSE
|
||
#endif
|
||
#endif
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_DoPedRequestScenesMatch(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneOne,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneTwo,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneThree = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneFour = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneFive = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneSix = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneSeven = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneEight = PR_SCENE_INVALID)
|
||
|
||
|
||
IF ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneOne) AND (eTestSceneOne <> PR_SCENE_INVALID))
|
||
OR ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneTwo) AND (eTestSceneTwo <> PR_SCENE_INVALID))
|
||
OR ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneThree) AND (eTestSceneThree <> PR_SCENE_INVALID))
|
||
OR ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneFour) AND (eTestSceneFour <> PR_SCENE_INVALID))
|
||
OR ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneFive) AND (eTestSceneFive <> PR_SCENE_INVALID))
|
||
OR ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneSix) AND (eTestSceneSix <> PR_SCENE_INVALID))
|
||
OR ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneSeven) AND (eTestSceneSeven <> PR_SCENE_INVALID))
|
||
OR ((g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eTestSceneEight) AND (eTestSceneEight <> PR_SCENE_INVALID))
|
||
IF ((eReqScene = eTestSceneOne) AND (eTestSceneOne <> PR_SCENE_INVALID))
|
||
OR ((eReqScene = eTestSceneTwo) AND (eTestSceneTwo <> PR_SCENE_INVALID))
|
||
OR ((eReqScene = eTestSceneThree) AND (eTestSceneThree <> PR_SCENE_INVALID))
|
||
OR ((eReqScene = eTestSceneFour) AND (eTestSceneFour <> PR_SCENE_INVALID))
|
||
OR ((eReqScene = eTestSceneFive) AND (eTestSceneFive <> PR_SCENE_INVALID))
|
||
OR ((eReqScene = eTestSceneSix) AND (eTestSceneSix <> PR_SCENE_INVALID))
|
||
OR ((eReqScene = eTestSceneSeven) AND (eTestSceneSeven <> PR_SCENE_INVALID))
|
||
OR ((eReqScene = eTestSceneEight) AND (eTestSceneEight <> PR_SCENE_INVALID))
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by match [last known ", Get_String_From_Ped_Request_Scene_Enum(g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed]), "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL IsPedRequestSceneDupeOfLastKnownScene(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene)
|
||
IF (eReqScene = g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed])
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
SWITCH ePed
|
||
|
||
/* michael's overlapping scenes */
|
||
CASE CHAR_MICHAEL
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M2_SAVEHOUSE1_a, PR_SCENE_M2_SAVEHOUSE1_b, PR_SCENE_M2_SMOKINGGOLF)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M2_BEDROOM, PR_SCENE_M2_SAVEHOUSE0_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M4_WAKEUPSCREAM, PR_SCENE_M4_WAKESUPSCARED)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
// IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
// PR_SCENE_M6_HOUSETV_a, PR_SCENE_M6_HOUSETV_b)
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_POOLSIDE_a, PR_SCENE_M_POOLSIDE_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_CANAL_a, PR_SCENE_M_CANAL_b, PR_SCENE_M_CANAL_c)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_PARKEDHILLS_a, PR_SCENE_M_PARKEDHILLS_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M6_PARKEDHILLS_a, PR_SCENE_M6_PARKEDHILLS_b, PR_SCENE_M6_PARKEDHILLS_c, PR_SCENE_M6_PARKEDHILLS_d, PR_SCENE_M6_PARKEDHILLS_e)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M2_WIFEEXITSCAR, PR_SCENE_M2_DROPOFFDAU_a, PR_SCENE_M2_DROPOFFDAU_b, PR_SCENE_M2_DROPOFFSON_a, PR_SCENE_M2_DROPOFFSON_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M4_EXITRESTAURANT, PR_SCENE_M4_LUNCH_b, PR_SCENE_M4_CINEMA)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_COFFEE_a, PR_SCENE_M_COFFEE_b, PR_SCENE_M_COFFEE_c)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_TRAFFIC_a, PR_SCENE_M_TRAFFIC_b, PR_SCENE_M_TRAFFIC_c)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M2_CYCLING_a, PR_SCENE_M2_CYCLING_b, PR_SCENE_M2_CYCLING_c)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_PIER_a, PR_SCENE_M_PIER_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_VWOODPARK_a, PR_SCENE_M_VWOODPARK_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M_BENCHCALL_a, PR_SCENE_M_BENCHCALL_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M2_CARSLEEP_a, PR_SCENE_M2_CARSLEEP_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
// IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
// PR_SCENE_M_BAR_a, PR_SCENE_M_BAR_b)
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
|
||
// IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
// PR_SCENE_M_HOOKERMOTEL, PR_SCENE_M_HOOKERCAR)
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M7_EMPLOYEECONVO, PR_SCENE_M7_TALKTOGUARD, PR_SCENE_M7_LOT_JIMMY)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_M7_OPENDOORFORAMA, PR_SCENE_M7_DROPPINGOFFJMY, PR_SCENE_M7_TRACEYEXITSCAR)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
|
||
/* franklins's overlapping scenes */
|
||
CASE CHAR_FRANKLIN
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_F_MD_KUSH_DOC, PR_SCENE_F_KUSH_DOC_a, PR_SCENE_F_KUSH_DOC_b, PR_SCENE_F_KUSH_DOC_c)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_F_THROW_CUP, PR_SCENE_F_HIT_CUP_HAND)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_F_CS_CHECKSHOE, PR_SCENE_F_CS_WIPEHANDS, PR_SCENE_F_CS_WIPERIGHT)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_F0_BIKE, PR_SCENE_F1_BIKE, PR_SCENE_F_BIKE_c, PR_SCENE_F_BIKE_d)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_F_BAR_a_01, PR_SCENE_F_BAR_b_01, PR_SCENE_F_BAR_c_02, PR_SCENE_F_BAR_d_02, PR_SCENE_F_BAR_e_01)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_F1_POOLSIDE_a, PR_SCENE_F1_POOLSIDE_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
|
||
/* trevor's overlapping scenes */
|
||
CASE CHAR_TREVOR
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_DOCKS_a, PR_SCENE_T_DOCKS_b, PR_SCENE_T_DOCKS_c, PR_SCENE_T_DOCKS_d)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_CN_CHATEAU_b, PR_SCENE_T_CN_CHATEAU_c, PR_SCENE_T_CR_CHATEAU_d)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_PUKEINTOFOUNT, PR_SCENE_T_CN_PARK_b)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_CR_POLICE_a, PR_SCENE_T_CN_POLICE_b, PR_SCENE_T_CN_POLICE_c)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_FLOYDSPOON_A, PR_SCENE_T_FLOYDSPOON_B, PR_SCENE_T_FLOYDSPOON_B2, PR_SCENE_T_FLOYDSPOON_A2)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_FLOYD_BEAR, PR_SCENE_T_FLOYD_DOLL, PR_SCENE_T_FLOYDPINEAPPLE)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_FLOYDCRYING_A, PR_SCENE_T_FLOYDCRYING_E0, PR_SCENE_T_FLOYDCRYING_E1, PR_SCENE_T_FLOYDCRYING_E2, PR_SCENE_T_FLOYDCRYING_E3)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_CR_DUMPSTER, PR_SCENE_T_CN_WAKETRASH_b, PR_SCENE_T_CR_WAKEBEACH, PR_SCENE_T_CN_WAKEBARN, PR_SCENE_T_CN_WAKETRAIN, PR_SCENE_T_CR_WAKEROOFTOP, PR_SCENE_T_CN_WAKEMOUNTAIN)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_CR_CHASECAR_a, PR_SCENE_T_CN_CHASECAR_b, PR_SCENE_T_CR_CHASEBIKE, PR_SCENE_T_CR_CHASESCOOTER)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_FIGHTBAR_a, PR_SCENE_T_FIGHTBAR_b, PR_SCENE_T_FIGHTBAR_c,
|
||
PR_SCENE_T_FIGHTBBUILD, PR_SCENE_T_ESCORTED_OUT,
|
||
PR_SCENE_T_YELLATDOORMAN, PR_SCENE_T_FIGHTYAUCLUB_b, PR_SCENE_T_FIGHTCASINO)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_NAKED_BRIDGE, PR_SCENE_T_NAKED_GARDEN)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF PRIVATE_DoPedRequestScenesMatch(ePed, eReqScene,
|
||
PR_SCENE_T_GARBAGE_FOOD, PR_SCENE_T_THROW_FOOD)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL IsPedRequestScenesBlockedForFriend(PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
SWITCH eReqScene
|
||
// Lamar scenes
|
||
// CASE PR_SCENE_F_LAMGRAFF FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_P1 FALLTHRU
|
||
// CASE PR_SCENE_F_LAMTAUNT_P2 FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_P3 FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_P5 FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_NIGHT
|
||
IF HAVE_CHARS_ARRANGED_FRIEND_ACTIVITY(CHAR_FRANKLIN, CHAR_LAMAR)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by connection ", GetLabel_enumFriendConnection(FC_FRANKLIN_LAMAR))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
IF HAVE_CHARS_ARRANGED_FRIEND_ACTIVITY(CHAR_TREVOR, CHAR_LAMAR)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by connection ", GetLabel_enumFriendConnection(FC_TREVOR_LAMAR))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
// Jimmy scenes
|
||
CASE PR_SCENE_M2_KIDS_TV FALLTHRU
|
||
CASE PR_SCENE_M2_DROPOFFSON_a FALLTHRU
|
||
CASE PR_SCENE_M2_DROPOFFSON_b FALLTHRU
|
||
CASE PR_SCENE_M7_DROPPINGOFFJMY FALLTHRU
|
||
CASE PR_SCENE_M7_BIKINGJIMMY
|
||
IF HAVE_CHARS_ARRANGED_FRIEND_ACTIVITY(CHAR_MICHAEL, CHAR_JIMMY)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by connection ", GetLabel_enumFriendConnection(FC_MICHAEL_JIMMY))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
IF HAVE_CHARS_ARRANGED_FRIEND_ACTIVITY(CHAR_FRANKLIN, CHAR_JIMMY)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by connection ", GetLabel_enumFriendConnection(FC_FRANKLIN_JIMMY))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
IF HAVE_CHARS_ARRANGED_FRIEND_ACTIVITY(CHAR_TREVOR, CHAR_JIMMY)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by connection ", GetLabel_enumFriendConnection(FC_TREVOR_JIMMY))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
// Amanda scenes
|
||
CASE PR_SCENE_M2_BEDROOM FALLTHRU
|
||
CASE PR_SCENE_M2_SAVEHOUSE0_b FALLTHRU
|
||
CASE PR_SCENE_M2_SAVEHOUSE1_a FALLTHRU
|
||
CASE PR_SCENE_M2_LUNCH_a FALLTHRU
|
||
CASE PR_SCENE_M2_WIFEEXITSCAR FALLTHRU
|
||
CASE PR_SCENE_M2_ARGUEWITHWIFE FALLTHRU
|
||
CASE PR_SCENE_M7_RESTAURANT
|
||
IF HAVE_CHARS_ARRANGED_FRIEND_ACTIVITY(CHAR_MICHAEL, CHAR_AMANDA)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by connection ", GetLabel_enumFriendConnection(FC_MICHAEL_AMANDA))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_FAMILY_3)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(SP_MISSION_FAMILY_3), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
// Floyd scenes
|
||
CASE PR_SCENE_T_FLOYDSAVEHOUSE
|
||
CASE PR_SCENE_T_FLOYD_BEAR
|
||
CASE PR_SCENE_T_FLOYD_DOLL
|
||
CASE PR_SCENE_T_FLOYDPINEAPPLE
|
||
|
||
CASE PR_SCENE_T_FLOYDCRYING_A
|
||
CASE PR_SCENE_T_FLOYDCRYING_E0
|
||
CASE PR_SCENE_T_FLOYDCRYING_E1
|
||
CASE PR_SCENE_T_FLOYDCRYING_E2
|
||
CASE PR_SCENE_T_FLOYDCRYING_E3
|
||
|
||
CASE PR_SCENE_T_FLOYDSPOON_A
|
||
CASE PR_SCENE_T_FLOYDSPOON_A2
|
||
CASE PR_SCENE_T_FLOYDSPOON_B
|
||
CASE PR_SCENE_T_FLOYDSPOON_B2
|
||
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_DOCKS_2A)
|
||
OR IS_MISSION_AVAILABLE(SP_HEIST_DOCKS_2B)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"")
|
||
|
||
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_DOCKS_2A)
|
||
CPRINTLN(DEBUG_SWITCH, GET_SP_MISSION_DISPLAY_STRING_FROM_ID(SP_HEIST_DOCKS_2A))
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_DOCKS_2B)
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_DOCKS_2A)
|
||
CPRINTLN(DEBUG_SWITCH, "\" and \"")
|
||
ENDIF
|
||
|
||
CPRINTLN(DEBUG_SWITCH, GET_SP_MISSION_DISPLAY_STRING_FROM_ID(SP_HEIST_DOCKS_2B))
|
||
ENDIF
|
||
|
||
CPRINTLN(DEBUG_SWITCH, "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL IsPedRequestScenesBlockedForBuddyInAvailableMission(PED_REQUEST_SCENE_ENUM eReqScene,
|
||
PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
sPedScene.iStage = 0
|
||
sPedScene.eScene = eReqScene
|
||
sPedScene.ePed = g_sPlayerPedRequest.ePed
|
||
|
||
IF SETUP_PLAYER_TIMETABLE_FOR_SCENE(sPedScene, sPassedScene)
|
||
|
||
IF (sPassedScene.eSceneBuddy <> NO_CHARACTER)
|
||
AND (sPassedScene.eSceneBuddy <> CHAR_BLANK_ENTRY)
|
||
INT iBIT_SCENE_BUDDY = BIT_NOBODY
|
||
INT iMissionID
|
||
SP_MISSIONS eMissionID
|
||
|
||
SWITCH sPassedScene.eSceneBuddy
|
||
CASE CHAR_LAMAR
|
||
iBIT_SCENE_BUDDY = BIT_LAMAR
|
||
BREAK
|
||
CASE CHAR_JIMMY
|
||
iBIT_SCENE_BUDDY = BIT_JIMMY
|
||
BREAK
|
||
CASE CHAR_AMANDA
|
||
iBIT_SCENE_BUDDY = BIT_AMANDA
|
||
BREAK
|
||
|
||
DEFAULT
|
||
RETURN FALSE
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
INT availableMissionIndex
|
||
#IF USE_CLF_DLC
|
||
REPEAT COUNT_OF(g_availableMissionsTU) availableMissionIndex
|
||
//Is a valid mission saved in this slot?
|
||
IF g_availableMissionsTU[availableMissionIndex].index != ILLEGAL_ARRAY_POSITION
|
||
//Yes. Check the coreVars index it points to.
|
||
iMissionID = g_flowUnsaved.coreVars[g_availableMissionsTU[availableMissionIndex].index].iValue1
|
||
#ENDIF
|
||
#IF USE_NRM_DLC
|
||
REPEAT COUNT_OF(g_availableMissionsTU) availableMissionIndex
|
||
//Is a valid mission saved in this slot?
|
||
IF g_availableMissionsTU[availableMissionIndex].index != ILLEGAL_ARRAY_POSITION
|
||
//Yes. Check the coreVars index it points to.
|
||
iMissionID = g_flowUnsaved.coreVars[g_availableMissionsTU[availableMissionIndex].index].iValue1
|
||
#ENDIF
|
||
#IF NOT USE_CLF_DLC
|
||
#IF NOT USE_NRM_DLC
|
||
REPEAT COUNT_OF(g_availableMissions) availableMissionIndex
|
||
//Is a valid mission saved in this slot?
|
||
IF g_availableMissions[availableMissionIndex].index != ILLEGAL_ARRAY_POSITION
|
||
//Yes. Check the coreVars index it points to.
|
||
iMissionID = g_flowUnsaved.coreVars[g_availableMissions[availableMissionIndex].index].iValue1
|
||
#ENDIF
|
||
#ENDIF
|
||
|
||
eMissionID = INT_TO_ENUM(SP_MISSIONS, iMissionID)
|
||
|
||
IF IS_BITMASK_SET(g_sMissionStaticData[eMissionID].friendCharBitset, iBIT_SCENE_BUDDY)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by buddy ", GET_PLAYER_PED_STRING(sPassedScene.eSceneBuddy), " on mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
FUNC BOOL IsPedRequestScenesBlockedForAvailableMission(PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
SP_MISSIONS eMissionID = SP_MISSION_NONE
|
||
SWITCH eReqScene
|
||
CASE PR_SCENE_M2_BEDROOM FALLTHRU // #379457
|
||
CASE PR_SCENE_M2_SAVEHOUSE0_b FALLTHRU // #379457
|
||
CASE PR_SCENE_M2_SAVEHOUSE1_a FALLTHRU
|
||
CASE PR_SCENE_M2_KIDS_TV FALLTHRU
|
||
CASE PR_SCENE_M_POOLSIDE_a FALLTHRU
|
||
CASE PR_SCENE_M2_ARGUEWITHWIFE FALLTHRU
|
||
CASE PR_SCENE_M2_CARSLEEP_a //#1381663
|
||
eMissionID = SP_MISSION_FAMILY_1
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
eMissionID = SP_MISSION_FAMILY_3
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
eMissionID = SP_MISSION_TREVOR_1
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
CASE PR_SCENE_M4_WAKESUPSCARED FALLTHRU //#1570367
|
||
CASE PR_SCENE_M4_WAKEUPSCREAM FALLTHRU
|
||
CASE PR_SCENE_M4_WATCHINGTV FALLTHRU
|
||
CASE PR_SCENE_M4_WASHFACE
|
||
|
||
eMissionID = SP_MISSION_FAMILY_6
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
CASE PR_SCENE_M7_BIKINGJIMMY FALLTHRU //#1573264
|
||
CASE PR_SCENE_M7_DROPPINGOFFJMY FALLTHRU
|
||
CASE PR_SCENE_M7_FAKEYOGA FALLTHRU
|
||
CASE PR_SCENE_M7_GETSREADY FALLTHRU
|
||
CASE PR_SCENE_M7_KIDS_GAMING FALLTHRU
|
||
CASE PR_SCENE_M7_KIDS_TV FALLTHRU
|
||
CASE PR_SCENE_M7_LOT_JIMMY FALLTHRU
|
||
CASE PR_SCENE_M7_LOUNGECHAIRS FALLTHRU
|
||
CASE PR_SCENE_M7_OPENDOORFORAMA FALLTHRU
|
||
CASE PR_SCENE_M7_RESTAURANT FALLTHRU
|
||
CASE PR_SCENE_M7_ROUNDTABLE FALLTHRU
|
||
CASE PR_SCENE_M7_TRACEYEXITSCAR FALLTHRU
|
||
CASE PR_SCENE_M7_WIFETENNIS
|
||
|
||
eMissionID = SP_MISSION_MICHAEL_4
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE PR_SCENE_F0_CLEANCAR FALLTHRU
|
||
CASE PR_SCENE_F0_BIKE FALLTHRU
|
||
// CASE PR_SCENE_F_LAMGRAFF FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_P1 FALLTHRU
|
||
// CASE PR_SCENE_F_LAMTAUNT_P2 FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_P3 FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_P5 FALLTHRU
|
||
CASE PR_SCENE_F_LAMTAUNT_NIGHT
|
||
eMissionID = SP_MISSION_FRANKLIN_1
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE PR_SCENE_T_FLOYDSAVEHOUSE FALLTHRU
|
||
CASE PR_SCENE_T_FLOYD_BEAR FALLTHRU
|
||
CASE PR_SCENE_T_FLOYD_DOLL FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDPINEAPPLE FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDCRYING_A FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDCRYING_E0 FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDCRYING_E1 FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDCRYING_E2 FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDCRYING_E3 FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDSPOON_A FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDSPOON_B FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDSPOON_B2 FALLTHRU
|
||
CASE PR_SCENE_T_FLOYDSPOON_A2
|
||
eMissionID = old_sp_mission_trevor_4
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
eMissionID = eTREV_CITY_SAFEHOUSE_REMOVED //614152
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
eMissionID = SP_HEIST_DOCKS_1 //1348541
|
||
IF IS_MISSION_AVAILABLE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE PR_SCENE_T_CN_WAKEMOUNTAIN
|
||
eMissionID = SP_HEIST_DOCKS_1
|
||
IF NOT GET_MISSION_COMPLETE_STATE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by uncompleted mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
CASE PR_SCENE_T_CN_WAKEBARN
|
||
eMissionID = SP_HEIST_FINALE_2_INTRO
|
||
IF GET_MISSION_COMPLETE_STATE(eMissionID)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by completed mission \"", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMissionID), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
FUNC BOOL IsPedRequestScenesBlockedForLastPassedMission(PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
|
||
SWITCH eReqScene
|
||
CASE PR_SCENE_T_HEADINSINK
|
||
CASE PR_SCENE_T6_FLUSHESFOOT
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
CASE PR_SCENE_T_SHIT
|
||
CASE PR_SCENE_T_JERKOFF
|
||
#ENDIF
|
||
CASE PR_SCENE_T_SMOKEMETH
|
||
|
||
IF IS_BIT_SET(g_savedGlobals.sRandomChars.savedRC[RC_MRS_PHILIPS_1].rcFlags, ENUM_TO_INT(RC_FLAG_COMPLETED))
|
||
AND NOT IS_BIT_SET(g_savedGlobals.sRandomChars.savedRC[RC_MRS_PHILIPS_2].rcFlags, ENUM_TO_INT(RC_FLAG_COMPLETED))
|
||
//
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by completed mission \"", "RC_MRS_PHILIPS_1", "\"")
|
||
|
||
// CASSERTLN(DEBUG_SWITCH, "trevor scene blocked for RC_MRS_PHILIPS_1!!!")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
SWITCH g_eLastMissionPassed
|
||
// CASE SP_HEIST_AGENCY_3A
|
||
// IF (eReqScene = PR_SCENE_T_SWEATSHOP)
|
||
//
|
||
// #IF IS_DEBUG_BUILD
|
||
// IF g_bDebugPrint_SceneScheduleInfo
|
||
// CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by last passed mission \"", "agency_heist3A", "\" id:", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(g_eLastMissionPassed))
|
||
// ENDIF
|
||
// #ENDIF
|
||
//
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
// BREAK
|
||
CASE SP_MISSION_FRANKLIN_2
|
||
IF (eReqScene = PR_SCENE_M2_CYCLING_a)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by last passed mission \"", "franklin2", "\" id:", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(g_eLastMissionPassed))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_In_Queued_VectorID(PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
INT iQueueGameTimer = GET_GAME_TIMER()
|
||
CONST_INT iCONST_QueueGameTimerMs 180000 //3min
|
||
|
||
VECTOR vRequestCoord
|
||
FLOAT fHead
|
||
TEXT_LABEL_31 tRoom
|
||
IF GET_PLAYER_PED_POSITION_FOR_SCENE(eReqScene, vRequestCoord, fHead, tRoom)
|
||
|
||
INT index
|
||
REPEAT g_savedGlobals.sCommsControlData.iNoQueuedCalls index
|
||
|
||
VectorID eVectorID = GET_QUEUED_CALL_VECTOR_ID(index)
|
||
IF eVectorID <> VID_BLANK
|
||
IF ((eVectorID <> VID_BLANK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_HARBOR) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RACE_TRACK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_WINDMILLS) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_NORTH_CLIFF) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_MAZE_BANK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CRANE) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RIVER_CLIFF) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RUNAWAY_TRAIN) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_GOLF_COURSE) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_1K) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_1_5K) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_ROCK_CLIFF))
|
||
|
||
INT iQueuedCallsDelay = g_savedGlobals.sCommsControlData.sQueuedCalls[index].sCommData.iQueueTime - iQueueGameTimer
|
||
IF (iQueuedCallsDelay < iCONST_QueueGameTimerMs)
|
||
IF IS_COORD_IN_VECTOR_ID_AREA(vRequestCoord, eVectorID)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by call eVectorID ", GET_DEBUG_STRING_FOR_VECTOR_ID(eVectorID), " [", TO_FLOAT(iQueuedCallsDelay) / 1000.0, "s]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
REPEAT g_savedGlobals.sCommsControlData.iNoQueuedTexts index
|
||
|
||
VectorID eVectorID = GET_QUEUED_TEXT_VECTOR_ID(index)
|
||
IF eVectorID <> VID_BLANK
|
||
IF ((eVectorID <> VID_BLANK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_HARBOR) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RACE_TRACK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_WINDMILLS) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_NORTH_CLIFF) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_MAZE_BANK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CRANE) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RIVER_CLIFF) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RUNAWAY_TRAIN) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_GOLF_COURSE) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_1K) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_1_5K) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_ROCK_CLIFF))
|
||
|
||
INT iQueuedTextsDelay = g_savedGlobals.sCommsControlData.sQueuedTexts[index].sCommData.iQueueTime - iQueueGameTimer
|
||
IF (iQueuedTextsDelay < iCONST_QueueGameTimerMs)
|
||
IF IS_COORD_IN_VECTOR_ID_AREA(vRequestCoord, eVectorID)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by text eVectorID ", GET_DEBUG_STRING_FOR_VECTOR_ID(eVectorID), " [", TO_FLOAT(iQueuedTextsDelay) / 1000.0, "s]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
REPEAT g_savedGlobals.sCommsControlData.iNoQueuedEmails index
|
||
|
||
VectorID eVectorID = GET_QUEUED_EMAIL_VECTOR_ID(index)
|
||
IF eVectorID <> VID_BLANK
|
||
IF ((eVectorID <> VID_BLANK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_HARBOR) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RACE_TRACK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_WINDMILLS) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_NORTH_CLIFF) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_MAZE_BANK) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CRANE) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RIVER_CLIFF) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_RUNAWAY_TRAIN) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_GOLF_COURSE) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_1K) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_1_5K) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_CANAL) AND (eVectorID <> VID_AMBIENT_BASEJUMP_ROCK_CLIFF))
|
||
|
||
INT iQueuedEmailsDelay = g_savedGlobals.sCommsControlData.sQueuedEmails[index].sCommData.iQueueTime - iQueueGameTimer
|
||
IF (iQueuedEmailsDelay < iCONST_QueueGameTimerMs)
|
||
IF IS_COORD_IN_VECTOR_ID_AREA(vRequestCoord, eVectorID)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by email eVectorID ", GET_DEBUG_STRING_FOR_VECTOR_ID(eVectorID), " [", TO_FLOAT(iQueuedEmailsDelay) / 1000.0, "s]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_Close_To_Blip_Coord(PED_REQUEST_SCENE_ENUM eReqScene,
|
||
VECTOR vRequestCoord,
|
||
VECTOR vBlipCoord,
|
||
FLOAT &fCloseDist2,
|
||
STATIC_BLIP_NAME_ENUM eBlipName,
|
||
INT iBlipCoord = 0)
|
||
INT iBlip = ENUM_TO_INT(eBlipName)
|
||
|
||
//Range check the blip before accessing arrays.
|
||
IF ENUM_TO_INT(iBlip) < 0 OR ENUM_TO_INT(iBlip) >= g_iTotalStaticBlips
|
||
OR eBlipName = STATIC_BLIP_NAME_DUMMY_FINAL
|
||
CASSERTLN(DEBUG_BLIP, "PRIVATE_Is_PedRequest_Close_To_Blip_Coord: Blip ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(iBlip), " was out of range to query. Bug BenR.")
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF g_GameBlips[iBlip].eCategory = STATIC_BLIP_CATEGORY_MINIGAME
|
||
OR g_GameBlips[iBlip].eCategory = STATIC_BLIP_CATEGORY_SAVEHOUSE //#1490906
|
||
OR g_GameBlips[iBlip].eCategory = STATIC_BLIP_CATEGORY_PROPERTY //#1490906
|
||
OR g_GameBlips[iBlip].eCategory = STATIC_BLIP_CATEGORY_SHOP //#2093111
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
CONST_FLOAT fCONST_MIN_DIST_FROM_BLIP 7.5
|
||
CONST_FLOAT fCONST_MIN_DIST_FROM_MISSION_BLIP 10.0 //min:9.251859 url:bugstar:958564
|
||
CONST_FLOAT fCONST_MIN_DIST_FROM_RCM_BLIP 20.0 //
|
||
CONST_FLOAT fCONST_MIN_MISSION_DIST_FROM_SAFEHOUSE 50.0 //min:46.611153 url:bugstar:887427
|
||
CONST_FLOAT fCONST_MIN_SCENE_DIST_FROM_SAFEHOUSE 30.0
|
||
IF VDIST2(vRequestCoord, vBlipCoord) < (fCONST_MIN_DIST_FROM_BLIP*fCONST_MIN_DIST_FROM_BLIP)
|
||
fCloseDist2 = VDIST2(vRequestCoord, vBlipCoord)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CDEBUG1LN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene),
|
||
" allows blipcheck, nearest mission ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(iBlip),
|
||
" [dist:", VDIST(vRequestCoord, vBlipCoord), "m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
FLOAT fMin_dist_from_blip = -1
|
||
IF (g_GameBlips[iBlip].eCategory = STATIC_BLIP_CATEGORY_MISSION)
|
||
fMin_dist_from_blip = fCONST_MIN_DIST_FROM_MISSION_BLIP
|
||
|
||
// #1420453 //
|
||
INT iTriggerIndex
|
||
REPEAT MAX_MISSION_TRIGGERS iTriggerIndex
|
||
IF g_TriggerableMissions[iTriggerIndex].bUsed
|
||
//Is this trigger registered to use the blip we are interested in?
|
||
IF g_TriggerableMissions[iTriggerIndex].eBlip = eBlipName
|
||
fMin_dist_from_blip = g_sMissionActiveData[g_TriggerableMissions[iTriggerIndex].eMissionID].leaveAreaDistance
|
||
ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
// // // // //
|
||
ELIF (g_GameBlips[iBlip].eCategory = STATIC_BLIP_CATEGORY_RANDOMCHAR)
|
||
fMin_dist_from_blip = fCONST_MIN_DIST_FROM_RCM_BLIP
|
||
ENDIF
|
||
|
||
IF fMin_dist_from_blip > 0
|
||
IF VDIST2(vRequestCoord, vBlipCoord) < (fMin_dist_from_blip*fMin_dist_from_blip)
|
||
fCloseDist2 = VDIST2(vRequestCoord, vBlipCoord)
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CDEBUG1LN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene),
|
||
" allows extra blipcheck, nearest mission ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(iBlip),
|
||
" [dist:", VDIST(vRequestCoord, vBlipCoord),
|
||
" <= ", fMin_dist_from_blip,
|
||
"m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
IF (eReqScene <> PR_SCENE_M2_CARSLEEP_a) //#1021775
|
||
|
||
/* SAFEHOUSE BLIPS #782819 */
|
||
SAVEHOUSE_NAME_ENUM iSavehouse
|
||
REPEAT NUMBER_OF_SAVEHOUSE_LOCATIONS iSavehouse
|
||
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[iSavehouse], REPAWN_FLAG_AVAILABLE_BIT)
|
||
IF VDIST2(g_sSavehouses[iSavehouse].vBlipCoords, vBlipCoord) < (fCONST_MIN_MISSION_DIST_FROM_SAFEHOUSE*fCONST_MIN_MISSION_DIST_FROM_SAFEHOUSE)
|
||
IF VDIST2(g_sSavehouses[iSavehouse].vBlipCoords, vRequestCoord) < (fCONST_MIN_SCENE_DIST_FROM_SAFEHOUSE*fCONST_MIN_SCENE_DIST_FROM_SAFEHOUSE)
|
||
fCloseDist2 = VDIST2(g_sSavehouses[iSavehouse].vBlipCoords, vRequestCoord)
|
||
eReqScene = eReqScene
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
ENDREPEAT
|
||
ENDIF
|
||
ENDIF
|
||
/* * * * * * * * * * * * * */
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CDEBUG1LN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene),
|
||
" allows blipcheck, nearest mission ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(iBlip),
|
||
" [dist:", VDIST(vRequestCoord, vBlipCoord), "m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
iBlipCoord = iBlipCoord
|
||
fCloseDist2 = 0.0
|
||
RETURN FALSE
|
||
|
||
ENDFUNC
|
||
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_In_Active_Blip(PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
VECTOR vRequestCoord
|
||
FLOAT fHead
|
||
TEXT_LABEL_31 tRoom
|
||
IF GET_PLAYER_PED_POSITION_FOR_SCENE(eReqScene, vRequestCoord, fHead, tRoom)
|
||
|
||
INT iTriggerIndex
|
||
REPEAT MAX_MISSION_TRIGGERS iTriggerIndex
|
||
IF g_TriggerableMissions[iTriggerIndex].bUsed AND g_TriggerableMissions[iTriggerIndex].eType != MISSION_TRIGGER_TYPE_SWITCH
|
||
// B*-2266498 MISSION_TRIGGER_TYPE_SWITCH - don't run. This type doesn't have an eBlip. (Causes array overrun)
|
||
//Is this trigger registered to use the blip we are interested in?
|
||
STATIC_BLIP_NAME_ENUM eTriggerableBlip = g_TriggerableMissions[iTriggerIndex].eBlip
|
||
|
||
// B*-2344951 Ensure the blip is in range to be extra safe.
|
||
IF ENUM_TO_INT(eTriggerableBlip) >= 0 AND ENUM_TO_INT(eTriggerableBlip) < g_iTotalStaticBlips
|
||
|
||
VECTOR vBlipCoord = GET_STATIC_BLIP_POSITION(eTriggerableBlip)
|
||
FLOAT fCloseDist2 = 0.0
|
||
IF PRIVATE_Is_PedRequest_Close_To_Blip_Coord(eReqScene, vRequestCoord, vBlipCoord, fCloseDist2, eTriggerableBlip)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by eTriggerableBlip ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(ENUM_TO_INT(eTriggerableBlip)),
|
||
" [", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(g_TriggerableMissions[iTriggerIndex].eMissionID, TRUE),
|
||
", dist:", SQRT(fCloseDist2), "m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ELSE
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CDEBUG1LN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " falls through eTriggerableBlip ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(ENUM_TO_INT(eTriggerableBlip)),
|
||
" [", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(g_TriggerableMissions[iTriggerIndex].eMissionID, TRUE), "]")
|
||
ENDIF
|
||
#ENDIF
|
||
ENDIF
|
||
|
||
ENDIF
|
||
|
||
ELSE
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CDEBUG1LN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " unused by eTriggerableBlip ",
|
||
" [", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(g_TriggerableMissions[iTriggerIndex].eMissionID, TRUE), "]")
|
||
ENDIF
|
||
#ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
STATIC_BLIP_NAME_ENUM eBlip
|
||
REPEAT g_iTotalStaticBlips eBlip
|
||
IF IS_BIT_SET(g_GameBlips[eBlip].iSetting,STATIC_BLIP_SETTING_ACTIVE)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CDEBUG1LN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene),
|
||
" needs to check for mission ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(ENUM_TO_INT(eBlip)))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
VECTOR vBlipCoord = GET_STATIC_BLIP_POSITION(eBlip)
|
||
FLOAT fCloseDist2 = 0.0
|
||
IF PRIVATE_Is_PedRequest_Close_To_Blip_Coord(eReqScene, vRequestCoord, vBlipCoord, fCloseDist2, eBlip)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by eBlip ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(ENUM_TO_INT(eBlip)), " [dist:", SQRT(fCloseDist2), "m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
//for multi-char missions
|
||
IF IS_BIT_SET(g_GameBlips[eBlip].iSetting,STATIC_BLIP_SETTING_MULTI_COORD_AND_SPRITE)//g_GameBlips[eBlip].bMultiCoordAndSprite
|
||
|
||
INT iMultiBlip, iMULTI_BLIP_COUNT = 3
|
||
REPEAT iMULTI_BLIP_COUNT iMultiBlip
|
||
VECTOR vMultiBlipCoord = GET_STATIC_BLIP_POSITION(eBlip, iMultiBlip)
|
||
IF NOT IS_VECTOR_ZERO(vMultiBlipCoord)
|
||
IF PRIVATE_Is_PedRequest_Close_To_Blip_Coord(eReqScene, vRequestCoord, vMultiBlipCoord, fCloseDist2, eBlip, iMultiBlip)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by eMultiBlip[", iMultiBlip, "] ", DEBUG_GET_STRING_NAME_OF_STATIC_BLIP(ENUM_TO_INT(eBlip)), " [dist:", SQRT(fCloseDist2), "m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
ENDIF
|
||
|
||
ENDREPEAT
|
||
|
||
ENDIF
|
||
ENDIF
|
||
|
||
ENDREPEAT
|
||
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
FUNC BOOL PRIVATE_Does_PedRequest_Have_Queued_Char(PED_REQUEST_SCENE_ENUM eReqScene,
|
||
PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
|
||
IF bDescentOnlyScene
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
sPedScene.iStage = 0
|
||
sPedScene.eScene = eReqScene
|
||
sPedScene.ePed = g_sPlayerPedRequest.ePed
|
||
|
||
IF SETUP_PLAYER_TIMETABLE_FOR_SCENE(sPedScene, sPassedScene)
|
||
|
||
IF (eReqScene = PR_SCENE_M6_DEPRESSED) //#989626
|
||
sPassedScene.eSceneBuddy = CHAR_DR_FRIEDLANDER
|
||
ENDIF
|
||
|
||
IF (sPassedScene.eSceneBuddy <> NO_CHARACTER)
|
||
IF DOES_CHAR_HAVE_COMMUNICATION_QUEUED(sPassedScene.eSceneBuddy)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by queued comm from char ", GET_PLAYER_PED_STRING(sPassedScene.eSceneBuddy))
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_In_City(PED_REQUEST_SCENE_ENUM eReqScene)
|
||
VECTOR vRequestCoord
|
||
FLOAT fHead
|
||
TEXT_LABEL_31 tRoom
|
||
IF GET_PLAYER_PED_POSITION_FOR_SCENE(eReqScene, vRequestCoord, fHead, tRoom)
|
||
IF vRequestCoord.y < 400.0
|
||
IF vRequestCoord.x < 1400.0
|
||
IF vRequestCoord.x > -1900.0
|
||
IF vRequestCoord.y > -3500.0
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
#if USE_CLF_DLC
|
||
FUNC BOOL PRIVATE_Is_PedRequest_Blocked_To_CityCLF(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
unused_parameter(eReqScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobalsClifford.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
|
||
RETURN FALSE
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
|
||
RETURN FALSE
|
||
BREAK
|
||
|
||
DEFAULT
|
||
RETURN FALSE
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
#endif
|
||
#if USE_NRM_DLC
|
||
FUNC BOOL PRIVATE_Is_PedRequest_Blocked_To_CityNRM(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
unused_parameter(eReqScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobalsnorman.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
|
||
RETURN FALSE
|
||
BREAK
|
||
CASE CHAR_NRM_JIMMY
|
||
|
||
RETURN FALSE
|
||
BREAK
|
||
CASE CHAR_NRM_TRACEY
|
||
|
||
RETURN FALSE
|
||
BREAK
|
||
DEFAULT
|
||
RETURN FALSE
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
#endif
|
||
FUNC BOOL PRIVATE_Is_PedRequest_Blocked_To_City(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene)
|
||
#if USE_CLF_DLC
|
||
return PRIVATE_Is_PedRequest_Blocked_To_CityCLF(ePed,eReqScene)
|
||
#endif
|
||
#if USE_NRM_DLC
|
||
return PRIVATE_Is_PedRequest_Blocked_To_CityNRM(ePed,eReqScene)
|
||
#endif
|
||
#if not USE_CLF_DLC
|
||
#if not USE_NRM_DLC
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_MICHAEL_TREVOR_EXILE_STARTED)
|
||
AND NOT Get_Mission_Flow_Flag_State(FLOWFLAG_MICHAEL_TREVOR_EXILE_FINISHED)
|
||
IF PRIVATE_Is_PedRequest_In_City(eReqScene)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked exile [", "michael in exile", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_COUNTRY)
|
||
IF PRIVATE_Is_PedRequest_In_City(eReqScene)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked [", "trevor restricted to country", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
ENDIF
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_CITY)
|
||
IF NOT PRIVATE_Is_PedRequest_In_City(eReqScene)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked [", "trevor restricted to city", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
ENDIF
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_MICHAEL_TREVOR_EXILE_STARTED)
|
||
AND NOT Get_Mission_Flow_Flag_State(FLOWFLAG_MICHAEL_TREVOR_EXILE_FINISHED)
|
||
IF PRIVATE_Is_PedRequest_In_City(eReqScene)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked exile [", "trevor in exile", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
BREAK
|
||
|
||
DEFAULT
|
||
RETURN FALSE
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
#endif
|
||
#endif
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_In_LastSceneQueue(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
INT iQueue
|
||
REPEAT g_iCOUNT_OF_LAST_SCENE_QUEUE iQueue
|
||
IF (eReqScene = g_SavedGlobals.sPlayerSceneData.g_eLastSceneQueue[ePed][iQueue])
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked last scene queue [", iQueue, "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
|
||
FUNC BOOL PRIVATE_Has_One_Off_PedRequest_Been_Seen(PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
INT iOneOffBit
|
||
IF GET_ONE_OFF_BIT_FOR_PED_REQUEST_SCENE(eReqScene, iOneOffBit)
|
||
|
||
//#1574416
|
||
IF eReqScene = PR_SCENE_F1_NEWHOUSE
|
||
IF NOT IS_BIT_SET(g_SavedGlobals.sPlayerSceneData.g_iSeenOneOffSceneBit, iOneOffBit)
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_2)
|
||
SET_BIT(g_SavedGlobals.sPlayerSceneData.g_iSeenOneOffSceneBit, iOneOffBit)
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF IS_BIT_SET(g_SavedGlobals.sPlayerSceneData.g_iSeenOneOffSceneBit, iOneOffBit)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked one-off seen [", g_SavedGlobals.sPlayerSceneData.g_iSeenOneOffSceneBit, "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC INT PRIVATE_Get_Switch_Clock_Hours()
|
||
IF IS_TIMEOFDAY_VALID(g_sMultiplayerTransitionTOD)
|
||
RETURN GET_TIMEOFDAY_HOUR(g_sMultiplayerTransitionTOD)
|
||
ENDIF
|
||
|
||
RETURN GET_CLOCK_HOURS()
|
||
ENDFUNC
|
||
|
||
FUNC INT PRIVATE_Get_Switch_Clock_Minutes()
|
||
IF IS_TIMEOFDAY_VALID(g_sMultiplayerTransitionTOD)
|
||
RETURN GET_TIMEOFDAY_MINUTE(g_sMultiplayerTransitionTOD)
|
||
ENDIF
|
||
|
||
RETURN GET_CLOCK_MINUTES()
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// X:\gta5\build\dev\common\data\levels\gta5\weather.dat
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL PRIVATE_Is_PedRequest_Blocked_For_Weather(PED_REQUEST_SCENE_ENUM eReqScene, BOOL bDescentOnlyScene)
|
||
/*
|
||
EXTRASUNNY CLEAR CLOUDS
|
||
SMOG CLOUDY OVERCAST
|
||
RAIN THUNDER CLEARING
|
||
NEUTRAL SNOW MULTIPLAYER
|
||
*/
|
||
|
||
// GET_WEATHER_STRING_FROM_HASH()
|
||
|
||
|
||
CONST_INT iEXTRASUNNY HASH("EXTRASUNNY")
|
||
CONST_INT iCLEAR HASH("CLEAR")
|
||
CONST_INT iCLOUDS HASH("CLOUDS")
|
||
CONST_INT iSMOG HASH("SMOG")
|
||
CONST_INT iCLOUDY HASH("CLOUDY")
|
||
CONST_INT iOVERCAST HASH("OVERCAST")
|
||
CONST_INT iRAIN HASH("RAIN")
|
||
CONST_INT iTHUNDER HASH("THUNDER")
|
||
CONST_INT iCLEARING HASH("CLEARING")
|
||
CONST_INT iNEUTRAL HASH("NEUTRAL")
|
||
CONST_INT iSNOW HASH("SNOW")
|
||
CONST_INT iMULTIPLAYER HASH("MULTIPLAYER")
|
||
|
||
INT iPREV_WEATHER_TYPE_HASH_NAME, iNEXT_WEATHER_TYPE_HASH_NAME
|
||
INT iCLOCK_HOURS
|
||
|
||
SWITCH eReqScene
|
||
// Sunny scenes
|
||
CASE PR_SCENE_M_POOLSIDE_a
|
||
CASE PR_SCENE_M_POOLSIDE_b
|
||
CASE PR_SCENE_M2_SAVEHOUSE1_b
|
||
CASE PR_SCENE_M7_READSCRIPT
|
||
CASE PR_SCENE_M7_LOUNGECHAIRS
|
||
CASE PR_SCENE_F1_POOLSIDE_a
|
||
CASE PR_SCENE_F1_POOLSIDE_b
|
||
CASE PR_SCENE_T_CN_CHATEAU_c
|
||
CASE PR_SCENE_T_ANNOYSUNBATHERS
|
||
CASE PR_SCENE_T_CR_RUDEATCAFE
|
||
|
||
iPREV_WEATHER_TYPE_HASH_NAME = GET_PREV_WEATHER_TYPE_HASH_NAME()
|
||
iNEXT_WEATHER_TYPE_HASH_NAME = GET_NEXT_WEATHER_TYPE_HASH_NAME()
|
||
|
||
BOOL bInvalidPrevWeather, bInvalidNextWeather
|
||
bInvalidPrevWeather = FALSE
|
||
bInvalidNextWeather = FALSE
|
||
|
||
IF NOT bDescentOnlyScene
|
||
IF (iPREV_WEATHER_TYPE_HASH_NAME = iRAIN)
|
||
OR (iPREV_WEATHER_TYPE_HASH_NAME = iTHUNDER)
|
||
OR (iPREV_WEATHER_TYPE_HASH_NAME = iSNOW)
|
||
bInvalidPrevWeather = TRUE
|
||
ENDIF
|
||
ENDIF
|
||
IF (iNEXT_WEATHER_TYPE_HASH_NAME = iRAIN)
|
||
OR (iNEXT_WEATHER_TYPE_HASH_NAME = iTHUNDER)
|
||
OR (iNEXT_WEATHER_TYPE_HASH_NAME = iSNOW)
|
||
bInvalidPrevWeather = TRUE
|
||
ENDIF
|
||
|
||
IF bInvalidPrevWeather OR bInvalidNextWeather
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
TEXT_LABEL str1, str2
|
||
|
||
IF NOT bDescentOnlyScene
|
||
SWITCH iPREV_WEATHER_TYPE_HASH_NAME
|
||
CASE iRAIN str1 = ("iRAIN") BREAK
|
||
CASE iTHUNDER str1 = ("iTHUNDER") BREAK
|
||
CASE iSNOW str1 = ("iSNOW") BREAK
|
||
DEFAULT
|
||
str1 = ("\"")
|
||
str1 += (iPREV_WEATHER_TYPE_HASH_NAME)
|
||
str1 += ("\"")
|
||
BREAK
|
||
ENDSWITCH
|
||
ELSE
|
||
str1 += ("DescentOnly")
|
||
ENDIF
|
||
|
||
SWITCH iNEXT_WEATHER_TYPE_HASH_NAME
|
||
CASE iRAIN str2 += ("iRAIN") BREAK
|
||
CASE iTHUNDER str2 += ("iTHUNDER") BREAK
|
||
CASE iSNOW str2 += ("iSNOW") BREAK
|
||
DEFAULT
|
||
str2 = ("\"")
|
||
str2 += (iNEXT_WEATHER_TYPE_HASH_NAME)
|
||
str2 += ("\"")
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked for weather [prev:", str1, ", next:", str2, "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
iCLOCK_HOURS = PRIVATE_Get_Switch_Clock_Hours()
|
||
IF (iCLOCK_HOURS < 9 OR iCLOCK_HOURS >= 14) /* 09:00 - 13:59 */
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
TEXT_LABEL str
|
||
str = iCLOCK_HOURS
|
||
str += ":"
|
||
IF (PRIVATE_Get_Switch_Clock_Minutes() < 10) str += "0" ENDIF
|
||
str += PRIVATE_Get_Switch_Clock_Minutes()
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked for weather TOD [", str, "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
CASE PR_SCENE_F_MD_KUSH_DOC
|
||
CASE PR_SCENE_F_KUSH_DOC_a
|
||
CASE PR_SCENE_F_GYM
|
||
iCLOCK_HOURS = PRIVATE_Get_Switch_Clock_Hours()
|
||
IF (iCLOCK_HOURS < 9 OR iCLOCK_HOURS >= 21) /* 09:00 - 20:59 */
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
TEXT_LABEL str
|
||
str = iCLOCK_HOURS
|
||
str += ":"
|
||
IF (PRIVATE_Get_Switch_Clock_Minutes() < 10) str += "0" ENDIF
|
||
str += PRIVATE_Get_Switch_Clock_Minutes()
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked for weather TOD [", str, "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
CASE PR_SCENE_M2_SMOKINGGOLF
|
||
iCLOCK_HOURS = PRIVATE_Get_Switch_Clock_Hours()
|
||
IF NOT IS_GOLF_CLUB_OPEN_AT_TIME_OF_DAY(iCLOCK_HOURS)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
TEXT_LABEL str
|
||
str = iCLOCK_HOURS
|
||
str += ":"
|
||
IF (PRIVATE_Get_Switch_Clock_Minutes() < 10) str += "0" ENDIF
|
||
str += PRIVATE_Get_Switch_Clock_Minutes()
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked for weather TOD [", str, "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
CASE PR_SCENE_T_FLOYD_BEAR
|
||
IF g_eCurrentBuildingState[BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM] <> BUILDINGSTATE_DESTROYED
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked for building ex [", "FLOYDS_APPARTMENT_RASPBERRY_JAM", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
|
||
CASE PR_SCENE_M2_CARSLEEP_a
|
||
CASE PR_SCENE_M2_CARSLEEP_b
|
||
CASE PR_SCENE_M_PARKEDHILLS_a
|
||
CASE PR_SCENE_M_PARKEDHILLS_b
|
||
CASE PR_SCENE_M4_PARKEDBEACH
|
||
#if not USE_CLF_DLC
|
||
#if not USE_NRM_DLC
|
||
IF g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_MICHAEL_AMANDA_HAVE_SPLIT]
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked by available mission \"", GET_FLAG_DISPLAY_STRING_FROM_FLAG_ID(FLOWFLAG_MICHAEL_AMANDA_HAVE_SPLIT), "\"")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
#endif
|
||
#endif
|
||
BREAK
|
||
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_Blocked_For_Sleeptime(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene, BOOL bDescentOnlyScene)
|
||
|
||
IF bDescentOnlyScene
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
TIMEOFDAY sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed]
|
||
IF NOT Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
SWITCH eReqScene
|
||
CASE PR_SCENE_M2_BEDROOM
|
||
CASE PR_SCENE_M2_SAVEHOUSE0_b
|
||
CASE PR_SCENE_M2_CARSLEEP_a
|
||
CASE PR_SCENE_M2_CARSLEEP_b
|
||
CASE PR_SCENE_M4_WAKESUPSCARED
|
||
CASE PR_SCENE_M4_WAKEUPSCREAM
|
||
CASE PR_SCENE_M6_HOUSEBED
|
||
CASE PR_SCENE_M7_GETSREADY
|
||
|
||
CASE PR_SCENE_F0_SH_ASLEEP
|
||
CASE PR_SCENE_F1_SH_ASLEEP
|
||
|
||
CASE PR_SCENE_T_FLOYDSPOON_A
|
||
CASE PR_SCENE_T_FLOYDSPOON_A2
|
||
CASE PR_SCENE_T_FLOYDSPOON_B
|
||
CASE PR_SCENE_T_FLOYDSPOON_B2
|
||
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, g_iCONST_GAME_HOURS_FOR_ASLEEP_SWITCH)
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
INT iSeconds, iMinutes, iHours, iDays, iMonths, iYears
|
||
GET_DIFFERENCE_BETWEEN_NOW_AND_TIMEOFDAY(sLastTimeActive, iSeconds, iMinutes, iHours, iDays, iMonths, iYears)
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked for sleeptime [", iSeconds, "s ", iMinutes, "m ", iHours, "h ", iDays, "d ", iMonths+(iYears*12), "m", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
BREAK
|
||
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_Blocked_For_SafehouseTutorial(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene)
|
||
|
||
IF (eReqScene = PR_SCENE_F1_NEWHOUSE) //#1501744
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " ignores safehouse tutorial scene")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
VECTOR vCentreProperty = <<0,0,0>>
|
||
FLOAT fPropertyDistChec = -1
|
||
|
||
FLOW_BITSET_IDS eFlowBitsetToQuery
|
||
INT iOffsetBitIndex
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
// For Michael's Family Home -
|
||
/* IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(GET_HASH_KEY("SH_Intro_M_Home")) > 0
|
||
vCentreProperty = << -808.79742, 169.31934, 70.95580 >>
|
||
fPropertyDistChec = 85.0
|
||
ENDIF */
|
||
|
||
// Michael's house
|
||
//Is this bit in our first or second bitset?
|
||
IF ENUM_TO_INT(LAUNCH_BIT_SH_INTRO_M_HOME) <= 31
|
||
eFlowBitsetToQuery = FLOWBITSET_RESTART_FLOW_LAUNCHED_SCRIPTS_1
|
||
iOffsetBitIndex = ENUM_TO_INT(LAUNCH_BIT_SH_INTRO_M_HOME)
|
||
ELSE
|
||
eFlowBitsetToQuery = FLOWBITSET_RESTART_FLOW_LAUNCHED_SCRIPTS_2
|
||
iOffsetBitIndex = ENUM_TO_INT(LAUNCH_BIT_SH_INTRO_M_HOME) - 31
|
||
ENDIF
|
||
|
||
IF IS_BIT_SET (g_savedGlobals.sFlow.controls.bitsetIDs[eFlowBitsetToQuery], iOffsetBitIndex)
|
||
// cutscene script is due to relaunch or is active
|
||
vCentreProperty = << -808.79742, 169.31934, 70.95580 >>
|
||
fPropertyDistChec = 85.0
|
||
ENDIF
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
// For Franklin's hills safehouse -
|
||
/* IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(GET_HASH_KEY("SH_Intro_F_Hills")) > 0
|
||
vCentreProperty = << -2.62564, 528.32562, 178.39198 >>
|
||
fPropertyDistChec = 65.0
|
||
ENDIF */
|
||
|
||
// Franklin's appartment
|
||
//Is this bit in our first or second bitset?
|
||
IF ENUM_TO_INT(LAUNCH_BIT_SH_INTRO_F_HILLS) <= 31
|
||
eFlowBitsetToQuery = FLOWBITSET_RESTART_FLOW_LAUNCHED_SCRIPTS_1
|
||
iOffsetBitIndex = ENUM_TO_INT(LAUNCH_BIT_SH_INTRO_F_HILLS)
|
||
ELSE
|
||
eFlowBitsetToQuery = FLOWBITSET_RESTART_FLOW_LAUNCHED_SCRIPTS_2
|
||
iOffsetBitIndex = ENUM_TO_INT(LAUNCH_BIT_SH_INTRO_F_HILLS) - 31
|
||
ENDIF
|
||
|
||
IF IS_BIT_SET (g_savedGlobals.sFlow.controls.bitsetIDs[eFlowBitsetToQuery], iOffsetBitIndex)
|
||
// cutscene script is due to relaunch or is active
|
||
vCentreProperty = << -2.62564, 528.32562, 178.39198 >>
|
||
fPropertyDistChec = 65.0
|
||
ENDIF
|
||
BREAK
|
||
|
||
DEFAULT
|
||
RETURN FALSE
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
IF (fPropertyDistChec < 0)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
VECTOR vRequestCoord
|
||
FLOAT fHead
|
||
TEXT_LABEL_31 tRoom
|
||
IF GET_PLAYER_PED_POSITION_FOR_SCENE(eReqScene, vRequestCoord, fHead, tRoom)
|
||
FLOAT fPropertyDist2 = VDIST2(vRequestCoord, vCentreProperty)
|
||
IF (fPropertyDist2 < (fPropertyDistChec*fPropertyDistChec))
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked too close to a safehouse tutorial scene [", SQRT(fPropertyDist2), "m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_Is_PedRequest_TooCloseToCurrentPlayer(PED_REQUEST_SCENE_ENUM eReqScene, BOOL bDescentOnlyScene,
|
||
FLOAT fCONST_DIST_FROM_CURRENT_PLAYER = 400.0) //750.0 //150.0)
|
||
IF bDescentOnlyScene
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " ignores TooCloseToCurrentPlayer for descent only scenes")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
VECTOR vRequestCoord
|
||
FLOAT fHead
|
||
TEXT_LABEL_31 tRoom
|
||
IF GET_PLAYER_PED_POSITION_FOR_SCENE(eReqScene, vRequestCoord, fHead, tRoom)
|
||
// IF vRequestCoord.y < 400.0
|
||
// IF vRequestCoord.x < 1400.0
|
||
// IF vRequestCoord.x > -1900.0
|
||
// IF vRequestCoord.y > -3500.0
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
// ENDIF
|
||
// ENDIF
|
||
// ENDIF
|
||
|
||
VECTOR vPlayerCoord = GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE)
|
||
FLOAT fPlayerDist2 = VDIST2(vRequestCoord, vPlayerCoord)
|
||
|
||
//1492523
|
||
IF fPlayerDist2 < (fCONST_DIST_FROM_CURRENT_PLAYER*fCONST_DIST_FROM_CURRENT_PLAYER)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked too close to the player [", SQRT(fPlayerDist2), "m < ", ROUND(fCONST_DIST_FROM_CURRENT_PLAYER), "m]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL IsPedRequestScenesAcceptable(PED_REQUEST_SCENE_ENUM eReqScene, enumCharacterList ePed, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene, BOOL bIgnoreBlipDistCheck = FALSE)
|
||
IF (eReqScene = PR_SCENE_INVALID)
|
||
OR (eReqScene = PR_SCENE_DEAD)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF bDescentOnlyScene
|
||
IF (eReqScene = PR_SCENE_F0_TANISHAFIGHT) //#1522036
|
||
OR (eReqScene = PR_SCENE_F1_NEWHOUSE)
|
||
|
||
OR (eReqScene = PR_SCENE_T6_METHLAB)
|
||
OR (eReqScene = PR_SCENE_T6_LAKE)
|
||
OR (eReqScene = PR_SCENE_T_FLYING_PLANE)
|
||
|
||
OR (eReqScene = PR_SCENE_M_TRAFFIC_a)
|
||
OR (eReqScene = PR_SCENE_M_TRAFFIC_b)
|
||
OR (eReqScene = PR_SCENE_M_TRAFFIC_c)
|
||
|
||
OR (eReqScene = PR_SCENE_F_TRAFFIC_a)
|
||
OR (eReqScene = PR_SCENE_F_TRAFFIC_b)
|
||
OR (eReqScene = PR_SCENE_F_TRAFFIC_c)
|
||
|
||
OR (eReqScene = PR_SCENE_F_MD_KUSH_DOC)
|
||
|
||
OR (eReqScene = PR_SCENE_F_CS_CHECKSHOE)
|
||
OR (eReqScene = PR_SCENE_F_CS_WIPEHANDS)
|
||
OR (eReqScene = PR_SCENE_F_CS_WIPERIGHT)
|
||
|
||
OR (eReqScene = PR_SCENE_T_CR_CHASECAR_a)
|
||
OR (eReqScene = PR_SCENE_T_CN_CHASECAR_b)
|
||
OR (eReqScene = PR_SCENE_T_CR_CHASEBIKE)
|
||
OR (eReqScene = PR_SCENE_T_CR_CHASESCOOTER)
|
||
|
||
OR (eReqScene = PR_SCENE_T_CR_POLICE_a)
|
||
OR (eReqScene = PR_SCENE_T_CN_POLICE_b)
|
||
OR (eReqScene = PR_SCENE_T_CN_POLICE_c)
|
||
|
||
OR (eReqScene = PR_SCENE_F_LAMTAUNT_P1) //#1820715
|
||
OR (eReqScene = PR_SCENE_F_LAMTAUNT_P3)
|
||
OR (eReqScene = PR_SCENE_F_LAMTAUNT_P5)
|
||
OR (eReqScene = PR_SCENE_F_LAMTAUNT_NIGHT)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked bDescentOnlyScene [", "descent only", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
TEXT_LABEL_31 RoomName = ""
|
||
FLOAT fTurnOffTVPhase = 0.0
|
||
TV_LOCATION eRoomTVLocation
|
||
TVCHANNELTYPE eTVChannelType
|
||
TV_CHANNEL_PLAYLIST eTVPlaylist
|
||
|
||
IF CONTROL_PLAYER_WATCHING_TV(eReqScene, RoomName, fTurnOffTVPhase, eRoomTVLocation, eTVChannelType, eTVPlaylist)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF g_bDebugPrint_SceneScheduleInfo
|
||
CPRINTLN(DEBUG_SWITCH, "eReqScene ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " blocked bDescentOnlyScene [", "descent only/tv script!", "]")
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
|
||
IF PRIVATE_Has_One_Off_PedRequest_Been_Seen(eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF IsPedRequestSceneDupeOfLastKnownScene(ePed, eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF PRIVATE_Is_PedRequest_In_LastSceneQueue(ePed, eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF IsPedRequestScenesBlockedForFriend(eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
|
||
IF IsPedRequestScenesBlockedForBuddyInAvailableMission(eReqScene, sPedScene, sPassedScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF NOT bIgnoreBlipDistCheck //pre-mission switches
|
||
IF IsPedRequestScenesBlockedForAvailableMission(eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF IsPedRequestScenesBlockedForLastPassedMission(eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
|
||
IF PRIVATE_Is_PedRequest_In_Queued_VectorID(eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF PRIVATE_Does_PedRequest_Have_Queued_Char(eReqScene, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
|
||
IF PRIVATE_Is_PedRequest_Blocked_To_City(ePed, eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF NOT bIgnoreBlipDistCheck //pre-mission switches
|
||
IF PRIVATE_Is_PedRequest_In_Active_Blip(eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
|
||
IF PRIVATE_Is_PedRequest_Blocked_For_Weather(eReqScene, bDescentOnlyScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
|
||
IF PRIVATE_Is_PedRequest_Blocked_For_Sleeptime(ePed, eReqScene, bDescentOnlyScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
|
||
IF PRIVATE_Is_PedRequest_Blocked_For_SafehouseTutorial(ePed, eReqScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF NOT bIgnoreBlipDistCheck
|
||
IF PRIVATE_Is_PedRequest_TooCloseToCurrentPlayer(eReqScene, bDescentOnlyScene)
|
||
RETURN FALSE
|
||
ENDIF
|
||
ELSE
|
||
IF PRIVATE_Is_PedRequest_TooCloseToCurrentPlayer(eReqScene, bDescentOnlyScene, 15)
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
|
||
FUNC FLOAT GetDistanceFromTimeOfDayDifference(TIMEOFDAY sDiffTimeOfDay)
|
||
CONST_FLOAT fMIN_DISTANCE 1000.0
|
||
CONST_FLOAT fMAX_DISTANCE 10000.0
|
||
|
||
FLOAT fMIN_HOURS = 1.0 * 60.0 * 60.0
|
||
FLOAT fMAX_HOURS = 24.0 * 60.0 * 60.0
|
||
|
||
IF (GET_TIMEOFDAY_YEAR(sDiffTimeOfDay) > 0)
|
||
OR (GET_TIMEOFDAY_MONTH(sDiffTimeOfDay) > INT_TO_ENUM(MONTH_OF_YEAR,0))
|
||
OR (GET_TIMEOFDAY_DAY(sDiffTimeOfDay) > 0)
|
||
/* OR (sDifferenceTimeActive.iDayOfWeek > 0) */ // never needed (mon-sun?)
|
||
|
||
/* OR (sDifferenceTimeActive.iHours > 0) // only need to check if year, month or
|
||
OR (sDifferenceTimeActive.iMinutes > 0) // DOM is greater than zero to see if more
|
||
OR (sDifferenceTimeActive.iSeconds > 0) */ // than a day has passed
|
||
RETURN fMAX_DISTANCE
|
||
ENDIF
|
||
|
||
IF (GET_TIMEOFDAY_HOUR(sDiffTimeOfDay) <= 0)
|
||
RETURN 0.0
|
||
ENDIF
|
||
|
||
INT iDiffTimeInSeconds = (((GET_TIMEOFDAY_HOUR(sDiffTimeOfDay) * 60) + GET_TIMEOFDAY_MINUTE(sDiffTimeOfDay)) * 60) + GET_TIMEOFDAY_SECOND(sDiffTimeOfDay)
|
||
|
||
// CPRINTLN(DEBUG_SWITCH, " iMAX_TimeInSeconds: ")
|
||
// CPRINTLN(DEBUG_SWITCH, iMAX_TimeInSeconds)
|
||
// CPRINTLN(DEBUG_SWITCH, ", iDiffTimeInSeconds: ")
|
||
// CPRINTLN(DEBUG_SWITCH, iDiffTimeInSeconds)
|
||
|
||
//
|
||
FLOAT m = (fMAX_distance - fMIN_distance) / (fMAX_hours - fMIN_hours)
|
||
FLOAT c = fMIN_distance - (m*fMIN_hours)
|
||
|
||
FLOAT d = (m*iDiffTimeInSeconds) + c
|
||
|
||
IF d < fMIN_DISTANCE
|
||
d = fMIN_DISTANCE
|
||
ENDIF
|
||
IF d > fMAX_DISTANCE
|
||
d = fMAX_DISTANCE
|
||
ENDIF
|
||
|
||
RETURN d
|
||
ENDFUNC
|
||
|
||
FUNC BOOL GetDesiredPedRequestSceneFromArray(enumCharacterList ePed,
|
||
PED_REQUEST_SCENE_ENUM &eRequestArray[], FLOAT &fPercentArray[],
|
||
PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent,
|
||
PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene, BOOL bIgnoreBlipDistCheck = FALSE)
|
||
|
||
//get a percentage...
|
||
FLOAT fMaxPercent = 0
|
||
|
||
INT iLoop
|
||
REPEAT COUNT_OF(fPercentArray) iLoop
|
||
IF IsPedRequestScenesAcceptable(eRequestArray[iLoop], ePed, sPedScene, sPassedScene, bDescentOnlyScene, bIgnoreBlipDistCheck)
|
||
fMaxPercent += fPercentArray[iLoop]
|
||
ELSE
|
||
eRequestArray[iLoop] = PR_SCENE_INVALID
|
||
fPercentArray[iLoop] = 0.0
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
|
||
|
||
// // // // //
|
||
// #IF IS_DEBUG_BUILD
|
||
IF NOT bDescentOnlyScene
|
||
AND NOT bIgnoreBlipDistCheck
|
||
IF (g_iAvailablePlayerMissions[ePed] = 1)
|
||
|
||
SP_MISSIONS eMission = g_eFirstAvailablePlayerMission[ePed]
|
||
STATIC_BLIP_NAME_ENUM eBlip = g_sMissionStaticData[eMission].blip
|
||
|
||
// IF (eMission = SP_HEIST_FINALE_2B)
|
||
// SAVE_STRING_TO_DEBUG_FILE("g_iAvailablePlayerMissions[")
|
||
// SAVE_STRING_TO_DEBUG_FILE(GET_PLAYER_PED_STRING(ePed))
|
||
// SAVE_STRING_TO_DEBUG_FILE("]: ")
|
||
// SAVE_INT_TO_DEBUG_FILE(g_iAvailablePlayerMissions[ePed])
|
||
// SAVE_STRING_TO_DEBUG_FILE(" mission: ")
|
||
// SAVE_STRING_TO_DEBUG_FILE(GET_SP_MISSION_DISPLAY_STRING_FROM_ID(eMission))
|
||
// SAVE_NEWLINE_TO_DEBUG_FILE()
|
||
// ENDIF
|
||
|
||
VECTOR vBlipCoords
|
||
IF NOT IS_STATIC_BLIP_MULTIMODE(eBlip)
|
||
vBlipCoords = GET_STATIC_BLIP_POSITION(eBlip)
|
||
ELSE
|
||
vBlipCoords = GET_STATIC_BLIP_POSITION(eBlip, ENUM_TO_INT(ePed))
|
||
ENDIF
|
||
|
||
VECTOR vCreateCoords = <<0,0,0>>
|
||
FLOAT fCreateHead = 0
|
||
TEXT_LABEL_31 tRoom = ""
|
||
REPEAT COUNT_OF(fPercentArray) iLoop
|
||
IF (eRequestArray[iLoop] <> PR_SCENE_INVALID)
|
||
IF GET_PLAYER_PED_POSITION_FOR_SCENE(eRequestArray[iLoop],
|
||
vCreateCoords, fCreateHead, tRoom)
|
||
|
||
FLOAT fSwitchToMissionDist2 = VDIST2(vBlipCoords, vCreateCoords)
|
||
|
||
// IF (eMission = SP_HEIST_FINALE_2B)
|
||
// #IF IS_DEBUG_BUILD
|
||
// SAVE_STRING_TO_DEBUG_FILE(" switch ")
|
||
// SAVE_STRING_TO_DEBUG_FILE(Get_String_From_Ped_Request_Scene_Enum(eRequestArray[iLoop]))
|
||
// SAVE_STRING_TO_DEBUG_FILE(" dist: ")
|
||
// SAVE_FLOAT_TO_DEBUG_FILE(SQRT(fSwitchToMissionDist2))
|
||
// SAVE_NEWLINE_TO_DEBUG_FILE()
|
||
// #ENDIF
|
||
// ENDIF
|
||
|
||
IF (fSwitchToMissionDist2 < (150*150))
|
||
eReqScene = eRequestArray[iLoop]
|
||
fScenePercent = 100 //fPercentArray[iLoop]
|
||
|
||
CPRINTLN(DEBUG_SWITCH, "will this ever fire - check url:bugstar:944315")
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
ELSE
|
||
//
|
||
ENDIF
|
||
ENDIF
|
||
// #ENDIF
|
||
// // // // //
|
||
|
||
|
||
|
||
FLOAT fPercent = GET_RANDOM_FLOAT_IN_RANGE(0, fMaxPercent)
|
||
REPEAT COUNT_OF(fPercentArray) iLoop
|
||
|
||
IF (eRequestArray[iLoop] <> PR_SCENE_INVALID)
|
||
IF fPercent < fPercentArray[iLoop]
|
||
eReqScene = eRequestArray[iLoop]
|
||
fScenePercent = fPercentArray[iLoop]
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
fPercent -= fPercentArray[iLoop]
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "invalid fPercent in GetDesiredPedRequestSceneFromArray(", GET_PLAYER_PED_STRING(ePed), ",", PRIVATE_Get_Switch_Clock_Hours(), ":00)")
|
||
|
||
g_bDebugPrint_SceneScheduleInfo = TRUE
|
||
#ENDIF
|
||
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
//ENUM TIME_SAMPLE
|
||
// TS_NIGHT = 0,
|
||
// TS_MORNING,
|
||
// TS_AFTERNOON,
|
||
// TS_EVENING
|
||
//ENDENUM
|
||
FUNC TIME_SAMPLE PRIVATE_GetPlayerTriggerPrioritySwitch(enumCharacterList ePed)
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
SWITCH PRIVATE_Get_Switch_Clock_Hours()
|
||
/* 00:00 - 08:59 */
|
||
CASE 0 CASE 1 CASE 2
|
||
CASE 3 CASE 4 CASE 5
|
||
CASE 6 CASE 7 CASE 8
|
||
RETURN TS_MORNING
|
||
BREAK
|
||
|
||
/* 09:00 - 13:59 */
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13
|
||
RETURN TS_AFTERNOON
|
||
BREAK
|
||
|
||
/* 14:00 - 19:59 */
|
||
CASE 14 CASE 15 CASE 16
|
||
CASE 17 CASE 18 CASE 19
|
||
RETURN TS_EVENING
|
||
BREAK
|
||
|
||
/* 20:00 - 23:59 */
|
||
CASE 20 CASE 21 CASE 22
|
||
CASE 23
|
||
RETURN TS_NIGHT
|
||
BREAK
|
||
ENDSWITCH
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
SWITCH PRIVATE_Get_Switch_Clock_Hours()
|
||
/* 03:00 - 08:59 */
|
||
CASE 3 CASE 4 CASE 5
|
||
CASE 6 CASE 7 CASE 8
|
||
RETURN TS_NIGHT
|
||
BREAK
|
||
|
||
/* 09:00 - 14:59 */
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13 CASE 14
|
||
RETURN TS_MORNING
|
||
BREAK
|
||
|
||
/* 15:00 - 20:59 */
|
||
CASE 15 CASE 16 CASE 17
|
||
CASE 18 CASE 19 CASE 20
|
||
RETURN TS_AFTERNOON
|
||
BREAK
|
||
|
||
/* 21:00 - 02:59 */
|
||
CASE 21 CASE 22 CASE 23
|
||
CASE 0 CASE 1 CASE 2
|
||
RETURN TS_EVENING
|
||
BREAK
|
||
ENDSWITCH
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
SWITCH PRIVATE_Get_Switch_Clock_Hours()
|
||
/* 00:00 - 5:59 */
|
||
CASE 0 CASE 1 CASE 2
|
||
CASE 3 CASE 4 CASE 5
|
||
RETURN TS_MORNING
|
||
BREAK
|
||
|
||
/* 06:00 - 14:59 */
|
||
CASE 6 CASE 7 CASE 8
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13 CASE 14
|
||
RETURN TS_AFTERNOON
|
||
BREAK
|
||
|
||
/* 15:00 - 23:59 */
|
||
CASE 15 CASE 16 CASE 17
|
||
CASE 18 CASE 19 CASE 20
|
||
CASE 21 CASE 22 CASE 23
|
||
RETURN TS_EVENING
|
||
BREAK
|
||
ENDSWITCH
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN INT_TO_ENUM(TIME_SAMPLE, -1)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_ShouldPlayerTriggerPrioritySwitch(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent,
|
||
PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
TIME_SAMPLE eSample, BOOL bDescentOnlyScene,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneOne = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneTwo = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneThree = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneFour = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneFive = PR_SCENE_INVALID,
|
||
PED_REQUEST_SCENE_ENUM eTestSceneSix = PR_SCENE_INVALID)
|
||
|
||
// for url:bugstar:944315 and url:bugstar:965982, ignore priority
|
||
IF (g_iAvailablePlayerMissions[ePed] = 1)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF NOT g_savedGlobals.sFlow.isGameflowActive
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
IF g_SavedGlobals.sPlayerSceneData.g_bPlayerTriggeredPrioritySwitch[ePed][eSample]
|
||
|
||
INT iSceneIndex
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[6]
|
||
FLOAT fPercentArray[6]
|
||
|
||
IF (eTestSceneOne <> PR_SCENE_INVALID)
|
||
eRequestArray[iSceneIndex] = eTestSceneOne
|
||
fPercentArray[iSceneIndex] = 1.0
|
||
iSceneIndex++
|
||
ENDIF
|
||
IF (eTestSceneTwo <> PR_SCENE_INVALID)
|
||
eRequestArray[iSceneIndex] = eTestSceneTwo
|
||
fPercentArray[iSceneIndex] = 1.0
|
||
iSceneIndex++
|
||
ENDIF
|
||
IF (eTestSceneThree <> PR_SCENE_INVALID)
|
||
eRequestArray[iSceneIndex] = eTestSceneThree
|
||
fPercentArray[iSceneIndex] = 1.0
|
||
iSceneIndex++
|
||
ENDIF
|
||
IF (eTestSceneFour <> PR_SCENE_INVALID)
|
||
eRequestArray[iSceneIndex] = eTestSceneFour
|
||
fPercentArray[iSceneIndex] = 1.0
|
||
iSceneIndex++
|
||
ENDIF
|
||
IF (eTestSceneFive <> PR_SCENE_INVALID)
|
||
eRequestArray[iSceneIndex] = eTestSceneFive
|
||
fPercentArray[iSceneIndex] = 1.0
|
||
iSceneIndex++
|
||
ENDIF
|
||
IF (eTestSceneSix <> PR_SCENE_INVALID)
|
||
eRequestArray[iSceneIndex] = eTestSceneSix
|
||
fPercentArray[iSceneIndex] = 1.0
|
||
iSceneIndex++
|
||
ENDIF
|
||
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
g_SavedGlobals.sPlayerSceneData.g_bPlayerTriggeredPrioritySwitch[ePed][eSample] = FALSE
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "reset g_bPlayerTriggeredPrioritySwitch[", GET_PLAYER_PED_STRING(ePed), "][", ENUM_TO_INT(eSample), "]")
|
||
#ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_ClearPrioritySwitchFlag(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene)
|
||
IF (eReqScene = PR_SCENE_M_DEFAULT)
|
||
OR (eReqScene = PR_SCENE_F_DEFAULT)
|
||
OR (eReqScene = PR_SCENE_T_DEFAULT)
|
||
|
||
OR (eReqScene = PR_SCENE_HOSPITAL)
|
||
|
||
OR (eReqScene = PR_SCENE_M_OVERRIDE)
|
||
OR (eReqScene = PR_SCENE_F_OVERRIDE)
|
||
OR (eReqScene = PR_SCENE_T_OVERRIDE)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
VECTOR vLastKnownCoords
|
||
FLOAT fLastKnownHead
|
||
IF GetLastKnownPedInfoPostMission(eReqScene, vLastKnownCoords, fLastKnownHead)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
TIME_SAMPLE eSample = PRIVATE_GetPlayerTriggerPrioritySwitch(ePed)
|
||
g_SavedGlobals.sPlayerSceneData.g_bPlayerTriggeredPrioritySwitch[ePed][eSample] = FALSE
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "clear g_bPlayerTriggeredPrioritySwitch[", GET_PLAYER_PED_STRING(ePed), "][sample_", ENUM_TO_INT(eSample), "]")
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL PRIVATE_TriggerThisPrioritySwitch(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM eReqScene, TIME_SAMPLE eSample)
|
||
IF (ePed <> NO_CHARACTER)
|
||
ENDIF
|
||
IF (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF (eSample <> TS_NIGHT)
|
||
ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
|
||
TYPEDEF FUNC BOOL SceneScheduleFunc(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
FUNC BOOL BlankSceneScheduleFunc(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
sPedScene.eScene = sPedScene.eScene
|
||
sPassedScene.eSceneBuddy = sPassedScene.eSceneBuddy
|
||
bDescentOnlyScene = bDescentOnlyScene
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDFUNC
|
||
|
||
|
||
|
||
/// PURPOSE: Cycles through the list of weapons and checks to see if the player has any ammo or mods
|
||
FUNC BOOL DoesPlayerPedHaveWeaponStored(enumCharacterList ePed, WEAPON_TYPE eWeaponType)
|
||
WEAPON_SLOT eWeaponSlot = GET_WEAPONTYPE_SLOT(eWeaponType)
|
||
|
||
// Grab the weapon type and reset ammo/mod counts
|
||
IF g_savedGlobals.sPlayerData.sInfo.sWeapons[ePed].sWeaponInfo[GET_INT_FROM_PLAYER_PED_WEAPON_SLOT(eWeaponSlot)].eWeaponType = eWeaponType
|
||
IF (g_savedGlobals.sPlayerData.sInfo.sWeapons[ePed].sWeaponInfo[GET_INT_FROM_PLAYER_PED_WEAPON_SLOT(eWeaponSlot)].iAmmoCount > 0)
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
// *******************************************************************************************
|
||
// FUNCTIONS FOR MISSION SPECIFIC SWITCH SCHEDULING
|
||
// *******************************************************************************************
|
||
|
||
|
||
FUNC BOOL GetPedRequestSceneForAvailableMission(enumCharacterList ePed,
|
||
PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent,
|
||
PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene)
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[3]
|
||
FLOAT fPercentArray[3]
|
||
SP_MISSIONS ePostMissionSwitch = SP_MISSION_NONE
|
||
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_FAMILY_3)
|
||
// Michael should have a switch near his safehouse
|
||
IF (ePed = CHAR_MICHAEL)
|
||
eRequestArray[0] = PR_SCENE_M2_DRIVING_a fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_M2_CARSLEEP_b fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_M_COFFEE_b fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_MISSION_FAMILY_3
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_FRANKLIN_1)
|
||
// Franklin near safehouse Block Franklin switch scenes in countryside or Drunk etc
|
||
IF (ePed = CHAR_FRANKLIN)
|
||
eRequestArray[0] = PR_SCENE_F_HIT_CUP_HAND fPercentArray[0] = 40.0
|
||
eRequestArray[1] = PR_SCENE_F_THROW_CUP fPercentArray[1] = 40.0
|
||
eRequestArray[2] = PR_SCENE_F_TRAFFIC_b fPercentArray[2] = 20.0
|
||
ePostMissionSwitch = SP_MISSION_FRANKLIN_1
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_MARTIN_1)
|
||
// Michael should be on one of his hills switches
|
||
IF (ePed = CHAR_MICHAEL)
|
||
eRequestArray[0] = PR_SCENE_M_PARKEDHILLS_a fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_M_PARKEDHILLS_b fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_M_COFFEE_a fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_MISSION_MARTIN_1
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_MICHAEL_1)
|
||
// Michael should have a switch near his safehouse
|
||
IF (ePed = CHAR_MICHAEL)
|
||
eRequestArray[0] = PR_SCENE_M4_CINEMA fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_M4_EXITRESTAURANT fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_M_COFFEE_a fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_MISSION_MICHAEL_1
|
||
ENDIF
|
||
|
||
// #1539580 - Trevor should be near Michaels
|
||
IF (ePed = CHAR_TREVOR)
|
||
eRequestArray[0] = PR_SCENE_T_DOCKS_b fPercentArray[0] = 50.0
|
||
eRequestArray[1] = PR_SCENE_T_FIGHTYAUCLUB_b fPercentArray[1] = 25.0
|
||
eRequestArray[2] = PR_SCENE_T_ESCORTED_OUT fPercentArray[2] = 25.0
|
||
ePostMissionSwitch = SP_MISSION_MICHAEL_1
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_MICHAEL_2)
|
||
// Franklin should have a switch scene near (but not too near!) city safehouse
|
||
IF (ePed = CHAR_FRANKLIN)
|
||
eRequestArray[0] = PR_SCENE_F_LAMTAUNT_P1 fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_F_TRAFFIC_b fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_F_BAR_a_01 fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_MISSION_MICHAEL_2
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_FINALE_1)
|
||
// No countryside or hills for Michael – city switches only.
|
||
IF (ePed = CHAR_MICHAEL)
|
||
eRequestArray[0] = PR_SCENE_M4_CINEMA fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_M4_EXITRESTAURANT fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_M_PIER_b fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_HEIST_FINALE_1
|
||
ENDIF
|
||
|
||
// No countryside for Trevor or too random
|
||
IF (ePed = CHAR_TREVOR)
|
||
eRequestArray[0] = PR_SCENE_T_SC_DRUNKHOWLING fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_T_SC_BAR fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_T_SC_ALLEYDRUNK fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_HEIST_FINALE_1
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_FINALE_2_INTRO)
|
||
// No countryside or hills for Michael – city switches only.
|
||
IF (ePed = CHAR_MICHAEL)
|
||
eRequestArray[0] = PR_SCENE_M4_CINEMA fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_M4_EXITRESTAURANT fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_M_PIER_b fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_HEIST_FINALE_2_INTRO
|
||
ENDIF
|
||
|
||
// No countryside for Trevor or too random
|
||
IF (ePed = CHAR_TREVOR)
|
||
eRequestArray[0] = PR_SCENE_T_SC_DRUNKHOWLING fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_T_SC_BAR fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_T_SC_ALLEYDRUNK fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_HEIST_FINALE_2_INTRO
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_RURAL_1)
|
||
// Trevor on a switch that is nearby to Meth lab planning location
|
||
IF (ePed = CHAR_TREVOR)
|
||
eRequestArray[0] = PR_SCENE_T_CN_CHATEAU_b fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_T6_DIGGING fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_T_CN_POLICE_c fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_HEIST_RURAL_1
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_DOCKS_2B)
|
||
// Michael on a switch in venice area, near marina, pier?
|
||
IF (ePed = CHAR_MICHAEL)
|
||
eRequestArray[0] = PR_SCENE_M_CANAL_a fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_M2_MARINA fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_INVALID fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_HEIST_DOCKS_2B
|
||
ENDIF
|
||
|
||
// Trevor on a switch nearby to Floyds apartment
|
||
IF (ePed = CHAR_TREVOR)
|
||
eRequestArray[0] = PR_SCENE_T_FIGHTBBUILD fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_T_FLOYDSAVEHOUSE fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_T_FLOYDPINEAPPLE fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_HEIST_DOCKS_2B
|
||
ENDIF
|
||
ENDIF
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_CARSTEAL_4) //#1535040
|
||
// Trevor on a switch nearby to Franklins safehouse (the stripclub)
|
||
IF (ePed = CHAR_TREVOR)
|
||
eRequestArray[0] = PR_SCENE_T_SC_MOCKLAPDANCE fPercentArray[0] = 33.3
|
||
eRequestArray[1] = PR_SCENE_T_SC_CHASE fPercentArray[1] = 33.3
|
||
eRequestArray[2] = PR_SCENE_T_SC_BAR fPercentArray[2] = 33.3
|
||
ePostMissionSwitch = SP_MISSION_CARSTEAL_4
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF (ePostMissionSwitch <> SP_MISSION_NONE)
|
||
IF GetDesiredPedRequestSceneFromArray(ePed, eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, FALSE, TRUE)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "GetPedRequestSceneForAvailableMission(", GET_PLAYER_PED_STRING(ePed), ", ", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(ePostMissionSwitch), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " dist: ", VDIST(GET_STATIC_BLIP_POSITION(g_sMissionStaticData[ePostMissionSwitch].blip),g_sPedSceneData[eReqScene].vCreateCoords), "m")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "GetPedRequestSceneForAvailableMission(", GET_PLAYER_PED_STRING(ePed), ", ", GET_SP_MISSION_DISPLAY_STRING_FROM_ID(ePostMissionSwitch), ") FAILED AT ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
// CASSERTLN(DEBUG_SWITCH, "GetPedRequestSceneForAvailableMission failed!!!")
|
||
#ENDIF
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL SchedulePostMissionSpecificScene(enumCharacterList ePed,
|
||
PED_REQUEST_SCENE_ENUM eCurrentScene, PED_REQUEST_SCENE_ENUM &eReqScene,
|
||
FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene,
|
||
PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
FLOAT fPostMissSwitchTimeMult = 1.0)
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = eCurrentScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sFile = "player_switch_scene.log"
|
||
STRING sPath = "X:/gta5/build/dev/"
|
||
#ENDIF
|
||
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed], ROUND(TO_FLOAT(g_iCONST_GAME_HOURS_FOR_POST_MISSION_SWITCH)*fPostMissSwitchTimeMult))
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
SAVE_STRING_TO_NAMED_DEBUG_FILE("NOT HasHourPassedSincePedTimeStruct(", sPath, sFile)
|
||
SAVE_STRING_TO_NAMED_DEBUG_FILE(Get_String_From_Ped_Request_Scene_Enum(eCurrentScene), sPath, sFile)
|
||
SAVE_STRING_TO_NAMED_DEBUG_FILE(", ", sPath, sFile)
|
||
SAVE_TIMEOFDAY_TO_NAMED_DEBUG_FILE(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed], sPath, sFile)
|
||
SAVE_STRING_TO_NAMED_DEBUG_FILE(")", sPath, sFile)
|
||
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(sPath, sFile)
|
||
#ENDIF
|
||
|
||
fScenePercent = 100
|
||
eReqScene = eCurrentScene
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
SAVE_STRING_TO_NAMED_DEBUG_FILE("HasHourPassedSincePedTimeStruct(", sPath, sFile)
|
||
SAVE_STRING_TO_NAMED_DEBUG_FILE(Get_String_From_Ped_Request_Scene_Enum(eCurrentScene), sPath, sFile)
|
||
SAVE_STRING_TO_NAMED_DEBUG_FILE(")", sPath, sFile)
|
||
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(sPath, sFile)
|
||
#ENDIF
|
||
|
||
CLEAR_TIMEOFDAY(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed])
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
sPedScene.eScene = sPedScene.eScene
|
||
sPassedScene.eSceneBuddy = sPassedScene.eSceneBuddy
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
// *******************************************************************************************
|
||
// FUNCTIONS TO RETURN NEXT SCENE FOR MICHAEL
|
||
// *******************************************************************************************
|
||
|
||
ENUM enumMichaelScheduleStage
|
||
MSS_M2_WithFamily = 0, //Michael with Family [1,2,3,4]
|
||
MSS_M4_WithoutFamily, //Michael without Family [4,5,7]
|
||
MSS_M6_Exiled, //Michael Exiled
|
||
MSS_M7_ReunitedWithFamily, //Michael Re-united with family
|
||
|
||
MSS_M9_killedMichael //
|
||
|
||
ENDENUM
|
||
FUNC enumMichaelScheduleStage GetMichaelScheduleStage()
|
||
|
||
IF (g_eCurrentBuildingState[BUILDINGNAME_IPL_KILLED_MICHAEL] = BUILDINGSTATE_DESTROYED)
|
||
RETURN MSS_M9_killedMichael
|
||
ENDIF
|
||
|
||
IF NOT (GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_5))
|
||
RETURN MSS_M2_WithFamily
|
||
ELIF NOT (Get_Mission_Flow_Flag_State(FLOWFLAG_MICHAEL_TREVOR_EXILE_STARTED))
|
||
RETURN MSS_M4_WithoutFamily
|
||
ELIF NOT (Get_Mission_Flow_Flag_State(FLOWFLAG_MICHAEL_TREVOR_EXILE_FINISHED))
|
||
RETURN MSS_M6_Exiled
|
||
ELIF NOT (GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_6))
|
||
RETURN MSS_M4_WithoutFamily
|
||
|
||
// #1476433 //
|
||
ELIF NOT (GET_MISSION_COMPLETE_STATE(SP_MISSION_MICHAEL_4))
|
||
RETURN MSS_M7_ReunitedWithFamily
|
||
ELIF NOT (GET_MISSION_COMPLETE_STATE(SP_MISSION_FINALE_CREDITS))
|
||
RETURN MSS_M4_WithoutFamily
|
||
// // // //
|
||
|
||
ELSE
|
||
RETURN MSS_M7_ReunitedWithFamily
|
||
ENDIF
|
||
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// /* 00:00 - 08:59 */
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// ePed -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL GetMichaelSceneForMorning(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_MICHAEL
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
|
||
enumMichaelScheduleStage thisMichaelScheduleStage = GetMichaelScheduleStage()
|
||
IF (thisMichaelScheduleStage = MSS_M2_WithFamily)
|
||
CONST_FLOAT fCHANCE_M2_BEDROOM 25.0
|
||
CONST_FLOAT fCHANCE_M2_SAVEHOUSE0_b 25.0
|
||
CONST_FLOAT fCHANCE_M2_CARSLEEP_a 7.0
|
||
CONST_FLOAT fCHANCE_M2_CARSLEEP_b 3.0
|
||
CONST_FLOAT fCHANCE_M4_WATCHINGTV 15.0
|
||
CONST_FLOAT fCHANCE_M2_SAVEHOUSE1_a 12.0
|
||
CONST_FLOAT fCHANCE_M2_DRIVING_a 2.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_a 2.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_b 1.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[10]
|
||
FLOAT fPercentArray[10]
|
||
|
||
eRequestArray[0] = PR_SCENE_M2_BEDROOM fPercentArray[0] = fCHANCE_M2_BEDROOM
|
||
eRequestArray[1] = PR_SCENE_M2_SAVEHOUSE0_b fPercentArray[1] = fCHANCE_M2_SAVEHOUSE0_b
|
||
eRequestArray[2] = PR_SCENE_M2_CARSLEEP_a fPercentArray[2] = fCHANCE_M2_CARSLEEP_a
|
||
eRequestArray[3] = PR_SCENE_M2_CARSLEEP_b fPercentArray[3] = fCHANCE_M2_CARSLEEP_b
|
||
eRequestArray[4] = PR_SCENE_M4_WATCHINGTV fPercentArray[4] = fCHANCE_M4_WATCHINGTV
|
||
eRequestArray[5] = PR_SCENE_M2_SAVEHOUSE1_a fPercentArray[5] = fCHANCE_M2_SAVEHOUSE1_a
|
||
eRequestArray[6] = PR_SCENE_M2_DRIVING_a fPercentArray[6] = fCHANCE_M2_DRIVING_a / 2.0
|
||
eRequestArray[7] = PR_SCENE_M2_DRIVING_b fPercentArray[7] = fCHANCE_M2_DRIVING_a / 2.0
|
||
|
||
|
||
IF PRIVATE_Get_Switch_Clock_Hours() > 4 //#1561291
|
||
eRequestArray[8] = PR_SCENE_M_VWOODPARK_a fPercentArray[8] = fCHANCE_M_VWOODPARK_a
|
||
eRequestArray[9] = PR_SCENE_M_VWOODPARK_b fPercentArray[9] = fCHANCE_M_VWOODPARK_b
|
||
ELSE
|
||
eRequestArray[8] = PR_SCENE_INVALID fPercentArray[8] = 0.0
|
||
eRequestArray[9] = PR_SCENE_INVALID fPercentArray[9] = 0.0
|
||
ENDIF
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_MORNING, bDescentOnlyScene)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_MORNING)
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M4_WithoutFamily)
|
||
CONST_FLOAT fCHANCE_M4_WAKEUPSCREAM 30.0
|
||
CONST_FLOAT fCHANCE_M4_WAKESUPSCARED 30.0
|
||
CONST_FLOAT fCHANCE_M4_WATCHINGTV 30.0
|
||
CONST_FLOAT fCHANCE_M_CANAL_a 3.0
|
||
CONST_FLOAT fCHANCE_M_CANAL_b 3.0
|
||
CONST_FLOAT fCHANCE_M_CANAL_c 3.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_a 3.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_b 3.0
|
||
CONST_FLOAT fCHANCE_M_BAR_a 10.0
|
||
CONST_FLOAT fCHANCE_M_BAR_b 10.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[10-2+1]
|
||
FLOAT fPercentArray[10-2+1]
|
||
|
||
eRequestArray[0] = PR_SCENE_M4_WAKEUPSCREAM fPercentArray[0] = fCHANCE_M4_WAKEUPSCREAM
|
||
eRequestArray[1] = PR_SCENE_M4_WAKESUPSCARED fPercentArray[1] = fCHANCE_M4_WAKESUPSCARED
|
||
eRequestArray[2] = PR_SCENE_M4_WATCHINGTV fPercentArray[2] = fCHANCE_M4_WATCHINGTV
|
||
eRequestArray[3] = PR_SCENE_M_CANAL_a fPercentArray[3] = fCHANCE_M_CANAL_a
|
||
eRequestArray[4] = PR_SCENE_M_CANAL_b fPercentArray[4] = fCHANCE_M_CANAL_b
|
||
eRequestArray[5] = PR_SCENE_M_CANAL_c fPercentArray[5] = fCHANCE_M_CANAL_c
|
||
eRequestArray[6] = PR_SCENE_M_PARKEDHILLS_a fPercentArray[6] = fCHANCE_M_PARKEDHILLS_a
|
||
eRequestArray[7] = PR_SCENE_M_PARKEDHILLS_b fPercentArray[7] = fCHANCE_M_PARKEDHILLS_b
|
||
// eRequestArray[8] = PR_SCENE_M_BAR_a fPercentArray[8] = fCHANCE_M_BAR_a
|
||
// eRequestArray[9] = PR_SCENE_M_BAR_b fPercentArray[9] = fCHANCE_M_BAR_b
|
||
eRequestArray[7+1] = PR_SCENE_M4_WASHFACE fPercentArray[7+1] = fCHANCE_M_PARKEDHILLS_b
|
||
|
||
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M6_Exiled)
|
||
CONST_FLOAT fCHANCE_M6_MORNING_a 20.0
|
||
CONST_FLOAT fCHANCE_M6_MORNING_b 20.0
|
||
CONST_FLOAT fCHANCE_M6_CARSLEEP 10.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_a 2.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_b 2.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_c 2.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_d 2.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_e 2.0
|
||
CONST_FLOAT fCHANCE_M6_HOUSETV_a 10.0
|
||
CONST_FLOAT fCHANCE_M6_HOUSETV_b 10.0
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_c 2.5
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_d 2.5
|
||
CONST_FLOAT fCHANCE_M6_RONBORING 10.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[13-2]
|
||
FLOAT fPercentArray[13-2]
|
||
|
||
eRequestArray[0] = PR_SCENE_M6_MORNING_a fPercentArray[0] = fCHANCE_M6_MORNING_a
|
||
// eRequestArray[1] = PR_SCENE_M6_MORNING_b fPercentArray[1] = fCHANCE_M6_MORNING_b
|
||
eRequestArray[2-1] = PR_SCENE_M6_CARSLEEP fPercentArray[2-1] = fCHANCE_M6_CARSLEEP
|
||
eRequestArray[3-1] = PR_SCENE_M6_PARKEDHILLS_a fPercentArray[3-1] = fCHANCE_M6_PARKEDHILLS_a
|
||
eRequestArray[4-1] = PR_SCENE_M6_PARKEDHILLS_b fPercentArray[4-1] = fCHANCE_M6_PARKEDHILLS_b
|
||
eRequestArray[5-1] = PR_SCENE_M6_PARKEDHILLS_c fPercentArray[5-1] = fCHANCE_M6_PARKEDHILLS_c
|
||
eRequestArray[6-1] = PR_SCENE_M6_PARKEDHILLS_d fPercentArray[6-1] = fCHANCE_M6_PARKEDHILLS_d
|
||
eRequestArray[7-1] = PR_SCENE_M6_PARKEDHILLS_e fPercentArray[7-1] = fCHANCE_M6_PARKEDHILLS_e
|
||
eRequestArray[8-1] = PR_SCENE_M6_HOUSETV_a fPercentArray[8-1] = fCHANCE_M6_HOUSETV_a
|
||
// eRequestArray[9-1] = PR_SCENE_M6_HOUSETV_b fPercentArray[9-1] = fCHANCE_M6_HOUSETV_b
|
||
eRequestArray[10-1-1] = PR_SCENE_M6_DRIVING_c fPercentArray[10-1-1] = fCHANCE_M6_DRIVING_c
|
||
eRequestArray[11-1-1] = PR_SCENE_M6_DRIVING_d fPercentArray[11-1-1] = fCHANCE_M6_DRIVING_d
|
||
eRequestArray[12-1-1] = PR_SCENE_M6_RONBORING fPercentArray[12-1-1] = fCHANCE_M6_RONBORING
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M7_ReunitedWithFamily)
|
||
CONST_FLOAT fCHANCE_M4_WATCHINGTV 15.0
|
||
CONST_FLOAT fCHANCE_M7_GETSREADY 25.0
|
||
CONST_FLOAT fCHANCE_M7_KIDS_GAMING 20.0
|
||
CONST_FLOAT fCHANCE_M7_KIDS_TV 20.0
|
||
CONST_FLOAT fCHANCE_M7_HOOKERS 20.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[10]
|
||
FLOAT fPercentArray[10]
|
||
|
||
eRequestArray[0] = PR_SCENE_M4_WATCHINGTV fPercentArray[0] = fCHANCE_M4_WATCHINGTV
|
||
eRequestArray[1] = PR_SCENE_M7_GETSREADY fPercentArray[1] = fCHANCE_M7_GETSREADY
|
||
eRequestArray[2] = PR_SCENE_M7_KIDS_GAMING fPercentArray[2] = fCHANCE_M7_KIDS_GAMING
|
||
eRequestArray[3] = PR_SCENE_M7_KIDS_TV fPercentArray[3] = fCHANCE_M7_KIDS_TV
|
||
eRequestArray[4] = PR_SCENE_M7_HOOKERS fPercentArray[4] = fCHANCE_M7_HOOKERS
|
||
|
||
eRequestArray[5] = PR_SCENE_M6_PARKEDHILLS_a fPercentArray[5] = 1.0
|
||
eRequestArray[6] = PR_SCENE_M6_PARKEDHILLS_b fPercentArray[6] = 1.0
|
||
eRequestArray[7] = PR_SCENE_M6_PARKEDHILLS_c fPercentArray[7] = 1.0
|
||
eRequestArray[8] = PR_SCENE_M6_PARKEDHILLS_d fPercentArray[8] = 1.0
|
||
eRequestArray[9] = PR_SCENE_M6_PARKEDHILLS_e fPercentArray[9] = 1.0
|
||
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_MORNING, bDescentOnlyScene,
|
||
PR_SCENE_M7_KIDS_GAMING, PR_SCENE_M7_KIDS_TV)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_MORNING)
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELSE
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
CASSERTLN(DEBUG_SWITCH, "invalid thisMichaelScheduleStage in GetMichaelSceneForMorning()")
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
ENDFUNC
|
||
FUNC BOOL GetMichaelSceneForMorningParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetMichaelSceneForMorning(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// /* 09:00 - 13:59 */
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL GetMichaelSceneForAfternoon(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent,
|
||
PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_MICHAEL
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
|
||
enumMichaelScheduleStage thisMichaelScheduleStage = GetMichaelScheduleStage()
|
||
IF (thisMichaelScheduleStage = MSS_M2_WithFamily)
|
||
CONST_FLOAT fCHANCE_M_POOLSIDE_a 1.5
|
||
CONST_FLOAT fCHANCE_M_POOLSIDE_b 1.5
|
||
CONST_FLOAT fCHANCE_M2_SMOKINGGOLF 2.0
|
||
CONST_FLOAT fCHANCE_M_PIER_a 1.0
|
||
CONST_FLOAT fCHANCE_M_PIER_b 1.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_a 1.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_b 1.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_c 1.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_a 2.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_b 1.0
|
||
|
||
CONST_FLOAT fCHANCE_M2_WIFEEXITSCAR 10.5
|
||
CONST_FLOAT fCHANCE_M2_DROPOFFDAU_a 10.5
|
||
CONST_FLOAT fCHANCE_M2_DROPOFFSON_a 10.5
|
||
CONST_FLOAT fCHANCE_M2_DROPOFFSON_b 10.5
|
||
|
||
CONST_FLOAT fCHANCE_M_BENCHCALL_a 3.0
|
||
CONST_FLOAT fCHANCE_M_BENCHCALL_b 2.0
|
||
CONST_FLOAT fCHANCE_M_COFFEE_a 1.0
|
||
CONST_FLOAT fCHANCE_M_COFFEE_b 1.0
|
||
CONST_FLOAT fCHANCE_M_COFFEE_c 1.0
|
||
CONST_FLOAT fCHANCE_M2_CYCLING_a 2.0
|
||
CONST_FLOAT fCHANCE_M2_CYCLING_b 2.0
|
||
CONST_FLOAT fCHANCE_M2_CYCLING_c 2.0
|
||
CONST_FLOAT fCHANCE_M2_LUNCH_a 10.0
|
||
CONST_FLOAT fCHANCE_M2_PHARMACY 5.0
|
||
CONST_FLOAT fCHANCE_M2_MARINA 1.0
|
||
CONST_FLOAT fCHANCE_M2_ARGUEWITHWIFE 5.0
|
||
CONST_FLOAT fCHANCE_M2_DRIVING_a 2.0
|
||
CONST_FLOAT fCHANCE_M2_SAVEHOUSE1_b 10.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[30]
|
||
FLOAT fPercentArray[30]
|
||
|
||
eRequestArray[0] = PR_SCENE_M_POOLSIDE_a fPercentArray[0] = fCHANCE_M_POOLSIDE_a
|
||
eRequestArray[1] = PR_SCENE_M_POOLSIDE_b fPercentArray[1] = fCHANCE_M_POOLSIDE_b
|
||
|
||
IF GET_MISSION_FLOW_BITSET_BIT_STATE(FLOWBITSET_MINIGAME_ACTIVE, ENUM_TO_INT(MINIGAME_GOLF))
|
||
eRequestArray[2] = PR_SCENE_M2_SMOKINGGOLF fPercentArray[2] = fCHANCE_M2_SMOKINGGOLF
|
||
ELSE
|
||
eRequestArray[2] = PR_SCENE_INVALID fPercentArray[2] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[3] = PR_SCENE_M_PIER_a fPercentArray[3] = fCHANCE_M_PIER_a
|
||
eRequestArray[4] = PR_SCENE_M_PIER_b fPercentArray[4] = fCHANCE_M_PIER_b
|
||
|
||
eRequestArray[5] = PR_SCENE_M_TRAFFIC_a fPercentArray[5] = fCHANCE_M_TRAFFIC_a
|
||
eRequestArray[6] = PR_SCENE_M_TRAFFIC_b fPercentArray[6] = fCHANCE_M_TRAFFIC_b
|
||
eRequestArray[7] = PR_SCENE_M_TRAFFIC_c fPercentArray[7] = fCHANCE_M_TRAFFIC_c
|
||
|
||
eRequestArray[8] = PR_SCENE_M_VWOODPARK_a fPercentArray[8] = fCHANCE_M_VWOODPARK_a
|
||
eRequestArray[9] = PR_SCENE_M_VWOODPARK_b fPercentArray[9] = fCHANCE_M_VWOODPARK_b
|
||
|
||
eRequestArray[10] = PR_SCENE_M2_WIFEEXITSCAR fPercentArray[10] = fCHANCE_M2_WIFEEXITSCAR
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_2)
|
||
IF NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_4) //tracey leaves after fam4
|
||
eRequestArray[11] = PR_SCENE_M2_DROPOFFDAU_a fPercentArray[11] = fCHANCE_M2_DROPOFFDAU_a
|
||
ELSE
|
||
eRequestArray[11] = PR_SCENE_INVALID fPercentArray[11] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[12] = PR_SCENE_M2_DROPOFFSON_a fPercentArray[12] = fCHANCE_M2_DROPOFFSON_a
|
||
eRequestArray[13] = PR_SCENE_M2_DROPOFFSON_b fPercentArray[13] = fCHANCE_M2_DROPOFFSON_b
|
||
ELSE
|
||
eRequestArray[11] = PR_SCENE_INVALID fPercentArray[11] = 0.0
|
||
eRequestArray[12] = PR_SCENE_INVALID fPercentArray[12] = 0.0
|
||
eRequestArray[13] = PR_SCENE_INVALID fPercentArray[13] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[14] = PR_SCENE_M_BENCHCALL_a fPercentArray[14] = fCHANCE_M_BENCHCALL_a
|
||
eRequestArray[15] = PR_SCENE_M_BENCHCALL_b fPercentArray[15] = fCHANCE_M_BENCHCALL_b
|
||
|
||
eRequestArray[16] = PR_SCENE_M_COFFEE_a fPercentArray[16] = fCHANCE_M_COFFEE_a
|
||
eRequestArray[17] = PR_SCENE_M_COFFEE_b fPercentArray[17] = fCHANCE_M_COFFEE_b
|
||
eRequestArray[18] = PR_SCENE_M_COFFEE_c fPercentArray[18] = fCHANCE_M_COFFEE_c
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_3) //1080407
|
||
eRequestArray[19] = PR_SCENE_M2_CYCLING_a fPercentArray[19] = fCHANCE_M2_CYCLING_a
|
||
eRequestArray[20] = PR_SCENE_M2_CYCLING_b fPercentArray[20] = fCHANCE_M2_CYCLING_b
|
||
eRequestArray[21] = PR_SCENE_M2_CYCLING_c fPercentArray[21] = fCHANCE_M2_CYCLING_c
|
||
ELSE
|
||
eRequestArray[19] = PR_SCENE_INVALID fPercentArray[19] = 0.0
|
||
eRequestArray[20] = PR_SCENE_INVALID fPercentArray[20] = 0.0
|
||
eRequestArray[21] = PR_SCENE_INVALID fPercentArray[21] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[22] = PR_SCENE_M2_LUNCH_a fPercentArray[22] = fCHANCE_M2_LUNCH_a
|
||
|
||
eRequestArray[24] = PR_SCENE_M2_PHARMACY fPercentArray[24] = fCHANCE_M2_PHARMACY
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_1)
|
||
eRequestArray[25] = PR_SCENE_M2_MARINA fPercentArray[25] = fCHANCE_M2_MARINA
|
||
ELSE
|
||
eRequestArray[25] = PR_SCENE_INVALID fPercentArray[25] = 0.0
|
||
ENDIF
|
||
eRequestArray[26] = PR_SCENE_M2_ARGUEWITHWIFE fPercentArray[26] = fCHANCE_M2_ARGUEWITHWIFE
|
||
|
||
eRequestArray[27] = PR_SCENE_M2_DRIVING_a fPercentArray[27] = fCHANCE_M2_DRIVING_a / 2.0
|
||
eRequestArray[28] = PR_SCENE_M2_DRIVING_b fPercentArray[28] = fCHANCE_M2_DRIVING_a / 2.0
|
||
|
||
eRequestArray[29] = PR_SCENE_M2_SAVEHOUSE1_b fPercentArray[29] = fCHANCE_M2_SAVEHOUSE1_b
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_2)
|
||
|
||
IF NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_4) //tracey leaves after fam4
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_M2_WIFEEXITSCAR, PR_SCENE_M2_DROPOFFDAU_a, PR_SCENE_M2_DROPOFFSON_a, PR_SCENE_M2_DROPOFFSON_b,
|
||
PR_SCENE_M2_ARGUEWITHWIFE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
ELSE
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_M2_WIFEEXITSCAR, PR_SCENE_M2_DROPOFFSON_a, PR_SCENE_M2_DROPOFFSON_b,
|
||
PR_SCENE_M2_ARGUEWITHWIFE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
|
||
ENDIF
|
||
ELSE
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_M2_WIFEEXITSCAR,
|
||
PR_SCENE_M2_ARGUEWITHWIFE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M4_WithoutFamily)
|
||
CONST_FLOAT fCHANCE_M4_WAKEUPSCREAM 10.5
|
||
CONST_FLOAT fCHANCE_M4_WAKESUPSCARED 10.5
|
||
CONST_FLOAT fCHANCE_M_POOLSIDE_a 5.0
|
||
CONST_FLOAT fCHANCE_M_POOLSIDE_b 5.0
|
||
CONST_FLOAT fCHANCE_M4_HOUSEBED_b 2.5
|
||
CONST_FLOAT fCHANCE_M_CANAL_a 2.5
|
||
CONST_FLOAT fCHANCE_M_CANAL_b 2.5
|
||
CONST_FLOAT fCHANCE_M_PIER_a 2.5
|
||
CONST_FLOAT fCHANCE_M_PIER_b 2.5
|
||
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_a 2.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_b 2.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_c 2.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_a 2.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_b 1.0
|
||
|
||
CONST_FLOAT fCHANCE_M_BENCHCALL_a 2.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_a 2.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_b 2.0
|
||
|
||
CONST_FLOAT fCHANCE_M_COFFEE_a 3.0
|
||
CONST_FLOAT fCHANCE_M_COFFEE_b 3.0
|
||
CONST_FLOAT fCHANCE_M_COFFEE_c 2.0
|
||
|
||
CONST_FLOAT fCHANCE_M4_EXITRESTAURANT 10.0
|
||
CONST_FLOAT fCHANCE_M4_LUNCH_b 5.0
|
||
CONST_FLOAT fCHANCE_M4_CINEMA 10.0
|
||
CONST_FLOAT fCHANCE_M_BAR_a 2.5
|
||
CONST_FLOAT fCHANCE_M_BAR_b 2.5
|
||
CONST_FLOAT fCHANCE_M4_DOORSTUMBLE 11.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[24-3+2]
|
||
FLOAT fPercentArray[24-3+2]
|
||
|
||
eRequestArray[0] = PR_SCENE_M4_WAKEUPSCREAM fPercentArray[0] = fCHANCE_M4_WAKEUPSCREAM
|
||
eRequestArray[1] = PR_SCENE_M4_WAKESUPSCARED fPercentArray[1] = fCHANCE_M4_WAKESUPSCARED
|
||
eRequestArray[2] = PR_SCENE_M_POOLSIDE_a fPercentArray[2] = fCHANCE_M_POOLSIDE_a
|
||
eRequestArray[3] = PR_SCENE_M_POOLSIDE_b fPercentArray[3] = fCHANCE_M_POOLSIDE_b
|
||
// eRequestArray[4] = PR_SCENE_M4_HOUSEBED_b fPercentArray[4] = fCHANCE_M4_HOUSEBED_b
|
||
|
||
eRequestArray[3+1] = PR_SCENE_M_CANAL_a fPercentArray[3+1] = fCHANCE_M_CANAL_a
|
||
eRequestArray[4+1] = PR_SCENE_M_CANAL_b fPercentArray[4+1] = fCHANCE_M_CANAL_b
|
||
eRequestArray[5+1] = PR_SCENE_M_PIER_a fPercentArray[5+1] = fCHANCE_M_PIER_a
|
||
eRequestArray[6+1] = PR_SCENE_M_PIER_b fPercentArray[6+1] = fCHANCE_M_PIER_b
|
||
eRequestArray[7+1] = PR_SCENE_M_TRAFFIC_a fPercentArray[7+1] = fCHANCE_M_TRAFFIC_a
|
||
eRequestArray[10-2+1] = PR_SCENE_M_TRAFFIC_b fPercentArray[10-2+1] = fCHANCE_M_TRAFFIC_b
|
||
eRequestArray[11-2+1] = PR_SCENE_M_TRAFFIC_c fPercentArray[11-2+1] = fCHANCE_M_TRAFFIC_c
|
||
eRequestArray[10+1] = PR_SCENE_M_VWOODPARK_a fPercentArray[10+1] = fCHANCE_M_VWOODPARK_a
|
||
eRequestArray[11+1] = PR_SCENE_M_VWOODPARK_b fPercentArray[11+1] = fCHANCE_M_VWOODPARK_b
|
||
eRequestArray[12+1] = PR_SCENE_M_BENCHCALL_a fPercentArray[12+1] = fCHANCE_M_BENCHCALL_a
|
||
eRequestArray[13+1] = PR_SCENE_M_PARKEDHILLS_a fPercentArray[13+1] = fCHANCE_M_PARKEDHILLS_a
|
||
eRequestArray[14+1] = PR_SCENE_M_PARKEDHILLS_b fPercentArray[14+1] = fCHANCE_M_PARKEDHILLS_b
|
||
eRequestArray[15+1] = PR_SCENE_M_COFFEE_a fPercentArray[15+1] = fCHANCE_M_COFFEE_a
|
||
eRequestArray[16+1] = PR_SCENE_M_COFFEE_b fPercentArray[16+1] = fCHANCE_M_COFFEE_b
|
||
eRequestArray[17+1] = PR_SCENE_M_COFFEE_c fPercentArray[17+1] = fCHANCE_M_COFFEE_c
|
||
eRequestArray[20-2+1] = PR_SCENE_M4_EXITRESTAURANT fPercentArray[20-2+1] = fCHANCE_M4_EXITRESTAURANT
|
||
eRequestArray[21-2+1] = PR_SCENE_M4_LUNCH_b fPercentArray[21-2+1] = fCHANCE_M4_LUNCH_b
|
||
eRequestArray[20+1] = PR_SCENE_M4_CINEMA fPercentArray[20+1] = fCHANCE_M4_CINEMA
|
||
// eRequestArray[21+1] = PR_SCENE_M_BAR_a fPercentArray[21+1] = fCHANCE_M_BAR_a
|
||
// eRequestArray[22+1] = PR_SCENE_M_BAR_b fPercentArray[22+1] = fCHANCE_M_BAR_b
|
||
// eRequestArray[23+1] = PR_SCENE_M4_DOORSTUMBLE fPercentArray[23+1] = fCHANCE_M4_DOORSTUMBLE
|
||
eRequestArray[20+1+1] = PR_SCENE_M4_WASHFACE fPercentArray[20+1+1] = fCHANCE_M4_CINEMA
|
||
|
||
// IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
// PR_SCENE_M4_DOORSTUMBLE)
|
||
// RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
// ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M6_Exiled)
|
||
CONST_FLOAT fCHANCE_M6_SUNBATHING 20.0
|
||
CONST_FLOAT fCHANCE_M6_ONPHONE 20.0
|
||
CONST_FLOAT fCHANCE_M6_DEPRESSED 20.0
|
||
CONST_FLOAT fCHANCE_M6_BOATING 15.0
|
||
CONST_FLOAT fCHANCE_M6_LIQUORSTORE 15.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_a 3.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_b 3.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_c 3.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_d 3.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_e 3.0
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_e 1.5
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_f 1.5
|
||
CONST_FLOAT fCHANCE_M6_HOUSEBED 2.5
|
||
CONST_FLOAT fCHANCE_M6_RONBORING 15.0
|
||
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[14]
|
||
FLOAT fPercentArray[14]
|
||
|
||
eRequestArray[0] = PR_SCENE_M6_SUNBATHING
|
||
IF IS_BIT_SET(g_savedGlobals.sPlayerData.sInfo.sLimitedWardrobeItems[LPW_MICHAEL_COUNTRYSIDE].iItemBitset[COMP_TYPE_OUTFIT][(ENUM_TO_INT(OUTFIT_P0_YOGA_FLIP_FLOPS)/32)], (ENUM_TO_INT(OUTFIT_P0_YOGA_FLIP_FLOPS)%32))
|
||
fPercentArray[0] = fCHANCE_M6_SUNBATHING * 2.0
|
||
ELSE
|
||
fPercentArray[0] = fCHANCE_M6_SUNBATHING
|
||
ENDIF
|
||
|
||
eRequestArray[1] = PR_SCENE_M6_ONPHONE fPercentArray[1] = fCHANCE_M6_ONPHONE
|
||
eRequestArray[2] = PR_SCENE_M6_DEPRESSED fPercentArray[2] = fCHANCE_M6_DEPRESSED
|
||
eRequestArray[3] = PR_SCENE_M6_BOATING fPercentArray[3] = fCHANCE_M6_BOATING
|
||
eRequestArray[4] = PR_SCENE_M6_LIQUORSTORE fPercentArray[4] = fCHANCE_M6_LIQUORSTORE
|
||
eRequestArray[5] = PR_SCENE_M6_PARKEDHILLS_a fPercentArray[5] = fCHANCE_M6_PARKEDHILLS_a
|
||
eRequestArray[6] = PR_SCENE_M6_PARKEDHILLS_b fPercentArray[6] = fCHANCE_M6_PARKEDHILLS_b
|
||
eRequestArray[7] = PR_SCENE_M6_PARKEDHILLS_c fPercentArray[7] = fCHANCE_M6_PARKEDHILLS_c
|
||
eRequestArray[8] = PR_SCENE_M6_PARKEDHILLS_d fPercentArray[8] = fCHANCE_M6_PARKEDHILLS_d
|
||
eRequestArray[9] = PR_SCENE_M6_PARKEDHILLS_e fPercentArray[9] = fCHANCE_M6_PARKEDHILLS_e
|
||
eRequestArray[10] = PR_SCENE_M6_DRIVING_e fPercentArray[10] = fCHANCE_M6_DRIVING_e
|
||
eRequestArray[11] = PR_SCENE_M6_DRIVING_f fPercentArray[11] = fCHANCE_M6_DRIVING_f
|
||
eRequestArray[12] = PR_SCENE_M6_HOUSEBED fPercentArray[12] = fCHANCE_M6_HOUSEBED
|
||
eRequestArray[13] = PR_SCENE_M6_RONBORING fPercentArray[13] = fCHANCE_M6_RONBORING
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M7_ReunitedWithFamily)
|
||
CONST_FLOAT fCHANCE_M7_RESTAURANT 10.0
|
||
CONST_FLOAT fCHANCE_M7_COFFEE 15.0
|
||
CONST_FLOAT fCHANCE_M7_READSCRIPT 15.0
|
||
CONST_FLOAT fCHANCE_M7_OPENDOORFORAMA 3.33
|
||
CONST_FLOAT fCHANCE_M7_DROPPINGOFFJMY 3.33
|
||
CONST_FLOAT fCHANCE_M7_TRACEYEXITSCAR 3.33
|
||
CONST_FLOAT fCHANCE_M7_BYESOLOMON 5.0
|
||
CONST_FLOAT fCHANCE_M7_EXITBARBER 10.0
|
||
CONST_FLOAT fCHANCE_M7_EXITFANCYSHOP 10.0
|
||
CONST_FLOAT fCHANCE_M7_FAKEYOGA 10.0
|
||
CONST_FLOAT fCHANCE_M7_WIFETENNIS 15.0
|
||
CONST_FLOAT fCHANCE_M7_LUNCH_b 10.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[13-1]
|
||
FLOAT fPercentArray[13-1]
|
||
|
||
eRequestArray[0] = PR_SCENE_M7_RESTAURANT fPercentArray[0] = fCHANCE_M7_RESTAURANT
|
||
eRequestArray[1] = PR_SCENE_M7_COFFEE fPercentArray[1] = fCHANCE_M7_COFFEE
|
||
eRequestArray[2] = PR_SCENE_M7_READSCRIPT fPercentArray[2] = fCHANCE_M7_READSCRIPT
|
||
eRequestArray[3] = PR_SCENE_M7_OPENDOORFORAMA fPercentArray[3] = fCHANCE_M7_OPENDOORFORAMA
|
||
eRequestArray[4] = PR_SCENE_M7_DROPPINGOFFJMY fPercentArray[4] = fCHANCE_M7_DROPPINGOFFJMY
|
||
eRequestArray[5] = PR_SCENE_M7_TRACEYEXITSCAR fPercentArray[5] = fCHANCE_M7_TRACEYEXITSCAR
|
||
eRequestArray[6] = PR_SCENE_M7_BYESOLOMON_a fPercentArray[6] = fCHANCE_M7_BYESOLOMON / 2.0
|
||
eRequestArray[7] = PR_SCENE_M7_BYESOLOMON_b fPercentArray[7] = fCHANCE_M7_BYESOLOMON / 2.0
|
||
|
||
IF HAS_SHOP_RUN_ENTRY_INTRO(HAIRDO_SHOP_01_BH)
|
||
eRequestArray[8] = PR_SCENE_M7_EXITBARBER fPercentArray[8] = fCHANCE_M7_EXITBARBER
|
||
ELSE
|
||
eRequestArray[8] = PR_SCENE_INVALID fPercentArray[8] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[9] = PR_SCENE_M7_EXITFANCYSHOP fPercentArray[9] = fCHANCE_M7_EXITFANCYSHOP
|
||
eRequestArray[10] = PR_SCENE_M7_FAKEYOGA fPercentArray[10] = fCHANCE_M7_FAKEYOGA
|
||
eRequestArray[11] = PR_SCENE_M7_WIFETENNIS fPercentArray[11] = fCHANCE_M7_WIFETENNIS
|
||
// eRequestArray[12] = PR_SCENE_M7_LUNCH_b fPercentArray[12] = fCHANCE_M7_LUNCH_b
|
||
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_M7_BYESOLOMON_a, PR_SCENE_M7_BYESOLOMON_b,
|
||
PR_SCENE_M7_FAKEYOGA, PR_SCENE_M7_WIFETENNIS,
|
||
PR_SCENE_M7_ROUNDTABLE, PR_SCENE_M7_KIDS_TV)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ELSE
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
CASSERTLN(DEBUG_SWITCH, "invalid thisMichaelScheduleStage in GetMichaelSceneForAfternoon()")
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
ENDFUNC
|
||
FUNC BOOL GetMichaelSceneForAfternoonParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetMichaelSceneForAfternoon(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// /* 14:00 - 19:59 */
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL GetMichaelSceneForEvening(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_MICHAEL
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
|
||
enumMichaelScheduleStage thisMichaelScheduleStage = GetMichaelScheduleStage()
|
||
IF (thisMichaelScheduleStage = MSS_M2_WithFamily)
|
||
CONST_FLOAT fCHANCE_M_PIER_a 9.0
|
||
CONST_FLOAT fCHANCE_M_PIER_b 5.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_a 7.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_b 9.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_c 7.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_a 5.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_b 1.0
|
||
CONST_FLOAT fCHANCE_M_BENCHCALL_a 5.0
|
||
CONST_FLOAT fCHANCE_M_BENCHCALL_b 5.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_a 5.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_b 5.0
|
||
CONST_FLOAT fCHANCE_M2_MARINA 10.0
|
||
CONST_FLOAT fCHANCE_M2_ARGUEWITHWIFE 16.0
|
||
CONST_FLOAT fCHANCE_M2_LUNCH_a 5.0
|
||
CONST_FLOAT fCHANCE_M2_DRIVING_a 2.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[16]
|
||
FLOAT fPercentArray[16]
|
||
|
||
eRequestArray[0] = PR_SCENE_M_PIER_a fPercentArray[0] = fCHANCE_M_PIER_a
|
||
eRequestArray[1] = PR_SCENE_M_PIER_b fPercentArray[1] = fCHANCE_M_PIER_b
|
||
eRequestArray[2] = PR_SCENE_M_TRAFFIC_a fPercentArray[2] = fCHANCE_M_TRAFFIC_a
|
||
eRequestArray[3] = PR_SCENE_M_TRAFFIC_b fPercentArray[3] = fCHANCE_M_TRAFFIC_b
|
||
eRequestArray[4] = PR_SCENE_M_TRAFFIC_c fPercentArray[4] = fCHANCE_M_TRAFFIC_c
|
||
eRequestArray[5] = PR_SCENE_M_VWOODPARK_a fPercentArray[5] = fCHANCE_M_VWOODPARK_a
|
||
eRequestArray[6] = PR_SCENE_M_VWOODPARK_b fPercentArray[6] = fCHANCE_M_VWOODPARK_b
|
||
eRequestArray[7] = PR_SCENE_M_BENCHCALL_a fPercentArray[7] = fCHANCE_M_BENCHCALL_a
|
||
eRequestArray[8] = PR_SCENE_M_BENCHCALL_b fPercentArray[8] = fCHANCE_M_BENCHCALL_b
|
||
eRequestArray[9] = PR_SCENE_M_PARKEDHILLS_a fPercentArray[9] = fCHANCE_M_PARKEDHILLS_a
|
||
eRequestArray[10] = PR_SCENE_M_PARKEDHILLS_b fPercentArray[10] = fCHANCE_M_PARKEDHILLS_b
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_1)
|
||
eRequestArray[11] = PR_SCENE_M2_MARINA fPercentArray[11] = fCHANCE_M2_MARINA
|
||
ELSE
|
||
eRequestArray[11] = PR_SCENE_INVALID fPercentArray[11] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[12] = PR_SCENE_M2_ARGUEWITHWIFE fPercentArray[12] = fCHANCE_M2_ARGUEWITHWIFE
|
||
eRequestArray[13] = PR_SCENE_M2_LUNCH_a fPercentArray[13] = fCHANCE_M2_LUNCH_a
|
||
|
||
eRequestArray[14] = PR_SCENE_M2_DRIVING_a fPercentArray[14] = fCHANCE_M2_DRIVING_a / 2.0
|
||
eRequestArray[15] = PR_SCENE_M2_DRIVING_b fPercentArray[15] = fCHANCE_M2_DRIVING_a / 2.0
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
// PR_SCENE_M_TRAFFIC_a, PR_SCENE_M_TRAFFIC_b, PR_SCENE_M_TRAFFIC_c,
|
||
PR_SCENE_M2_ARGUEWITHWIFE,
|
||
PR_SCENE_M2_LUNCH_a)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M4_WithoutFamily)
|
||
CONST_FLOAT fCHANCE_M4_WAKEUPSCREAM 10.0
|
||
CONST_FLOAT fCHANCE_M4_WAKESUPSCARED 10.5
|
||
CONST_FLOAT fCHANCE_M_CANAL_a 3.0
|
||
CONST_FLOAT fCHANCE_M_CANAL_b 3.0
|
||
CONST_FLOAT fCHANCE_M_CANAL_c 3.0
|
||
CONST_FLOAT fCHANCE_M_PIER_a 3.0
|
||
CONST_FLOAT fCHANCE_M_PIER_b 3.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_a 3.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_b 3.0
|
||
CONST_FLOAT fCHANCE_M_TRAFFIC_c 4.0
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_a 1.5
|
||
CONST_FLOAT fCHANCE_M_VWOODPARK_b 1.0
|
||
CONST_FLOAT fCHANCE_M_BENCHCALL_a 1.0
|
||
CONST_FLOAT fCHANCE_M_BENCHCALL_b 1.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_a 1.5
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_b 1.5
|
||
CONST_FLOAT fCHANCE_M_COFFEE_a 4.0
|
||
CONST_FLOAT fCHANCE_M_COFFEE_b 3.0
|
||
CONST_FLOAT fCHANCE_M_COFFEE_c 3.0
|
||
CONST_FLOAT fCHANCE_M_BAR_a 6.0
|
||
CONST_FLOAT fCHANCE_M_BAR_b 6.0
|
||
CONST_FLOAT fCHANCE_M4_PARKEDBEACH 4.0
|
||
CONST_FLOAT fCHANCE_M4_DOORSTUMBLE 5.0
|
||
CONST_FLOAT fCHANCE_M4_EXITRESTAURANT 2.5
|
||
CONST_FLOAT fCHANCE_M4_LUNCH_b 2.5
|
||
CONST_FLOAT fCHANCE_M4_CINEMA 5.0
|
||
CONST_FLOAT fCHANCE_M_HOOKERMOTEL 8.0
|
||
CONST_FLOAT fCHANCE_M_HOOKERCAR 5.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[28-3-1+1]
|
||
FLOAT fPercentArray[28-3-1+1]
|
||
|
||
eRequestArray[0] = PR_SCENE_M4_WAKEUPSCREAM fPercentArray[0] = fCHANCE_M4_WAKEUPSCREAM
|
||
eRequestArray[1] = PR_SCENE_M4_WAKESUPSCARED fPercentArray[1] = fCHANCE_M4_WAKESUPSCARED
|
||
eRequestArray[2] = PR_SCENE_M_CANAL_a fPercentArray[2] = fCHANCE_M_CANAL_a
|
||
eRequestArray[3] = PR_SCENE_M_CANAL_b fPercentArray[3] = fCHANCE_M_CANAL_b
|
||
eRequestArray[4] = PR_SCENE_M_CANAL_c fPercentArray[4] = fCHANCE_M_CANAL_c
|
||
eRequestArray[5] = PR_SCENE_M_PIER_a fPercentArray[5] = fCHANCE_M_PIER_a
|
||
eRequestArray[6] = PR_SCENE_M_PIER_b fPercentArray[6] = fCHANCE_M_PIER_b
|
||
eRequestArray[7] = PR_SCENE_M_TRAFFIC_a fPercentArray[7] = fCHANCE_M_TRAFFIC_a
|
||
eRequestArray[8] = PR_SCENE_M_TRAFFIC_b fPercentArray[8] = fCHANCE_M_TRAFFIC_b
|
||
eRequestArray[9] = PR_SCENE_M_TRAFFIC_c fPercentArray[9] = fCHANCE_M_TRAFFIC_c
|
||
eRequestArray[10] = PR_SCENE_M_VWOODPARK_a fPercentArray[10] = fCHANCE_M_VWOODPARK_a
|
||
eRequestArray[11] = PR_SCENE_M_VWOODPARK_b fPercentArray[11] = fCHANCE_M_VWOODPARK_b
|
||
eRequestArray[12] = PR_SCENE_M_BENCHCALL_a fPercentArray[12] = fCHANCE_M_BENCHCALL_a
|
||
eRequestArray[13] = PR_SCENE_M_BENCHCALL_b fPercentArray[13] = fCHANCE_M_BENCHCALL_b
|
||
eRequestArray[14] = PR_SCENE_M_PARKEDHILLS_a fPercentArray[14] = fCHANCE_M_PARKEDHILLS_a
|
||
eRequestArray[15] = PR_SCENE_M_PARKEDHILLS_b fPercentArray[15] = fCHANCE_M_PARKEDHILLS_b
|
||
eRequestArray[16] = PR_SCENE_M_COFFEE_a fPercentArray[16] = fCHANCE_M_COFFEE_a
|
||
eRequestArray[17] = PR_SCENE_M_COFFEE_b fPercentArray[17] = fCHANCE_M_COFFEE_b
|
||
eRequestArray[18] = PR_SCENE_M_COFFEE_c fPercentArray[18] = fCHANCE_M_COFFEE_c
|
||
// eRequestArray[19] = PR_SCENE_M_BAR_a fPercentArray[19] = fCHANCE_M_BAR_a
|
||
// eRequestArray[20] = PR_SCENE_M_BAR_b fPercentArray[20] = fCHANCE_M_BAR_b
|
||
eRequestArray[21-2] = PR_SCENE_M4_PARKEDBEACH fPercentArray[21-2] = fCHANCE_M4_PARKEDBEACH
|
||
// eRequestArray[22-2] = PR_SCENE_M4_DOORSTUMBLE fPercentArray[22-2] = fCHANCE_M4_DOORSTUMBLE
|
||
eRequestArray[23-2-1] = PR_SCENE_M4_EXITRESTAURANT fPercentArray[23-2-1] = fCHANCE_M4_EXITRESTAURANT
|
||
eRequestArray[24-2-1] = PR_SCENE_M4_LUNCH_b fPercentArray[24-2-1] = fCHANCE_M4_LUNCH_b
|
||
eRequestArray[25-2-1] = PR_SCENE_M4_CINEMA fPercentArray[25-2-1] = fCHANCE_M4_CINEMA
|
||
eRequestArray[26-2-1] = PR_SCENE_M_HOOKERMOTEL fPercentArray[26-2-1] = fCHANCE_M_HOOKERMOTEL
|
||
// eRequestArray[27-2-1] = PR_SCENE_M_HOOKERCAR fPercentArray[27-2-1] = fCHANCE_M_HOOKERCAR
|
||
eRequestArray[25-2-1+1] = PR_SCENE_M4_WASHFACE fPercentArray[25-2-1+1] = fCHANCE_M_HOOKERMOTEL
|
||
|
||
|
||
// IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
// PR_SCENE_M4_DOORSTUMBLE)
|
||
// RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
// ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M6_Exiled)
|
||
CONST_FLOAT fCHANCE_M6_DRINKINGBEER 20.0
|
||
CONST_FLOAT fCHANCE_M6_ONPHONE 15.0
|
||
CONST_FLOAT fCHANCE_M6_DEPRESSED 15.0
|
||
CONST_FLOAT fCHANCE_M6_BOATING 20.0
|
||
CONST_FLOAT fCHANCE_M6_LIQUORSTORE 15.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_a 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_b 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_c 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_d 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_e 4.0
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_g 1.5
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_h 1.5
|
||
CONST_FLOAT fCHANCE_M6_RONBORING 7.5
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[13]
|
||
FLOAT fPercentArray[13]
|
||
|
||
eRequestArray[0] = PR_SCENE_M6_DRINKINGBEER fPercentArray[0] = fCHANCE_M6_DRINKINGBEER
|
||
eRequestArray[1] = PR_SCENE_M6_ONPHONE fPercentArray[2] = fCHANCE_M6_ONPHONE
|
||
eRequestArray[2] = PR_SCENE_M6_DEPRESSED fPercentArray[2] = fCHANCE_M6_DEPRESSED
|
||
eRequestArray[3] = PR_SCENE_M6_BOATING fPercentArray[3] = fCHANCE_M6_BOATING
|
||
eRequestArray[4] = PR_SCENE_M6_LIQUORSTORE fPercentArray[4] = fCHANCE_M6_LIQUORSTORE
|
||
eRequestArray[5] = PR_SCENE_M6_PARKEDHILLS_a fPercentArray[5] = fCHANCE_M6_PARKEDHILLS_a
|
||
eRequestArray[6] = PR_SCENE_M6_PARKEDHILLS_b fPercentArray[6] = fCHANCE_M6_PARKEDHILLS_b
|
||
eRequestArray[7] = PR_SCENE_M6_PARKEDHILLS_c fPercentArray[7] = fCHANCE_M6_PARKEDHILLS_c
|
||
eRequestArray[8] = PR_SCENE_M6_PARKEDHILLS_d fPercentArray[8] = fCHANCE_M6_PARKEDHILLS_d
|
||
eRequestArray[9] = PR_SCENE_M6_PARKEDHILLS_e fPercentArray[9] = fCHANCE_M6_PARKEDHILLS_e
|
||
eRequestArray[10] = PR_SCENE_M6_DRIVING_g fPercentArray[10] = fCHANCE_M6_DRIVING_g
|
||
eRequestArray[11] = PR_SCENE_M6_DRIVING_h fPercentArray[11] = fCHANCE_M6_DRIVING_h
|
||
eRequestArray[12] = PR_SCENE_M6_RONBORING fPercentArray[12] = fCHANCE_M6_RONBORING
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M7_ReunitedWithFamily)
|
||
CONST_FLOAT fCHANCE_M7_RESTAURANT 10.0
|
||
CONST_FLOAT fCHANCE_M7_BYESOLOMON 5.0
|
||
CONST_FLOAT fCHANCE_M7_READSCRIPT 5.0
|
||
CONST_FLOAT fCHANCE_M7_EMPLOYEECONVO 5.0
|
||
CONST_FLOAT fCHANCE_M7_TALKTOGUARD 5.0
|
||
CONST_FLOAT fCHANCE_M7_LOT_JIMMY 5.0
|
||
|
||
CONST_FLOAT fCHANCE_M7_KIDS_TV 5.0
|
||
CONST_FLOAT fCHANCE_M7_KIDS_GAMING 5.0
|
||
|
||
CONST_FLOAT fCHANCE_M7_OPENDOORFORAMA 5.0
|
||
CONST_FLOAT fCHANCE_M7_DROPPINGOFFJMY 5.0
|
||
CONST_FLOAT fCHANCE_M7_TRACEYEXITSCAR 5.0
|
||
|
||
CONST_FLOAT fCHANCE_M7_REJECTENTRY 5.0
|
||
CONST_FLOAT fCHANCE_M7_LOUNGECHAIRS 10.0
|
||
CONST_FLOAT fCHANCE_M7_BIKINGJIMMY 5.0
|
||
|
||
CONST_FLOAT fCHANCE_M7_FAMARGUE 10.0
|
||
CONST_FLOAT fCHANCE_M7_FAKEYOGA 5.0
|
||
CONST_FLOAT fCHANCE_M7_WIFETENNIS 5.0
|
||
|
||
CONST_FLOAT fCHANCE_M7_LUNCH_b 5.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[19+1-1]
|
||
FLOAT fPercentArray[19+1-1]
|
||
|
||
eRequestArray[0] = PR_SCENE_M7_RESTAURANT fPercentArray[0] = fCHANCE_M7_RESTAURANT
|
||
eRequestArray[3] = PR_SCENE_M7_READSCRIPT fPercentArray[3] = fCHANCE_M7_READSCRIPT
|
||
eRequestArray[4] = PR_SCENE_M7_EMPLOYEECONVO fPercentArray[4] = fCHANCE_M7_EMPLOYEECONVO
|
||
eRequestArray[5] = PR_SCENE_M7_TALKTOGUARD fPercentArray[5] = fCHANCE_M7_TALKTOGUARD
|
||
eRequestArray[6] = PR_SCENE_M7_LOT_JIMMY fPercentArray[6] = fCHANCE_M7_LOT_JIMMY
|
||
eRequestArray[7] = PR_SCENE_M7_KIDS_TV fPercentArray[7] = fCHANCE_M7_KIDS_TV
|
||
eRequestArray[8] = PR_SCENE_M7_KIDS_GAMING fPercentArray[8] = fCHANCE_M7_KIDS_GAMING
|
||
eRequestArray[9] = PR_SCENE_M7_OPENDOORFORAMA fPercentArray[9] = fCHANCE_M7_OPENDOORFORAMA
|
||
eRequestArray[10] = PR_SCENE_M7_DROPPINGOFFJMY fPercentArray[10] = fCHANCE_M7_DROPPINGOFFJMY
|
||
eRequestArray[11] = PR_SCENE_M7_TRACEYEXITSCAR fPercentArray[11] = fCHANCE_M7_TRACEYEXITSCAR
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(eMichHasMetSolomon)
|
||
eRequestArray[1] = PR_SCENE_M7_BYESOLOMON_a fPercentArray[1] = fCHANCE_M7_BYESOLOMON / 2.0
|
||
eRequestArray[2] = PR_SCENE_M7_BYESOLOMON_b fPercentArray[2] = fCHANCE_M7_BYESOLOMON / 2.0
|
||
eRequestArray[12] = PR_SCENE_M7_REJECTENTRY fPercentArray[12] = fCHANCE_M7_REJECTENTRY
|
||
ELSE
|
||
eRequestArray[1] = PR_SCENE_INVALID fPercentArray[1] = 0.0
|
||
eRequestArray[2] = PR_SCENE_INVALID fPercentArray[2] = 0.0
|
||
eRequestArray[12] = PR_SCENE_INVALID fPercentArray[12] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[13] = PR_SCENE_M7_LOUNGECHAIRS fPercentArray[13] = fCHANCE_M7_LOUNGECHAIRS
|
||
eRequestArray[14] = PR_SCENE_M7_BIKINGJIMMY fPercentArray[14] = fCHANCE_M7_BIKINGJIMMY
|
||
eRequestArray[15] = PR_SCENE_M7_ROUNDTABLE fPercentArray[15] = fCHANCE_M7_FAMARGUE
|
||
eRequestArray[16] = PR_SCENE_M7_FAKEYOGA fPercentArray[16] = fCHANCE_M7_FAKEYOGA
|
||
eRequestArray[17] = PR_SCENE_M7_WIFETENNIS fPercentArray[17] = fCHANCE_M7_WIFETENNIS
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(eMichHasMetSolomon)
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
PR_SCENE_M7_OPENDOORFORAMA, PR_SCENE_M7_DROPPINGOFFJMY, PR_SCENE_M7_TRACEYEXITSCAR,
|
||
PR_SCENE_M7_KIDS_TV)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
ELSE
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
PR_SCENE_M7_OPENDOORFORAMA, PR_SCENE_M7_DROPPINGOFFJMY, PR_SCENE_M7_TRACEYEXITSCAR,
|
||
PR_SCENE_M7_ROUNDTABLE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELSE
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
CASSERTLN(DEBUG_SWITCH, "invalid thisMichaelScheduleStage in GetMichaelSceneForEvening()")
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
ENDFUNC
|
||
FUNC BOOL GetMichaelSceneForEveningParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetMichaelSceneForEvening(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// /* 20:00 - 23:59 */
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL GetMichaelSceneForNight(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_MICHAEL
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
|
||
enumMichaelScheduleStage thisMichaelScheduleStage = GetMichaelScheduleStage()
|
||
IF (thisMichaelScheduleStage = MSS_M2_WithFamily)
|
||
CONST_FLOAT fCHANCE_M_CANAL_a 8.0
|
||
CONST_FLOAT fCHANCE_M2_KIDS_TV 14.0
|
||
CONST_FLOAT fCHANCE_M_PIER_a 1.0
|
||
CONST_FLOAT fCHANCE_M_PIER_b 1.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_a 1.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_b 1.0
|
||
CONST_FLOAT fCHANCE_M_BAR_a 10.0
|
||
CONST_FLOAT fCHANCE_M_BAR_b 10.0
|
||
CONST_FLOAT fCHANCE_M2_MARINA 8.0
|
||
CONST_FLOAT fCHANCE_M2_ARGUEWITHWIFE 10.0
|
||
CONST_FLOAT fCHANCE_M2_DROPOFFDAU_b 21.0
|
||
CONST_FLOAT fCHANCE_M_HOOKERMOTEL 7.0
|
||
CONST_FLOAT fCHANCE_M_HOOKERCAR 8.0
|
||
CONST_FLOAT fCHANCE_M2_DRIVING_a 5.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[15-2-1]
|
||
FLOAT fPercentArray[15-2-1]
|
||
|
||
eRequestArray[0] = PR_SCENE_M_CANAL_a fPercentArray[0] = fCHANCE_M_CANAL_a
|
||
eRequestArray[1] = PR_SCENE_M2_KIDS_TV fPercentArray[1] = fCHANCE_M2_KIDS_TV
|
||
eRequestArray[2] = PR_SCENE_M_PIER_a fPercentArray[2] = fCHANCE_M_PIER_a
|
||
eRequestArray[3] = PR_SCENE_M_PIER_b fPercentArray[3] = fCHANCE_M_PIER_b
|
||
eRequestArray[4] = PR_SCENE_M_PARKEDHILLS_a fPercentArray[4] = fCHANCE_M_PARKEDHILLS_a
|
||
eRequestArray[5] = PR_SCENE_M_PARKEDHILLS_b fPercentArray[5] = fCHANCE_M_PARKEDHILLS_b
|
||
// eRequestArray[6] = PR_SCENE_M_BAR_a fPercentArray[6] = fCHANCE_M_BAR_a
|
||
// eRequestArray[7] = PR_SCENE_M_BAR_b fPercentArray[7] = fCHANCE_M_BAR_b
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_1)
|
||
eRequestArray[8-2] = PR_SCENE_M2_MARINA fPercentArray[8-2] = fCHANCE_M2_MARINA
|
||
ELSE
|
||
eRequestArray[8-2] = PR_SCENE_INVALID fPercentArray[8-2] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[9-2] = PR_SCENE_M2_ARGUEWITHWIFE fPercentArray[9-2] = fCHANCE_M2_ARGUEWITHWIFE
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_2)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_4) //tracey leaves after fam4
|
||
eRequestArray[10-2] = PR_SCENE_M2_DROPOFFDAU_b fPercentArray[10-2] = fCHANCE_M2_DROPOFFDAU_b
|
||
ELSE
|
||
eRequestArray[10-2] = PR_SCENE_INVALID fPercentArray[10-2] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[11-2] = PR_SCENE_M_HOOKERMOTEL fPercentArray[11-2] = fCHANCE_M_HOOKERMOTEL
|
||
// eRequestArray[12-2] = PR_SCENE_M_HOOKERCAR fPercentArray[12-2] = fCHANCE_M_HOOKERCAR
|
||
|
||
eRequestArray[13-2-1] = PR_SCENE_M2_DRIVING_a fPercentArray[13-2-1] = fCHANCE_M2_DRIVING_a / 2.0
|
||
eRequestArray[14-2-1] = PR_SCENE_M2_DRIVING_b fPercentArray[14-2-1] = fCHANCE_M2_DRIVING_a / 2.0
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_2)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_4) //tracey leaves after fam4
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_NIGHT, bDescentOnlyScene,
|
||
PR_SCENE_M2_ARGUEWITHWIFE, PR_SCENE_M2_DROPOFFDAU_b,
|
||
PR_SCENE_M_HOOKERMOTEL)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_NIGHT)
|
||
ENDIF
|
||
ELSE
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_NIGHT, bDescentOnlyScene,
|
||
PR_SCENE_M2_ARGUEWITHWIFE,
|
||
PR_SCENE_M_HOOKERMOTEL)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_NIGHT)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M4_WithoutFamily)
|
||
CONST_FLOAT fCHANCE_M_CANAL_a 4.0
|
||
CONST_FLOAT fCHANCE_M_CANAL_b 3.0
|
||
CONST_FLOAT fCHANCE_M_CANAL_c 3.0
|
||
CONST_FLOAT fCHANCE_M_PIER_a 5.0
|
||
CONST_FLOAT fCHANCE_M_PIER_b 5.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_a 5.0
|
||
CONST_FLOAT fCHANCE_M_PARKEDHILLS_b 5.0
|
||
CONST_FLOAT fCHANCE_M_BAR_a 10.0
|
||
CONST_FLOAT fCHANCE_M_BAR_b 10.0
|
||
CONST_FLOAT fCHANCE_M4_PARKEDBEACH 10.0
|
||
CONST_FLOAT fCHANCE_M4_DOORSTUMBLE 20.0
|
||
CONST_FLOAT fCHANCE_M_HOOKERMOTEL 10.0
|
||
CONST_FLOAT fCHANCE_M_HOOKERCAR 10.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[13-3-1+1]
|
||
FLOAT fPercentArray[13-3-1+1]
|
||
|
||
eRequestArray[0] = PR_SCENE_M_CANAL_a fPercentArray[0] = fCHANCE_M_CANAL_a
|
||
eRequestArray[1] = PR_SCENE_M_CANAL_b fPercentArray[1] = fCHANCE_M_CANAL_b
|
||
eRequestArray[2] = PR_SCENE_M_CANAL_c fPercentArray[2] = fCHANCE_M_CANAL_c
|
||
eRequestArray[3] = PR_SCENE_M_PIER_a fPercentArray[3] = fCHANCE_M_PIER_a
|
||
eRequestArray[4] = PR_SCENE_M_PIER_b fPercentArray[4] = fCHANCE_M_PIER_b
|
||
eRequestArray[5] = PR_SCENE_M_PARKEDHILLS_a fPercentArray[5] = fCHANCE_M_PARKEDHILLS_a
|
||
eRequestArray[6] = PR_SCENE_M_PARKEDHILLS_b fPercentArray[6] = fCHANCE_M_PARKEDHILLS_b
|
||
// eRequestArray[7] = PR_SCENE_M_BAR_a fPercentArray[7] = fCHANCE_M_BAR_a
|
||
// eRequestArray[8] = PR_SCENE_M_BAR_b fPercentArray[8] = fCHANCE_M_BAR_b
|
||
eRequestArray[9-2] = PR_SCENE_M4_PARKEDBEACH fPercentArray[9-2] = fCHANCE_M4_PARKEDBEACH
|
||
// eRequestArray[10-2] = PR_SCENE_M4_DOORSTUMBLE fPercentArray[10-2] = fCHANCE_M4_DOORSTUMBLE
|
||
eRequestArray[11-2-1] = PR_SCENE_M_HOOKERMOTEL fPercentArray[11-2-1] = fCHANCE_M_HOOKERMOTEL
|
||
// eRequestArray[12-2-1] = PR_SCENE_M_HOOKERCAR fPercentArray[12-2-1] = fCHANCE_M_HOOKERCAR
|
||
|
||
eRequestArray[11-2-1+1] = PR_SCENE_M4_WASHFACE fPercentArray[11-2-1+1] = fCHANCE_M_HOOKERMOTEL
|
||
|
||
|
||
// IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_NIGHT, bDescentOnlyScene,
|
||
// PR_SCENE_M4_DOORSTUMBLE)
|
||
// RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_NIGHT)
|
||
// ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELIF (thisMichaelScheduleStage = MSS_M6_Exiled)
|
||
CONST_FLOAT fCHANCE_M6_DRINKINGBEER 20.0
|
||
CONST_FLOAT fCHANCE_M6_ONPHONE 30.0
|
||
CONST_FLOAT fCHANCE_M6_DEPRESSED 30.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_a 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_b 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_c 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_d 4.0
|
||
CONST_FLOAT fCHANCE_M6_PARKEDHILLS_e 4.0
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_a 5.0
|
||
CONST_FLOAT fCHANCE_M6_DRIVING_b 5.0
|
||
CONST_FLOAT fCHANCE_M6_RONBORING 20.0
|
||
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[11]
|
||
FLOAT fPercentArray[11]
|
||
|
||
eRequestArray[0] = PR_SCENE_M6_DRINKINGBEER fPercentArray[0] = fCHANCE_M6_DRINKINGBEER
|
||
eRequestArray[1] = PR_SCENE_M6_ONPHONE fPercentArray[1] = fCHANCE_M6_ONPHONE
|
||
eRequestArray[2] = PR_SCENE_M6_DEPRESSED fPercentArray[2] = fCHANCE_M6_DEPRESSED
|
||
eRequestArray[3] = PR_SCENE_M6_PARKEDHILLS_a fPercentArray[3] = fCHANCE_M6_PARKEDHILLS_a
|
||
eRequestArray[4] = PR_SCENE_M6_PARKEDHILLS_b fPercentArray[4] = fCHANCE_M6_PARKEDHILLS_b
|
||
eRequestArray[5] = PR_SCENE_M6_PARKEDHILLS_c fPercentArray[5] = fCHANCE_M6_PARKEDHILLS_c
|
||
eRequestArray[6] = PR_SCENE_M6_PARKEDHILLS_d fPercentArray[6] = fCHANCE_M6_PARKEDHILLS_d
|
||
eRequestArray[7] = PR_SCENE_M6_PARKEDHILLS_e fPercentArray[7] = fCHANCE_M6_PARKEDHILLS_e
|
||
eRequestArray[8] = PR_SCENE_M6_DRIVING_a fPercentArray[8] = fCHANCE_M6_DRIVING_a
|
||
eRequestArray[9] = PR_SCENE_M6_DRIVING_b fPercentArray[9] = fCHANCE_M6_DRIVING_b
|
||
eRequestArray[10] = PR_SCENE_M6_RONBORING fPercentArray[10] = fCHANCE_M6_RONBORING
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ELIF (thisMichaelScheduleStage = MSS_M7_ReunitedWithFamily)
|
||
CONST_FLOAT fCHANCE_M7_RESTAURANT 10.0
|
||
CONST_FLOAT fCHANCE_M7_REJECTENTRY 20.0
|
||
CONST_FLOAT fCHANCE_M7_GETSREADY 10.0
|
||
CONST_FLOAT fCHANCE_M7_EMPLOYEECONVO 5.0
|
||
CONST_FLOAT fCHANCE_M7_TALKTOGUARD 5.0
|
||
CONST_FLOAT fCHANCE_M7_LOT_JIMMY 5.0
|
||
CONST_FLOAT fCHANCE_M7_KIDS_TV 15.0
|
||
CONST_FLOAT fCHANCE_M7_KIDS_GAMING 15.0
|
||
CONST_FLOAT fCHANCE_M7_HOOKERS 15.0
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[14]
|
||
FLOAT fPercentArray[14]
|
||
|
||
eRequestArray[0] = PR_SCENE_M7_RESTAURANT fPercentArray[0] = fCHANCE_M7_RESTAURANT
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(eMichHasMetSolomon)
|
||
eRequestArray[1] = PR_SCENE_M7_REJECTENTRY fPercentArray[1] = fCHANCE_M7_REJECTENTRY
|
||
ELSE
|
||
eRequestArray[1] = PR_SCENE_INVALID fPercentArray[1] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[2] = PR_SCENE_M7_GETSREADY fPercentArray[2] = fCHANCE_M7_GETSREADY
|
||
eRequestArray[3] = PR_SCENE_M7_EMPLOYEECONVO fPercentArray[3] = fCHANCE_M7_EMPLOYEECONVO
|
||
eRequestArray[4] = PR_SCENE_M7_TALKTOGUARD fPercentArray[4] = fCHANCE_M7_TALKTOGUARD
|
||
eRequestArray[5] = PR_SCENE_M7_LOT_JIMMY fPercentArray[5] = fCHANCE_M7_LOT_JIMMY
|
||
eRequestArray[6] = PR_SCENE_M7_KIDS_TV fPercentArray[6] = fCHANCE_M7_KIDS_TV
|
||
eRequestArray[7] = PR_SCENE_M7_KIDS_GAMING fPercentArray[7] = fCHANCE_M7_KIDS_GAMING
|
||
eRequestArray[8] = PR_SCENE_M7_HOOKERS fPercentArray[8] = fCHANCE_M7_HOOKERS
|
||
eRequestArray[9] = PR_SCENE_M6_PARKEDHILLS_a fPercentArray[9] = 1.0
|
||
eRequestArray[10] = PR_SCENE_M6_PARKEDHILLS_b fPercentArray[10] = 1.0
|
||
eRequestArray[11] = PR_SCENE_M6_PARKEDHILLS_c fPercentArray[11] = 1.0
|
||
eRequestArray[12] = PR_SCENE_M6_PARKEDHILLS_d fPercentArray[12] = 1.0
|
||
eRequestArray[13] = PR_SCENE_M6_PARKEDHILLS_e fPercentArray[13] = 1.0
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_NIGHT, bDescentOnlyScene,
|
||
PR_SCENE_M7_EMPLOYEECONVO,
|
||
PR_SCENE_M7_ROUNDTABLE, PR_SCENE_M7_KIDS_TV)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_NIGHT)
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
|
||
ELSE
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
CASSERTLN(DEBUG_SWITCH, "invalid thisMichaelScheduleStage in GetMichaelSceneForNight()")
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
ENDFUNC
|
||
FUNC BOOL GetMichaelSceneForNightParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetMichaelSceneForNight(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
/// PURPOSE: Returns the scene ID from the timetable
|
||
FUNC BOOL GetMichaelSceneForCurrentTime(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
|
||
IF NOT bDescentOnlyScene
|
||
IF GetPedRequestSceneForAvailableMission(CHAR_MICHAEL, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
SWITCH PRIVATE_Get_Switch_Clock_Hours()
|
||
/* 00:00 - 08:59 */
|
||
CASE 0 CASE 1 CASE 2
|
||
CASE 3 CASE 4 CASE 5
|
||
CASE 6 CASE 7 CASE 8
|
||
GetMichaelSceneForMorning(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetMichaelSceneForAfternoonParam, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 09:00 - 13:59 */
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13
|
||
GetMichaelSceneForAfternoon(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetMichaelSceneForEveningParam, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 14:00 - 19:59 */
|
||
CASE 14 CASE 15 CASE 16
|
||
CASE 17 CASE 18 CASE 19
|
||
GetMichaelSceneForEvening(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetMichaelSceneForNightParam, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 20:00 - 23:59 */
|
||
CASE 20 CASE 21 CASE 22
|
||
CASE 23
|
||
GetMichaelSceneForNight(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetMichaelSceneForMorningParam, bDescentOnlyScene)
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDFUNC
|
||
|
||
// *******************************************************************************************
|
||
// FUNCTIONS TO RETURN NEXT SCENE FOR FRANKLIN
|
||
// *******************************************************************************************
|
||
FUNC BOOL GetFranklinSceneForNight(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_FRANKLIN
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[7-1]
|
||
FLOAT fPercentArray[7-1]
|
||
|
||
CONST_FLOAT fCHANCE_F0_SH_ASLEEP 30.0
|
||
CONST_FLOAT fCHANCE_F0_SH_READING 10.0
|
||
CONST_FLOAT fCHANCE_F0_SH_PUSHUP_a 10.0
|
||
CONST_FLOAT fCHANCE_F0_SH_PUSHUP_b 10.0
|
||
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_NIGHT 10.0
|
||
CONST_FLOAT fCHANCE_F_CLUB 10.0
|
||
CONST_FLOAT fCHANCE_F0_WATCHINGTV 20.0
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_NIGHT, bDescentOnlyScene,
|
||
PR_SCENE_F0_TANISHAFIGHT)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_NIGHT)
|
||
ENDIF
|
||
|
||
eRequestArray[0] = PR_SCENE_F0_SH_ASLEEP fPercentArray[0] = fCHANCE_F0_SH_ASLEEP
|
||
eRequestArray[1] = PR_SCENE_F0_SH_READING fPercentArray[1] = fCHANCE_F0_SH_READING
|
||
eRequestArray[2] = PR_SCENE_F0_SH_PUSHUP_a fPercentArray[2] = fCHANCE_F0_SH_PUSHUP_a
|
||
eRequestArray[3] = PR_SCENE_F0_SH_PUSHUP_b fPercentArray[3] = fCHANCE_F0_SH_PUSHUP_b
|
||
// eRequestArray[4] = PR_SCENE_F0_WATCHINGTV fPercentArray[4] = fCHANCE_F0_WATCHINGTV
|
||
eRequestArray[5-1] = PR_SCENE_F_LAMTAUNT_NIGHT fPercentArray[5-1] = fCHANCE_F_LAMTAUNT_NIGHT
|
||
eRequestArray[6-1] = PR_SCENE_F_CLUB fPercentArray[6-1] = fCHANCE_F_CLUB
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ELSE
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[6+2]
|
||
FLOAT fPercentArray[6+2]
|
||
|
||
CONST_FLOAT fCHANCE_F1_SH_ASLEEP 50.0
|
||
CONST_FLOAT fCHANCE_F1_SH_READING 10.0
|
||
CONST_FLOAT fCHANCE_F1_WATCHINGTV 10.0
|
||
CONST_FLOAT fCHANCE_F1_BYETAXI 10.0
|
||
CONST_FLOAT fCHANCE_F1_SNACKING 10.0
|
||
CONST_FLOAT fCHANCE_F1_SH_PUSHUP 10.0
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_NIGHT, bDescentOnlyScene,
|
||
PR_SCENE_F1_NEWHOUSE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_NIGHT)
|
||
ENDIF
|
||
|
||
eRequestArray[0] = PR_SCENE_F1_SH_ASLEEP fPercentArray[0] = fCHANCE_F1_SH_ASLEEP / 3
|
||
eRequestArray[1] = PR_SCENE_F1_NAPPING fPercentArray[1] = fCHANCE_F1_SH_ASLEEP / 3
|
||
eRequestArray[2] = PR_SCENE_F1_GETTINGREADY fPercentArray[2] = fCHANCE_F1_SH_ASLEEP / 3
|
||
eRequestArray[1+2] = PR_SCENE_F1_SH_READING fPercentArray[1+2] = fCHANCE_F1_SH_READING
|
||
eRequestArray[2+2] = PR_SCENE_F1_WATCHINGTV fPercentArray[2+2] = fCHANCE_F1_WATCHINGTV
|
||
eRequestArray[3+2] = PR_SCENE_F1_BYETAXI fPercentArray[3+2] = fCHANCE_F1_BYETAXI
|
||
eRequestArray[4+2] = PR_SCENE_F1_SNACKING fPercentArray[4+2] = fCHANCE_F1_SNACKING
|
||
eRequestArray[5+2] = PR_SCENE_F1_SH_PUSHUP fPercentArray[5+2] = fCHANCE_F1_SH_PUSHUP
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ENDIF
|
||
ENDFUNC
|
||
FUNC BOOL GetFranklinSceneForNightParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetFranklinSceneForNight(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL GetFranklinSceneForMorning(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_FRANKLIN
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[21-1]
|
||
FLOAT fPercentArray[21-1]
|
||
|
||
CONST_FLOAT fCHANCE_F0_WATCHINGTV 6.6
|
||
CONST_FLOAT fCHANCE_F_MD_KUSH_DOC 6.2
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_a 6.2
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_b 6.2
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_c 6.2
|
||
CONST_FLOAT fCHANCE_F0_GARBAGE 9.6
|
||
CONST_FLOAT fCHANCE_F_THROW_CUP 3.3
|
||
CONST_FLOAT fCHANCE_F_HIT_CUP_HAND 3.3
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_a 1.6
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_b 1.6
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_c 1.6
|
||
|
||
CONST_FLOAT fCHANCE_F0_BIKE 1.6
|
||
CONST_FLOAT fCHANCE_F_BIKE_c 1.6
|
||
CONST_FLOAT fCHANCE_F_BIKE_d 1.6
|
||
|
||
CONST_FLOAT fCHANCE_F_CS_CHECKSHOE 7.2 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPEHANDS 7.2 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPERIGHT 7.2 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
|
||
CONST_FLOAT fCHANCE_F_GYM 6.6
|
||
|
||
CONST_FLOAT fCHANCE_F0_WALKCHOP 6.6 //(only if chop app enabled)
|
||
CONST_FLOAT fCHANCE_F0_PLAYCHOP 6.6 //(only if chop app enabled)
|
||
|
||
CONST_FLOAT fCHANCE_F0_CLEANCAR 6.6
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_MORNING, bDescentOnlyScene,
|
||
PR_SCENE_F0_TANISHAFIGHT)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_MORNING)
|
||
ENDIF
|
||
|
||
// eRequestArray[0] = PR_SCENE_F0_WATCHINGTV fPercentArray[0] = fCHANCE_F0_WATCHINGTV
|
||
eRequestArray[1-1] = PR_SCENE_F_MD_KUSH_DOC fPercentArray[1-1] = fCHANCE_F_MD_KUSH_DOC
|
||
eRequestArray[1+1-1] = PR_SCENE_F_KUSH_DOC_a fPercentArray[1+1-1] = fCHANCE_F_KUSH_DOC_a
|
||
eRequestArray[2+1-1] = PR_SCENE_F_KUSH_DOC_b fPercentArray[2+1-1] = fCHANCE_F_KUSH_DOC_b
|
||
eRequestArray[3+1-1] = PR_SCENE_F_KUSH_DOC_c fPercentArray[3+1-1] = fCHANCE_F_KUSH_DOC_c
|
||
eRequestArray[4+1-1] = PR_SCENE_F0_GARBAGE fPercentArray[4+1-1] = fCHANCE_F0_GARBAGE
|
||
eRequestArray[5+1-1] = PR_SCENE_F_THROW_CUP fPercentArray[5+1-1] = fCHANCE_F_THROW_CUP
|
||
eRequestArray[6+1-1] = PR_SCENE_F_HIT_CUP_HAND fPercentArray[6+1-1] = fCHANCE_F_HIT_CUP_HAND
|
||
eRequestArray[7+1-1] = PR_SCENE_F_TRAFFIC_a fPercentArray[7+1-1] = fCHANCE_F_TRAFFIC_a
|
||
eRequestArray[8+1-1] = PR_SCENE_F_TRAFFIC_b fPercentArray[8+1-1] = fCHANCE_F_TRAFFIC_b
|
||
eRequestArray[9+1-1] = PR_SCENE_F_TRAFFIC_c fPercentArray[9+1-1] = fCHANCE_F_TRAFFIC_c
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_PLAYER_VEH_F_UNLOCK_BIKE)
|
||
eRequestArray[10+1-1] = PR_SCENE_F0_BIKE fPercentArray[10+1-1] = fCHANCE_F0_BIKE
|
||
eRequestArray[11+1-1] = PR_SCENE_F_BIKE_c fPercentArray[11+1-1] = fCHANCE_F_BIKE_c
|
||
eRequestArray[12+1-1] = PR_SCENE_F_BIKE_d fPercentArray[12+1-1] = fCHANCE_F_BIKE_d
|
||
ELSE
|
||
eRequestArray[10+1-1] = PR_SCENE_INVALID fPercentArray[10+1-1] = 0.0
|
||
eRequestArray[11+1-1] = PR_SCENE_INVALID fPercentArray[11+1-1] = 0.0
|
||
eRequestArray[12+1-1] = PR_SCENE_INVALID fPercentArray[12+1-1] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[13+1-1] = PR_SCENE_F_GYM fPercentArray[13+1-1] = fCHANCE_F_GYM
|
||
eRequestArray[14+1-1] = PR_SCENE_F0_CLEANCAR fPercentArray[14+1-1] = fCHANCE_F0_CLEANCAR
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_1)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_4)
|
||
eRequestArray[15+1-1] = PR_SCENE_F_CS_CHECKSHOE fPercentArray[15+1-1] = fCHANCE_F_CS_CHECKSHOE
|
||
eRequestArray[16+1-1] = PR_SCENE_F_CS_WIPEHANDS fPercentArray[16+1-1] = fCHANCE_F_CS_WIPEHANDS
|
||
eRequestArray[17+1-1] = PR_SCENE_F_CS_WIPERIGHT fPercentArray[17+1-1] = fCHANCE_F_CS_WIPERIGHT
|
||
ELSE
|
||
eRequestArray[15+1-1] = PR_SCENE_INVALID fPercentArray[15+1-1] = 0.0
|
||
eRequestArray[16+1-1] = PR_SCENE_INVALID fPercentArray[16+1-1] = 0.0
|
||
eRequestArray[17+1-1] = PR_SCENE_INVALID fPercentArray[17+1-1] = 0.0
|
||
ENDIF
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_CHOP_THE_DOG_UNLOCKED)
|
||
eRequestArray[18+1-1] = PR_SCENE_F0_WALKCHOP fPercentArray[18+1-1] = fCHANCE_F0_WALKCHOP
|
||
eRequestArray[19+1-1] = PR_SCENE_F0_PLAYCHOP fPercentArray[19+1-1] = fCHANCE_F0_PLAYCHOP
|
||
ELSE
|
||
eRequestArray[18+1-1] = PR_SCENE_INVALID fPercentArray[18+1-1] = 0.0
|
||
eRequestArray[19+1-1] = PR_SCENE_INVALID fPercentArray[19+1-1] = 0.0
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ELSE
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[29-2]
|
||
FLOAT fPercentArray[29-2]
|
||
|
||
CONST_FLOAT fCHANCE_F_MD_KUSH_DOC 1.5
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_a 1.5
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_b 1.5
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_c 1.5
|
||
|
||
CONST_FLOAT fCHANCE_F1_GARBAGE 4.5
|
||
|
||
CONST_FLOAT fCHANCE_F_GYM 4.5
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_a 1.5
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_b 1.5
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_c 1.5
|
||
CONST_FLOAT fCHANCE_F1_BIKE 1.5
|
||
CONST_FLOAT fCHANCE_F_BIKE_c 1.5
|
||
CONST_FLOAT fCHANCE_F_BIKE_d 1.5
|
||
|
||
CONST_FLOAT fCHANCE_F_CS_CHECKSHOE 1.5 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPEHANDS 1.5 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPERIGHT 1.5 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F1_POOLSIDE_a 6.5
|
||
CONST_FLOAT fCHANCE_F1_POOLSIDE_b 6.5
|
||
CONST_FLOAT fCHANCE_F1_WALKCHOP 1.5 //(only if chop app enabled)
|
||
CONST_FLOAT fCHANCE_F1_PLAYCHOP 1.5 //(only if chop app enabled)
|
||
|
||
CONST_FLOAT fCHANCE_F1_CLEANINGAPT 8.5
|
||
CONST_FLOAT fCHANCE_F1_ONCELL 8.5
|
||
|
||
CONST_FLOAT fCHANCE_F1_SNACKING 8.5
|
||
CONST_FLOAT fCHANCE_F1_ONLAPTOP 8.5
|
||
CONST_FLOAT fCHANCE_F1_CLEANCAR 4.5
|
||
CONST_FLOAT fCHANCE_F1_IRONING 8.5
|
||
|
||
CONST_FLOAT fCHANCE_F1_WATCHINGTV 8.5
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_MORNING, bDescentOnlyScene,
|
||
PR_SCENE_F1_NEWHOUSE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_MORNING)
|
||
ENDIF
|
||
|
||
eRequestArray[0] = PR_SCENE_F_MD_KUSH_DOC fPercentArray[0] = fCHANCE_F_MD_KUSH_DOC
|
||
eRequestArray[0+1] = PR_SCENE_F_KUSH_DOC_a fPercentArray[0+1] = fCHANCE_F_KUSH_DOC_a
|
||
eRequestArray[1+1] = PR_SCENE_F_KUSH_DOC_b fPercentArray[1+1] = fCHANCE_F_KUSH_DOC_b
|
||
eRequestArray[2+1] = PR_SCENE_F_KUSH_DOC_c fPercentArray[2+1] = fCHANCE_F_KUSH_DOC_c
|
||
|
||
eRequestArray[3+1] = PR_SCENE_F1_GARBAGE fPercentArray[3+1] = fCHANCE_F1_GARBAGE
|
||
eRequestArray[6-2+1] = PR_SCENE_F_GYM fPercentArray[6-2+1] = fCHANCE_F_GYM
|
||
|
||
eRequestArray[7-2+1] = PR_SCENE_F_TRAFFIC_a fPercentArray[7-2+1] = fCHANCE_F_TRAFFIC_a
|
||
eRequestArray[8-2+1] = PR_SCENE_F_TRAFFIC_b fPercentArray[8-2+1] = fCHANCE_F_TRAFFIC_b
|
||
eRequestArray[9-2+1] = PR_SCENE_F_TRAFFIC_c fPercentArray[9-2+1] = fCHANCE_F_TRAFFIC_c
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_PLAYER_VEH_F_UNLOCK_BIKE)
|
||
eRequestArray[10-2+1] = PR_SCENE_F1_BIKE fPercentArray[10-2+1] = fCHANCE_F1_BIKE
|
||
eRequestArray[11-2+1] = PR_SCENE_F_BIKE_c fPercentArray[11-2+1] = fCHANCE_F_BIKE_c
|
||
eRequestArray[12-2+1] = PR_SCENE_F_BIKE_d fPercentArray[12-2+1] = fCHANCE_F_BIKE_d
|
||
ELSE
|
||
eRequestArray[10-2+1] = PR_SCENE_INVALID fPercentArray[10-2+1] = 0.0
|
||
eRequestArray[11-2+1] = PR_SCENE_INVALID fPercentArray[11-2+1] = 0.0
|
||
eRequestArray[12-2+1] = PR_SCENE_INVALID fPercentArray[12-2+1] = 0.0
|
||
ENDIF
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_1)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_4)
|
||
eRequestArray[13-2+1] = PR_SCENE_F_CS_CHECKSHOE fPercentArray[13-2+1] = fCHANCE_F_CS_CHECKSHOE
|
||
eRequestArray[14-2+1] = PR_SCENE_F_CS_WIPEHANDS fPercentArray[14-2+1] = fCHANCE_F_CS_WIPEHANDS
|
||
eRequestArray[15-2+1] = PR_SCENE_F_CS_WIPERIGHT fPercentArray[15-2+1] = fCHANCE_F_CS_WIPERIGHT
|
||
ELSE
|
||
eRequestArray[13-2+1] = PR_SCENE_INVALID fPercentArray[13-2+1] = 0.0
|
||
eRequestArray[14-2+1] = PR_SCENE_INVALID fPercentArray[14-2+1] = 0.0
|
||
eRequestArray[15-2+1] = PR_SCENE_INVALID fPercentArray[15-2+1] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[16-2+1] = PR_SCENE_F1_POOLSIDE_a fPercentArray[16-2+1] = fCHANCE_F1_POOLSIDE_a
|
||
eRequestArray[17-2+1] = PR_SCENE_F1_POOLSIDE_b fPercentArray[17-2+1] = fCHANCE_F1_POOLSIDE_b
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_CHOP_THE_DOG_UNLOCKED)
|
||
// eRequestArray[18-2+1] = PR_SCENE_F1_WALKCHOP fPercentArray[18-2+1] = fCHANCE_F1_WALKCHOP
|
||
eRequestArray[19-2] = PR_SCENE_F1_PLAYCHOP fPercentArray[19-2] = fCHANCE_F1_PLAYCHOP
|
||
ELSE
|
||
// eRequestArray[18-2+1] = PR_SCENE_INVALID fPercentArray[18-2+1] = 0.0
|
||
eRequestArray[19-2] = PR_SCENE_INVALID fPercentArray[19-2] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[20-2] = PR_SCENE_F1_WATCHINGTV fPercentArray[20-2] = fCHANCE_F1_WATCHINGTV
|
||
eRequestArray[21-2] = PR_SCENE_F1_SNACKING fPercentArray[21-2] = fCHANCE_F1_SNACKING
|
||
eRequestArray[22-2] = PR_SCENE_F1_ONLAPTOP fPercentArray[22-2] = fCHANCE_F1_ONLAPTOP
|
||
eRequestArray[23-2] = PR_SCENE_F1_CLEANCAR fPercentArray[23-2] = fCHANCE_F1_CLEANCAR
|
||
eRequestArray[24-2] = PR_SCENE_F1_IRONING fPercentArray[24-2] = fCHANCE_F1_IRONING
|
||
eRequestArray[25-2] = PR_SCENE_F1_CLEANINGAPT fPercentArray[25-2] = fCHANCE_F1_CLEANINGAPT
|
||
eRequestArray[26-2] = PR_SCENE_F1_ONCELL fPercentArray[26-2] = fCHANCE_F1_ONCELL
|
||
|
||
eRequestArray[27-2] = PR_SCENE_F_THROW_CUP fPercentArray[27-2] = 1.0
|
||
eRequestArray[28-2] = PR_SCENE_F_HIT_CUP_HAND fPercentArray[28-2] = 1.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ENDIF
|
||
ENDFUNC
|
||
FUNC BOOL GetFranklinSceneForMorningParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetFranklinSceneForMorning(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL GetFranklinSceneForAfternoon(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_FRANKLIN
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[28+3-1-1]
|
||
FLOAT fPercentArray[28+3-1-1]
|
||
|
||
CONST_FLOAT fCHANCE_F_TAUNT 1.5
|
||
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_P1 3.8 //(ONLY UP TO JEWEL HEIST)
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_P2 3.8 //(ONLY UP TO JEWEL HEIST)
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_P3 3.8 //(ONLY UP TO JEWEL HEIST)
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_P5 3.8 //(ONLY UP TO JEWEL HEIST)
|
||
CONST_FLOAT fCHANCE_F_LAMGRAFF 6.0 //(ONLY UP TO JEWEL HEIST)
|
||
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_a 5.0
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_b 5.0
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_c 5.0
|
||
CONST_FLOAT fCHANCE_F0_BIKE 2.0
|
||
CONST_FLOAT fCHANCE_F_BIKE_c 2.0
|
||
CONST_FLOAT fCHANCE_F_BIKE_d 2.0
|
||
|
||
CONST_FLOAT fCHANCE_F_MD_KUSH_DOC 2.0
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_a 2.0
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_b 2.0
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_c 2.0
|
||
|
||
CONST_FLOAT fCHANCE_F0_GARBAGE 6.0
|
||
CONST_FLOAT fCHANCE_F_THROW_CUP 2.0
|
||
CONST_FLOAT fCHANCE_F_HIT_CUP_HAND 2.0
|
||
|
||
CONST_FLOAT fCHANCE_F0_WATCHINGTV 3.0
|
||
CONST_FLOAT fCHANCE_F0_CLEANCAR 6.0
|
||
|
||
CONST_FLOAT fCHANCE_F_BAR_a_01 1.5
|
||
CONST_FLOAT fCHANCE_F_BAR_b_01 1.5
|
||
CONST_FLOAT fCHANCE_F_BAR_c_02 1.5
|
||
CONST_FLOAT fCHANCE_F_BAR_d_02 1.5
|
||
CONST_FLOAT fCHANCE_F_BAR_e_01 1.5
|
||
|
||
CONST_FLOAT fCHANCE_F_CS_CHECKSHOE 6.0 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5-1]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPEHANDS 5.0 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5-1]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPERIGHT 6.0 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5-1]
|
||
|
||
CONST_FLOAT fCHANCE_F0_WALKCHOP 6.0 //(only if chop app enabled)
|
||
CONST_FLOAT fCHANCE_F0_PLAYCHOP 6.0 //(only if chop app enabled)
|
||
|
||
// eRequestArray[0-1] = PR_SCENE_F_TAUNT fPercentArray[0-1] = fCHANCE_F_TAUNT
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_LAMAR)
|
||
eRequestArray[1-1] = PR_SCENE_F_LAMTAUNT_P1 fPercentArray[1-1] = fCHANCE_F_LAMTAUNT_P1
|
||
// eRequestArray[2-1] = PR_SCENE_F_LAMTAUNT_P2 fPercentArray[2-1] = fCHANCE_F_LAMTAUNT_P2
|
||
eRequestArray[3-1-1] = PR_SCENE_F_LAMTAUNT_P3 fPercentArray[3-1-1] = fCHANCE_F_LAMTAUNT_P3
|
||
eRequestArray[4-1-1] = PR_SCENE_F_LAMTAUNT_P5 fPercentArray[4-1-1] = fCHANCE_F_LAMTAUNT_P5
|
||
// eRequestArray[5-1-1] = PR_SCENE_F_LAMGRAFF fPercentArray[5-1-1] = fCHANCE_F_LAMGRAFF
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_F_LAMTAUNT_P1, //PR_SCENE_F_LAMTAUNT_P2,
|
||
PR_SCENE_F_LAMTAUNT_P3, PR_SCENE_F_LAMTAUNT_P5,
|
||
// PR_SCENE_F_LAMGRAFF,
|
||
PR_SCENE_F0_TANISHAFIGHT)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
ELSE
|
||
eRequestArray[1-1] = PR_SCENE_INVALID fPercentArray[1-1] = 0.0
|
||
// eRequestArray[2-1] = PR_SCENE_INVALID fPercentArray[2-1] = 0.0
|
||
eRequestArray[3-1-1] = PR_SCENE_INVALID fPercentArray[3-1-1] = 0.0
|
||
eRequestArray[4-1-1] = PR_SCENE_INVALID fPercentArray[4-1-1] = 0.0
|
||
eRequestArray[5-1-1] = PR_SCENE_INVALID fPercentArray[5-1-1] = 0.0
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_F0_TANISHAFIGHT)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
eRequestArray[6-1-1] = PR_SCENE_F_TRAFFIC_a fPercentArray[6-1-1] = fCHANCE_F_TRAFFIC_a
|
||
eRequestArray[7-1-1] = PR_SCENE_F_TRAFFIC_b fPercentArray[7-1-1] = fCHANCE_F_TRAFFIC_b
|
||
eRequestArray[8-1-1] = PR_SCENE_F_TRAFFIC_c fPercentArray[8-1-1] = fCHANCE_F_TRAFFIC_c
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_PLAYER_VEH_F_UNLOCK_BIKE)
|
||
eRequestArray[9-1-1] = PR_SCENE_F0_BIKE fPercentArray[9-1-1] = fCHANCE_F0_BIKE
|
||
eRequestArray[10-1-1] = PR_SCENE_F_BIKE_c fPercentArray[10-1-1] = fCHANCE_F_BIKE_c
|
||
eRequestArray[11-1-1] = PR_SCENE_F_BIKE_d fPercentArray[11-1-1] = fCHANCE_F_BIKE_d
|
||
ELSE
|
||
eRequestArray[9-1-1] = PR_SCENE_INVALID fPercentArray[9-1-1] = 0.0
|
||
eRequestArray[10-1-1] = PR_SCENE_INVALID fPercentArray[10-1-1] = 0.0
|
||
eRequestArray[11-1-1] = PR_SCENE_INVALID fPercentArray[11-1-1] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[12-1-1] = PR_SCENE_F_MD_KUSH_DOC fPercentArray[12-1-1] = fCHANCE_F_MD_KUSH_DOC
|
||
eRequestArray[12-1] = PR_SCENE_F_KUSH_DOC_a fPercentArray[12-1] = fCHANCE_F_KUSH_DOC_a
|
||
eRequestArray[13-1] = PR_SCENE_F_KUSH_DOC_b fPercentArray[13-1] = fCHANCE_F_KUSH_DOC_b
|
||
eRequestArray[14-1] = PR_SCENE_F_KUSH_DOC_c fPercentArray[14-1] = fCHANCE_F_KUSH_DOC_c
|
||
|
||
eRequestArray[15-1] = PR_SCENE_F0_GARBAGE fPercentArray[15-1] = fCHANCE_F0_GARBAGE
|
||
eRequestArray[16-1] = PR_SCENE_F_THROW_CUP fPercentArray[16-1] = fCHANCE_F_THROW_CUP
|
||
eRequestArray[17-1] = PR_SCENE_F_HIT_CUP_HAND fPercentArray[17-1] = fCHANCE_F_HIT_CUP_HAND
|
||
|
||
// eRequestArray[18-1] = PR_SCENE_F0_WATCHINGTV fPercentArray[18-1] = fCHANCE_F0_WATCHINGTV
|
||
eRequestArray[19-1-1] = PR_SCENE_F0_CLEANCAR fPercentArray[19-1-1] = fCHANCE_F0_CLEANCAR
|
||
|
||
eRequestArray[20-1-1] = PR_SCENE_F_BAR_a_01 fPercentArray[20-1-1] = fCHANCE_F_BAR_a_01
|
||
eRequestArray[22+1-3-1] = PR_SCENE_F_BAR_b_01 fPercentArray[22+1-3-1] = fCHANCE_F_BAR_b_01
|
||
eRequestArray[23+1-3-1] = PR_SCENE_F_BAR_c_02 fPercentArray[23+1-3-1] = fCHANCE_F_BAR_c_02
|
||
eRequestArray[24+1-3-1] = PR_SCENE_F_BAR_d_02 fPercentArray[24+1-3-1] = fCHANCE_F_BAR_d_02
|
||
eRequestArray[25+1-3-1] = PR_SCENE_F_BAR_e_01 fPercentArray[25+1-3-1] = fCHANCE_F_BAR_e_01
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_1)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_4)
|
||
eRequestArray[23+3+1-3-1] = PR_SCENE_F_CS_CHECKSHOE fPercentArray[23+3+1-3-1] = fCHANCE_F_CS_CHECKSHOE
|
||
eRequestArray[24+3+1-3-1] = PR_SCENE_F_CS_WIPEHANDS fPercentArray[24+3+1-3-1] = fCHANCE_F_CS_WIPEHANDS
|
||
eRequestArray[25+3+1-3-1] = PR_SCENE_F_CS_WIPERIGHT fPercentArray[25+3+1-3-1] = fCHANCE_F_CS_WIPERIGHT
|
||
ELSE
|
||
eRequestArray[23+3+1-3-1] = PR_SCENE_INVALID fPercentArray[23+3+1-3-1] = 0.0
|
||
eRequestArray[24+3+1-3-1] = PR_SCENE_INVALID fPercentArray[24+3+1-3-1] = 0.0
|
||
eRequestArray[25+3+1-3-1] = PR_SCENE_INVALID fPercentArray[25+3+1-3-1] = 0.0
|
||
ENDIF
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_CHOP_THE_DOG_UNLOCKED)
|
||
eRequestArray[26+3+1-3-1] = PR_SCENE_F0_WALKCHOP fPercentArray[26+3+1-3-1] = fCHANCE_F0_WALKCHOP
|
||
eRequestArray[27+3+1-3-1] = PR_SCENE_F0_PLAYCHOP fPercentArray[27+3+1-3-1] = fCHANCE_F0_PLAYCHOP
|
||
ELSE
|
||
eRequestArray[26+3+1-3-1] = PR_SCENE_INVALID fPercentArray[26+3+1-3-1] = 0.0
|
||
eRequestArray[27+3+1-3-1] = PR_SCENE_INVALID fPercentArray[27+3+1-3-1] = 0.0
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ELSE
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[33-2-1]
|
||
FLOAT fPercentArray[33-2-1]
|
||
|
||
CONST_FLOAT fCHANCE_F_GYM 4.3
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_a 1.4
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_b 1.4
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC_c 1.4
|
||
|
||
CONST_FLOAT fCHANCE_F1_BIKE 1.4
|
||
CONST_FLOAT fCHANCE_F_BIKE_c 1.4
|
||
CONST_FLOAT fCHANCE_F_BIKE_d 1.4
|
||
|
||
CONST_FLOAT fCHANCE_F_MD_KUSH_DOC 4.3
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_a 4.3
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_b 4.3
|
||
CONST_FLOAT fCHANCE_F_KUSH_DOC_c 4.3
|
||
CONST_FLOAT fCHANCE_F1_GARBAGE 4.3
|
||
CONST_FLOAT fCHANCE_F_THROW_CUP 2.15
|
||
CONST_FLOAT fCHANCE_F_HIT_CUP_HAND 2.15
|
||
|
||
CONST_FLOAT fCHANCE_F_CS_CHECKSHOE 1.4 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPEHANDS 1.4 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPERIGHT 1.4 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
|
||
CONST_FLOAT fCHANCE_F_BAR_a_01 7.0
|
||
CONST_FLOAT fCHANCE_F_BAR_b_01 7.0
|
||
CONST_FLOAT fCHANCE_F_BAR_c_02 7.0
|
||
CONST_FLOAT fCHANCE_F_BAR_d_02 7.0
|
||
CONST_FLOAT fCHANCE_F_BAR_e_01 7.0
|
||
|
||
CONST_FLOAT fCHANCE_F1_WALKCHOP 4.3 //(only if chop app enabled)
|
||
CONST_FLOAT fCHANCE_F1_PLAYCHOP 4.3 //(only if chop app enabled)
|
||
|
||
CONST_FLOAT fCHANCE_F1_WATCHINGTV 8.3
|
||
CONST_FLOAT fCHANCE_F1_SNACKING 8.3
|
||
CONST_FLOAT fCHANCE_F1_ONLAPTOP 8.3
|
||
CONST_FLOAT fCHANCE_F1_CLEANCAR 8.3
|
||
CONST_FLOAT fCHANCE_F1_IRONING 8.3
|
||
CONST_FLOAT fCHANCE_F1_CLEANINGAPT 8.3
|
||
CONST_FLOAT fCHANCE_F1_ONCELL 8.2
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_F1_NEWHOUSE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
|
||
eRequestArray[0] = PR_SCENE_F_GYM fPercentArray[0] = fCHANCE_F_GYM
|
||
eRequestArray[1] = PR_SCENE_F_TRAFFIC_a fPercentArray[1] = fCHANCE_F_TRAFFIC_a
|
||
eRequestArray[2] = PR_SCENE_F_TRAFFIC_b fPercentArray[2] = fCHANCE_F_TRAFFIC_b
|
||
eRequestArray[3] = PR_SCENE_F_TRAFFIC_c fPercentArray[3] = fCHANCE_F_TRAFFIC_c
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_PLAYER_VEH_F_UNLOCK_BIKE)
|
||
eRequestArray[4] = PR_SCENE_F1_BIKE fPercentArray[4] = fCHANCE_F1_BIKE
|
||
eRequestArray[5] = PR_SCENE_F_BIKE_c fPercentArray[5] = fCHANCE_F_BIKE_c
|
||
eRequestArray[6] = PR_SCENE_F_BIKE_d fPercentArray[6] = fCHANCE_F_BIKE_d
|
||
ELSE
|
||
eRequestArray[4] = PR_SCENE_INVALID fPercentArray[4] = 0.0
|
||
eRequestArray[5] = PR_SCENE_INVALID fPercentArray[5] = 0.0
|
||
eRequestArray[6] = PR_SCENE_INVALID fPercentArray[6] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[7] = PR_SCENE_F_MD_KUSH_DOC fPercentArray[7] = fCHANCE_F_MD_KUSH_DOC
|
||
eRequestArray[7+1] = PR_SCENE_F_KUSH_DOC_a fPercentArray[7+1] = fCHANCE_F_KUSH_DOC_a
|
||
eRequestArray[8+1] = PR_SCENE_F_KUSH_DOC_b fPercentArray[8+1] = fCHANCE_F_KUSH_DOC_b
|
||
eRequestArray[9+1] = PR_SCENE_F_KUSH_DOC_c fPercentArray[9+1] = fCHANCE_F_KUSH_DOC_c
|
||
eRequestArray[10+1] = PR_SCENE_F1_GARBAGE fPercentArray[10+1] = fCHANCE_F1_GARBAGE
|
||
eRequestArray[11+1] = PR_SCENE_F_THROW_CUP fPercentArray[11+1] = fCHANCE_F_THROW_CUP
|
||
eRequestArray[12+1] = PR_SCENE_F_HIT_CUP_HAND fPercentArray[12+1] = fCHANCE_F_HIT_CUP_HAND
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_1)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_4)
|
||
eRequestArray[13+1] = PR_SCENE_F_CS_CHECKSHOE fPercentArray[13+1] = fCHANCE_F_CS_CHECKSHOE
|
||
eRequestArray[14+1] = PR_SCENE_F_CS_WIPEHANDS fPercentArray[14+1] = fCHANCE_F_CS_WIPEHANDS
|
||
eRequestArray[15+1] = PR_SCENE_F_CS_WIPERIGHT fPercentArray[15+1] = fCHANCE_F_CS_WIPERIGHT
|
||
ELSE
|
||
eRequestArray[13+1] = PR_SCENE_INVALID fPercentArray[13+1] = 0.0
|
||
eRequestArray[14+1] = PR_SCENE_INVALID fPercentArray[14+1] = 0.0
|
||
eRequestArray[15+1] = PR_SCENE_INVALID fPercentArray[15+1] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[16+1] = PR_SCENE_F_BAR_a_01 fPercentArray[16+1] = fCHANCE_F_BAR_a_01
|
||
eRequestArray[18] = PR_SCENE_F_BAR_b_01 fPercentArray[18] = fCHANCE_F_BAR_b_01
|
||
eRequestArray[19] = PR_SCENE_F_BAR_c_02 fPercentArray[19] = fCHANCE_F_BAR_c_02
|
||
eRequestArray[20] = PR_SCENE_F_BAR_d_02 fPercentArray[20] = fCHANCE_F_BAR_d_02
|
||
eRequestArray[21] = PR_SCENE_F_BAR_e_01 fPercentArray[21] = fCHANCE_F_BAR_e_01
|
||
|
||
IF Get_Mission_Flow_Flag_State(FLOWFLAG_CHOP_THE_DOG_UNLOCKED)
|
||
// eRequestArray[24-2] = PR_SCENE_F1_WALKCHOP fPercentArray[24-2] = fCHANCE_F1_WALKCHOP
|
||
eRequestArray[25-2-1] = PR_SCENE_F1_PLAYCHOP fPercentArray[25-2-1] = fCHANCE_F1_PLAYCHOP
|
||
ELSE
|
||
// eRequestArray[24-2-1] = PR_SCENE_INVALID fPercentArray[24-2-1] = 0.0
|
||
eRequestArray[25-2-1] = PR_SCENE_INVALID fPercentArray[25-2-1] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[26-2-1] = PR_SCENE_F1_WATCHINGTV fPercentArray[26-2-1] = fCHANCE_F1_WATCHINGTV
|
||
eRequestArray[27-2-1] = PR_SCENE_F1_SNACKING fPercentArray[27-2-1] = fCHANCE_F1_SNACKING
|
||
eRequestArray[28-2-1] = PR_SCENE_F1_ONLAPTOP fPercentArray[28-2-1] = fCHANCE_F1_ONLAPTOP
|
||
eRequestArray[29-2-1] = PR_SCENE_F1_CLEANCAR fPercentArray[29-2-1] = fCHANCE_F1_CLEANCAR
|
||
eRequestArray[28+2-2-1] = PR_SCENE_F1_IRONING fPercentArray[28+2-2-1] = fCHANCE_F1_IRONING
|
||
eRequestArray[29+2-2-1] = PR_SCENE_F1_CLEANINGAPT fPercentArray[29+2-2-1] = fCHANCE_F1_CLEANINGAPT
|
||
eRequestArray[32-2-1] = PR_SCENE_F1_ONCELL fPercentArray[32-2-1] = fCHANCE_F1_ONCELL
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ENDIF
|
||
ENDFUNC
|
||
FUNC BOOL GetFranklinSceneForAfternoonParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetFranklinSceneForAfternoon(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL GetFranklinSceneForEvening(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene,
|
||
SceneScheduleFunc invalidSceneScheduleFunc, BOOL bDescentOnlyScene)
|
||
enumCharacterList ePed = CHAR_FRANKLIN
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[17]
|
||
FLOAT fPercentArray[17]
|
||
|
||
CONST_FLOAT fCHANCE_F_CLUB 10.0
|
||
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_P1 1.0 //ONLY UP TO JEWEL HEIST)
|
||
// CONST_FLOAT fCHANCE_F_LAMTAUNT_P2 1.0 //ONLY UP TO JEWEL HEIST)
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_P3 1.0 //ONLY UP TO JEWEL HEIST)
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_P5 1.0 //ONLY UP TO JEWEL HEIST)
|
||
CONST_FLOAT fCHANCE_F_LAMTAUNT_NIGHT 5.0 //ONLY UP TO JEWEL HEIST)
|
||
|
||
CONST_FLOAT fCHANCE_F_BAR_a_01 1.0
|
||
CONST_FLOAT fCHANCE_F_BAR_b_01 1.0
|
||
CONST_FLOAT fCHANCE_F_BAR_c_02 1.0
|
||
CONST_FLOAT fCHANCE_F_BAR_d_02 1.0
|
||
CONST_FLOAT fCHANCE_F_BAR_e_01 0.98
|
||
|
||
CONST_FLOAT fCHANCE_F0_WATCHINGTV 20.0
|
||
|
||
CONST_FLOAT fCHANCE_F_CS_CHECKSHOE 5.0 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPEHANDS 5.0 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPERIGHT 5.0 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
|
||
//B*-2351523
|
||
CONST_FLOAT fCHANCE_F_HIT_CUP_HAND 0.01
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC 0.01
|
||
//B*-2351523
|
||
|
||
eRequestArray[0] = PR_SCENE_F_CLUB fPercentArray[0] = fCHANCE_F_CLUB
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_LAMAR)
|
||
eRequestArray[1] = PR_SCENE_F_LAMTAUNT_P1 fPercentArray[1] = fCHANCE_F_LAMTAUNT_P1
|
||
// eRequestArray[2] = PR_SCENE_F_LAMTAUNT_P2 fPercentArray[2] = fCHANCE_F_LAMTAUNT_P2
|
||
eRequestArray[2] = PR_SCENE_F_LAMTAUNT_P3 fPercentArray[2] = fCHANCE_F_LAMTAUNT_P3
|
||
eRequestArray[3] = PR_SCENE_F_LAMTAUNT_P5 fPercentArray[3] = fCHANCE_F_LAMTAUNT_P5
|
||
eRequestArray[4] = PR_SCENE_F_LAMTAUNT_NIGHT fPercentArray[4] = fCHANCE_F_LAMTAUNT_NIGHT
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
PR_SCENE_F_LAMTAUNT_P1, //PR_SCENE_F_LAMTAUNT_P2,
|
||
PR_SCENE_F_LAMTAUNT_P3, PR_SCENE_F_LAMTAUNT_P5,
|
||
PR_SCENE_F_LAMTAUNT_NIGHT,
|
||
PR_SCENE_F0_TANISHAFIGHT)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
ELSE
|
||
eRequestArray[1] = PR_SCENE_INVALID fPercentArray[1] = 0.0
|
||
// eRequestArray[2] = PR_SCENE_INVALID fPercentArray[2] = 0.0
|
||
eRequestArray[2] = PR_SCENE_INVALID fPercentArray[2] = 0.0
|
||
eRequestArray[3] = PR_SCENE_INVALID fPercentArray[3] = 0.0
|
||
eRequestArray[4] = PR_SCENE_INVALID fPercentArray[4] = 0.0
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
PR_SCENE_F0_TANISHAFIGHT)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
|
||
ENDIF
|
||
|
||
eRequestArray[5] = PR_SCENE_F_BAR_a_01 fPercentArray[5] = fCHANCE_F_BAR_a_01
|
||
eRequestArray[6] = PR_SCENE_F_BAR_b_01 fPercentArray[6] = fCHANCE_F_BAR_b_01
|
||
eRequestArray[7] = PR_SCENE_F_BAR_c_02 fPercentArray[7] = fCHANCE_F_BAR_c_02
|
||
eRequestArray[8] = PR_SCENE_F_BAR_d_02 fPercentArray[8] = fCHANCE_F_BAR_d_02
|
||
eRequestArray[9] = PR_SCENE_F_BAR_e_01 fPercentArray[9] = fCHANCE_F_BAR_e_01
|
||
|
||
// eRequestArray[12-1-1] = PR_SCENE_F0_WATCHINGTV fPercentArray[12-1-1] = fCHANCE_F0_WATCHINGTV
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_1)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_4)
|
||
eRequestArray[10] = PR_SCENE_F_CS_CHECKSHOE fPercentArray[10] = fCHANCE_F_CS_CHECKSHOE
|
||
eRequestArray[11] = PR_SCENE_F_CS_WIPEHANDS fPercentArray[11] = fCHANCE_F_CS_WIPEHANDS
|
||
eRequestArray[12] = PR_SCENE_F_CS_WIPERIGHT fPercentArray[12] = fCHANCE_F_CS_WIPERIGHT
|
||
ELSE
|
||
eRequestArray[10] = PR_SCENE_INVALID fPercentArray[10] = 0.0
|
||
eRequestArray[11] = PR_SCENE_INVALID fPercentArray[11] = 0.0
|
||
eRequestArray[12] = PR_SCENE_INVALID fPercentArray[12] = 0.0
|
||
ENDIF
|
||
|
||
//B*-2351523
|
||
eRequestArray[13] = PR_SCENE_F_HIT_CUP_HAND fPercentArray[13] = fCHANCE_F_HIT_CUP_HAND
|
||
eRequestArray[14] = PR_SCENE_F_TRAFFIC_c fPercentArray[14] = fCHANCE_F_TRAFFIC
|
||
eRequestArray[15] = PR_SCENE_F_TRAFFIC_a fPercentArray[15] = fCHANCE_F_TRAFFIC
|
||
eRequestArray[16] = PR_SCENE_F_TRAFFIC_b fPercentArray[16] = fCHANCE_F_TRAFFIC
|
||
//B*-2351523
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ELSE
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[13]
|
||
FLOAT fPercentArray[13]
|
||
|
||
CONST_FLOAT fCHANCE_F_CLUB 14.2
|
||
CONST_FLOAT fCHANCE_F_CS_CHECKSHOE 4.7 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPEHANDS 4.7 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
CONST_FLOAT fCHANCE_F_CS_WIPERIGHT 4.7 //[ONLY AFTER PASSED CarSteal1 UNTIL PASSED CS5]
|
||
|
||
CONST_FLOAT fCHANCE_F_BAR_a_01 13.5
|
||
CONST_FLOAT fCHANCE_F_BAR_b_01 13.5
|
||
CONST_FLOAT fCHANCE_F_BAR_c_02 13.5
|
||
CONST_FLOAT fCHANCE_F_BAR_d_02 13.5
|
||
CONST_FLOAT fCHANCE_F_BAR_e_01 13.3
|
||
|
||
//B*-2351523
|
||
CONST_FLOAT fCHANCE_F_HIT_CUP_HAND 0.01
|
||
CONST_FLOAT fCHANCE_F_TRAFFIC 0.01
|
||
//B*-2351523
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
PR_SCENE_F1_NEWHOUSE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
|
||
eRequestArray[0] = PR_SCENE_F_CLUB fPercentArray[0] = fCHANCE_F_CLUB
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_1)
|
||
AND NOT GET_MISSION_COMPLETE_STATE(SP_MISSION_CARSTEAL_4)
|
||
eRequestArray[1] = PR_SCENE_F_CS_CHECKSHOE fPercentArray[1] = fCHANCE_F_CS_CHECKSHOE
|
||
eRequestArray[2] = PR_SCENE_F_CS_WIPEHANDS fPercentArray[2] = fCHANCE_F_CS_WIPEHANDS
|
||
eRequestArray[3] = PR_SCENE_F_CS_WIPERIGHT fPercentArray[3] = fCHANCE_F_CS_WIPERIGHT
|
||
ELSE
|
||
eRequestArray[1] = PR_SCENE_INVALID fPercentArray[1] = 0.0
|
||
eRequestArray[2] = PR_SCENE_INVALID fPercentArray[2] = 0.0
|
||
eRequestArray[3] = PR_SCENE_INVALID fPercentArray[3] = 0.0
|
||
ENDIF
|
||
|
||
eRequestArray[4] = PR_SCENE_F_BAR_a_01 fPercentArray[4] = fCHANCE_F_BAR_a_01
|
||
eRequestArray[5] = PR_SCENE_F_BAR_b_01 fPercentArray[5] = fCHANCE_F_BAR_b_01
|
||
eRequestArray[6] = PR_SCENE_F_BAR_c_02 fPercentArray[6] = fCHANCE_F_BAR_c_02
|
||
eRequestArray[7] = PR_SCENE_F_BAR_d_02 fPercentArray[7] = fCHANCE_F_BAR_d_02
|
||
eRequestArray[8] = PR_SCENE_F_BAR_e_01 fPercentArray[8] = fCHANCE_F_BAR_e_01
|
||
|
||
//B*-2351523
|
||
eRequestArray[9] = PR_SCENE_F_HIT_CUP_HAND fPercentArray[9] = fCHANCE_F_HIT_CUP_HAND
|
||
eRequestArray[10] = PR_SCENE_F_TRAFFIC_c fPercentArray[10] = fCHANCE_F_TRAFFIC
|
||
eRequestArray[11] = PR_SCENE_F_TRAFFIC_a fPercentArray[11] = fCHANCE_F_TRAFFIC
|
||
eRequestArray[12] = PR_SCENE_F_TRAFFIC_b fPercentArray[12] = fCHANCE_F_TRAFFIC
|
||
//B*-2351523
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
RETURN CALL invalidSceneScheduleFunc(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDIF
|
||
ENDIF
|
||
ENDFUNC
|
||
FUNC BOOL GetFranklinSceneForEveningParam(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
RETURN GetFranklinSceneForEvening(eReqScene, fScenePercent, sPedScene, sPassedScene, &BlankSceneScheduleFunc, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
/// PURPOSE: Returns the scene ID from the timetable
|
||
FUNC BOOL GetFranklinSceneForCurrentTime(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
// enumCharacterList ePed = CHAR_FRANKLIN
|
||
eReqScene = PR_SCENE_INVALID fScenePercent = -1
|
||
|
||
IF NOT bDescentOnlyScene
|
||
IF GetPedRequestSceneForAvailableMission(CHAR_FRANKLIN, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
SWITCH PRIVATE_Get_Switch_Clock_Hours()
|
||
/* 03:00 - 08:59 */
|
||
CASE 3 CASE 4 CASE 5
|
||
CASE 6 CASE 7 CASE 8
|
||
/* 100% */
|
||
GetFranklinSceneForNight(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetFranklinSceneForMorningParam, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 09:00 - 14:59 */
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13 CASE 14
|
||
GetFranklinSceneForMorning(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetFranklinSceneForAfternoonParam, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 15:00 - 20:59 */
|
||
CASE 15 CASE 16 CASE 17
|
||
CASE 18 CASE 19 CASE 20
|
||
GetFranklinSceneForAfternoon(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetFranklinSceneForEveningParam, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 21:00 - 02:59 */
|
||
CASE 21 CASE 22 CASE 23
|
||
CASE 0 CASE 1 CASE 2
|
||
GetFranklinSceneForEvening(eReqScene, fScenePercent, sPedScene, sPassedScene,
|
||
&GetFranklinSceneForNightParam, bDescentOnlyScene)
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDFUNC
|
||
|
||
|
||
// *******************************************************************************************
|
||
// FUNCTIONS TO RETURN NEXT SCENE FOR TREVOR
|
||
// *******************************************************************************************
|
||
|
||
CONST_INT iNUM_OF_TREVOR_CRAZY_RANDOM_SCENES 57 //58 //60 //52
|
||
|
||
/// PURPOSE: Returns the scene ID from the timetable
|
||
FUNC BOOL FillSlotInTrevorSceneArray(PED_REQUEST_SCENE_ENUM eReqScene, FLOAT fScenePercent,
|
||
PED_REQUEST_SCENE_ENUM &eRequestArray[], FLOAT &fPercentArray[],
|
||
INT &iSceneIndex)
|
||
|
||
IF (iSceneIndex) >= COUNT_OF(eRequestArray)
|
||
CASSERTLN(DEBUG_SWITCH, "Bug for Alwyn - non-fatal array overrun in FillSlotInTrevorSceneArray()")
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
eRequestArray[iSceneIndex] = eReqScene
|
||
fPercentArray[iSceneIndex] = fScenePercent
|
||
iSceneIndex++
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
/// PURPOSE: Returns the scene ID from the timetable
|
||
FUNC BOOL FillSlotInTrevorSceneCrazyArray(INT &iScene,
|
||
PED_REQUEST_SCENE_ENUM eReqScene, PED_REQUEST_SCENE_ENUM &eRequestArray[])
|
||
|
||
IF (iScene) >= COUNT_OF(eRequestArray)
|
||
CASSERTLN(DEBUG_SWITCH, "Bug for Alwyn - non-fatal array overrun in FillSlotInTrevorSceneCrazyArray()")
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
eRequestArray[iScene] = eReqScene
|
||
iScene++
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
/// PURPOSE: Returns the scene ID from the timetable
|
||
FUNC BOOL FillTrevorCrazyCountrySceneArray(INT &iSceneIndex, FLOAT fTOTAL_PERCENT,
|
||
PED_REQUEST_SCENE_ENUM &eRequestArray[], FLOAT &fPercentArray[])
|
||
INT iStart = iSceneIndex
|
||
|
||
SWITCH PRIVATE_Get_Switch_Clock_Hours()
|
||
/* 00:00 - 5:59 */
|
||
CASE 0 CASE 1 CASE 2
|
||
CASE 3 CASE 4 CASE 5
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_CHATEAU_b, eRequestArray)
|
||
|
||
BREAK
|
||
|
||
/* 06:00 - 14:59 */
|
||
CASE 6 CASE 7 CASE 8
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13 CASE 14
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_CHATEAU_c, eRequestArray)
|
||
|
||
BREAK
|
||
|
||
/* 15:00 - 23:59 */
|
||
CASE 15 CASE 16 CASE 17
|
||
CASE 18 CASE 19 CASE 20
|
||
CASE 21 CASE 22 CASE 23
|
||
//
|
||
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
IF GET_CURRENT_PROPERTY_OWNER(PROPERTY_BAR_HEN_HOUSE) <> CHAR_TREVOR
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FIGHTBAR_c, eRequestArray)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_PARK_b, eRequestArray)
|
||
// FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_PARK_c, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_WAKETRASH_b, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_WAKEBARN, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_WAKETRAIN, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_WAKEMOUNTAIN, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_POLICE_b, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_POLICE_c, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_CHASECAR_b, eRequestArray)
|
||
|
||
IF DoesPlayerPedHaveWeaponStored(CHAR_TREVOR, WEAPONTYPE_PISTOL)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CN_PIER, eRequestArray)
|
||
ENDIF
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_TREVOR_2)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FLYING_PLANE, eRequestArray)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T6_LAKE, eRequestArray)
|
||
// FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T6_DISPOSEBODY_A, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T6_DIGGING, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T6_FLUSHESFOOT, eRequestArray)
|
||
|
||
INT iSceneCount
|
||
FOR iSceneCount = iStart TO (COUNT_OF(fPercentArray) - 1)
|
||
IF (eRequestArray[iSceneCount] = INT_TO_ENUM(PED_REQUEST_SCENE_ENUM, 0))
|
||
eRequestArray[iSceneCount] = PR_SCENE_INVALID
|
||
ENDIF
|
||
|
||
IF (eRequestArray[iSceneCount] <> PR_SCENE_INVALID)
|
||
fPercentArray[iSceneCount] = fTOTAL_PERCENT / TO_FLOAT(iSceneIndex)
|
||
ELSE
|
||
fPercentArray[iSceneCount] = 0.0
|
||
ENDIF
|
||
ENDFOR
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
/// PURPOSE: Returns the scene ID from the timetable
|
||
FUNC BOOL FillTrevorCrazyCitySceneArray(INT &iSceneIndex, FLOAT fTOTAL_PERCENT,
|
||
PED_REQUEST_SCENE_ENUM &eRequestArray[], FLOAT &fPercentArray[])
|
||
INT iStart = iSceneIndex
|
||
|
||
INT iPRIVATE_Get_Switch_Clock_Hours = PRIVATE_Get_Switch_Clock_Hours()
|
||
|
||
SWITCH iPRIVATE_Get_Switch_Clock_Hours
|
||
/* 00:00 - 5:59 */
|
||
CASE 0 CASE 1 CASE 2
|
||
CASE 3 CASE 4 CASE 5
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_ESCORTED_OUT, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_CHATEAU_d, eRequestArray)
|
||
|
||
BREAK
|
||
|
||
/* 06:00 - 14:59 */
|
||
CASE 6 CASE 7 CASE 8
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13 CASE 14
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FIGHTBBUILD, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_ANNOYSUNBATHERS, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_BLOCK_CAMERA, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_GUITARBEATDOWN, eRequestArray)
|
||
|
||
BREAK
|
||
|
||
/* 15:00 - 23:59 */
|
||
CASE 15 CASE 16 CASE 17
|
||
CASE 18 CASE 19 CASE 20
|
||
CASE 21 CASE 22 CASE 23
|
||
|
||
IF (iPRIVATE_Get_Switch_Clock_Hours = 18) //PR_SCENE_T_CR_RAND_TEMPLE in the sunset (1232107)
|
||
OR (iPRIVATE_Get_Switch_Clock_Hours = 19) //
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_RAND_TEMPLE, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_RAND_TEMPLE, eRequestArray)
|
||
ELSE
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_LINGERIE, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_FUNERAL, eRequestArray)
|
||
ENDIF
|
||
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_GARBAGE_FOOD, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_THROW_FOOD, eRequestArray)
|
||
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FIGHTBAR_a, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FIGHTBAR_b, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_YELLATDOORMAN, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FIGHTYAUCLUB_b, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FIGHTCASINO, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_SCARETRAMP, eRequestArray)
|
||
|
||
IF NOT IS_MISSION_AVAILABLE(SP_MISSION_CARSTEAL_1) //1203682
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_DUMPSTER, eRequestArray)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_WAKEBEACH, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_WAKEROOFTOP, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_ALLEYDRUNK, eRequestArray)
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_TREVOR_4) //1403370
|
||
#if not USE_CLF_DLC
|
||
#if not USE_NRM_DLC
|
||
IF Is_Savehouse_Respawn_Available(SAVEHOUSE_TREVOR_SC) //1450306
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_SC_ALLEYDRUNK, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_SC_DRUNKHOWLING, eRequestArray)
|
||
ENDIF
|
||
#endif
|
||
#endif
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_PUKEINTOFOUNT, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_POLICE_a, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_NAKED_BRIDGE, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_NAKED_GARDEN, eRequestArray)
|
||
// FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_NAKED_ISLAND, eRequestArray) //only post-Fam6
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_CHASECAR_a, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_CHASEBIKE, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_CHASESCOOTER, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_BRIDGEDROP, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_CR_RUDEATCAFE, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_UNDERPIER, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_DRUNKHOWLING, eRequestArray)
|
||
|
||
IF NOT GET_MISSION_COMPLETE_STATE(eTREV_CITY_SAFEHOUSE_REMOVED)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_KONEIGHBOUR, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FLOYDSPOON_A, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FLOYDSPOON_B, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FLOYDSPOON_B2, eRequestArray)
|
||
FillSlotInTrevorSceneCrazyArray(iSceneIndex, PR_SCENE_T_FLOYDSPOON_A2, eRequestArray)
|
||
ENDIF
|
||
|
||
INT iSceneCount
|
||
FOR iSceneCount = iStart TO (COUNT_OF(fPercentArray) - 1)
|
||
IF (eRequestArray[iSceneCount] = INT_TO_ENUM(PED_REQUEST_SCENE_ENUM, 0))
|
||
eRequestArray[iSceneCount] = PR_SCENE_INVALID
|
||
ENDIF
|
||
|
||
IF (eRequestArray[iSceneCount] <> PR_SCENE_INVALID)
|
||
fPercentArray[iSceneCount] = fTOTAL_PERCENT / TO_FLOAT(iSceneIndex)
|
||
ELSE
|
||
fPercentArray[iSceneCount] = 0.0
|
||
ENDIF
|
||
ENDFOR
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// /* 00:00 - 5:59 */
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// ePed -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL GetTrevorSceneForMorning(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
INT iSceneIndex = 0
|
||
CONST_INT iCOUNT_T_CITY_SCENES 8
|
||
CONST_INT iCOUNT_T_COUNTRY_SCENES 7 //5
|
||
|
||
enumCharacterList ePed = CHAR_TREVOR
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[iCOUNT_T_CITY_SCENES+iCOUNT_T_COUNTRY_SCENES+iNUM_OF_TREVOR_CRAZY_RANDOM_SCENES]
|
||
FLOAT fPercentArray[iCOUNT_T_CITY_SCENES+iCOUNT_T_COUNTRY_SCENES+iNUM_OF_TREVOR_CRAZY_RANDOM_SCENES]
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_COUNTRY)
|
||
IF NOT GET_MISSION_COMPLETE_STATE(eTREV_CITY_SAFEHOUSE_REMOVED)
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_MORNING, bDescentOnlyScene,
|
||
PR_SCENE_T_FLOYD_BEAR, PR_SCENE_T_FLOYD_DOLL, PR_SCENE_T_FLOYDPINEAPPLE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_MORNING)
|
||
ENDIF
|
||
ELSE
|
||
// IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_MORNING,
|
||
// PR_SCENE_T_CR_POLICE_a, PR_SCENE_T_CR_BRIDGEDROP)
|
||
// RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_MORNING)
|
||
// ENDIF
|
||
ENDIF
|
||
|
||
CONST_FLOAT fCHANCE_T_FLOYDSPOON_A 7.5
|
||
CONST_FLOAT fCHANCE_T_FLOYDSPOON_B 7.5
|
||
CONST_FLOAT fCHANCE_T_FLOYDSPOON_C 7.5
|
||
CONST_FLOAT fCHANCE_T_FLOYDSPOON_D 7.5
|
||
// CONST_FLOAT fCHANCE_T_STRIPCLUB_a 5.0
|
||
CONST_FLOAT fCHANCE_T_SC_MOCKLAPDANCE 5.0
|
||
CONST_FLOAT fCHANCE_T_SC_BAR 5.0
|
||
CONST_FLOAT fCHANCE_T_STRIPCLUB_out 5.0
|
||
CONST_FLOAT fCHANCE_T_CITY_RANDOM 50.0
|
||
|
||
IF NOT GET_MISSION_COMPLETE_STATE(eTREV_CITY_SAFEHOUSE_REMOVED)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYDSPOON_A, fCHANCE_T_FLOYDSPOON_A, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYDSPOON_B, fCHANCE_T_FLOYDSPOON_B, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYDSPOON_B2, fCHANCE_T_FLOYDSPOON_C, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYDSPOON_A2, fCHANCE_T_FLOYDSPOON_D, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYD_BEAR, 1.0, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYD_DOLL, 1.0, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYDPINEAPPLE, 1.0, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
ENDIF
|
||
|
||
// FillSlotInTrevorSceneArray(PR_SCENE_T_STRIPCLUB_a, fCHANCE_T_STRIPCLUB_a, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_SC_MOCKLAPDANCE, fCHANCE_T_SC_MOCKLAPDANCE, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
IF NOT IS_MISSION_AVAILABLE(SP_HEIST_FINALE_2B) //1072399
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_SC_BAR, fCHANCE_T_SC_BAR / 2.0, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_SC_CHASE, fCHANCE_T_SC_BAR / 2.0, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_STRIPCLUB_out, fCHANCE_T_STRIPCLUB_out, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
FillTrevorCrazyCitySceneArray(iSceneIndex, fCHANCE_T_CITY_RANDOM, eRequestArray, fPercentArray)
|
||
ENDIF
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_CITY)
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_MORNING, bDescentOnlyScene,
|
||
PR_SCENE_T_CN_WAKEBARN, PR_SCENE_T_CN_WAKEMOUNTAIN)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_MORNING)
|
||
ENDIF
|
||
|
||
CONST_FLOAT fCHANCE_T6_SMOKECRYSTAL 15.0
|
||
CONST_FLOAT fCHANCE_T_SMOKEMETH 15.0
|
||
CONST_FLOAT fCHANCE_T6_METHLAB 5.0
|
||
CONST_FLOAT fCHANCE_T6_TRAF_AIR 10.0
|
||
CONST_FLOAT fCHANCE_T_HEADINSINK 5.0
|
||
CONST_FLOAT fCHANCE_T_JERKOFF 5.0
|
||
CONST_FLOAT fCHANCE_T_COUNTRY_RANDOM 30.0
|
||
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_SMOKECRYSTAL, fCHANCE_T6_SMOKECRYSTAL, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_SMOKEMETH, fCHANCE_T_SMOKEMETH, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CHINESE_1) AND NOT GET_MISSION_COMPLETE_STATE(SP_HEIST_RURAL_2)
|
||
IF NOT IS_MISSION_AVAILABLE(SP_HEIST_RURAL_2) //1339576
|
||
AND NOT IS_MISSION_AVAILABLE(SP_HEIST_RURAL_1) //1541148
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_METHLAB, fCHANCE_T6_METHLAB, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF GET_CURRENT_PROPERTY_OWNER(PROPERTY_ARMS_TRAFFICKING) = CHAR_TREVOR
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_TRAF_AIR, fCHANCE_T6_TRAF_AIR, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_HEADINSINK, fCHANCE_T_HEADINSINK, eRequestArray, fPercentArray, iSceneIndex)
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_JERKOFF, fCHANCE_T_JERKOFF, eRequestArray, fPercentArray, iSceneIndex)
|
||
#ENDIF
|
||
|
||
FillTrevorCrazyCountrySceneArray(iSceneIndex, fCHANCE_T_COUNTRY_RANDOM, eRequestArray, fPercentArray)
|
||
ENDIF
|
||
|
||
RETURN GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// /* 06:00 - 14:59 */
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// ePed -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL GetTrevorSceneForAfternoon(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
INT iSceneIndex = 0
|
||
CONST_INT iCOUNT_T_CITY_SCENES 1
|
||
CONST_INT iCOUNT_T_COUNTRY_SCENES 6 //4
|
||
|
||
enumCharacterList ePed = CHAR_TREVOR
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[iCOUNT_T_CITY_SCENES+iCOUNT_T_COUNTRY_SCENES+iNUM_OF_TREVOR_CRAZY_RANDOM_SCENES]
|
||
FLOAT fPercentArray[iCOUNT_T_CITY_SCENES+iCOUNT_T_COUNTRY_SCENES+iNUM_OF_TREVOR_CRAZY_RANDOM_SCENES]
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_COUNTRY)
|
||
|
||
IF NOT GET_MISSION_COMPLETE_STATE(eTREV_CITY_SAFEHOUSE_REMOVED)
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_T_FLOYD_BEAR, PR_SCENE_T_FLOYD_DOLL, PR_SCENE_T_FLOYDPINEAPPLE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
ELSE
|
||
// IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON,
|
||
// PR_SCENE_T_CR_POLICE_a, PR_SCENE_T_CR_BRIDGEDROP)
|
||
// RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
// ENDIF
|
||
ENDIF
|
||
|
||
CONST_FLOAT fCHANCE_T_FLOYDSAVEHOUSE 20.0
|
||
CONST_FLOAT fCHANCE_T_CITY_RANDOM 80.0
|
||
|
||
IF NOT GET_MISSION_COMPLETE_STATE(eTREV_CITY_SAFEHOUSE_REMOVED)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_FLOYDSAVEHOUSE , fCHANCE_T_FLOYDSAVEHOUSE, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
|
||
FillTrevorCrazyCitySceneArray(iSceneIndex, fCHANCE_T_CITY_RANDOM, eRequestArray, fPercentArray)
|
||
ENDIF
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_CITY)
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_AFTERNOON, bDescentOnlyScene,
|
||
PR_SCENE_T_CN_WAKEBARN, PR_SCENE_T_CN_WAKEMOUNTAIN)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_AFTERNOON)
|
||
ENDIF
|
||
|
||
// CONST_FLOAT fCHANCE_T6_BLOWSHITUP 20.0
|
||
CONST_FLOAT fCHANCE_T6_METHLAB 5.0
|
||
CONST_FLOAT fCHANCE_T6_HUNTING 5.0
|
||
CONST_FLOAT fCHANCE_T6_TRAF_AIR 10.0
|
||
CONST_FLOAT fCHANCE_T_HEADINSINK 5.0
|
||
CONST_FLOAT fCHANCE_T_JERKOFF 5.0
|
||
CONST_FLOAT fCHANCE_T_COUNTRY_RANDOM 40.0
|
||
|
||
// FillSlotInTrevorSceneArray(PR_SCENE_T6_BLOWSHITUP, fCHANCE_T6_BLOWSHITUP, eRequestArray, fPercentArray, iSceneIndex)
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CHINESE_1) AND NOT GET_MISSION_COMPLETE_STATE(SP_HEIST_RURAL_2)
|
||
IF NOT IS_MISSION_AVAILABLE(SP_HEIST_RURAL_2) //1339576
|
||
AND NOT IS_MISSION_AVAILABLE(SP_HEIST_RURAL_1) //1541148
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_METHLAB, fCHANCE_T6_METHLAB, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF GET_MISSION_FLOW_BITSET_BIT_STATE(FLOWBITSET_MINIGAME_ACTIVE, ENUM_TO_INT(MINIGAME_HUNTING))
|
||
IF NOT PRIVATE_IsRandomCharFlagSet(RC_HUNTING_1, RC_FLAG_READY_TO_PLAY)
|
||
AND NOT PRIVATE_IsRandomCharFlagSet(RC_HUNTING_2, RC_FLAG_READY_TO_PLAY)
|
||
IF DoesPlayerPedHaveWeaponStored(CHAR_TREVOR, WEAPONTYPE_SNIPERRIFLE)
|
||
OR DoesPlayerPedHaveWeaponStored(CHAR_TREVOR, WEAPONTYPE_HEAVYSNIPER)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_HUNTING1, fCHANCE_T6_HUNTING, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_HUNTING2, fCHANCE_T6_HUNTING, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_HUNTING3, fCHANCE_T6_HUNTING, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF GET_CURRENT_PROPERTY_OWNER(PROPERTY_ARMS_TRAFFICKING) = CHAR_TREVOR
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_TRAF_AIR, fCHANCE_T6_TRAF_AIR, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_HEADINSINK, fCHANCE_T_HEADINSINK, eRequestArray, fPercentArray, iSceneIndex)
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_JERKOFF, fCHANCE_T_JERKOFF, eRequestArray, fPercentArray, iSceneIndex)
|
||
#ENDIF
|
||
|
||
FillTrevorCrazyCountrySceneArray(iSceneIndex, fCHANCE_T_COUNTRY_RANDOM, eRequestArray, fPercentArray)
|
||
ENDIF
|
||
|
||
RETURN GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
|
||
/// PURPOSE:
|
||
/// /* 15:00 - 23:59 */
|
||
/// PARAMS:
|
||
/// eReqScene -
|
||
/// ePed -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL GetTrevorSceneForEvening(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
INT iSceneIndex = 0
|
||
CONST_INT iCOUNT_T_CITY_SCENES 8
|
||
CONST_INT iCOUNT_T_COUNTRY_SCENES 6 //4
|
||
|
||
enumCharacterList ePed = CHAR_TREVOR
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[iCOUNT_T_CITY_SCENES+iCOUNT_T_COUNTRY_SCENES+iNUM_OF_TREVOR_CRAZY_RANDOM_SCENES]
|
||
FLOAT fPercentArray[iCOUNT_T_CITY_SCENES+iCOUNT_T_COUNTRY_SCENES+iNUM_OF_TREVOR_CRAZY_RANDOM_SCENES]
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_COUNTRY)
|
||
|
||
IF NOT GET_MISSION_COMPLETE_STATE(eTREV_CITY_SAFEHOUSE_REMOVED)
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
PR_SCENE_T_FLOYD_BEAR, PR_SCENE_T_FLOYD_DOLL, PR_SCENE_T_FLOYDPINEAPPLE)
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
ELSE
|
||
// IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING,
|
||
// PR_SCENE_T_CR_POLICE_a, PR_SCENE_T_CR_BRIDGEDROP)
|
||
// RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
// ENDIF
|
||
ENDIF
|
||
|
||
CONST_FLOAT fCHANCE_T_DOCKS_a 5.0
|
||
CONST_FLOAT fCHANCE_T_DOCKS_b 5.0
|
||
CONST_FLOAT fCHANCE_T_DOCKS_c 5.0
|
||
CONST_FLOAT fCHANCE_T_DOCKS_d 5.0
|
||
// CONST_FLOAT fCHANCE_T_STRIPCLUB_a 2.5
|
||
CONST_FLOAT fCHANCE_T_SC_MOCKLAPDANCE 2.5
|
||
CONST_FLOAT fCHANCE_T_SC_BAR 2.5
|
||
CONST_FLOAT fCHANCE_T_STRIPCLUB_out 2.5
|
||
CONST_FLOAT fCHANCE_T_CITY_RANDOM 70.0
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_HEIST_FINISHED_DOCKS)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_DOCKS_a, fCHANCE_T_DOCKS_a, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_DOCKS_b, fCHANCE_T_DOCKS_b, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FBI_2)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_DOCKS_c, fCHANCE_T_DOCKS_c, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_DOCKS_d, fCHANCE_T_DOCKS_d, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
|
||
// FillSlotInTrevorSceneArray(PR_SCENE_T_STRIPCLUB_a, fCHANCE_T_STRIPCLUB_a, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_SC_MOCKLAPDANCE, fCHANCE_T_SC_MOCKLAPDANCE, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
IF NOT IS_MISSION_AVAILABLE(SP_HEIST_FINALE_2B) //1072399
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_SC_BAR, fCHANCE_T_SC_BAR / 2.0, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_SC_CHASE, fCHANCE_T_SC_BAR / 2.0, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_STRIPCLUB_out, fCHANCE_T_STRIPCLUB_out, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
FillTrevorCrazyCitySceneArray(iSceneIndex, fCHANCE_T_CITY_RANDOM, eRequestArray, fPercentArray)
|
||
ENDIF
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_TREVOR_RESTRICTED_TO_CITY)
|
||
|
||
IF PRIVATE_ShouldPlayerTriggerPrioritySwitch(ePed, eReqScene, fScenePercent, sPedScene, sPassedScene, TS_EVENING, bDescentOnlyScene,
|
||
PR_SCENE_T_CN_WAKEBARN, PR_SCENE_T_CN_WAKEMOUNTAIN)
|
||
//
|
||
RETURN PRIVATE_TriggerThisPrioritySwitch(ePed, eReqScene, TS_EVENING)
|
||
ENDIF
|
||
|
||
// CONST_FLOAT fCHANCE_T6_EVENING 30.0
|
||
CONST_FLOAT fCHANCE_T6_METHLAB 5.0
|
||
CONST_FLOAT fCHANCE_T6_HUNTING 5.0
|
||
CONST_FLOAT fCHANCE_T6_TRAF_AIR 10.0
|
||
CONST_FLOAT fCHANCE_T_HEADINSINK 5.0
|
||
CONST_FLOAT fCHANCE_T_JERKOFF 5.0
|
||
CONST_FLOAT fCHANCE_T_COUNTRY_RANDOM 30.0
|
||
|
||
// FillSlotInTrevorSceneArray(PR_SCENE_T6_EVENING, fCHANCE_T6_EVENING, eRequestArray, fPercentArray, iSceneIndex)
|
||
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_CHINESE_1) AND NOT GET_MISSION_COMPLETE_STATE(SP_HEIST_RURAL_2)
|
||
IF NOT IS_MISSION_AVAILABLE(SP_HEIST_RURAL_2) //1339576
|
||
AND NOT IS_MISSION_AVAILABLE(SP_HEIST_RURAL_1) //1541148
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_METHLAB, fCHANCE_T6_METHLAB, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF NOT PRIVATE_IsRandomCharFlagSet(RC_HUNTING_1, RC_FLAG_READY_TO_PLAY)
|
||
AND NOT PRIVATE_IsRandomCharFlagSet(RC_HUNTING_2, RC_FLAG_READY_TO_PLAY)
|
||
IF DoesPlayerPedHaveWeaponStored(CHAR_TREVOR, WEAPONTYPE_SNIPERRIFLE)
|
||
OR DoesPlayerPedHaveWeaponStored(CHAR_TREVOR, WEAPONTYPE_HEAVYSNIPER)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_HUNTING1, fCHANCE_T6_HUNTING, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_HUNTING2, fCHANCE_T6_HUNTING, eRequestArray, fPercentArray, iSceneIndex)
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_HUNTING3, fCHANCE_T6_HUNTING, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF GET_CURRENT_PROPERTY_OWNER(PROPERTY_ARMS_TRAFFICKING) = CHAR_TREVOR
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T6_TRAF_AIR, fCHANCE_T6_TRAF_AIR, eRequestArray, fPercentArray, iSceneIndex)
|
||
ENDIF
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_HEADINSINK, fCHANCE_T_HEADINSINK, eRequestArray, fPercentArray, iSceneIndex)
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
FillSlotInTrevorSceneArray(PR_SCENE_T_JERKOFF, fCHANCE_T_JERKOFF, eRequestArray, fPercentArray, iSceneIndex)
|
||
#ENDIF
|
||
FillTrevorCrazyCountrySceneArray(iSceneIndex, fCHANCE_T_COUNTRY_RANDOM, eRequestArray, fPercentArray)
|
||
ENDIF
|
||
|
||
RETURN GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
ENDFUNC
|
||
|
||
|
||
|
||
/// PURPOSE: Returns the scene ID from the timetable
|
||
FUNC BOOL GetTrevorSceneForCurrentTime(PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bDescentOnlyScene)
|
||
// enumCharacterList ePed = CHAR_TREVOR
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
|
||
IF NOT bDescentOnlyScene
|
||
IF GetPedRequestSceneForAvailableMission(CHAR_TREVOR, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
SWITCH PRIVATE_Get_Switch_Clock_Hours()
|
||
/* 00:00 - 5:59 */
|
||
CASE 0 CASE 1 CASE 2
|
||
CASE 3 CASE 4 CASE 5
|
||
GetTrevorSceneForMorning(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 06:00 - 14:59 */
|
||
CASE 6 CASE 7 CASE 8
|
||
CASE 9 CASE 10 CASE 11
|
||
CASE 12 CASE 13 CASE 14
|
||
GetTrevorSceneForAfternoon(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
/* 15:00 - 23:59 */
|
||
CASE 15 CASE 16 CASE 17
|
||
CASE 18 CASE 19 CASE 20
|
||
CASE 21 CASE 22 CASE 23
|
||
GetTrevorSceneForEvening(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDFUNC
|
||
|
||
// *******************************************************************************************
|
||
// MAIN FUNCTION TO RETURN NEXT SCENE FOR PLAYER CHAR
|
||
// *******************************************************************************************
|
||
|
||
FUNC BOOL PassedBlimpCheckOnLastAndNext(enumCharacterList ePed)
|
||
|
||
IF g_sPlayerLastVeh[ePed].model = BLIMP
|
||
OR g_sPlayerLastVeh[ePed].model = BLIMP2
|
||
TIMEOFDAY sLastTimeActive
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
//check franklins blimp state
|
||
IF g_sPlayerLastVeh[CHAR_FRANKLIN].model = BLIMP
|
||
OR g_sPlayerLastVeh[CHAR_FRANKLIN].model = BLIMP2
|
||
sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[CHAR_FRANKLIN]
|
||
IF Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
IF NOT ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[CHAR_FRANKLIN], <<0,0,0>>, 1.5)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 3)
|
||
CASSERTLN(DEBUG_SWITCH, "PassedBlimpCheckOnLastAndNext(", GET_PLAYER_PED_STRING(ePed), ") - Franklin was in a blimp")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
//check trevors blimp state
|
||
IF g_sPlayerLastVeh[CHAR_TREVOR].model = BLIMP
|
||
OR g_sPlayerLastVeh[CHAR_TREVOR].model = BLIMP2
|
||
sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[CHAR_TREVOR]
|
||
IF Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
IF NOT ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[CHAR_TREVOR], <<0,0,0>>, 1.5)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 3)
|
||
CASSERTLN(DEBUG_SWITCH, "PassedBlimpCheckOnLastAndNext(", GET_PLAYER_PED_STRING(ePed), ") - Trevor was in a blimp")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
//check michaels blimp state
|
||
IF g_sPlayerLastVeh[CHAR_MICHAEL].model = BLIMP
|
||
OR g_sPlayerLastVeh[CHAR_MICHAEL].model = BLIMP2
|
||
sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[CHAR_MICHAEL]
|
||
IF Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
IF NOT ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[CHAR_MICHAEL], <<0,0,0>>, 1.5)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 3)
|
||
CASSERTLN(DEBUG_SWITCH, "PassedBlimpCheckOnLastAndNext(", GET_PLAYER_PED_STRING(ePed), ") - Michael was in a blimp")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
//check trevors blimp state
|
||
IF g_sPlayerLastVeh[CHAR_TREVOR].model = BLIMP
|
||
OR g_sPlayerLastVeh[CHAR_TREVOR].model = BLIMP2
|
||
sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[CHAR_TREVOR]
|
||
IF Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
IF NOT ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[CHAR_TREVOR], <<0,0,0>>, 1.5)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 3)
|
||
CASSERTLN(DEBUG_SWITCH, "PassedBlimpCheckOnLastAndNext(", GET_PLAYER_PED_STRING(ePed), ") - Trevor was in a blimp")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
//check michaels blimp state
|
||
IF g_sPlayerLastVeh[CHAR_MICHAEL].model = BLIMP
|
||
OR g_sPlayerLastVeh[CHAR_MICHAEL].model = BLIMP2
|
||
sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[CHAR_MICHAEL]
|
||
IF Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
IF NOT ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[CHAR_MICHAEL], <<0,0,0>>, 1.5)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 3)
|
||
CASSERTLN(DEBUG_SWITCH, "PassedBlimpCheckOnLastAndNext(", GET_PLAYER_PED_STRING(ePed), ") - Michael was in a blimp")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
//check franklins blimp state
|
||
IF g_sPlayerLastVeh[CHAR_FRANKLIN].model = BLIMP
|
||
OR g_sPlayerLastVeh[CHAR_FRANKLIN].model = BLIMP2
|
||
sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[CHAR_FRANKLIN]
|
||
IF Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
IF NOT ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[CHAR_FRANKLIN], <<0,0,0>>, 1.5)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 3)
|
||
CASSERTLN(DEBUG_SWITCH, "PassedBlimpCheckOnLastAndNext(", GET_PLAYER_PED_STRING(ePed), ") - Franklin was in a blimp")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
VEHICLE_INDEX vehID
|
||
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID(), TRUE)
|
||
vehID = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), TRUE)
|
||
ELSE
|
||
vehID = GET_PLAYERS_LAST_VEHICLE()
|
||
ENDIF
|
||
IF DOES_ENTITY_EXIST(vehID)
|
||
MODEL_NAMES modelID = GET_ENTITY_MODEL(vehID)
|
||
IF modelID = BLIMP
|
||
OR modelID = BLIMP2
|
||
CASSERTLN(DEBUG_SWITCH, "PassedBlimpCheckOnLastAndNext(", GET_PLAYER_PED_STRING(ePed), ") - Player is/was in a blimp")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL FallenThroughPostMissionScene(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM ePostReqScene,
|
||
PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent,
|
||
PED_SCENE_STRUCT &sPedScene,
|
||
PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene)
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "FallenThroughPostMissionScene ", Get_String_From_Ped_Request_Scene_Enum(ePostReqScene))
|
||
CERRORLN(DEBUG_SWITCH, "FallenThroughPostMissionScene ", Get_String_From_Ped_Request_Scene_Enum(ePostReqScene))
|
||
#ENDIF
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
GetMichaelSceneForCurrentTime(eReqScene, fScenePercent, sPedScene, sPassedScene, FALSE)
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
GetFranklinSceneForCurrentTime(eReqScene, fScenePercent, sPedScene, sPassedScene, FALSE)
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
GetTrevorSceneForCurrentTime(eReqScene, fScenePercent, sPedScene, sPassedScene, FALSE)
|
||
BREAK
|
||
|
||
DEFAULT
|
||
ePostReqScene = ePostReqScene
|
||
RETURN FALSE
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(ePostReqScene), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL GET_PLAYER_PED_SCENE_FOR_CURRENT_TIME(enumCharacterList ePed, PED_REQUEST_SCENE_ENUM &eReqScene, FLOAT &fScenePercent, PED_SCENE_STRUCT &sPedScene, PLAYER_TIMETABLE_SCENE_STRUCT &sPassedScene, BOOL bBypassDefaultSwitch = FALSE)
|
||
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
|
||
#IF IS_DEBUG_BUILD //#1508299
|
||
IF GET_COMMANDLINE_PARAM_EXISTS("ForceDefaultSwitch")
|
||
IF NOT Is_TIMEOFDAY_Valid(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed])
|
||
g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed] = GET_CURRENT_TIMEOFDAY()
|
||
ENDIF
|
||
|
||
IF ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[ePed], <<0,0,0>>, 1.5)
|
||
g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[ePed] = GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE)
|
||
g_savedGlobals.sPlayerData.sInfo.fLastKnownHead[ePed] = GET_ENTITY_HEADING(PLAYER_PED_ID())
|
||
ENDIF
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
CASSERTLN(DEBUG_SWITCH, "Michael - \"ForceDefaultSwitch\"")
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
CASSERTLN(DEBUG_SWITCH, "Franklin - \"ForceDefaultSwitch\"")
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
CASSERTLN(DEBUG_SWITCH, "Trevor - \"ForceDefaultSwitch\"")
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_T_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDIF
|
||
IF GET_COMMANDLINE_PARAM_EXISTS("ForceOverrideSwitch")
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
CASSERTLN(DEBUG_SWITCH, "Michael - \"ForceOverrideSwitch\"")
|
||
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_M_OVERRIDE
|
||
|
||
g_sOverrideScene[ePed].ePed = ePed
|
||
g_sOverrideScene[ePed].eScene = g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed]
|
||
g_sOverrideScene[ePed].vCreateCoords = g_vDebugStartPositions[0]
|
||
g_sOverrideScene[ePed].fCreateHead = g_vDebugStartOrientations[0]
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M_OVERRIDE
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
CASSERTLN(DEBUG_SWITCH, "Franklin - \"ForceOverrideSwitch\"")
|
||
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_F_OVERRIDE
|
||
|
||
g_sOverrideScene[ePed].ePed = ePed
|
||
g_sOverrideScene[ePed].eScene = g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed]
|
||
g_sOverrideScene[ePed].vCreateCoords = g_vDebugStartPositions[1]
|
||
g_sOverrideScene[ePed].fCreateHead = g_vDebugStartOrientations[1]
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_OVERRIDE
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
CASSERTLN(DEBUG_SWITCH, "Trevor - \"ForceOverrideSwitch\"")
|
||
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_T_OVERRIDE
|
||
|
||
g_sOverrideScene[ePed].ePed = ePed
|
||
g_sOverrideScene[ePed].eScene = g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed]
|
||
g_sOverrideScene[ePed].vCreateCoords = g_vDebugStartPositions[2]
|
||
g_sOverrideScene[ePed].fCreateHead = g_vDebugStartOrientations[2]
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_T_OVERRIDE
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDIF
|
||
IF GET_COMMANDLINE_PARAM_EXISTS("sc_ForceNamedSwitch")
|
||
STRING sNamedSwitch = GET_COMMANDLINE_PARAM("sc_ForceNamedSwitch")
|
||
SWITCH GET_HASH_KEY(sNamedSwitch) /* michael */
|
||
CASE HASH("PR_SCENE_M2_BEDROOM") fScenePercent = 100 eReqScene = PR_SCENE_M2_BEDROOM RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_SAVEHOUSE0_b") fScenePercent = 100 eReqScene = PR_SCENE_M2_SAVEHOUSE0_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_SAVEHOUSE1_a") fScenePercent = 100 eReqScene = PR_SCENE_M2_SAVEHOUSE1_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_SAVEHOUSE1_b") fScenePercent = 100 eReqScene = PR_SCENE_M2_SAVEHOUSE1_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_SMOKINGGOLF") fScenePercent = 100 eReqScene = PR_SCENE_M2_SMOKINGGOLF RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_WAKEUPSCREAM") fScenePercent = 100 eReqScene = PR_SCENE_M4_WAKEUPSCREAM RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_WAKESUPSCARED") fScenePercent = 100 eReqScene = PR_SCENE_M4_WAKESUPSCARED RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_HOUSEBED") fScenePercent = 100 eReqScene = PR_SCENE_M6_HOUSEBED RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_WATCHINGTV") fScenePercent = 100 eReqScene = PR_SCENE_M4_WATCHINGTV RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_KIDS_TV") fScenePercent = 100 eReqScene = PR_SCENE_M2_KIDS_TV RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_POOLSIDE_a") fScenePercent = 100 eReqScene = PR_SCENE_M_POOLSIDE_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_POOLSIDE_b") fScenePercent = 100 eReqScene = PR_SCENE_M_POOLSIDE_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_CARSLEEP_a") fScenePercent = 100 eReqScene = PR_SCENE_M2_CARSLEEP_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_CARSLEEP_b") fScenePercent = 100 eReqScene = PR_SCENE_M2_CARSLEEP_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_CANAL_a") fScenePercent = 100 eReqScene = PR_SCENE_M_CANAL_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_CANAL_b") fScenePercent = 100 eReqScene = PR_SCENE_M_CANAL_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_CANAL_c") fScenePercent = 100 eReqScene = PR_SCENE_M_CANAL_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_LUNCH_a") fScenePercent = 100 eReqScene = PR_SCENE_M2_LUNCH_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_EXITRESTAURANT") fScenePercent = 100 eReqScene = PR_SCENE_M4_EXITRESTAURANT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_LUNCH_b") fScenePercent = 100 eReqScene = PR_SCENE_M4_LUNCH_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_CINEMA") fScenePercent = 100 eReqScene = PR_SCENE_M4_CINEMA RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_WIFEEXITSCAR") fScenePercent = 100 eReqScene = PR_SCENE_M2_WIFEEXITSCAR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_DROPOFFDAU_a") fScenePercent = 100 eReqScene = PR_SCENE_M2_DROPOFFDAU_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_DROPOFFDAU_b") fScenePercent = 100 eReqScene = PR_SCENE_M2_DROPOFFDAU_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_DROPOFFSON_a") fScenePercent = 100 eReqScene = PR_SCENE_M2_DROPOFFSON_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_DROPOFFSON_b") fScenePercent = 100 eReqScene = PR_SCENE_M2_DROPOFFSON_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_PIER_a") fScenePercent = 100 eReqScene = PR_SCENE_M_PIER_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_PIER_b") fScenePercent = 100 eReqScene = PR_SCENE_M_PIER_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_TRAFFIC_a") fScenePercent = 100 eReqScene = PR_SCENE_M_TRAFFIC_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_TRAFFIC_b") fScenePercent = 100 eReqScene = PR_SCENE_M_TRAFFIC_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_TRAFFIC_c") fScenePercent = 100 eReqScene = PR_SCENE_M_TRAFFIC_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_VWOODPARK_a") fScenePercent = 100 eReqScene = PR_SCENE_M_VWOODPARK_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_VWOODPARK_b") fScenePercent = 100 eReqScene = PR_SCENE_M_VWOODPARK_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_BENCHCALL_a") fScenePercent = 100 eReqScene = PR_SCENE_M_BENCHCALL_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_BENCHCALL_b") fScenePercent = 100 eReqScene = PR_SCENE_M_BENCHCALL_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_PARKEDHILLS_a") fScenePercent = 100 eReqScene = PR_SCENE_M_PARKEDHILLS_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_PARKEDHILLS_b") fScenePercent = 100 eReqScene = PR_SCENE_M_PARKEDHILLS_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_PHARMACY") fScenePercent = 100 eReqScene = PR_SCENE_M2_PHARMACY RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_COFFEE_a") fScenePercent = 100 eReqScene = PR_SCENE_M_COFFEE_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_COFFEE_b") fScenePercent = 100 eReqScene = PR_SCENE_M_COFFEE_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_COFFEE_c") fScenePercent = 100 eReqScene = PR_SCENE_M_COFFEE_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_CYCLING_a") fScenePercent = 100 eReqScene = PR_SCENE_M2_CYCLING_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_CYCLING_b") fScenePercent = 100 eReqScene = PR_SCENE_M2_CYCLING_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_CYCLING_c") fScenePercent = 100 eReqScene = PR_SCENE_M2_CYCLING_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_MARINA") fScenePercent = 100 eReqScene = PR_SCENE_M2_MARINA RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_ARGUEWITHWIFE") fScenePercent = 100 eReqScene = PR_SCENE_M2_ARGUEWITHWIFE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_PARKEDBEACH") fScenePercent = 100 eReqScene = PR_SCENE_M4_PARKEDBEACH RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M4_WASHFACE") fScenePercent = 100 eReqScene = PR_SCENE_M4_WASHFACE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M_HOOKERMOTEL") fScenePercent = 100 eReqScene = PR_SCENE_M_HOOKERMOTEL RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_MORNING_a") fScenePercent = 100 eReqScene = PR_SCENE_M6_MORNING_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_CARSLEEP") fScenePercent = 100 eReqScene = PR_SCENE_M6_CARSLEEP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_HOUSETV_a") fScenePercent = 100 eReqScene = PR_SCENE_M6_HOUSETV_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_SUNBATHING") fScenePercent = 100 eReqScene = PR_SCENE_M6_SUNBATHING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRINKINGBEER") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRINKINGBEER RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_ONPHONE") fScenePercent = 100 eReqScene = PR_SCENE_M6_ONPHONE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DEPRESSED") fScenePercent = 100 eReqScene = PR_SCENE_M6_DEPRESSED RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_BOATING") fScenePercent = 100 eReqScene = PR_SCENE_M6_BOATING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_LIQUORSTORE") fScenePercent = 100 eReqScene = PR_SCENE_M6_LIQUORSTORE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_PARKEDHILLS_a") fScenePercent = 100 eReqScene = PR_SCENE_M6_PARKEDHILLS_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_PARKEDHILLS_b") fScenePercent = 100 eReqScene = PR_SCENE_M6_PARKEDHILLS_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_PARKEDHILLS_c") fScenePercent = 100 eReqScene = PR_SCENE_M6_PARKEDHILLS_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_PARKEDHILLS_d") fScenePercent = 100 eReqScene = PR_SCENE_M6_PARKEDHILLS_d RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_PARKEDHILLS_e") fScenePercent = 100 eReqScene = PR_SCENE_M6_PARKEDHILLS_e RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_DRIVING_a") fScenePercent = 100 eReqScene = PR_SCENE_M2_DRIVING_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M2_DRIVING_b") fScenePercent = 100 eReqScene = PR_SCENE_M2_DRIVING_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_a") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_b") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_c") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_d") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_d RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_e") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_e RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_f") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_f RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_g") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_g RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_DRIVING_h") fScenePercent = 100 eReqScene = PR_SCENE_M6_DRIVING_h RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M6_RONBORING") fScenePercent = 100 eReqScene = PR_SCENE_M6_RONBORING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_RESTAURANT") fScenePercent = 100 eReqScene = PR_SCENE_M7_RESTAURANT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_LOUNGECHAIRS") fScenePercent = 100 eReqScene = PR_SCENE_M7_LOUNGECHAIRS RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_BYESOLOMON_a") fScenePercent = 100 eReqScene = PR_SCENE_M7_BYESOLOMON_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_BYESOLOMON_b") fScenePercent = 100 eReqScene = PR_SCENE_M7_BYESOLOMON_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_WIFETENNIS") fScenePercent = 100 eReqScene = PR_SCENE_M7_WIFETENNIS RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_ROUNDTABLE") fScenePercent = 100 eReqScene = PR_SCENE_M7_ROUNDTABLE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_REJECTENTRY") fScenePercent = 100 eReqScene = PR_SCENE_M7_REJECTENTRY RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_HOOKERS") fScenePercent = 100 eReqScene = PR_SCENE_M7_HOOKERS RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_EXITBARBER") fScenePercent = 100 eReqScene = PR_SCENE_M7_EXITBARBER RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_EXITFANCYSHOP") fScenePercent = 100 eReqScene = PR_SCENE_M7_EXITFANCYSHOP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_FAKEYOGA") fScenePercent = 100 eReqScene = PR_SCENE_M7_FAKEYOGA RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_COFFEE") fScenePercent = 100 eReqScene = PR_SCENE_M7_COFFEE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_GETSREADY") fScenePercent = 100 eReqScene = PR_SCENE_M7_GETSREADY RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_READSCRIPT") fScenePercent = 100 eReqScene = PR_SCENE_M7_READSCRIPT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_EMPLOYEECONVO") fScenePercent = 100 eReqScene = PR_SCENE_M7_EMPLOYEECONVO RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_TALKTOGUARD") fScenePercent = 100 eReqScene = PR_SCENE_M7_TALKTOGUARD RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_LOT_JIMMY") fScenePercent = 100 eReqScene = PR_SCENE_M7_LOT_JIMMY RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_KIDS_TV") fScenePercent = 100 eReqScene = PR_SCENE_M7_KIDS_TV RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_KIDS_GAMING") fScenePercent = 100 eReqScene = PR_SCENE_M7_KIDS_GAMING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_OPENDOORFORAMA") fScenePercent = 100 eReqScene = PR_SCENE_M7_OPENDOORFORAMA RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_DROPPINGOFFJMY") fScenePercent = 100 eReqScene = PR_SCENE_M7_DROPPINGOFFJMY RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_TRACEYEXITSCAR") fScenePercent = 100 eReqScene = PR_SCENE_M7_TRACEYEXITSCAR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_M7_BIKINGJIMMY") fScenePercent = 100 eReqScene = PR_SCENE_M7_BIKINGJIMMY RETURN TRUE BREAK
|
||
|
||
CASE HASH("PR_SCENE_M_S_FAMILY4") fScenePercent = 100 eReqScene = PR_SCENE_M_S_FAMILY4 RETURN TRUE BREAK
|
||
ENDSWITCH
|
||
SWITCH GET_HASH_KEY(sNamedSwitch) /* franklin */
|
||
CASE HASH("PR_SCENE_F0_SH_ASLEEP") fScenePercent = 100 eReqScene = PR_SCENE_F0_SH_ASLEEP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_SH_ASLEEP") fScenePercent = 100 eReqScene = PR_SCENE_F1_SH_ASLEEP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_NAPPING") fScenePercent = 100 eReqScene = PR_SCENE_F1_NAPPING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_GETTINGREADY") fScenePercent = 100 eReqScene = PR_SCENE_F1_GETTINGREADY RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_SH_READING") fScenePercent = 100 eReqScene = PR_SCENE_F0_SH_READING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_SH_READING") fScenePercent = 100 eReqScene = PR_SCENE_F1_SH_READING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_SH_PUSHUP_a") fScenePercent = 100 eReqScene = PR_SCENE_F0_SH_PUSHUP_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_SH_PUSHUP_b") fScenePercent = 100 eReqScene = PR_SCENE_F0_SH_PUSHUP_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_SH_PUSHUP") fScenePercent = 100 eReqScene = PR_SCENE_F1_SH_PUSHUP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_POOLSIDE_a") fScenePercent = 100 eReqScene = PR_SCENE_F1_POOLSIDE_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_POOLSIDE_b") fScenePercent = 100 eReqScene = PR_SCENE_F1_POOLSIDE_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_CLEANINGAPT") fScenePercent = 100 eReqScene = PR_SCENE_F1_CLEANINGAPT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_ONCELL") fScenePercent = 100 eReqScene = PR_SCENE_F1_ONCELL RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_SNACKING") fScenePercent = 100 eReqScene = PR_SCENE_F1_SNACKING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_ONLAPTOP") fScenePercent = 100 eReqScene = PR_SCENE_F1_ONLAPTOP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_IRONING") fScenePercent = 100 eReqScene = PR_SCENE_F1_IRONING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_WATCHINGTV") fScenePercent = 100 eReqScene = PR_SCENE_F1_WATCHINGTV RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_MD_KUSH_DOC") fScenePercent = 100 eReqScene = PR_SCENE_F_MD_KUSH_DOC RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_KUSH_DOC_a") fScenePercent = 100 eReqScene = PR_SCENE_F_KUSH_DOC_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_KUSH_DOC_b") fScenePercent = 100 eReqScene = PR_SCENE_F_KUSH_DOC_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_KUSH_DOC_c") fScenePercent = 100 eReqScene = PR_SCENE_F_KUSH_DOC_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_TANISHAFIGHT") fScenePercent = 100 eReqScene = PR_SCENE_F0_TANISHAFIGHT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_NEWHOUSE") fScenePercent = 100 eReqScene = PR_SCENE_F1_NEWHOUSE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_GARBAGE") fScenePercent = 100 eReqScene = PR_SCENE_F0_GARBAGE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_GARBAGE") fScenePercent = 100 eReqScene = PR_SCENE_F1_GARBAGE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_THROW_CUP") fScenePercent = 100 eReqScene = PR_SCENE_F_THROW_CUP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_HIT_CUP_HAND") fScenePercent = 100 eReqScene = PR_SCENE_F_HIT_CUP_HAND RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_GYM") fScenePercent = 100 eReqScene = PR_SCENE_F_GYM RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_WALKCHOP") fScenePercent = 100 eReqScene = PR_SCENE_F0_WALKCHOP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_PLAYCHOP") fScenePercent = 100 eReqScene = PR_SCENE_F0_PLAYCHOP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_PLAYCHOP") fScenePercent = 100 eReqScene = PR_SCENE_F1_PLAYCHOP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_WALKCHOP_a") fScenePercent = 100 eReqScene = PR_SCENE_F_WALKCHOP_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_WALKCHOP_b") fScenePercent = 100 eReqScene = PR_SCENE_F_WALKCHOP_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_TRAFFIC_a") fScenePercent = 100 eReqScene = PR_SCENE_F_TRAFFIC_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_TRAFFIC_b") fScenePercent = 100 eReqScene = PR_SCENE_F_TRAFFIC_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_TRAFFIC_c") fScenePercent = 100 eReqScene = PR_SCENE_F_TRAFFIC_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_BIKE") fScenePercent = 100 eReqScene = PR_SCENE_F0_BIKE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F0_CLEANCAR") fScenePercent = 100 eReqScene = PR_SCENE_F0_CLEANCAR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_BIKE") fScenePercent = 100 eReqScene = PR_SCENE_F1_BIKE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_CLEANCAR") fScenePercent = 100 eReqScene = PR_SCENE_F1_CLEANCAR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F1_BYETAXI") fScenePercent = 100 eReqScene = PR_SCENE_F1_BYETAXI RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_BIKE_c") fScenePercent = 100 eReqScene = PR_SCENE_F_BIKE_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_BIKE_d") fScenePercent = 100 eReqScene = PR_SCENE_F_BIKE_d RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_LAMTAUNT_P1") fScenePercent = 100 eReqScene = PR_SCENE_F_LAMTAUNT_P1 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_LAMTAUNT_P3") fScenePercent = 100 eReqScene = PR_SCENE_F_LAMTAUNT_P3 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_LAMTAUNT_P5") fScenePercent = 100 eReqScene = PR_SCENE_F_LAMTAUNT_P5 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_CLUB") fScenePercent = 100 eReqScene = PR_SCENE_F_CLUB RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_CS_CHECKSHOE") fScenePercent = 100 eReqScene = PR_SCENE_F_CS_CHECKSHOE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_CS_WIPEHANDS") fScenePercent = 100 eReqScene = PR_SCENE_F_CS_WIPEHANDS RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_CS_WIPERIGHT") fScenePercent = 100 eReqScene = PR_SCENE_F_CS_WIPERIGHT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_LAMTAUNT_NIGHT") fScenePercent = 100 eReqScene = PR_SCENE_F_LAMTAUNT_NIGHT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_BAR_a_01") fScenePercent = 100 eReqScene = PR_SCENE_F_BAR_a_01 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_BAR_b_01") fScenePercent = 100 eReqScene = PR_SCENE_F_BAR_b_01 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_BAR_c_02") fScenePercent = 100 eReqScene = PR_SCENE_F_BAR_c_02 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_BAR_d_02") fScenePercent = 100 eReqScene = PR_SCENE_F_BAR_d_02 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_BAR_e_01") fScenePercent = 100 eReqScene = PR_SCENE_F_BAR_e_01 RETURN TRUE BREAK
|
||
|
||
CASE HASH("PR_SCENE_F_S_EXILE2") fScenePercent = 100 eReqScene = PR_SCENE_F_S_EXILE2 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_S_AGENCY_2A_a") fScenePercent = 100 eReqScene = PR_SCENE_F_S_AGENCY_2A_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_F_S_AGENCY_2A_b") fScenePercent = 100 eReqScene = PR_SCENE_F_S_AGENCY_2A_b RETURN TRUE BREAK
|
||
ENDSWITCH
|
||
SWITCH GET_HASH_KEY(sNamedSwitch) /* trevor */
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
CASE HASH("PR_SCENE_T_SHIT") fScenePercent = 100 eReqScene = PR_SCENE_T_SHIT RETURN TRUE BREAK
|
||
#ENDIF
|
||
CASE HASH("PR_SCENE_T_SC_MOCKLAPDANCE") fScenePercent = 100 eReqScene = PR_SCENE_T_SC_MOCKLAPDANCE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_SC_BAR") fScenePercent = 100 eReqScene = PR_SCENE_T_SC_BAR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_SC_CHASE") fScenePercent = 100 eReqScene = PR_SCENE_T_SC_CHASE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_STRIPCLUB_out") fScenePercent = 100 eReqScene = PR_SCENE_T_STRIPCLUB_out RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_ESCORTED_OUT") fScenePercent = 100 eReqScene = PR_SCENE_T_ESCORTED_OUT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_CHATEAU_b") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_CHATEAU_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_CHATEAU_c") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_CHATEAU_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_CHATEAU_d") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_CHATEAU_d RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_GARBAGE_FOOD") fScenePercent = 100 eReqScene = PR_SCENE_T_GARBAGE_FOOD RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_THROW_FOOD") fScenePercent = 100 eReqScene = PR_SCENE_T_THROW_FOOD RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_SMOKEMETH") fScenePercent = 100 eReqScene = PR_SCENE_T_SMOKEMETH RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FIGHTBBUILD") fScenePercent = 100 eReqScene = PR_SCENE_T_FIGHTBBUILD RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_ANNOYSUNBATHERS") fScenePercent = 100 eReqScene = PR_SCENE_T_ANNOYSUNBATHERS RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_BLOCK_CAMERA") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_BLOCK_CAMERA RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_GUITARBEATDOWN") fScenePercent = 100 eReqScene = PR_SCENE_T_GUITARBEATDOWN RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_DOCKS_a") fScenePercent = 100 eReqScene = PR_SCENE_T_DOCKS_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_DOCKS_b") fScenePercent = 100 eReqScene = PR_SCENE_T_DOCKS_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_DOCKS_c") fScenePercent = 100 eReqScene = PR_SCENE_T_DOCKS_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_DOCKS_d") fScenePercent = 100 eReqScene = PR_SCENE_T_DOCKS_d RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_LINGERIE") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_LINGERIE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_FUNERAL") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_FUNERAL RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FIGHTBAR_a") fScenePercent = 100 eReqScene = PR_SCENE_T_FIGHTBAR_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FIGHTBAR_b") fScenePercent = 100 eReqScene = PR_SCENE_T_FIGHTBAR_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FIGHTBAR_c") fScenePercent = 100 eReqScene = PR_SCENE_T_FIGHTBAR_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_YELLATDOORMAN") fScenePercent = 100 eReqScene = PR_SCENE_T_YELLATDOORMAN RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FIGHTYAUCLUB_b") fScenePercent = 100 eReqScene = PR_SCENE_T_FIGHTYAUCLUB_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FIGHTCASINO") fScenePercent = 100 eReqScene = PR_SCENE_T_FIGHTCASINO RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_KONEIGHBOUR") fScenePercent = 100 eReqScene = PR_SCENE_T_KONEIGHBOUR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_SCARETRAMP") fScenePercent = 100 eReqScene = PR_SCENE_T_SCARETRAMP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_DUMPSTER") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_DUMPSTER RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_WAKETRASH_b") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_WAKETRASH_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_WAKEBEACH") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_WAKEBEACH RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_WAKEBARN") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_WAKEBARN RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_WAKETRAIN") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_WAKETRAIN RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_WAKEROOFTOP") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_WAKEROOFTOP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_WAKEMOUNTAIN") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_WAKEMOUNTAIN RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_ALLEYDRUNK") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_ALLEYDRUNK RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_SC_ALLEYDRUNK") fScenePercent = 100 eReqScene = PR_SCENE_T_SC_ALLEYDRUNK RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_PUKEINTOFOUNT") fScenePercent = 100 eReqScene = PR_SCENE_T_PUKEINTOFOUNT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_PARK_b") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_PARK_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_POLICE_a") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_POLICE_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_POLICE_b") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_POLICE_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_POLICE_c") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_POLICE_c RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_NAKED_BRIDGE") fScenePercent = 100 eReqScene = PR_SCENE_T_NAKED_BRIDGE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_NAKED_GARDEN") fScenePercent = 100 eReqScene = PR_SCENE_T_NAKED_GARDEN RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_NAKED_ISLAND") fScenePercent = 100 eReqScene = PR_SCENE_T_NAKED_ISLAND RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_CHASECAR_a") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_CHASECAR_a RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_CHASECAR_b") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_CHASECAR_b RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_CHASEBIKE") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_CHASEBIKE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_CHASESCOOTER") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_CHASESCOOTER RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_BRIDGEDROP") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_BRIDGEDROP RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_RUDEATCAFE") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_RUDEATCAFE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CR_RAND_TEMPLE") fScenePercent = 100 eReqScene = PR_SCENE_T_CR_RAND_TEMPLE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_UNDERPIER") fScenePercent = 100 eReqScene = PR_SCENE_T_UNDERPIER RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_DRUNKHOWLING") fScenePercent = 100 eReqScene = PR_SCENE_T_DRUNKHOWLING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_SC_DRUNKHOWLING") fScenePercent = 100 eReqScene = PR_SCENE_T_SC_DRUNKHOWLING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDSAVEHOUSE") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDSAVEHOUSE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDSPOON_A") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDSPOON_A RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDSPOON_B") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDSPOON_B RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDSPOON_B2") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDSPOON_B2 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDSPOON_A2") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDSPOON_A2 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYD_BEAR") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYD_BEAR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYD_DOLL") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYD_DOLL RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDPINEAPPLE") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDPINEAPPLE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDCRYING_A") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDCRYING_A RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDCRYING_E0") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDCRYING_E0 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDCRYING_E1") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDCRYING_E1 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDCRYING_E2") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDCRYING_E2 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLOYDCRYING_E3") fScenePercent = 100 eReqScene = PR_SCENE_T_FLOYDCRYING_E3 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_SMOKECRYSTAL") fScenePercent = 100 eReqScene = PR_SCENE_T6_SMOKECRYSTAL RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_METHLAB") fScenePercent = 100 eReqScene = PR_SCENE_T6_METHLAB RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_HUNTING1") fScenePercent = 100 eReqScene = PR_SCENE_T6_HUNTING1 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_HUNTING2") fScenePercent = 100 eReqScene = PR_SCENE_T6_HUNTING2 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_HUNTING3") fScenePercent = 100 eReqScene = PR_SCENE_T6_HUNTING3 RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_TRAF_AIR") fScenePercent = 100 eReqScene = PR_SCENE_T6_TRAF_AIR RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_DIGGING") fScenePercent = 100 eReqScene = PR_SCENE_T6_DIGGING RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_FLUSHESFOOT") fScenePercent = 100 eReqScene = PR_SCENE_T6_FLUSHESFOOT RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_CN_PIER") fScenePercent = 100 eReqScene = PR_SCENE_T_CN_PIER RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T6_LAKE") fScenePercent = 100 eReqScene = PR_SCENE_T6_LAKE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_FLYING_PLANE") fScenePercent = 100 eReqScene = PR_SCENE_T_FLYING_PLANE RETURN TRUE BREAK
|
||
CASE HASH("PR_SCENE_T_HEADINSINK") fScenePercent = 100 eReqScene = PR_SCENE_T_HEADINSINK RETURN TRUE BREAK
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
CASE HASH("PR_SCENE_T_JERKOFF") fScenePercent = 100 eReqScene = PR_SCENE_T_JERKOFF RETURN TRUE BREAK
|
||
#ENDIF
|
||
ENDSWITCH
|
||
|
||
CASSERTLN(DEBUG_SWITCH, "command like arg \"sc_ForceNamedSwitch\" called with unknown param \"", sNamedSwitch, "\"")
|
||
ENDIF
|
||
#ENDIF //#1508299
|
||
|
||
|
||
BOOL bDescentOnlyScene = FALSE
|
||
|
||
IF (ePed >= CHAR_MULTIPLAYER)
|
||
|
||
CPRINTLN(DEBUG_SWITCH, "PR_SCENE_INVALID for (ePed >= CHAR_MULTIPLAYER)")
|
||
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF g_bMagDemoActive
|
||
// SWITCH ePed
|
||
// CASE CHAR_MICHAEL
|
||
// fScenePercent = 100
|
||
// eReqScene = PR_SCENE_M_MD_FBI2
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// BREAK
|
||
// CASE CHAR_FRANKLIN
|
||
// fScenePercent = 100
|
||
// eReqScene = PR_SCENE_F_MD_KUSH_DOC //PR_SCENE_F_KUSH_DOC_a
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// BREAK
|
||
// CASE CHAR_TREVOR
|
||
// fScenePercent = 100
|
||
// eReqScene = PR_SCENE_T_SHIT
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// BREAK
|
||
// ENDSWITCH
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M4_EXITRESTAURANT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_MD_FRANKLIN2
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_T_NAKED_ISLAND
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDIF
|
||
|
||
IF NOT bDescentOnlyScene
|
||
//if is player char dead
|
||
CONST_INT iNUMBER_OF_HOURS_DEAD 6
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_DEAD)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed], iNUMBER_OF_HOURS_DEAD)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_HOSPITAL
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF NOT bBypassDefaultSwitch
|
||
IF NOT IS_PED_THE_CURRENT_PLAYER_PED(ePed)
|
||
IF IsCharPresentInWorld(ePed)
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_T_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
|
||
ENDSWITCH
|
||
|
||
ENDIF
|
||
|
||
IF NOT IS_PLAYER_PED_AVAILABLE(ePed)
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
CASSERTLN(DEBUG_SWITCH, "PR_SCENE_INVALID for IS_PLAYER_PED_AVAILABLE ", GET_PLAYER_PED_STRING(ePed), ")???")
|
||
|
||
eReqScene = PR_SCENE_INVALID
|
||
fScenePercent = -1
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ELSE
|
||
IF NOT ARE_STRINGS_EQUAL(GET_THIS_SCRIPT_NAME(), "debug")
|
||
CPRINTLN(GET_THIS_SCRIPT_NAME(), ": PR_SCENE_INVALID for IS_PED_THE_CURRENT_PLAYER_PED")
|
||
ENDIF
|
||
|
||
// eReqScene = PR_SCENE_INVALID
|
||
// fScenePercent = -1
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ELSE
|
||
CPRINTLN(DEBUG_SWITCH, "bBypassDefaultSwitch is true...")
|
||
ENDIF
|
||
|
||
//pre-mission switches forced if mission is available
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
|
||
// #1293475 temp comment out for Les [#784198]
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_FAMILY_4)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M_S_FAMILY4
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
//
|
||
IF IS_MISSION_AVAILABLE(SP_MISSION_EXILE_2) //574569
|
||
#IF USE_TU_CHANGES
|
||
//Fix for 1654538. Don't attempt to switch into Exile2 if the mission's trigger has a leave area flag set.
|
||
AND NOT g_sMissionActiveData[SP_MISSION_EXILE_2].leaveArea
|
||
#ENDIF
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_S_EXILE2
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
|
||
#IF USE_TU_CHANGES
|
||
ELIF IS_MISSION_AVAILABLE(SP_MISSION_EXILE_2)
|
||
//Fix for 1654538. If we have denied this mission switch due to a leave area flag,
|
||
//also clear Franklin's last known location to force a switch scene.
|
||
g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[ePed] = <<0,0,0>>
|
||
#ENDIF
|
||
|
||
ENDIF
|
||
|
||
//AGENCY_HEIST_2A,2B,2C have been reduced down to AGENCY_HEIST_2. Commented out for now.
|
||
//PLEASE REVIEW THIS CHANGE. Ben R
|
||
|
||
IF IS_MISSION_AVAILABLE(SP_HEIST_AGENCY_2)
|
||
fScenePercent = 100
|
||
IF GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_HEIST_AGENCY_2_AUTOTRIGGERED)
|
||
eReqScene = PR_SCENE_F_S_AGENCY_2A_a
|
||
ELSE
|
||
eReqScene = PR_SCENE_F_S_AGENCY_2A_b
|
||
ENDIF
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF IS_MISSION_AVAILABLE(SP_HEIST_AGENCY_2B)
|
||
// fScenePercent = 100
|
||
// eReqScene = PR_SCENE_F_S_AGENCY_2B
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF IS_MISSION_AVAILABLE(SP_HEIST_AGENCY_2C)
|
||
// fScenePercent = 100
|
||
// eReqScene = PR_SCENE_F_S_AGENCY_2C
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
//
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
//should the override switch scene be used?
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_M_OVERRIDE)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M_OVERRIDE
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_F_OVERRIDE)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_OVERRIDE
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_T_OVERRIDE)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_T_OVERRIDE
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
//should the next scene be a mission scene??
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_ARM3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FAMILY1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FAMILY3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
// #IF IS_DEBUG_BUILD
|
||
// SAVE_STRING_TO_DEBUG_FILE("SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FAMILY3, eReqScene, fScenePercent, sPedScene, sPassedScene)")
|
||
// SAVE_NEWLINE_TO_DEBUG_FILE()
|
||
// #ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FBI1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FBI2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FBI2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FAMILY1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FBI4intro, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FBI4intro, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FBI4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FBI4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FBI5, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[2]
|
||
FLOAT fPercentArray[2]
|
||
|
||
eRequestArray[0] = PR_SCENE_M4_WASHFACE fPercentArray[0] = 90.0
|
||
eRequestArray[1] = PR_SCENE_M4_WATCHINGTV fPercentArray[1] = 10.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_MICHAEL,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ma_FBI5), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_MICHAEL, PR_SCENE_Ma_FBI5,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FBI3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FBI4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FBI5, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FBI5, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FAMILY4_a, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
//
|
||
// CONST_INT iNumOfMinutes 10
|
||
// IF HasNumOfMinutesPassedSincePedTimeStruct(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed], iNumOfMinutes)
|
||
// IF UpdatePostMissionInfo(g_savedGlobals.sPlayerData.sInfo, ePed, PR_SCENE_Ma_FAMILY4_b)
|
||
//
|
||
// fScenePercent = 100
|
||
// eReqScene = g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed]
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// ENDIF
|
||
//
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FAMILY4_b, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FAMILY4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_NICE1B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_AGENCY1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_AGENCYprep1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_AGENCY3B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_AGENCY2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_AGENCY3A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_CARSTEAL1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_CARSTEAL1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_CARSTEAL1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_CARSTEAL1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_AGENCY2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_CARSTEAL2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FBI2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[3]
|
||
FLOAT fPercentArray[3]
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
IF NOT IS_MISSION_AVAILABLE(SP_MISSION_FRANKLIN_1)
|
||
eRequestArray[0] = PR_SCENE_F0_WALKCHOP fPercentArray[0] = 80.0
|
||
eRequestArray[1] = PR_SCENE_F0_SH_READING fPercentArray[1] = 10.0
|
||
eRequestArray[2] = PR_SCENE_F0_BIKE fPercentArray[2] = 10.0
|
||
ELSE
|
||
eRequestArray[0] = PR_SCENE_F_BAR_c_02 fPercentArray[0] = 30.0
|
||
eRequestArray[1] = PR_SCENE_F_LAMTAUNT_P3 fPercentArray[1] = 40.0
|
||
eRequestArray[2] = PR_SCENE_F_BAR_e_01 fPercentArray[2] = 30.0
|
||
ENDIF
|
||
ELSE
|
||
eRequestArray[0] = PR_SCENE_F1_PLAYCHOP fPercentArray[0] = 80.0
|
||
eRequestArray[1] = PR_SCENE_F1_SH_READING fPercentArray[1] = 10.0
|
||
eRequestArray[2] = PR_SCENE_F1_BIKE fPercentArray[2] = 10.0
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene, TRUE)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_FBI2), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_FBI2,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FBI4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[4]
|
||
FLOAT fPercentArray[4]
|
||
|
||
eRequestArray[0] = PR_SCENE_T_KONEIGHBOUR fPercentArray[0] = 85.0
|
||
eRequestArray[1] = PR_SCENE_T_THROW_FOOD fPercentArray[1] = 5.0
|
||
eRequestArray[2] = PR_SCENE_T_GUITARBEATDOWN fPercentArray[2] = 5.0
|
||
eRequestArray[3] = PR_SCENE_T_CR_BLOCK_CAMERA fPercentArray[3] = 5.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_TREVOR,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ta_FBI4), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_TREVOR, PR_SCENE_Ta_FBI4,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_DOCKS2B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[6]
|
||
FLOAT fPercentArray[6]
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
eRequestArray[0] = PR_SCENE_F_THROW_CUP fPercentArray[0] = 80.0
|
||
eRequestArray[1] = PR_SCENE_F_BAR_c_02 fPercentArray[1] = 10.0
|
||
eRequestArray[2] = PR_SCENE_F_LAMTAUNT_P1 fPercentArray[2] = 2.5
|
||
eRequestArray[3] = PR_SCENE_F_LAMTAUNT_P3 fPercentArray[3] = 2.5
|
||
eRequestArray[4] = PR_SCENE_F_LAMTAUNT_P5 fPercentArray[4] = 2.5
|
||
eRequestArray[3] = PR_SCENE_F_GYM fPercentArray[3] = 2.5
|
||
ELSE
|
||
eRequestArray[0] = PR_SCENE_F1_CLEANCAR fPercentArray[0] = 80.0
|
||
eRequestArray[1] = PR_SCENE_F1_SH_READING fPercentArray[1] = 10.0
|
||
eRequestArray[2] = PR_SCENE_F1_BIKE fPercentArray[2] = 2.5
|
||
eRequestArray[3] = PR_SCENE_F1_PLAYCHOP fPercentArray[3] = 2.5
|
||
eRequestArray[4] = PR_SCENE_F1_NEWHOUSE fPercentArray[4] = 2.5
|
||
eRequestArray[5] = PR_SCENE_F_GYM fPercentArray[5] = 2.5
|
||
ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_DOCKS2B), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_DOCKS2B,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FAMILY6, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
//#944265 & 1031378
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[1]
|
||
FLOAT fPercentArray[1]
|
||
|
||
eRequestArray[0] = PR_SCENE_T_NAKED_ISLAND fPercentArray[0] = 100.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_TREVOR,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ta_FAMILY6), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_TREVOR, PR_SCENE_Ta_FAMILY6,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FINALEprepD, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
//#1582249
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[4]
|
||
FLOAT fPercentArray[4]
|
||
|
||
eRequestArray[0] = PR_SCENE_T_HEADINSINK fPercentArray[0] = 80.0
|
||
eRequestArray[1] = PR_SCENE_T6_FLUSHESFOOT fPercentArray[1] = 10.0
|
||
eRequestArray[2] = PR_SCENE_T6_SMOKECRYSTAL fPercentArray[2] = 10.0
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
eRequestArray[3] = PR_SCENE_T_SHIT fPercentArray[3] = 10.0
|
||
#ENDIF
|
||
#IF IS_JAPANESE_BUILD
|
||
eRequestArray[3] = PR_SCENE_T_SMOKEMETH fPercentArray[3] = 10.0
|
||
#ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_TREVOR,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ta_FINALEprepD), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_TREVOR, PR_SCENE_Ta_FINALEprepD,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FAMILY6, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
//#1286223
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[2]
|
||
FLOAT fPercentArray[2]
|
||
|
||
eRequestArray[0] = PR_SCENE_M7_ROUNDTABLE fPercentArray[0] = 50.0
|
||
eRequestArray[1] = PR_SCENE_M7_KIDS_TV fPercentArray[1] = 50.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_MICHAEL,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ma_FAMILY6), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_MICHAEL, PR_SCENE_Ma_FAMILY6,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_MARTIN1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
//#944265
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[3]
|
||
FLOAT fPercentArray[3]
|
||
|
||
eRequestArray[0] = PR_SCENE_F1_NEWHOUSE fPercentArray[0] = 50.0
|
||
eRequestArray[1] = PR_SCENE_F_WALKCHOP_a fPercentArray[1] = 25.0
|
||
eRequestArray[2] = PR_SCENE_F_WALKCHOP_b fPercentArray[2] = 25.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_MARTIN1), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_MARTIN1,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_TREVOR3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
//#944265
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[3]
|
||
FLOAT fPercentArray[3]
|
||
|
||
eRequestArray[0] = PR_SCENE_M_POOLSIDE_a fPercentArray[0] = 50.0
|
||
eRequestArray[1] = PR_SCENE_M4_WATCHINGTV fPercentArray[1] = 50.0
|
||
eRequestArray[2] = PR_SCENE_M4_WASHFACE fPercentArray[1] = 50.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_MICHAEL,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ma_TREVOR3), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_MICHAEL, PR_SCENE_Ma_TREVOR3,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_TREVOR3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
//#944265
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[2]
|
||
FLOAT fPercentArray[2]
|
||
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
eRequestArray[0] = PR_SCENE_F0_CLEANCAR fPercentArray[0] = 50.0
|
||
eRequestArray[1] = PR_SCENE_F0_SH_READING fPercentArray[1] = 50.0
|
||
ELSE
|
||
eRequestArray[0] = PR_SCENE_F1_CLEANCAR fPercentArray[0] = 50.0
|
||
eRequestArray[1] = PR_SCENE_F1_SH_READING fPercentArray[1] = 50.0
|
||
ENDIF
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_TREVOR3), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_TREVOR3,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FRANKLIN2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FRANKLIN2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FBI1end, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_MARTIN1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_MARTIN1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_RURAL2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
//#944265
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[4]
|
||
FLOAT fPercentArray[4]
|
||
|
||
eRequestArray[0] = PR_SCENE_T_HEADINSINK fPercentArray[0] = 80.0
|
||
eRequestArray[1] = PR_SCENE_T_SMOKEMETH fPercentArray[1] = 10.0
|
||
eRequestArray[2] = PR_SCENE_T6_SMOKECRYSTAL fPercentArray[2] = 10.0
|
||
#IF NOT IS_JAPANESE_BUILD
|
||
eRequestArray[3] = PR_SCENE_T_SHIT fPercentArray[3] = 10.0
|
||
#ENDIF
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_TREVOR,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene, TRUE)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ta_RURAL2A), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_TREVOR, PR_SCENE_Ta_RURAL2A,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_RURAL2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_RC_MRSP2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_RURAL1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_NICE2B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_NICE2B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_FTa_FRANKLIN1a, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// OR SchedulePostMissionSpecificScene(ePed, PR_SCENE_FTa_FRANKLIN1b, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
OR SchedulePostMissionSpecificScene(ePed, PR_SCENE_FTa_FRANKLIN1c, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
OR SchedulePostMissionSpecificScene(ePed, PR_SCENE_FTa_FRANKLIN1d, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
OR SchedulePostMissionSpecificScene(ePed, PR_SCENE_FTa_FRANKLIN1e, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[5-1]
|
||
FLOAT fPercentArray[5-1]
|
||
|
||
SWITCH g_ePostFranklin1Switch
|
||
CASE POST_FRANKLIN1_0_escapePoliceAlone
|
||
//#1015706
|
||
|
||
eRequestArray[0] = PR_SCENE_FTa_FRANKLIN1a fPercentArray[0] = 25.0
|
||
eRequestArray[1] = PR_SCENE_FTa_FRANKLIN1c fPercentArray[1] = 25.0
|
||
eRequestArray[2] = PR_SCENE_FTa_FRANKLIN1d fPercentArray[3-1] = 25.0
|
||
eRequestArray[3] = PR_SCENE_FTa_FRANKLIN1e fPercentArray[4-1] = 25.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(ePed,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_FTa_FRANKLIN1a), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " //0_escapePoliceAlone")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
BREAK
|
||
CASE POST_FRANKLIN1_1_TrevorStripclub
|
||
|
||
IF GET_RANDOM_BOOL()
|
||
eReqScene = PR_SCENE_T_SC_BAR
|
||
fScenePercent = 50.0
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_FTa_FRANKLIN1a), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " //1_TrevorStripclub")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
eReqScene = PR_SCENE_T_SC_DRUNKHOWLING
|
||
fScenePercent= 50.0
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_FTa_FRANKLIN1a), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " //1_TrevorStripclub")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
BREAK
|
||
CASE POST_FRANKLIN1_2_Frank
|
||
IF NOT Get_Mission_Flow_Flag_State(FLOWFLAG_FRANKLIN_MOVED_TO_HILLS_APARTMENT)
|
||
IF GET_RANDOM_BOOL()
|
||
eReqScene = PR_SCENE_F0_SH_READING
|
||
fScenePercent = 50.0
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_FTa_FRANKLIN1a), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " //2_Frank")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
eReqScene = PR_SCENE_F0_SH_PUSHUP_a
|
||
fScenePercent= 50.0
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_FTa_FRANKLIN1a), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " //2_Frank")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ELSE
|
||
IF GET_RANDOM_BOOL()
|
||
eReqScene = PR_SCENE_F_BAR_a_01
|
||
fScenePercent = 50.0
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_FTa_FRANKLIN1a), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " //2_Frank (allow safehouse)")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ELSE
|
||
eReqScene = PR_SCENE_F_BAR_b_01
|
||
fScenePercent= 50.0
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_FTa_FRANKLIN1a), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene), " //2_Frank (ignore safehouse)")
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
BREAK
|
||
|
||
DEFAULT
|
||
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FRANKLIN2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FRANKLIN2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_EXILE2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[2]
|
||
FLOAT fPercentArray[2]
|
||
|
||
eRequestArray[0] = PR_SCENE_M6_MORNING_a fPercentArray[0] = 95.0
|
||
eRequestArray[1] = PR_SCENE_M6_DRINKINGBEER fPercentArray[1] = 5.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_MICHAEL,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ma_EXILE2), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_MICHAEL, PR_SCENE_Ma_EXILE2,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_EXILE2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_EXILE3, eReqScene, fScenePercent, sPedScene, sPassedScene, 3.0)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_EXILE3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_MICHAEL2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_MICHAEL2, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_MICHAEL3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_MICHAEL3, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_DOCKS2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_DOCKS2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FINALE1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[5]
|
||
FLOAT fPercentArray[5]
|
||
|
||
eRequestArray[0] = PR_SCENE_F1_ONLAPTOP fPercentArray[0] = 10.0
|
||
eRequestArray[1] = PR_SCENE_F1_IRONING fPercentArray[1] = 5.0
|
||
eRequestArray[2] = PR_SCENE_F1_SNACKING fPercentArray[2] = 75.0
|
||
eRequestArray[3] = PR_SCENE_F1_SH_READING fPercentArray[3] = 5.0
|
||
eRequestArray[4] = PR_SCENE_F1_NEWHOUSE fPercentArray[4] = 5.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene, TRUE)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_FINALE1), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_FINALE1,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FINALE1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_CARSTEAL4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FINALE2intro, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FINALE2intro, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_DOCKS2B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FINALE1, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_AGENCY3A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FINALE2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[3]
|
||
FLOAT fPercentArray[3]
|
||
|
||
eRequestArray[0] = PR_SCENE_M4_WASHFACE fPercentArray[0] = 40.0
|
||
eRequestArray[1] = PR_SCENE_M4_WATCHINGTV fPercentArray[1] = 60.0
|
||
eRequestArray[2] = PR_SCENE_INVALID fPercentArray[2] = 0.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_MICHAEL,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene, TRUE)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ma_FINALE2A), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_MICHAEL, PR_SCENE_Ma_FINALE2A,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FINALE2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FINALE2B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FINALE2B, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FINALEA, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[2]
|
||
FLOAT fPercentArray[2]
|
||
|
||
eRequestArray[0] = PR_SCENE_F1_POOLSIDE_b fPercentArray[0] = 95.0
|
||
eRequestArray[1] = PR_SCENE_F1_BYETAXI fPercentArray[1] = 5.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_FINALEA), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_FINALEA,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FINALEB, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[2]
|
||
FLOAT fPercentArray[2]
|
||
|
||
eRequestArray[0] = PR_SCENE_F1_POOLSIDE_b fPercentArray[0] = 95.0
|
||
eRequestArray[1] = PR_SCENE_F1_BYETAXI fPercentArray[1] = 5.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_FINALEB), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_FINALEB,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_FINALEC, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
AND (GetMichaelScheduleStage() = MSS_M7_ReunitedWithFamily)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[4]
|
||
FLOAT fPercentArray[4]
|
||
|
||
eRequestArray[0] = PR_SCENE_M7_WIFETENNIS fPercentArray[0] = 85.0
|
||
eRequestArray[1] = PR_SCENE_M7_ROUNDTABLE fPercentArray[1] = 5.0
|
||
eRequestArray[2] = PR_SCENE_M7_KIDS_TV fPercentArray[2] = 5.0
|
||
eRequestArray[3] = PR_SCENE_M7_GETSREADY fPercentArray[3] = 5.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_MICHAEL,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Ma_FINALEC), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_MICHAEL, PR_SCENE_Ma_FINALEC,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_FINALEC, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
PED_REQUEST_SCENE_ENUM eRequestArray[5]
|
||
FLOAT fPercentArray[5]
|
||
|
||
eRequestArray[0] = PR_SCENE_F1_BYETAXI fPercentArray[0] = 95.0
|
||
eRequestArray[1] = PR_SCENE_F1_POOLSIDE_b fPercentArray[1] = 2.0
|
||
eRequestArray[2] = PR_SCENE_F1_POOLSIDE_a fPercentArray[2] = 1.0
|
||
eRequestArray[3] = PR_SCENE_F1_WATCHINGTV fPercentArray[3] = 1.0
|
||
eRequestArray[4] = PR_SCENE_F_BAR_c_02 fPercentArray[4] = 1.0
|
||
|
||
IF GetDesiredPedRequestSceneFromArray(CHAR_FRANKLIN,
|
||
eRequestArray, fPercentArray, eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_SWITCH, "SchedulePostMissionSpecificScene(", Get_String_From_Ped_Request_Scene_Enum(PR_SCENE_Fa_FINALEC), ") chose ", Get_String_From_Ped_Request_Scene_Enum(eReqScene))
|
||
#ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
IF FallenThroughPostMissionScene(CHAR_FRANKLIN, PR_SCENE_Fa_FINALEC,
|
||
eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ta_FINALE2A, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Ma_SOLOMON4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
// IF SchedulePostMissionSpecificScene(ePed, PR_SCENE_Fa_SOLOMON4, eReqScene, fScenePercent, sPedScene, sPassedScene)
|
||
// RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
// ENDIF
|
||
|
||
//was the friend active in the last game-hour
|
||
TIMEOFDAY sLastTimeActive = g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed]
|
||
IF Is_TIMEOFDAY_Valid(sLastTimeActive)
|
||
IF NOT bBypassDefaultSwitch
|
||
IF NOT ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[ePed], <<0,0,0>>, 1.5)
|
||
IF NOT HasNumOfHoursPassedSincePedTimeStruct(sLastTimeActive, 3)
|
||
IF PassedBlimpCheckOnLastAndNext(ePed)
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_T_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
|
||
//should the next scene be a mission scene??
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_Fa_PHONECALL_ARM3)
|
||
IF NOT PRIVATE_Is_PedRequest_TooCloseToCurrentPlayer(PR_SCENE_Fa_PHONECALL_ARM3, bDescentOnlyScene, 150.0)
|
||
IF GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_ARM3_STRIPCLUB_SWITCH_AVAILABLE)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_Fa_PHONECALL_ARM3
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
CLEAR_TIMEOFDAY(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed])
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
||
ENDIF
|
||
ENDIF
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_Fa_PHONECALL_FAM1)
|
||
IF NOT PRIVATE_Is_PedRequest_TooCloseToCurrentPlayer(PR_SCENE_Fa_PHONECALL_FAM1, bDescentOnlyScene, 150.0)
|
||
IF GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_ARM3_STRIPCLUB_SWITCH_AVAILABLE)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_Fa_PHONECALL_FAM1
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
CLEAR_TIMEOFDAY(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed])
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
||
ENDIF
|
||
ENDIF
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_Fa_PHONECALL_FAM3)
|
||
IF NOT PRIVATE_Is_PedRequest_TooCloseToCurrentPlayer(PR_SCENE_Fa_PHONECALL_FAM3, bDescentOnlyScene, 150.0)
|
||
IF GET_MISSION_FLOW_FLAG_STATE(FLOWFLAG_ARM3_STRIPCLUB_SWITCH_AVAILABLE)
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_Fa_PHONECALL_FAM3
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDIF
|
||
|
||
CLEAR_TIMEOFDAY(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed])
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF (g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_Fa_EXILE3)
|
||
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FBI_5)
|
||
CLEAR_TIMEOFDAY(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed])
|
||
g_SavedGlobals.sPlayerSceneData.g_ePlayerLastScene[ePed] = PR_SCENE_INVALID
|
||
ENDIF
|
||
ENDIF
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
GetMichaelSceneForCurrentTime(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
CASE CHAR_FRANKLIN
|
||
GetFranklinSceneForCurrentTime(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
BREAK
|
||
|
||
CASE CHAR_TREVOR
|
||
GetTrevorSceneForCurrentTime(eReqScene, fScenePercent, sPedScene, sPassedScene, bDescentOnlyScene)
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
IF (eReqScene = PR_SCENE_INVALID)
|
||
#IF IS_DEBUG_BUILD
|
||
TEXT_LABEL_63 str
|
||
|
||
str =("invalid switch schedule(")
|
||
str +=(GET_PLAYER_PED_STRING(ePed))
|
||
str +=(", ")
|
||
str +=(PRIVATE_Get_Switch_Clock_Hours())
|
||
str +=(":")
|
||
str +=(PRIVATE_Get_Switch_Clock_Minutes())
|
||
str +=(")")
|
||
|
||
CPRINTLN(DEBUG_SWITCH, "GET_PLAYER_PED_SCENE_FOR_CURRENT_TIME(", str, ")")
|
||
|
||
g_bDebugPrint_SceneScheduleInfo = TRUE
|
||
CASSERTLN(DEBUG_SWITCH, str)
|
||
#ENDIF
|
||
|
||
IF NOT Is_TIMEOFDAY_Valid(g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed])
|
||
g_savedGlobals.sPlayerData.sInfo.sLastTimeActive[ePed] = GET_CURRENT_TIMEOFDAY()
|
||
ENDIF
|
||
|
||
IF ARE_VECTORS_ALMOST_EQUAL(g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[ePed], <<0,0,0>>, 1.5)
|
||
g_savedGlobals.sPlayerData.sInfo.vLastKnownCoords[ePed] = GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE)
|
||
g_savedGlobals.sPlayerData.sInfo.fLastKnownHead[ePed] = GET_ENTITY_HEADING(PLAYER_PED_ID())
|
||
ENDIF
|
||
|
||
SWITCH ePed
|
||
CASE CHAR_MICHAEL
|
||
CASSERTLN(DEBUG_SWITCH, "Michael - \"invalid switch!!!!\"")
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_M_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_FRANKLIN
|
||
CASSERTLN(DEBUG_SWITCH, "Franklin - \"invalid switch!!!!\"")
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_F_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
CASE CHAR_TREVOR
|
||
CASSERTLN(DEBUG_SWITCH, "Trevor - \"invalid switch!!!!\"")
|
||
|
||
fScenePercent = 100
|
||
eReqScene = PR_SCENE_T_DEFAULT
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDIF
|
||
|
||
RETURN (eReqScene <> PR_SCENE_INVALID)
|
||
ENDFUNC
|
||
|
||
|
||
FUNC INT PRIVATE_GetRoamingLastKnownSwitchStage(enumCharacterList sceneCharID, TIMEOFDAY sLastTimeActive, FLOAT &fCreateDistMultiplier)
|
||
INT iSeconds, iMinutes, iHours, iDays, iMonths, iYears
|
||
GET_DIFFERENCE_BETWEEN_NOW_AND_TIMEOFDAY(sLastTimeActive, iSeconds, iMinutes, iHours, iDays, iMonths, iYears)
|
||
|
||
fCreateDistMultiplier = TO_FLOAT(iSeconds+(iMinutes*60)+(iHours*60*60)) / 3600.0
|
||
|
||
IF (fCreateDistMultiplier < 0.0) fCreateDistMultiplier = 0.0 ENDIF
|
||
IF (fCreateDistMultiplier > 1.0) fCreateDistMultiplier = 1.0 ENDIF
|
||
|
||
IF fCreateDistMultiplier < 0.25
|
||
AND NOT g_sDefaultPlayerSwitchState[sceneCharID].bVehicleCoordForced
|
||
RETURN 0
|
||
ELIF fCreateDistMultiplier < 0.5
|
||
RETURN 1
|
||
ELIF fCreateDistMultiplier < 0.75
|
||
RETURN 2
|
||
ELSE
|
||
RETURN 3
|
||
ENDIF
|
||
|
||
ENDFUNC
|