/*********************************** * Name: PM_MissionCreator_Public.sch * Author: James Adwick * Date: 03/10/2012 * Purpose: Common function used * throughout MP to handle * mission creator pause menu ***********************************/ USING "globals.sch" USING "net_include.sch" USING "net_interactions_public.sch" USING "net_realty_details.sch" USING "net_private_yacht.sch" ENUM PAUSE_MENU_CREATOR_TYPE PM_CREATE_MISSION = 0, PM_CREATE_DM, PM_CREATE_TDM, PM_CREATE_VDM, PM_CREATE_TVDM, PM_CREATE_RACE_LAND, PM_CREATE_RACE_SEA, PM_CREATE_RACE_AIR, PM_CREATE_SURVIVAL, PM_CREATE_HIDEOUT, PM_CREATE_SMUGGLING, PM_CREATE_BASEJUMP, PM_CREATE_MISSION_TUTORIAL, PM_CREATE_RACE_TUTORIAL, PM_CREATE_DM_TUTORIAL ENDENUM CONST_INT SPAWN_APT_1 0 CONST_INT SPAWN_APT_2 1 CONST_INT SPAWN_APT_3 2 CONST_INT SPAWN_APT_4 3 CONST_INT SPAWN_APT_5 4 CONST_INT SPAWN_APT_6 5 CONST_INT SPAWN_APT_7 6 CONST_INT SPAWN_APT_8 7 CONST_INT SPAWN_APT_9 8 CONST_INT SPAWN_APT_10 9 CONST_INT SPAWN_GAR_1 10 CONST_INT SPAWN_GAR_2 11 CONST_INT SPAWN_GAR_3 12 CONST_INT SPAWN_GAR_4 13 CONST_INT SPAWN_GAR_5 14 CONST_INT SPAWN_GAR_6 15 CONST_INT SPAWN_GAR_7 16 CONST_INT SPAWN_GAR_8 17 CONST_INT SPAWN_GAR_9 18 CONST_INT SPAWN_GAR_10 19 //MAX_OWNED_PROPERTIES CONST_INT SPAWN_PRIVATE_YACHT 20 CONST_INT SPAWN_OFFICE 21 CONST_INT SPAWN_CLUBHOUSE 22 CONST_INT SPAWN_IE_WAREHOUSE 23 CONST_INT SPAWN_BUNKER 24 CONST_INT SPAWN_HANGAR 25 CONST_INT SPAWN_DEFUNCT_BASE 26 CONST_INT SPAWN_NIGHTCLUB 27 CONST_INT SPAWN_ARENA_GARAGE 28 CONST_INT SPAWN_CASINO_APARTMENT 29 CONST_INT SPAWN_ARCADE 30 CONST_INT SPAWN_SUBMARINE 31 CONST_INT SPAWN_CAR_MEET 32 CONST_INT SPAWN_AUTO_SHOP 33 CONST_INT SPAWN_FIXER_HQ 34 CONST_INT SPAWN_LAST_LOCATION 35 CONST_INT SPAWN_RANDOM 36 CONST_INT SPAWN_MAX 37 //SPAWN OPTIONS //#ENDIF //#ENDIF //#IF NOT FEATURE_BIKER //#IF FEATURE_IMPORT_EXPORT // //CONST_INT SPAWN_PRIVATE_YACHT 10 //CONST_INT SPAWN_OFFICE 11 //CONST_INT SPAWN_VEH_WAREHOUSE 12 //CONST_INT SPAWN_LAST_LOCATION 13 //CONST_INT SPAWN_RANDOM 14 //CONST_INT SPAWN_MAX 15 // //#ENDIF //#ENDIF // //#IF FEATURE_BIKER //#IF FEATURE_IMPORT_EXPORT // //CONST_INT SPAWN_PRIVATE_YACHT 10 //CONST_INT SPAWN_OFFICE 11 //CONST_INT SPAWN_CLUBHOUSE 12 //CONST_INT SPAWN_VEH_WAREHOUSE 13 //CONST_INT SPAWN_LAST_LOCATION 14 //CONST_INT SPAWN_RANDOM 15 //CONST_INT SPAWN_MAX 16 // //#ENDIF //#ENDIF INT iMenuSpawnLocation = -1 /// PURPOSE: Return TRUE if a mission has been selected in SP pause menu FUNC BOOL IS_PAUSE_MENU_REQUESTING_TRANSITION() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseRequestingTransition) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_WARP_TO_MISSION() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseRequestingWarp) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_A_NEW_SESSION() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuRequestingNewSession) ENDFUNC FUNC BOOL IS_PAUSE_MENU_LAUNCHING_A_USER_MISSION() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseWarpToUserMission) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_TO_EDIT_A_MISSION() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseRequestingToLoadMission) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_TO_START_A_PLAYLIST() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuStartPlaylist) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_TO_CHOOSE_CHAR() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuChooseChar) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_TO_START_A_BOOK_MARK() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuStartBookMark) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_TO_START_ONE_OF_MY_MISSIONS() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuStartMyMission) ENDFUNC FUNC BOOL IS_PAUSE_MENU_REQUESTING_TO_START_VERIFIED_MISSIONS() RETURN IS_BIT_SET(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuStartVerifiedMission) ENDFUNC PROC SET_PAUSE_MENU_REQUESTING_TO_START_A_BOOK_MARK() SET_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuStartBookMark) CPRINTLN(DEBUG_PAUSE_MENU, "MAINTAIN_LAUNCHING_MISSION_FROM_PAUSE_MENU - SET_PAUSE_MENU_REQUESTING_TO_START_A_BOOK_MARK") ENDPROC PROC SET_PAUSE_MENU_REQUESTING_TO_START_ONE_OF_MY_MISSIONS() CPRINTLN(DEBUG_PAUSE_MENU, "MAINTAIN_LAUNCHING_MISSION_FROM_PAUSE_MENU - SET_PAUSE_MENU_REQUESTING_TO_START_ONE_OF_MY_MISSIONS") SET_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuStartMyMission) ENDPROC PROC SET_PAUSE_MENU_BOOK_MARK_TO_START(INT iArrayPos) g_FMMC_HEADER_STRUCT_PAUSE_MENU_BOOKMARKS.iMissionToLaunch = iArrayPos CPRINTLN(DEBUG_PAUSE_MENU, "MAINTAIN_LAUNCHING_MISSION_FROM_PAUSE_MENU - SET_PAUSE_MENU_BOOK_MARK_TO_START iArrayPos = ", iArrayPos) ENDPROC PROC SET_PAUSE_MENU_MY_MISSIONS_TO_START(INT iArrayPos) g_FMMC_HEADER_STRUCT_PAUSE_MENU_MY_MISSIONS.iMissionToLaunch = iArrayPos CPRINTLN(DEBUG_PAUSE_MENU, "MAINTAIN_LAUNCHING_MISSION_FROM_PAUSE_MENU - SET_PAUSE_MENU_MY_MISSIONS_TO_START iArrayPos = ", iArrayPos) ENDPROC /// PURPOSE: Reset single transition request bool PROC RESET_PAUSE_MENU_TRANSITION_GLOBAL() CLEAR_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseRequestingTransition) ENDPROC /// PURPOSE: Reset single warping bool PROC RESET_PAUSE_MENU_WARP_GLOBAL() CLEAR_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseRequestingWarp) ENDPROC /// PURPOSE: Resets bools used to trigger transition from pause menu PROC RESET_PAUSE_MENU_WARP_REQUESTS() CPRINTLN(DEBUG_PAUSE_MENU, "RESETING ALL MENU WARP REQUESTS") DEBUG_PRINTCALLSTACK() RESET_PAUSE_MENU_TRANSITION_GLOBAL() RESET_PAUSE_MENU_WARP_GLOBAL() CLEAR_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseWarpToUserMission) CLEAR_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuStartPlaylist) CLEAR_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuRequestingNewSession) CLEAR_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuChooseChar) g_bKillFMMCmenu = FALSE ENDPROC FUNC VECTOR GET_PAUSE_MENU_VECTOR_TO_WARP_TO() RETURN g_PauseMenuMissionCreatorData.vPMVectorToWarpTo ENDFUNC FUNC INT GET_PAUSE_MENU_MISSION_FILE_TO_LOAD() RETURN g_PauseMenuMissionCreatorData.iPMDataFileToLoad ENDFUNC FUNC MP_GAMEMODE GET_PAUSE_MENU_WARP_TO_GAMEMODE() RETURN INT_TO_ENUM(MP_GAMEMODE, g_PauseMenuMissionCreatorData.warpToMode) ENDFUNC FUNC MP_GAMEMODE GET_PAUSE_MENU_WARP_FROM_GAMEMODE() RETURN INT_TO_ENUM(MP_GAMEMODE, g_PauseMenuMissionCreatorData.warpFromMode) ENDFUNC PROC CLEAN_UP_PAUSE_MENU_MISSION_CREATOR_DATA() RESET_PAUSE_MENU_WARP_REQUESTS() PAUSE_MENU_MISSION_CREATOR_STRUCT emptyPauseMenuStruct g_PauseMenuMissionCreatorData = emptyPauseMenuStruct ENDPROC /// PURPOSE: Set the game mode you are warping from PROC SET_PAUSE_MENU_WARP_FROM_MODE(MP_GAMEMODE aGamemode) g_PauseMenuMissionCreatorData.warpFromMode = ENUM_TO_INT(aGamemode) ENDPROC /// PURPOSE: Set the game mode you are warping to PROC SET_PAUSE_MENU_WARP_TO_MODE(MP_GAMEMODE aGamemode) #IF IS_DEBUG_BUILD DEBUG_PRINTCALLSTACK() NET_NL()NET_PRINT("<<<>>>>> ") #ENDIF g_PauseMenuMissionCreatorData.warpToMode = ENUM_TO_INT(aGamemode) ENDPROC /// PURPOSE: Set the co-ordinate the spawning system should place the player at PROC SET_PAUSE_MENU_WARP_TO_VECTOR(VECTOR vWarpCoords) g_PauseMenuMissionCreatorData.vPMVectorToWarpTo = vWarpCoords ENDPROC /// PURPOSE: Sets global bit to notify selector player wants to trigger transition to MP PROC SET_PAUSE_MENU_REQUESTING_A_WARP() #IF IS_DEBUG_BUILD DEBUG_PRINTCALLSTACK() NET_NL()NET_PRINT("<<<>>>>> ") #ENDIF SET_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseRequestingTransition) ENDPROC /// PURPOSE: Sets global bit to notify selector player wants to trigger transition to MP PROC SET_PAUSE_MENU_REQUESTING_A_WARP_TO_MISSION() SET_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseRequestingWarp) ENDPROC /// PURPOSE: Sets global bit to notify selector player wants a new session PROC SET_PAUSE_MENU_REQUESTING_A_NEW_SESSION() SET_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuRequestingNewSession) ENDPROC /// PURPOSE: Sets global bit to notify selector player wants a new session PROC SET_PAUSE_MENU_REQUESTING_TO_CHOOSE_CHAR() SET_BIT(g_PauseMenuMissionCreatorData.iBS_PauseMenuFlags, bsPauseMenuChooseChar) ENDPROC PROC SET_MC_VARS_FROM_PAUSE_MENU() SWITCH INT_TO_ENUM(PAUSE_MENU_CREATOR_TYPE, g_PauseMenuMissionCreatorData.iMissionCreatorType) CASE PM_CREATE_MISSION CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_MISSION") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_MISSION BREAK CASE PM_CREATE_DM CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_DM") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_DEATHMATCH g_FMMC_STRUCT.iTeamDeathmatch = 0 g_FMMC_STRUCT.iVehicleDeathmatch = 0 BREAK CASE PM_CREATE_TDM CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_TDM") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_DEATHMATCH g_FMMC_STRUCT.iTeamDeathmatch = 1 g_FMMC_STRUCT.iVehicleDeathmatch = 0 BREAK CASE PM_CREATE_VDM CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_VDM") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_DEATHMATCH g_FMMC_STRUCT.iTeamDeathmatch = 0 g_FMMC_STRUCT.iVehicleDeathmatch = 1 BREAK CASE PM_CREATE_TVDM CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_TVDM") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_DEATHMATCH g_FMMC_STRUCT.iTeamDeathmatch = 1 g_FMMC_STRUCT.iVehicleDeathmatch = 1 BREAK CASE PM_CREATE_RACE_LAND CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_RACE_LAND") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_RACE g_FMMC_STRUCT.iRaceType = 0 BREAK CASE PM_CREATE_RACE_SEA CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_RACE_SEA") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_RACE g_FMMC_STRUCT.iRaceType = 2 BREAK CASE PM_CREATE_RACE_AIR CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_RACE_AIR") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_RACE g_FMMC_STRUCT.iRaceType = 4 BREAK CASE PM_CREATE_MISSION_TUTORIAL CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_MISSION_TUTORIAL") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_MISSION g_bFMMC_TutorialSelectedFromMpSkyMenu = TRUE BREAK CASE PM_CREATE_DM_TUTORIAL CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_DM_TUTORIAL") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_DEATHMATCH g_FMMC_STRUCT.iTeamDeathmatch = 0 g_FMMC_STRUCT.iVehicleDeathmatch = 0 g_bFMMC_TutorialSelectedFromMpSkyMenu = TRUE BREAK CASE PM_CREATE_RACE_TUTORIAL CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_RACE_TUTORIAL") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_RACE g_FMMC_STRUCT.iRaceType = 0 g_bFMMC_TutorialSelectedFromMpSkyMenu = TRUE BREAK CASE PM_CREATE_SURVIVAL CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_SURVIVAL") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_SURVIVAL BREAK CASE PM_CREATE_HIDEOUT CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_HIDEOUT") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_GANGHIDEOUT BREAK CASE PM_CREATE_SMUGGLING CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_SMUGGLING") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_ARMS_SMUGGLING BREAK CASE PM_CREATE_BASEJUMP CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - PM_CREATE_BASEJUMP") g_FMMC_STRUCT.iMissionType = FMMC_TYPE_BASE_JUMP BREAK DEFAULT CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] SET_MC_VARS_FROM_PAUSE_MENU - Mission creator option not known!", INT_TO_ENUM(PAUSE_MENU_CREATOR_TYPE, g_PauseMenuMissionCreatorData.iMissionCreatorType)) g_FMMC_STRUCT.iMissionType = FMMC_TYPE_MISSION BREAK ENDSWITCH ENDPROC // IS_MP_PASSIVE_MODE_ENABLED() //MOVED TO net_include.sch (due to cyclic header) /// PURPOSE: Returns TRUE if settings have been set for player in crew FUNC BOOL ARE_PLAYERS_MP_SETTINGS_FOR_A_CREW() RETURN GET_MP_BOOL_PLAYER_STAT(MPPLY_CREW_SETTINGS) ENDFUNC /// PURPOSE: Pass TRUE if the player is in a crew PROC SET_PLAYERS_MP_SETTINGS_FOR_A_CREW(BOOL bCrewSettings) SET_MP_BOOL_PLAYER_STAT(MPPLY_CREW_SETTINGS, bCrewSettings) ENDPROC /// PURPOSE: Returns value of spawn location setting. ENUM type MULTIPLAYER_SETTING_SPAWN FUNC MULTIPLAYER_SETTING_SPAWN GET_MP_SPAWN_POINT_SETTING() RETURN INT_TO_ENUM(MULTIPLAYER_SETTING_SPAWN, GET_MP_INT_CHARACTER_STAT(MP_STAT_SPAWN_LOCATION_SETTING)) ENDFUNC FUNC STRING GET_MULTIPLAYER_SETTING_SPAWN_STRING(MULTIPLAYER_SETTING_SPAWN spawnSetting) SWITCH spawnSetting CASE MP_SETTING_SPAWN_NULL RETURN "MP_SETTING_SPAWN_NULL" CASE MP_SETTING_SPAWN_PROPERTY RETURN "MP_SETTING_SPAWN_PROPERTY" CASE MP_SETTING_SPAWN_LAST_POSITION RETURN "MP_SETTING_SPAWN_LAST_POSITION" CASE MP_SETTING_SPAWN_GARAGE RETURN "MP_SETTING_SPAWN_GARAGE" CASE MP_SETTING_SPAWN_RANDOM RETURN "MP_SETTING_SPAWN_RANDOM" CASE MP_SETTING_SPAWN_PRIVATE_YACHT RETURN "MP_SETTING_SPAWN_PRIVATE_YACHT" CASE MP_SETTING_SPAWN_OFFICE RETURN "MP_SETTING_SPAWN_OFFICE" CASE MP_SETTING_SPAWN_CLUBHOUSE RETURN "MP_SETTING_SPAWN_CLUBHOUSE" CASE MP_SETTING_SPAWN_IE_WAREHOUSE RETURN "MP_SETTING_SPAWN_IE_WAREHOUSE" CASE MP_SETTING_SPAWN_BUNKER RETURN "MP_SETTING_SPAWN_BUNKER" CASE MP_SETTING_SPAWN_HANGAR RETURN "MP_SETTING_SPAWN_HANGAR" CASE MP_SETTING_SPAWN_DEFUNCT_BASE RETURN "MP_SETTING_SPAWN_DEFUNCT_BASE" CASE MP_SETTING_SPAWN_NIGHTCLUB RETURN "MP_SETTING_SPAWN_NIGHTCLUB" CASE MP_SETTING_SPAWN_ARENA_GARAGE RETURN "MP_SETTING_SPAWN_ARENA_GARAGE" CASE MP_SETTING_SPAWN_CASINO_APARTMENT RETURN "MP_SETTING_SPAWN_CASINO_APARTMENT" CASE MP_SETTING_SPAWN_ARCADE RETURN "MP_SETTING_SPAWN_ARCADE" CASE MP_SETTING_SPAWN_SUBMARINE RETURN "MP_SETTING_SPAWN_SUBMARINE" CASE MP_SETTING_SPAWN_CAR_MEET RETURN "MP_SETTING_SPAWN_CAR_MEET" CASE MP_SETTING_SPAWN_AUTO_SHOP RETURN "MP_SETTING_SPAWN_AUTO_SHOP" #IF FEATURE_FIXER CASE MP_SETTING_SPAWN_FIXER_HQ RETURN "MP_SETTING_SPAWN_FIXER_HQ" #ENDIF #IF FEATURE_GEN9_EXCLUSIVE CASE MP_SETTING_BIKER_TUTORIAL_BUSINESS RETURN "MP_SETTING_BIKER_TUTORIAL_BUSINESS" #ENDIF CASE MP_SETTING_SPAWN_MAX RETURN "MP_SETTING_SPAWN_MAX" ENDSWITCH RETURN "" ENDFUNC /// PURPOSE: /// Set the stat value of the MP setting: spawn location /// PARAMS: /// spawnSetting - pass valid type of MULTIPLAYER_SETTING_SPAWN PROC SET_MP_SPAWN_POINT_SETTING(MULTIPLAYER_SETTING_SPAWN spawnSetting) CPRINTLN(DEBUG_PAUSE_MENU, "SET_MP_SPAWN_POINT_SETTING - new setting: ", ENUM_TO_INT(spawnSetting)) DEBUG_PRINTCALLSTACK() SET_MP_INT_CHARACTER_STAT(MP_STAT_SPAWN_LOCATION_SETTING, ENUM_TO_INT(spawnSetting)) NETWORK_SET_CURRENT_SPAWN_LOCATION_OPTION(GET_HASH_KEY(GET_MULTIPLAYER_SETTING_SPAWN_STRING(spawnSetting))) ENDPROC /// PURPOSE: Returns value of player title setting. ENUM type MULTIPLAYER_SETTING_TITLE FUNC MULTIPLAYER_SETTING_TITLE GET_MP_CHARACTER_TITLE_SETTING() RETURN INT_TO_ENUM(MULTIPLAYER_SETTING_TITLE, GET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_TITLE_SETTING)) ENDFUNC /// PURPOSE: /// Set the stat value of the MP setting: player title /// PARAMS: /// playerTitleSetting - pass valid type of MULTIPLAYER_SETTING_TITLE PROC SET_MP_CHARACTER_TITLE_SETTING(MULTIPLAYER_SETTING_TITLE playerTitleSetting) CPRINTLN(DEBUG_PAUSE_MENU, "SET_MP_CHARACTER_TITLE_SETTING - new setting: ", ENUM_TO_INT(playerTitleSetting)) SET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_TITLE_SETTING, ENUM_TO_INT(playerTitleSetting)) ENDPROC /// PURPOSE: Returns value of betting odds setting. ENUM type MULTIPLAYER_SETTING_BETTING_ODDS FUNC MULTIPLAYER_SETTING_BETTING_ODDS GET_MP_BETTING_ODDS_SETTING() RETURN INT_TO_ENUM(MULTIPLAYER_SETTING_BETTING_ODDS, GET_MP_INT_PLAYER_STAT(MPPLY_BETTING_ODDS_SETTING)) ENDFUNC /// PURPOSE: /// Set the stat value of the MP setting: betting odds /// PARAMS: /// bettingOddsSetting - pass valid type of MULTIPLAYER_SETTING_BETTING_ODDS PROC SET_MP_PLAYER_BETTING_ODDS_SETTING(MULTIPLAYER_SETTING_BETTING_ODDS bettingOddsSetting) CPRINTLN(DEBUG_PAUSE_MENU, "SET_MP_PLAYER_BETTING_ODDS_SETTING - new setting: ", ENUM_TO_INT(bettingOddsSetting)) SET_MP_INT_PLAYER_STAT(MPPLY_BETTING_ODDS_SETTING, ENUM_TO_INT(bettingOddsSetting)) ENDPROC /// PURPOSE: Returns value of the current quick play animation FUNC INT GET_MP_PLAYER_ANIM_SETTING() RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_ANIM_SETTING) ENDFUNC /// PURPOSE: Returns value of the current quick play animation type FUNC INT GET_MP_PLAYER_ANIM_TYPE() RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_ANIM_TYPE) ENDFUNC /// PURPOSE: Returns value of the current quick play animation FUNC INT GET_MP_PLAYER_VEH_ANIM_SETTING() RETURN GET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_ANIM_VEH_SETTING) ENDFUNC /// PURPOSE: /// Set the stat value of the MP setting: player quick animation /// PARAMS: /// iAnimSetting - pass int for player animation (interaction) PROC SET_MP_PLAYER_ANIM_SETTING(INT iAnimType, INT iAnimSetting) #IF IS_DEBUG_BUILD DEBUG_PRINTCALLSTACK() CPRINTLN(DEBUG_PAUSE_MENU, "SET_MP_PLAYER_ANIM_SETTING - iAnimType = ", iAnimType, " iAnimSetting = ", iAnimSetting, " interaction name: ", INTERACTION_ANIMS_DEBUG_NAME(iAnimType, iAnimSetting)) #ENDIF //MPGlobalsInteractions.bUpdateQuickplayAnim = TRUE // added by neil, to let my system know a value has changed without having to call the stat check every frame SET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_ANIM_SETTING, iAnimSetting) SET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_ANIM_TYPE, iAnimType) g_iCurrentOnFootQuickplayType = iAnimType g_iCurrentOnFootQuickplayAnim = iAnimSetting ENDPROC /// PURPOSE: /// Set the stat value of the MP setting: player quickvehicle animation /// PARAMS: /// iAnimSetting - pass int for player vehicle animation (interaction) PROC SET_MP_PLAYER_VEH_ANIM_SETTING(INT iAnimSetting) CPRINTLN(DEBUG_PAUSE_MENU, "SET_MP_PLAYER_VEH_ANIM_SETTING - new setting: ", iAnimSetting) //MPGlobalsInteractions.bUpdateQuickplayAnimVeh = TRUE // added by neil, to let my system know a value has changed without having to call the stat check every frame SET_MP_INT_CHARACTER_STAT(MP_STAT_PLAYER_ANIM_VEH_SETTING, iAnimSetting) g_iCurrentInVehQuickplayAnim = iAnimSetting ENDPROC FUNC BOOL IS_MP_PLAYER_ANIM_SETTING_CREW_DEFAULT() RETURN (GET_MP_PLAYER_ANIM_TYPE() = ENUM_TO_INT(INTERACTION_ANIM_TYPE_CREW)) //(GET_MP_PLAYER_ANIM_SETTING() = MP_SETTING_QUICK_ANIM_CREW) ENDFUNC FUNC INT GET_MP_SESSION_CREWS_NUM() RETURN MPGlobalsAmbience.iPMLaunchCrewSessionNum ENDFUNC PROC SET_MP_SESSION_CREWS_NUM(INT iNewNum) CPRINTLN(DEBUG_PAUSE_MENU, "SET_MP_SESSION_CREWS_NUM - new value: ", iNewNum) MPGlobalsAmbience.iPMLaunchCrewSessionNum = iNewNum ENDPROC //Purpose: Set the spawn location based on iMenuSpawnLocation PROC SET_MP_SPAWN_POINT_FROM_MENU_OPTION() SWITCH iMenuSpawnLocation CASE SPAWN_APT_1 CASE SPAWN_APT_2 CASE SPAWN_APT_3 CASE SPAWN_APT_4 CASE SPAWN_APT_5 CASE SPAWN_APT_6 #IF FEATURE_SUMMER_2020 CASE SPAWN_APT_7 CASE SPAWN_APT_8 #ENDIF CASE SPAWN_APT_9 //MAX_OWNED_PROPERTIES //OLD PROPERTIES CASE SPAWN_APT_10 SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_PROPERTY) BREAK CASE SPAWN_GAR_1 CASE SPAWN_GAR_2 CASE SPAWN_GAR_3 CASE SPAWN_GAR_4 CASE SPAWN_GAR_5 CASE SPAWN_GAR_6 #IF FEATURE_SUMMER_2020 CASE SPAWN_GAR_7 CASE SPAWN_GAR_8 #ENDIF CASE SPAWN_GAR_9 //MAX_OWNED_PROPERTIES //OLD PROPERTIES CASE SPAWN_GAR_10 SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_GARAGE) BREAK CASE SPAWN_LAST_LOCATION SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_LAST_POSITION) BREAK CASE SPAWN_RANDOM SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_RANDOM) BREAK CASE SPAWN_PRIVATE_YACHT SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_PRIVATE_YACHT) BREAK CASE SPAWN_OFFICE SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_OFFICE) BREAK CASE SPAWN_CLUBHOUSE SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_CLUBHOUSE) BREAK CASE SPAWN_IE_WAREHOUSE SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_IE_WAREHOUSE) BREAK CASE SPAWN_BUNKER SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_BUNKER) BREAK CASE SPAWN_HANGAR SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_HANGAR) BREAK CASE SPAWN_DEFUNCT_BASE SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_DEFUNCT_BASE) BREAK CASE SPAWN_NIGHTCLUB SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_NIGHTCLUB) BREAK CASE SPAWN_ARENA_GARAGE SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_ARENA_GARAGE) BREAK CASE SPAWN_CASINO_APARTMENT SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_CASINO_APARTMENT) BREAK CASE SPAWN_ARCADE SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_ARCADE) BREAK CASE SPAWN_SUBMARINE SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_SUBMARINE) BREAK CASE SPAWN_CAR_MEET SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_CAR_MEET) BREAK CASE SPAWN_AUTO_SHOP SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_AUTO_SHOP) BREAK #IF FEATURE_FIXER CASE SPAWN_FIXER_HQ SET_MP_SPAWN_POINT_SETTING(MP_SETTING_SPAWN_FIXER_HQ) BREAK #ENDIF ENDSWITCH ENDPROC //Purpose: Update the last used property from the spawn location selection PROC SET_LAST_USED_PROPERTY_FROM_MENU_SELECTION() SWITCH iMenuSpawnLocation CASE SPAWN_APT_1 CASE SPAWN_GAR_1 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(0)) BREAK CASE SPAWN_APT_2 CASE SPAWN_GAR_2 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(1)) BREAK CASE SPAWN_APT_3 CASE SPAWN_GAR_3 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(2)) BREAK CASE SPAWN_APT_4 CASE SPAWN_GAR_4 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(3)) BREAK CASE SPAWN_APT_5 CASE SPAWN_GAR_5 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(4)) BREAK CASE SPAWN_PRIVATE_YACHT SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(YACHT_PROPERTY_OWNED_SLOT)) BREAK CASE SPAWN_OFFICE SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0)) BREAK CASE SPAWN_CLUBHOUSE SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE)) BREAK CASE SPAWN_APT_6 CASE SPAWN_GAR_6 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6)) BREAK CASE SPAWN_IE_WAREHOUSE SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_IMPORT_EXPORT_GARAGE_ID(GET_PLAYERS_OWNED_IE_GARAGE(PLAYER_ID()))) BREAK CASE SPAWN_BUNKER SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_FACTORY_ID(GET_OWNED_BUNKER(PLAYER_ID()))) BREAK CASE SPAWN_HANGAR SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_HANGAR_ID(GET_OWNED_HANGAR(PLAYER_ID()))) BREAK CASE SPAWN_DEFUNCT_BASE SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_DEFUNCT_BASE_ID(GET_OWNED_DEFUNCT_BASE(PLAYER_ID()))) BREAK CASE SPAWN_NIGHTCLUB SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_NIGHTCLUB_ID(GET_PLAYERS_OWNED_NIGHTCLUB(PLAYER_ID()))) BREAK CASE SPAWN_ARENA_GARAGE SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_ARENA_GARAGE_ID(GET_PLAYERS_OWNED_ARENA_GARAGE(PLAYER_ID()))) BREAK CASE SPAWN_CASINO_APARTMENT SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_CASINO_APARTMENT_ID(GET_PLAYERS_OWNED_CASINO_APARTMENT(PLAYER_ID()))) BREAK CASE SPAWN_ARCADE SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_ARCADE_PROPERTY_ID(GET_PLAYERS_OWNED_ARCADE_PROPERTY(PLAYER_ID()))) BREAK CASE SPAWN_APT_7 CASE SPAWN_GAR_7 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7)) BREAK CASE SPAWN_APT_8 CASE SPAWN_GAR_8 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8)) BREAK CASE SPAWN_APT_9 CASE SPAWN_GAR_9 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9)) BREAK CASE SPAWN_APT_10 CASE SPAWN_GAR_10 SET_LAST_USED_PROPERTY(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10)) //CDM PROPERTY STAT UPDATE //OLD PROPERTIES BREAK CASE SPAWN_SUBMARINE SET_LAST_USED_SIMPLE_INTERIOR(SIMPLE_INTERIOR_SUBMARINE) BREAK CASE SPAWN_CAR_MEET SET_LAST_USED_SIMPLE_INTERIOR(SIMPLE_INTERIOR_CAR_MEET) BREAK CASE SPAWN_AUTO_SHOP SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_AUTO_SHOP_PROPERTY_ID(GET_PLAYERS_OWNED_AUTO_SHOP_PROPERTY(PLAYER_ID()))) BREAK #IF FEATURE_FIXER CASE SPAWN_FIXER_HQ SET_LAST_USED_SIMPLE_INTERIOR(GET_SIMPLE_INTERIOR_ID_FROM_FIXER_HQ_ID(GET_PLAYERS_OWNED_FIXER_HQ(PLAYER_ID()))) BREAK #ENDIF ENDSWITCH ENDPROC FUNC INT GET_PROPERTY_MENU_SPAWN_INDEX(INT iPropertySlot, BOOL bGarage) IF iPropertySlot <= SPAWN_APT_5 IF NOT bGarage RETURN iPropertySlot ELSE RETURN SPAWN_GAR_1 + iPropertySlot ENDIF ELIF iPropertySlot = PROPERTY_OWNED_SLOT_OFFICE_0 IF NOT bGarage RETURN SPAWN_OFFICE ENDIF ELIF iPropertySlot = PROPERTY_OWNED_SLOT_CLUBHOUSE IF NOT bGarage RETURN SPAWN_CLUBHOUSE ENDIF ELIF iPropertySlot = PROPERTY_OWNED_SLOT_APT_6 IF NOT bGarage RETURN SPAWN_APT_6 ELSE RETURN SPAWN_GAR_6 ENDIF #IF FEATURE_SUMMER_2020 ELIF iPropertySlot = PROPERTY_OWNED_SLOT_APT_7 IF NOT bGarage RETURN SPAWN_APT_7 ELSE RETURN SPAWN_GAR_7 ENDIF ELIF iPropertySlot = PROPERTY_OWNED_SLOT_APT_8 IF NOT bGarage RETURN SPAWN_APT_8 ELSE RETURN SPAWN_GAR_8 ENDIF #ENDIF ELIF iPropertySlot = PROPERTY_OWNED_SLOT_APT_9 IF NOT bGarage RETURN SPAWN_APT_9 ELSE RETURN SPAWN_GAR_9 ENDIF ELIF iPropertySlot = PROPERTY_OWNED_SLOT_APT_10 //MAX_OWNED_PROPERTIES //OLD PROPERTIES IF NOT bGarage RETURN SPAWN_APT_10 ELSE RETURN SPAWN_GAR_10 ENDIF ELIF iPropertySlot = PROPERTY_OWNED_SLOT_IE_WAREHOUSE IF NOT bGarage RETURN SPAWN_IE_WAREHOUSE ENDIF ENDIF RETURN -1 ENDFUNC PROC GET_SPAWN_LOCATION_VALUE() //INT i SWITCH GET_MP_SPAWN_POINT_SETTING() CASE MP_SETTING_SPAWN_PROPERTY iMenuSpawnLocation = GET_PROPERTY_MENU_SPAWN_INDEX(GET_OWNED_PROPERTY_SLOT_INDEX(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastAccessedPropertyID),FALSE) BREAK CASE MP_SETTING_SPAWN_GARAGE iMenuSpawnLocation = GET_PROPERTY_MENU_SPAWN_INDEX(GET_OWNED_PROPERTY_SLOT_INDEX(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastAccessedPropertyID),TRUE) BREAK CASE MP_SETTING_SPAWN_LAST_POSITION iMenuSpawnLocation = SPAWN_LAST_LOCATION BREAK CASE MP_SETTING_SPAWN_RANDOM iMenuSpawnLocation = SPAWN_RANDOM BREAK CASE MP_SETTING_SPAWN_PRIVATE_YACHT iMenuSpawnLocation = SPAWN_PRIVATE_YACHT BREAK CASE MP_SETTING_SPAWN_OFFICE iMenuSpawnLocation = SPAWN_OFFICE BREAK CASE MP_SETTING_SPAWN_CLUBHOUSE iMenuSpawnLocation = SPAWN_CLUBHOUSE BREAK CASE MP_SETTING_SPAWN_IE_WAREHOUSE iMenuSpawnLocation = SPAWN_IE_WAREHOUSE BREAK CASE MP_SETTING_SPAWN_BUNKER iMenuSpawnLocation = SPAWN_BUNKER BREAK CASE MP_SETTING_SPAWN_HANGAR iMenuSpawnLocation = SPAWN_HANGAR BREAK CASE MP_SETTING_SPAWN_DEFUNCT_BASE iMenuSpawnLocation = SPAWN_DEFUNCT_BASE BREAK CASE MP_SETTING_SPAWN_NIGHTCLUB iMenuSpawnLocation = SPAWN_NIGHTCLUB BREAK CASE MP_SETTING_SPAWN_ARENA_GARAGE iMenuSpawnLocation = SPAWN_ARENA_GARAGE BREAK CASE MP_SETTING_SPAWN_CASINO_APARTMENT iMenuSpawnLocation = SPAWN_CASINO_APARTMENT BREAK CASE MP_SETTING_SPAWN_ARCADE iMenuSpawnLocation = SPAWN_ARCADE BREAK CASE MP_SETTING_SPAWN_SUBMARINE iMenuSpawnLocation = SPAWN_SUBMARINE BREAK CASE MP_SETTING_SPAWN_CAR_MEET iMenuSpawnLocation = SPAWN_CAR_MEET BREAK CASE MP_SETTING_SPAWN_AUTO_SHOP iMenuSpawnLocation = SPAWN_AUTO_SHOP BREAK #IF FEATURE_FIXER CASE MP_SETTING_SPAWN_FIXER_HQ iMenuSpawnLocation = SPAWN_FIXER_HQ BREAK #ENDIF ENDSWITCH IF iMenuSpawnLocation > -1 IF iMenuSpawnLocation = SPAWN_APT_1 OR iMenuSpawnLocation = SPAWN_APT_2 OR iMenuSpawnLocation = SPAWN_APT_3 OR iMenuSpawnLocation = SPAWN_APT_4 OR iMenuSpawnLocation = SPAWN_APT_5 OR iMenuSpawnLocation = SPAWN_OFFICE OR iMenuSpawnLocation = SPAWN_CLUBHOUSE OR iMenuSpawnLocation = SPAWN_APT_6 #IF FEATURE_SUMMER_2020 OR iMenuSpawnLocation = SPAWN_APT_7 OR iMenuSpawnLocation = SPAWN_APT_8 #ENDIF OR iMenuSpawnLocation = SPAWN_APT_9 OR iMenuSpawnLocation = SPAWN_APT_10 //MAX_OWNED_PROPERTIES //OLD PROPERTIES INT iOwnedProperty IF iMenuSpawnLocation = SPAWN_OFFICE iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) ELIF iMenuSpawnLocation = SPAWN_CLUBHOUSE iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE) ELIF iMenuSpawnLocation = SPAWN_APT_6 iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6) #IF FEATURE_SUMMER_2020 ELIF iMenuSpawnLocation = SPAWN_APT_7 iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7) ELIF iMenuSpawnLocation = SPAWN_APT_8 iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8) #ENDIF ELIF iMenuSpawnLocation = SPAWN_APT_7 iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7) ELIF iMenuSpawnLocation = SPAWN_APT_8 iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8) ELIF iMenuSpawnLocation = SPAWN_APT_9 iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9) ELIF iMenuSpawnLocation = SPAWN_APT_10 iOwnedProperty = GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10) ENDIF IF iOwnedProperty >= 0 AND iOwnedProperty < (MAX_MP_PROPERTIES+1) IF mpProperties[iOwnedProperty].iType = PROPERTY_TYPE_GARAGE OR (DOES_PLAYER_OWN_PRIVATE_YACHT(PLAYER_ID()) AND GET_OWNED_PROPERTY(0) = 0) IF iMenuSpawnLocation = SPAWN_CLUBHOUSE ELSE iMenuSpawnLocation = GET_PROPERTY_MENU_SPAWN_INDEX(GET_OWNED_PROPERTY_SLOT_INDEX(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastAccessedPropertyID),TRUE) ENDIF ENDIF ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_1 OR iMenuSpawnLocation = SPAWN_GAR_2 OR iMenuSpawnLocation = SPAWN_GAR_3 OR iMenuSpawnLocation = SPAWN_GAR_4 OR iMenuSpawnLocation = SPAWN_GAR_5 OR iMenuSpawnLocation = SPAWN_GAR_6 OR iMenuSpawnLocation = SPAWN_GAR_7 OR iMenuSpawnLocation = SPAWN_GAR_8 OR iMenuSpawnLocation = SPAWN_GAR_9 OR iMenuSpawnLocation = SPAWN_GAR_10 IF GET_OWNED_PROPERTY(GET_OWNED_PROPERTY_SLOT_INDEX(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastAccessedPropertyID)) = 0 iMenuSpawnLocation = SPAWN_LAST_LOCATION ENDIF ENDIF //Set the globals based on the new option SET_MP_SPAWN_POINT_FROM_MENU_OPTION() SET_LAST_USED_PROPERTY_FROM_MENU_SELECTION() ENDIF CPRINTLN(DEBUG_PAUSE_MENU, "GET_SPAWN_LOCATION_VALUE - Current iMenuSpawnLocation = ", iMenuSpawnLocation) ENDPROC /// PURPOSE: Returns the correct text label for the value of a multiplayer setting FUNC STRING GET_MULTIPLAYER_SETTING_TEXT_STRING(MULTIPLAYER_SETTINGS_ENUM aSetting) SWITCH aSetting CASE MP_SETTING_QUICK_ANIM_ON_FOOT IF GET_MP_PLAYER_ANIM_TYPE() = ENUM_TO_INT(INTERACTION_ANIM_TYPE_CREW) RETURN INTERACTION_ANIMS_TEXT_LABEL(ENUM_TO_INT(INTERACTION_ANIM_TYPE_CREW), MPGlobalsInteractions.iMyCrewInteractionAnim) ELSE RETURN INTERACTION_ANIMS_TEXT_LABEL(ENUM_TO_INT(INTERACTION_ANIM_TYPE_PLAYER), GET_MP_PLAYER_ANIM_SETTING()) ENDIF BREAK CASE MP_SETTING_QUICK_ANIM_IN_VEH RETURN INTERACTION_ANIMS_TEXT_LABEL(ENUM_TO_INT(INTERACTION_ANIM_TYPE_IN_CAR), GET_MP_PLAYER_VEH_ANIM_SETTING()) BREAK CASE MP_SETTING_JOINT_CELEBRATION SWITCH GET_MP_INT_CHARACTER_STAT(MP_STAT_MP_CHAR_STAT_RALLY_ANIM) CASE 0 RETURN "PM_TOAST_0"//"mood_Aiming_1" BREAK CASE 1 RETURN "PM_TOAST_1"//"mood_Angry_1" BREAK CASE 2 RETURN "PM_TOAST_2"//"mood_Happy_1" BREAK CASE 3 RETURN "PM_TOAST_3"//"mood_Happy_1" BREAK CASE 4 RETURN "PM_TOAST_4"//"mood_Happy_1" BREAK CASE 5 RETURN "PM_TOAST_5"//"mood_Happy_1" BREAK CASE 6 RETURN "PM_TOAST_6"//"mood_Happy_1" BREAK ENDSWITCH BREAK CASE MP_SETTING_PL_MOOD_NORMAL SWITCH GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_NORMAL) CASE 0 RETURN "PM_MOOD_0"//"mood_Aiming_1" BREAK CASE 1 RETURN "PM_MOOD_1"//"mood_Angry_1" BREAK CASE 2 RETURN "PM_MOOD_2"//"mood_Happy_1" BREAK CASE 3 RETURN "PM_MOOD_3"//"mood_Injured_1" BREAK CASE 4 RETURN "PM_MOOD_4"//"mood_Normal_1" BREAK CASE 5 RETURN "PM_MOOD_5"//"mood_stressed_1" BREAK CASE 6 RETURN "PM_MOOD_6"//"mood_smug_1" BREAK CASE 7 RETURN "PM_MOOD_7"//"mood_sulk_1" BREAK ENDSWITCH BREAK CASE MP_SETTING_PL_MOOD_DM SWITCH GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_DM) CASE 0 RETURN "PM_MOOD_0"//"mood_Aiming_1" BREAK CASE 1 RETURN "PM_MOOD_1"//"mood_Angry_1" BREAK CASE 2 RETURN "PM_MOOD_2"//"mood_Happy_1" BREAK CASE 3 RETURN "PM_MOOD_3"//"mood_Injured_1" BREAK CASE 4 RETURN "PM_MOOD_4"//"mood_Normal_1" BREAK CASE 5 RETURN "PM_MOOD_5"//"mood_stressed_1" BREAK CASE 6 RETURN "PM_MOOD_6"//"mood_smug_1" BREAK CASE 7 RETURN "PM_MOOD_7"//"mood_sulk_1" BREAK ENDSWITCH BREAK CASE MP_SETTING_PL_MOOD_RACE SWITCH GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_RACES) CASE 0 RETURN "PM_MOOD_0"//"mood_Aiming_1" BREAK CASE 1 RETURN "PM_MOOD_1"//"mood_Angry_1" BREAK CASE 2 RETURN "PM_MOOD_2"//"mood_Happy_1" BREAK CASE 3 RETURN "PM_MOOD_3"//"mood_Injured_1" BREAK CASE 4 RETURN "PM_MOOD_4"//"mood_Normal_1" BREAK CASE 5 RETURN "PM_MOOD_5"//"mood_stressed_1" BREAK CASE 6 RETURN "PM_MOOD_6"//"mood_smug_1" BREAK CASE 7 RETURN "PM_MOOD_7"//"mood_sulk_1" BREAK ENDSWITCH BREAK CASE MP_SETTING_MATCHMAKING IF NOT GET_PACKED_STAT_BOOL(PACKED_MP_MATCHMAKING_IS_PRIVATE) RETURN "PM_MATCH_1" ELSE RETURN "PM_MATCH_0" ENDIF BREAK CASE MP_SETTING_SPAWN_LOCATION GET_SPAWN_LOCATION_VALUE() MULTIPLAYER_SETTING_SPAWN iSpawnPoint INT iTemp iSpawnPoint = GET_MP_SPAWN_POINT_SETTING() SWITCH iSpawnPoint CASE MP_SETTING_SPAWN_PROPERTY iTemp = GET_OWNED_PROPERTY_SLOT_INDEX(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastAccessedPropertyID) IF GET_OWNED_PROPERTY(iTemp) > 0 AND GET_OWNED_PROPERTY(iTemp) <= MAX_MP_PROPERTIES tlSettingSpawnLocation = mpproperties[GET_OWNED_PROPERTY(iTemp)].tl_PropertyName IF mpProperties[GET_OWNED_PROPERTY(iTemp)].iType = PROPERTY_TYPE_GARAGE tlSettingSpawnLocation += "G" ELSE tlSettingSpawnLocation += "A" ENDIF IF ARE_STRINGS_EQUAL("A", tlSettingSpawnLocation) OR ARE_STRINGS_EQUAL("G", tlSettingSpawnLocation) //OR GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH IF iTemp = 1 tlSettingSpawnLocation = "PM_SPAWN_A2" ELSE tlSettingSpawnLocation = "PM_SPAWN_A" ENDIF ENDIF ELSE tlSettingSpawnLocation = "PM_SPAWN_H" ENDIF RETURN Get_String_From_TextLabel(tlSettingSpawnLocation) CASE MP_SETTING_SPAWN_GARAGE iTemp = GET_OWNED_PROPERTY_SLOT_INDEX(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedGeneral.iLastAccessedPropertyID) IF GET_OWNED_PROPERTY(iTemp) > 0 AND GET_OWNED_PROPERTY(iTemp) <= MAX_MP_PROPERTIES tlSettingSpawnLocation = mpproperties[GET_OWNED_PROPERTY(iTemp)].tl_PropertyName tlSettingSpawnLocation += "G" IF ARE_STRINGS_EQUAL("G", tlSettingSpawnLocation) //OR GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH IF iTemp = 1 IF mpProperties[GET_OWNED_PROPERTY(iTemp)].iType = PROPERTY_TYPE_GARAGE tlSettingSpawnLocation = "PM_SPAWN_G2" ELSE tlSettingSpawnLocation = "PM_SPAWN_AG2" ENDIF ELSE IF mpProperties[GET_OWNED_PROPERTY(iTemp)].iType = PROPERTY_TYPE_GARAGE tlSettingSpawnLocation = "PM_SPAWN_G" ELSE tlSettingSpawnLocation = "PM_SPAWN_AG" ENDIF ENDIF ENDIF ELSE tlSettingSpawnLocation = "PM_SPAWN_H" ENDIF RETURN Get_String_From_TextLabel(tlSettingSpawnLocation) CASE MP_SETTING_SPAWN_LAST_POSITION RETURN "PM_SPAWN_LL" CASE MP_SETTING_SPAWN_PRIVATE_YACHT RETURN "PM_SPAWN_Y" CASE MP_SETTING_SPAWN_OFFICE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) > 0 tlSettingSpawnLocation = mpproperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0)].tl_PropertyName IF ARE_STRINGS_EQUAL("", tlSettingSpawnLocation) OR ARE_STRINGS_EQUAL("S", tlSettingSpawnLocation) //OR GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH tlSettingSpawnLocation = "PM_SPAWN_OFFICE" ENDIF ENDIF RETURN Get_String_From_TextLabel(tlSettingSpawnLocation) CASE MP_SETTING_SPAWN_CLUBHOUSE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE) > 0 tlSettingSpawnLocation = mpproperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE)].tl_PropertyName IF ARE_STRINGS_EQUAL("", tlSettingSpawnLocation) OR ARE_STRINGS_EQUAL("S", tlSettingSpawnLocation) //OR GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH tlSettingSpawnLocation = "PM_SPAWN_CLUBH" ENDIF ENDIF RETURN Get_String_From_TextLabel(tlSettingSpawnLocation) CASE MP_SETTING_SPAWN_IE_WAREHOUSE RETURN "PM_SPAWN_IEWHS" CASE MP_SETTING_SPAWN_BUNKER tlSettingSpawnLocation = "PM_SPAWN_BNKR" IF GET_OWNED_BUNKER(PLAYER_ID()) != FACTORY_ID_INVALID tlSettingSpawnLocation = GET_FACTORY_NAME_FROM_ID(GET_OWNED_BUNKER(PLAYER_ID())) IF ARE_STRINGS_EQUAL("", tlSettingSpawnLocation) OR ARE_STRINGS_EQUAL("S", tlSettingSpawnLocation) //OR GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH tlSettingSpawnLocation = "PM_SPAWN_BNKR" ENDIF ENDIF RETURN Get_String_From_TextLabel(tlSettingSpawnLocation) CASE MP_SETTING_SPAWN_HANGAR RETURN "PM_SPAWN_HNGR" CASE MP_SETTING_SPAWN_DEFUNCT_BASE RETURN "PM_SPAWN_BASE" CASE MP_SETTING_SPAWN_NIGHTCLUB RETURN "PM_SPAWN_NIGHTC" CASE MP_SETTING_SPAWN_ARENA_GARAGE RETURN "PM_SPAWN_ARENA" CASE MP_SETTING_SPAWN_CASINO_APARTMENT RETURN "PM_SPAWN_CASINO" CASE MP_SETTING_SPAWN_ARCADE RETURN "PM_SPAWN_ARCADE" CASE MP_SETTING_SPAWN_SUBMARINE RETURN "PIM_SUBMARIN" CASE MP_SETTING_SPAWN_CAR_MEET RETURN "PIM_S_CAR_MEET" CASE MP_SETTING_SPAWN_AUTO_SHOP RETURN "PIM_S_AUTO_SHOP" #IF FEATURE_FIXER CASE MP_SETTING_SPAWN_FIXER_HQ RETURN "PIM_S_FIXER_HQ" #ENDIF CASE MP_SETTING_SPAWN_NULL CASE MP_SETTING_SPAWN_RANDOM RETURN "PM_SPAWN_R" ENDSWITCH BREAK CASE MP_SETTING_PLAYER_TITLES SWITCH GET_MP_CHARACTER_TITLE_SETTING() CASE MP_SETTING_TITLE_PERSONAL RETURN "PM_PERSONAL" CASE MP_SETTING_TITLE_CREW RETURN "PM_CREW" ENDSWITCH BREAK CASE MP_SETTING_BETTING_ODDS SWITCH GET_MP_BETTING_ODDS_SETTING() CASE MP_SETTING_ODDS_FRACTIONAL RETURN "PM_ODD_F" CASE MP_SETTING_ODDS_DECIMAL RETURN "PM_ODD_D" CASE MP_SETTING_ODDS_MONEYLINE RETURN "PM_ODD_M" ENDSWITCH BREAK CASE MP_SETTING_AW_JOIN_FROM_SPECTATOR_BOX IF NOT GET_MP_BOOL_PLAYER_STAT(MPPLY_AW_JOINSPEC) RETURN "PM_JOIN" ELSE RETURN "PM_DONTJOIN" ENDIF BREAK CASE MP_SETTING_ALLOW_SPECTATORS IF GET_MP_BOOL_PLAYER_STAT(MPPLY_CAN_SPECTATE) RETURN "PM_ON" ELSE RETURN "PM_OFF" ENDIF BREAK // CASE MP_SETTING_EXPANDED_RADAR // IF GET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_EXPANDED_RADAR) // RETURN "PM_ON" // ELSE // RETURN "PM_OFF" // ENDIF // BREAK // CASE MP_SETTING_EXPANDED_RADAR_NAMES // IF GET_MP_BOOL_PLAYER_STAT(MPPLY_TOGGLE_OFF_BIG_RADAR) // RETURN "PM_OFF" // ELSE // RETURN "PM_ON" // ENDIF // BREAK CASE MP_SETTING_MARKER_DISPLAY SWITCH GET_PACKED_STAT_INT(PACKED_MP_PLAYER_MARKER_DISPLAY) CASE 0 RETURN "PM_DISPLAY_0" CASE 1 RETURN "PM_DISPLAY_1" CASE 2 RETURN "PM_DISPLAY_2" CASE 3 RETURN "PM_DISPLAY_3" ENDSWITCH BREAK CASE MP_SETTING_MATCH_AFTER_NJVS IF IS_PC_VERSION() IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_REMAINHOSTOPTION_PC) RETURN "PM_ON" ELSE RETURN "PM_OFF" ENDIF ELSE IF GET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_MATCHMAKING_AFTER_NJVS) RETURN "PM_ON" ELSE RETURN "PM_OFF" ENDIF ENDIF BREAK CASE MP_SETTING_CONTENT_FILTER SWITCH GET_PACKED_STAT_INT(PACKED_MP_CHAR_CONTENT_FILTERING) CASE ciPAUSE_MENU_CONTENT_TYPE_ALL RETURN "PM_CF_ALL" CASE ciPAUSE_MENU_CONTENT_TYPE_ROCKSTAR RETURN "PM_CF_RSTAR" CASE ciPAUSE_MENU_CONTENT_TYPE_USER RETURN "PM_CF_USER" ENDSWITCH BREAK CASE MP_SETTING_ONE_ON_ONE_DM SWITCH GET_MP_INT_CHARACTER_STAT(MP_STAT_TIME_FOR_ONE_ON_ONE_DM) CASE 0 RETURN "PIM_IDMT0" //5 minutes CASE 1 RETURN "PIM_IDMT1" //10 minutes CASE 2 RETURN "PIM_IDMT2" //15 minutes CASE 3 RETURN "PIM_IDMT3" //20 minutes CASE 4 RETURN "PIM_IDMT4" //30 minutes CASE 5 RETURN "PIM_IDMT5" //45 minutes CASE 6 RETURN "PIM_IDMT6" //60 minutes ENDSWITCH BREAK CASE MP_SETTING_MP_VERSION RETURN GET_ONLINE_VERSION() BREAK ENDSWITCH RETURN "" ENDFUNC FUNC BOOL IS_LOCAL_PLAYER_IN_ACTIVE_CREW() GAMER_HANDLE GamerHandle = GET_LOCAL_GAMER_HANDLE() IF IS_PLAYER_ONLINE() IF NETWORK_CLAN_SERVICE_IS_VALID() AND NETWORK_CLAN_PLAYER_IS_ACTIVE(GamerHandle) RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC //FUNC BOOL IS_LOCAL_PLAYER_ANIM_VALID(INT iAnim) // // //Check if Blow Kiss is Active // IF g_sMPTunables.bvalentine_blow_kiss_anim_active = FALSE // IF iAnim = ENUM_TO_INT(PASSENGER_INTERACTION_BLOW_KISS) // OR iAnim = ENUM_TO_INT(PLAYER_INTERACTION_BLOW_KISS) // CPRINTLN(DEBUG_PAUSE_MENU, "IS_LOCAL_PLAYER_ANIM_VALID - FALSE - BLOW KISS - ON FOOT") // RETURN FALSE // ENDIF // ELSE // CPRINTLN(DEBUG_PAUSE_MENU, "IS_CORONA_PLAYER_ANIM_VALID - g_sMPTunables.bvalentine_blow_kiss_anim_active = TRUE") // ENDIF // CPRINTLN(DEBUG_PAUSE_MENU, "IS_CORONA_PLAYER_ANIM_VALID - TRUE") // RETURN TRUE //ENDFUNC //Purpose: Check if the spawn selection needs to skip any property or garage options (Incrementing) PROC INCREMENT_SPAWN_LOCATION() //Property IF iMenuSpawnLocation = SPAWN_APT_1 IF mpProperties[GET_OWNED_PROPERTY(0)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(0) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 1 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_2 IF mpProperties[GET_OWNED_PROPERTY(1)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(1) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 2 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_3 IF mpProperties[GET_OWNED_PROPERTY(2)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(2) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 3 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_4 IF mpProperties[GET_OWNED_PROPERTY(3)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(3) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 4 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_5 IF mpProperties[GET_OWNED_PROPERTY(4)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(4) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 5 = ", iMenuSpawnLocation) iMenuSpawnLocation++ iMenuSpawnLocation = SPAWN_APT_6 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_6 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 6 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_7 ENDIF ENDIF #IF FEATURE_SUMMER_2020 IF iMenuSpawnLocation = SPAWN_APT_7 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 7 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_8 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_8 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 8 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_9 ENDIF ENDIF #ENDIF IF iMenuSpawnLocation = SPAWN_APT_9 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 9 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_10 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_10 //MAX_OWNED_PROPERTIES //OLD PROPERTIES IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP PROPERTY 10 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_1 ENDIF ENDIF //Garage IF iMenuSpawnLocation = SPAWN_GAR_1 IF GET_OWNED_PROPERTY(0) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 1 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_2 IF GET_OWNED_PROPERTY(1) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 2 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_3 IF GET_OWNED_PROPERTY(2) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 3 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_4 IF GET_OWNED_PROPERTY(3) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 4 = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_5 IF GET_OWNED_PROPERTY(4) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 5 = ", iMenuSpawnLocation) iMenuSpawnLocation++ iMenuSpawnLocation = SPAWN_GAR_6 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_6 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 6 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_7 ENDIF ENDIF #IF FEATURE_SUMMER_2020 IF iMenuSpawnLocation = SPAWN_GAR_7 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 7 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_8 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_8 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 8 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_9 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_9 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 9 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_10 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_10 //MAX_OWNED_PROPERTIES //CDM PROPERTY STAT UPDATE //OLD PROPERTIES IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP GARAGE 10 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_PRIVATE_YACHT ENDIF ENDIF #ENDIF //Yacht IF iMenuSpawnLocation = SPAWN_PRIVATE_YACHT IF NOT DOES_PLAYER_OWN_PRIVATE_YACHT(PLAYER_ID()) OR g_sMPTunables.byacht_disable_yacht_as_spawn_location CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP YACHT = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_OFFICE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) = 0 OR NOT DOES_PROPERTY_HAVE_LIVING_QUATERS_ENABLED(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0)) OR g_sMPTunables.bexec_disable_office_spawn CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP OFFICE = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_CLUBHOUSE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE) = 0 OR BLOCK_CLUBHOUSE_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP CLUBHOUSE = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_IE_WAREHOUSE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_IE_WAREHOUSE) = 0 OR NOT HAS_LOCAL_PLAYER_VIEWED_IE_WAREHOUSE_INTRO_CUTSCENE() OR BLOCK_IE_WAREHOUSE_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP VEH WAREHOUSE = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_BUNKER IF GET_OWNED_BUNKER(PLAYER_ID()) = FACTORY_ID_INVALID OR NOT IS_BUNKER_SAVEBED_PURCHASED() OR NOT HAS_LOCAL_PLAYER_VIEWED_INTERIOR_CUTSCENE(biFmCut_Bunker_Intro_Cutscene) OR BLOCK_BUNKER_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP BUNKER = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_HANGAR IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_HANGAR) = 0 OR NOT IS_HANGAR_PERSONAL_QUARTERS_PURCHASED() OR NOT HAS_LOCAL_PLAYER_VIEWED_INTERIOR_CUTSCENE(biFmCut_Hangar_Intro_Cutscene) OR BLOCK_HANGAR_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP HANGAR = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_DEFUNCT_BASE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_DEFUNCBASE) = 0 OR NOT HAS_LOCAL_PLAYER_PURCHASED_DEFUNCT_BASE_PERSONAL_QUARTERS() OR NOT HAS_LOCAL_PLAYER_VIEWED_INTERIOR_CUTSCENE(biFmCut_Base_Intro_Cutscene) OR BLOCK_DEFUNCT_BASE_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP DEFUNCT BASE = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_NIGHTCLUB IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_NIGHTCLUB) = 0 OR NOT DOES_PLAYER_OWN_A_NIGHTCLUB(PLAYER_ID()) OR NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.bdBusinessHubData.iBSSetupMissionCompleted, PROPERTY_BROADCAST_BS_SETUP_COMPLETE_COLLECT_DJ) //HAS_PLAYER_COMPLETED_NIGHTCLUB_SETUP_MISSION(PLAYER_ID(), MBV_COLLECT_DJ_CRASH) OR BLOCK_NIGHTCLUB_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP NIGHTCLUB = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_ARENA_GARAGE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1) = 0 OR NOT DOES_PLAYER_OWN_AN_ARENA_GARAGE(PLAYER_ID()) OR NOT HAS_LOCAL_PLAYER_PURCHASED_ARENA_GARAGE_PERSONAL_QUARTERS() OR NOT HAS_LOCAL_PLAYER_VIEWED_ARENA_MOCAP_SCENE_2() OR BLOCK_ARENA_GARAGE_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP ARENA GARAGE = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_CASINO_APARTMENT IF NOT DOES_PLAYER_OWN_A_CASINO_APARTMENT(PLAYER_ID()) OR BLOCK_CASINO_APARTMENT_SPAWNING() OR NOT HAS_LOCAL_PLAYER_VIEWED_CASINO_PENTHOUSE_MOCAP() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP CASINO APARTMENT = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_ARCADE IF NOT DOES_PLAYER_OWN_AN_ARCADE_PROPERTY(PLAYER_ID()) OR BLOCK_ARCADE_SPAWNING() OR NOT HAS_LOCAL_PLAYER_PURCHASED_ARCADE_PERSONAL_QUARTERS() OR NOT HAS_LOCAL_PLAYER_COMPLETE_FULL_ARCADE_SETUP() OR NOT HAS_LOCAL_PLAYER_VIEWED_ARCADE_MOCAP() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP ARCADE = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_SUBMARINE IF NOT IS_SUBMARINE_OWNED_BY_CHARACTER() OR BLOCK_SUBMARINE_SPAWNING() OR NOT HAS_LOCAL_PLAYER_VIEWED_HS4_SUBMARINE_MOCAP() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP SUBMARINE = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_CAR_MEET IF BLOCK_CAR_MEET_SPAWNING() OR NOT HAS_LOCAL_PLAYER_VIEWED_CAR_MEET_MOCAP() OR NOT HAS_PLAYER_PURCHASED_CAR_CLUB_MEMBERSHIP(PLAYER_ID()) CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP CAR MEET = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_AUTO_SHOP IF NOT IS_AUTO_SHOP_OWNED_BY_CHARACTER() OR BLOCK_AUTO_SHOP_SPAWNING() OR NOT HAS_LOCAL_PLAYER_PURCHASED_AUTO_SHOP_PERSONAL_QUARTERS(TRUE) OR NOT HAS_LOCAL_PLAYER_COMPLETED_AUTO_SHOP_SETUP_MISSION(TRUE) OR NOT HAS_LOCAL_PLAYER_VIEWED_AUTO_SHOP_SETUP_CUTSCENE() OR NOT HAS_LOCAL_PLAYER_VIEWED_AUTO_SHOP_FINISHED_SETUP_CUTSCENE() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP AUTO SHOP = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF #IF FEATURE_FIXER IF iMenuSpawnLocation = SPAWN_FIXER_HQ IF NOT IS_FIXER_HQ_OWNED_BY_CHARACTER() OR BLOCK_FIXER_HQ_SPAWNING() OR NOT HAS_PLAYER_PURCHASED_FIXER_HQ_UPGRADE_PERSONAL_QUARTERS(PLAYER_ID()) OR NOT HAS_LOCAL_PLAYER_VIEWED_FIXER_HQ_INTRO_CUTSCENE() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP FIXER_HQ = ", iMenuSpawnLocation) iMenuSpawnLocation++ ENDIF ENDIF #ENDIF ENDPROC //Purpose: Check if the spawn selection needs to skip any property or garage options (Decrement) PROC DECREMENT_SPAWN_LOCATION() #IF FEATURE_FIXER IF iMenuSpawnLocation = SPAWN_FIXER_HQ IF NOT IS_FIXER_HQ_OWNED_BY_CHARACTER() OR BLOCK_FIXER_HQ_SPAWNING() OR NOT HAS_PLAYER_PURCHASED_FIXER_HQ_UPGRADE_PERSONAL_QUARTERS(PLAYER_ID()) OR NOT HAS_LOCAL_PLAYER_VIEWED_FIXER_HQ_INTRO_CUTSCENE() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN RIGHT - SKIP FIXER_HQ = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF #ENDIF IF iMenuSpawnLocation = SPAWN_CAR_MEET IF BLOCK_CAR_MEET_SPAWNING() OR NOT HAS_LOCAL_PLAYER_VIEWED_CAR_MEET_MOCAP() OR NOT HAS_PLAYER_PURCHASED_CAR_CLUB_MEMBERSHIP(PLAYER_ID()) CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP CAR MEET = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_AUTO_SHOP IF NOT IS_AUTO_SHOP_OWNED_BY_CHARACTER() OR BLOCK_AUTO_SHOP_SPAWNING() OR NOT HAS_LOCAL_PLAYER_PURCHASED_AUTO_SHOP_PERSONAL_QUARTERS(TRUE) OR NOT HAS_LOCAL_PLAYER_COMPLETED_AUTO_SHOP_SETUP_MISSION(TRUE) OR NOT HAS_LOCAL_PLAYER_VIEWED_AUTO_SHOP_SETUP_CUTSCENE() OR NOT HAS_LOCAL_PLAYER_VIEWED_AUTO_SHOP_FINISHED_SETUP_CUTSCENE() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP CAR MEET = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_SUBMARINE IF NOT IS_SUBMARINE_OWNED_BY_CHARACTER() OR BLOCK_SUBMARINE_SPAWNING() OR NOT HAS_LOCAL_PLAYER_VIEWED_HS4_SUBMARINE_MOCAP() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP SUBMARINE = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_ARCADE IF NOT DOES_PLAYER_OWN_AN_ARCADE_PROPERTY(PLAYER_ID()) OR BLOCK_ARCADE_SPAWNING() OR NOT HAS_LOCAL_PLAYER_PURCHASED_ARCADE_PERSONAL_QUARTERS() OR NOT HAS_LOCAL_PLAYER_COMPLETE_FULL_ARCADE_SETUP() OR NOT HAS_LOCAL_PLAYER_VIEWED_ARCADE_MOCAP() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP ARCADE = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_CASINO_APARTMENT IF NOT DOES_PLAYER_OWN_A_CASINO_APARTMENT(PLAYER_ID()) OR BLOCK_CASINO_APARTMENT_SPAWNING() OR NOT HAS_LOCAL_PLAYER_VIEWED_CASINO_PENTHOUSE_MOCAP() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] INCREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP CASINO APARTMENT = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_ARENA_GARAGE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1) = 0 OR NOT HAS_LOCAL_PLAYER_PURCHASED_ARENA_GARAGE_PERSONAL_QUARTERS() OR NOT HAS_LOCAL_PLAYER_VIEWED_ARENA_MOCAP_SCENE_2() OR BLOCK_ARENA_GARAGE_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP ARENA GARAGE = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_NIGHTCLUB IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_NIGHTCLUB) = 0 OR NOT IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.bdBusinessHubData.iBSSetupMissionCompleted, PROPERTY_BROADCAST_BS_SETUP_COMPLETE_COLLECT_DJ) //HAS_PLAYER_COMPLETED_NIGHTCLUB_SETUP_MISSION(PLAYER_ID(), MBV_COLLECT_DJ_CRASH) OR BLOCK_NIGHTCLUB_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP NIGHTCLUB = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_DEFUNCT_BASE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_DEFUNCBASE) = 0 OR NOT HAS_LOCAL_PLAYER_PURCHASED_DEFUNCT_BASE_PERSONAL_QUARTERS() OR NOT HAS_LOCAL_PLAYER_VIEWED_INTERIOR_CUTSCENE(biFmCut_Base_Intro_Cutscene) OR BLOCK_DEFUNCT_BASE_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP DEFUNCT BASE = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_HANGAR IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_HANGAR) = 0 OR NOT IS_HANGAR_PERSONAL_QUARTERS_PURCHASED() OR NOT HAS_LOCAL_PLAYER_VIEWED_INTERIOR_CUTSCENE(biFmCut_Hangar_Intro_Cutscene) OR BLOCK_HANGAR_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP HANGAR = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_BUNKER IF GET_OWNED_BUNKER(PLAYER_ID()) = FACTORY_ID_INVALID OR NOT IS_BUNKER_SAVEBED_PURCHASED() OR NOT HAS_LOCAL_PLAYER_VIEWED_INTERIOR_CUTSCENE(biFmCut_Bunker_Intro_Cutscene) OR BLOCK_BUNKER_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP BUNKER = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_IE_WAREHOUSE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_IE_WAREHOUSE) = 0 OR NOT HAS_LOCAL_PLAYER_VIEWED_IE_WAREHOUSE_INTRO_CUTSCENE() OR BLOCK_IE_WAREHOUSE_SPAWNING() CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP VEH WAREHOUSE = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_CLUBHOUSE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_CLUBHOUSE) = 0 OR BLOCK_CLUBHOUSE_SPAWNING() //OR NOT DOES_PROPERTY_HAVE_LIVING_QUATERS_ENABLED(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0)) //OR g_sMPTunables.bexec_disable_office_spawn CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP CLUBHOUSE = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_OFFICE IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0) = 0 OR NOT DOES_PROPERTY_HAVE_LIVING_QUATERS_ENABLED(GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_OFFICE_0)) OR g_sMPTunables.bexec_disable_office_spawn CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP OFFICE= ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF //Yacht IF iMenuSpawnLocation = SPAWN_PRIVATE_YACHT IF NOT DOES_PLAYER_OWN_PRIVATE_YACHT(PLAYER_ID()) OR g_sMPTunables.byacht_disable_yacht_as_spawn_location CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP YACHT = ", iMenuSpawnLocation) iMenuSpawnLocation-- iMenuSpawnLocation = SPAWN_GAR_6 ENDIF ENDIF //Garage IF iMenuSpawnLocation = SPAWN_GAR_10 //MAX_OWNED_PROPERTIES //CDM PROPERTY STAT UPDATE //OLD PROPERTIES IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 10 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_9 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_9 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 9 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_8 ENDIF ENDIF #IF FEATURE_SUMMER_2020 IF iMenuSpawnLocation = SPAWN_GAR_8 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 8 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_7 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_7 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 7 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_6 ENDIF ENDIF #ENDIF IF iMenuSpawnLocation = SPAWN_GAR_6 IF GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 6 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_5 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_5 IF GET_OWNED_PROPERTY(4) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 5 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_GAR_4 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_4 IF GET_OWNED_PROPERTY(3) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 4 = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_3 IF GET_OWNED_PROPERTY(2) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 3 = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_2 IF GET_OWNED_PROPERTY(1) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 2 = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_GAR_1 IF GET_OWNED_PROPERTY(0) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP GARAGE 1 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_6 #IF FEATURE_SUMMER_2020 iMenuSpawnLocation = SPAWN_APT_8 #ENDIF ENDIF ENDIF //Property IF iMenuSpawnLocation = SPAWN_APT_10 //MAX_OWNED_PROPERTIES //CDM PROPERTY STAT UPDATE //OLD PROPERTIES IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_10) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 10 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_9 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_9 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_9) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 9 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_8 ENDIF ENDIF #IF FEATURE_SUMMER_2020 IF iMenuSpawnLocation = SPAWN_APT_8 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_8) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 8 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_7 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_7 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_7) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 7 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_6 ENDIF ENDIF #ENDIF IF iMenuSpawnLocation = SPAWN_APT_6 IF mpProperties[GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(PROPERTY_OWNED_SLOT_APT_6) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 6 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_5 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_5 IF mpProperties[GET_OWNED_PROPERTY(4)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(4) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 5 = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_APT_4 ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_4 IF mpProperties[GET_OWNED_PROPERTY(3)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(3) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 4 = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_3 IF mpProperties[GET_OWNED_PROPERTY(2)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(2) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 3 = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_2 IF mpProperties[GET_OWNED_PROPERTY(1)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(1) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 2 = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation = SPAWN_APT_1 IF mpProperties[GET_OWNED_PROPERTY(0)].iType = PROPERTY_TYPE_GARAGE OR GET_OWNED_PROPERTY(0) = 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - SKIP PROPERTY 1 = ", iMenuSpawnLocation) iMenuSpawnLocation-- ENDIF ENDIF IF iMenuSpawnLocation < 0 CPRINTLN(DEBUG_PAUSE_MENU, "[PM_MissionCreator_Public] DECREMENT_SPAWN_LOCATION - SPAWN LEFT - INVALID = ", iMenuSpawnLocation) iMenuSpawnLocation = SPAWN_RANDOM ENDIF ENDPROC FUNC BOOL PLAYER_CAN_CHANGE_ANIM_MISS_CREATOR(PED_INDEX pedId) IF NETWORK_IS_ACTIVITY_SESSION() IF IS_LOCAL_PLAYER_IN_ARENA_SPECTATOR_BOX() RETURN TRUE ENDIF IF IS_THIS_ROCKSTAR_MISSION_NEW_VS_VEHICULAR_VENDETTA(g_FMMC_STRUCT.iAdversaryModeType) OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_DCTL(g_FMMC_STRUCT.iAdversaryModeType) OR IS_THIS_ROCKSTAR_MISSION_NEW_VS_TURF_WARZONE(g_FMMC_STRUCT.iAdversaryModeType) RETURN FALSE ENDIF IF IS_THIS_AN_ADVERSARY_MODE_MISSION(g_FMMC_STRUCT.iRootContentIDHash, g_FMMC_STRUCT.iAdversaryModeType) RETURN FALSE ENDIF ENDIF UNUSED_PARAMETER(pedId) RETURN TRUE ENDFUNC /// PURPOSE: Increments setting option in direction passed PROC INCREMENT_PAUSE_MENU_SETTING(INT iSetting, BOOL nextSetting) MULTIPLAYER_SETTINGS_ENUM aSetting = INT_TO_ENUM(MULTIPLAYER_SETTINGS_ENUM, iSetting) INT iCurrentSetting // INT iLoop SWITCH aSetting // CASE MP_SETTING_PASSIVE_MODE // IF IS_MP_PASSIVE_MODE_ENABLED() // CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISABLE_MP_PASSIVE_MODE 2") // DISABLE_MP_PASSIVE_MODE() // ELSE // IF CAN_USE_PASSIVE_MODE() = 0 // CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] ENABLE_MP_PASSIVE_MODE 2") // ENABLE_MP_PASSIVE_MODE() // ENDIF // ENDIF // BREAK CASE MP_SETTING_QUICK_ANIM_ON_FOOT IF IS_NET_PLAYER_OK(PLAYER_ID()) AND IS_SAFE_TO_PLAY_ON_FOOT_INTERACTION() AND PLAYER_CAN_CHANGE_ANIM_MISS_CREATOR(player_ped_id()) AND !SHOULD_BLOCK_QUICK_ACTION_INTERACTION() iCurrentSetting = GET_MP_PLAYER_ANIM_SETTING() INT iAnimType iAnimType = GET_MP_PLAYER_ANIM_TYPE() IF iAnimType = ENUM_TO_INT(INTERACTION_ANIM_TYPE_CREW) CPRINTLN(DEBUG_PAUSE_MENU, "MP_SETTING_QUICK_ANIM_ON_FOOT - iAnimType = INTERACTION_ANIM_TYPE_CREW") IF nextSetting iCurrentSetting = 0 ELSE iCurrentSetting = (GET_MAX_PLAYER_INTERACTIONS()-1) ENDIF iAnimType = ENUM_TO_INT(INTERACTION_ANIM_TYPE_PLAYER) ELSE CPRINTLN(DEBUG_PAUSE_MENU, "MP_SETTING_QUICK_ANIM_ON_FOOT - iAnimType = INTERACTION_ANIM_TYPE_PLAYER") iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 IF MPGlobalsInteractions.iMyCrewInteractionAnim != -1 AND IS_LOCAL_PLAYER_IN_ACTIVE_CREW() iCurrentSetting = MPGlobalsInteractions.iMyCrewInteractionAnim //MP_SETTING_QUICK_ANIM_CREW iAnimType = ENUM_TO_INT(INTERACTION_ANIM_TYPE_CREW) ELSE iCurrentSetting = (GET_MAX_PLAYER_INTERACTIONS()-1) iAnimType = ENUM_TO_INT(INTERACTION_ANIM_TYPE_PLAYER) ENDIF ENDIF IF iCurrentSetting > GET_MAX_PLAYER_INTERACTIONS()-1 IF MPGlobalsInteractions.iMyCrewInteractionAnim != -1 AND IS_LOCAL_PLAYER_IN_ACTIVE_CREW() iCurrentSetting = MPGlobalsInteractions.iMyCrewInteractionAnim //MP_SETTING_QUICK_ANIM_CREW iAnimType = ENUM_TO_INT(INTERACTION_ANIM_TYPE_CREW) ELSE iCurrentSetting = 0 iAnimType = ENUM_TO_INT(INTERACTION_ANIM_TYPE_PLAYER) ENDIF ENDIF ENDIF SET_MP_PLAYER_ANIM_SETTING(iAnimType, iCurrentSetting) ENDIF BREAK CASE MP_SETTING_QUICK_ANIM_IN_VEH IF IS_NET_PLAYER_OK(PLAYER_ID()) AND IS_SAFE_TO_PLAY_IN_CAR_INTERACTION() AND PLAYER_CAN_CHANGE_ANIM_MISS_CREATOR(player_ped_id()) AND !SHOULD_BLOCK_QUICK_ACTION_INTERACTION() iCurrentSetting = GET_MP_PLAYER_VEH_ANIM_SETTING() iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = (GET_MAX_PASSENGER_INTERACTIONS()-1) ENDIF IF iCurrentSetting > GET_MAX_PASSENGER_INTERACTIONS()-1 iCurrentSetting = 0 ENDIF SET_MP_PLAYER_VEH_ANIM_SETTING(iCurrentSetting) ENDIF BREAK CASE MP_SETTING_JOINT_CELEBRATION iCurrentSetting = GET_MP_INT_CHARACTER_STAT(MP_STAT_MP_CHAR_STAT_RALLY_ANIM) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = 6 ENDIF IF iCurrentSetting > 6 iCurrentSetting = 0 ENDIF SET_MP_INT_CHARACTER_STAT(MP_STAT_MP_CHAR_STAT_RALLY_ANIM, iCurrentSetting) BREAK CASE MP_SETTING_PL_MOOD_RACE iCurrentSetting = GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_RACES) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = (MAX_PLAYER_MOODS-1) ENDIF IF iCurrentSetting >= MAX_PLAYER_MOODS iCurrentSetting = 0 ENDIF SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_RACES, iCurrentSetting) MPGlobalsAmbience.bUpdatePlayerMoodRace = TRUE BREAK CASE MP_SETTING_PL_MOOD_NORMAL iCurrentSetting = GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_NORMAL) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = (MAX_PLAYER_MOODS-1) ENDIF IF iCurrentSetting >= MAX_PLAYER_MOODS iCurrentSetting = 0 ENDIF SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_NORMAL, iCurrentSetting) MPGlobalsAmbience.bUpdatePlayerMoodNormal = TRUE BREAK CASE MP_SETTING_PL_MOOD_DM iCurrentSetting = GET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_DM) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = (MAX_PLAYER_MOODS-1) ENDIF IF iCurrentSetting >= MAX_PLAYER_MOODS iCurrentSetting = 0 ENDIF SET_MP_INT_CHARACTER_STAT(MP_STAT_CHAR_MOOD_DM, iCurrentSetting) MPGlobalsAmbience.bUpdatePlayerMoodDM = TRUE BREAK CASE MP_SETTING_MATCHMAKING IF GET_PACKED_STAT_BOOL(PACKED_MP_MATCHMAKING_IS_PRIVATE) iCurrentSetting = 0 SET_PACKED_STAT_BOOL(PACKED_MP_MATCHMAKING_IS_PRIVATE, FALSE) ELSE iCurrentSetting = 1 SET_PACKED_STAT_BOOL(PACKED_MP_MATCHMAKING_IS_PRIVATE, TRUE) ENDIF BREAK CASE MP_SETTING_SPAWN_LOCATION CPRINTLN(DEBUG_PAUSE_MENU, "MP_SETTING_SPAWN_LOCATION - OLD iMenuSpawnLocation = ", iMenuSpawnLocation) IF nextSetting //Jump to the begining of the menu IF iMenuSpawnLocation = SPAWN_RANDOM iMenuSpawnLocation = SPAWN_APT_1 ELSE iMenuSpawnLocation++ ENDIF INCREMENT_SPAWN_LOCATION() CPRINTLN(DEBUG_PAUSE_MENU, "MP_SETTING_SPAWN_LOCATION - NEW iMenuSpawnLocation = ", iMenuSpawnLocation) ELSE IF iMenuSpawnLocation = SPAWN_APT_1 //Jump to the begining of the menu iMenuSpawnLocation = SPAWN_RANDOM ELSE iMenuSpawnLocation-- ENDIF DECREMENT_SPAWN_LOCATION() CPRINTLN(DEBUG_PAUSE_MENU, "MP_SETTING_SPAWN_LOCATION - NEW iMenuSpawnLocation = ", iMenuSpawnLocation) ENDIF //Set the globals based on the new option SET_MP_SPAWN_POINT_FROM_MENU_OPTION() SET_LAST_USED_PROPERTY_FROM_MENU_SELECTION() BREAK CASE MP_SETTING_PLAYER_TITLES iCurrentSetting = ENUM_TO_INT(GET_MP_CHARACTER_TITLE_SETTING()) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = ENUM_TO_INT(MP_SETTING_TITLE_MAX) - 1 ENDIF IF iCurrentSetting >= ENUM_TO_INT(MP_SETTING_TITLE_MAX) iCurrentSetting = 0 ENDIF SET_MP_CHARACTER_TITLE_SETTING(INT_TO_ENUM(MULTIPLAYER_SETTING_TITLE, iCurrentSetting)) BREAK CASE MP_SETTING_BETTING_ODDS iCurrentSetting = ENUM_TO_INT(GET_MP_BETTING_ODDS_SETTING()) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = ENUM_TO_INT(MP_SETTING_ODDS_MAX) - 1 ENDIF IF iCurrentSetting >= ENUM_TO_INT(MP_SETTING_ODDS_MAX) iCurrentSetting = 0 ENDIF SET_MP_PLAYER_BETTING_ODDS_SETTING(INT_TO_ENUM(MULTIPLAYER_SETTING_BETTING_ODDS, iCurrentSetting)) BREAK CASE MP_SETTING_SUICIDE //IF GET_PLAYER_CASH(PLAYER_ID()) >= KILL_YOURSELF_COST // GIVE_LOCAL_PLAYER_CASH(-KILL_YOURSELF_COST, TRUE) g_MultiplayerSettings.g_bSuicide = TRUE CPRINTLN(DEBUG_PAUSE_MENU, "PAUSE MENU - MP_SETTING_SUICIDE - DONE") //ELSE // CPRINTLN(DEBUG_PAUSE_MENU, "PAUSE MENU - MP_SETTING_SUICIDE - PLAYER CAN'T AFFORD $", KILL_YOURSELF_COST) //ENDIF BREAK CASE MP_SETTING_AW_JOIN_FROM_SPECTATOR_BOX IF NOT GET_MP_BOOL_PLAYER_STAT(MPPLY_AW_JOINSPEC) // Don't Join iCurrentSetting = 0 IF DOES_PLAYER_OWN_AN_ARENA_GARAGE(PLAYER_ID()) SET_MP_BOOL_PLAYER_STAT(MPPLY_AW_JOINSPEC, TRUE) SET_LOCAL_PLAYER_STAYS_IN_ARENA_BOX_BETWEEN_ROUNDS(TRUE) ENDIF ELSE // Join iCurrentSetting = 1 IF DOES_PLAYER_OWN_AN_ARENA_GARAGE(PLAYER_ID()) SET_MP_BOOL_PLAYER_STAT(MPPLY_AW_JOINSPEC, FALSE) SET_LOCAL_PLAYER_STAYS_IN_ARENA_BOX_BETWEEN_ROUNDS(FALSE) ENDIF ENDIF BREAK CASE MP_SETTING_ALLOW_SPECTATORS IF GET_MP_BOOL_PLAYER_STAT(MPPLY_CAN_SPECTATE) iCurrentSetting = 0 SET_MP_BOOL_PLAYER_STAT(MPPLY_CAN_SPECTATE, FALSE) ELSE iCurrentSetting = 1 SET_MP_BOOL_PLAYER_STAT(MPPLY_CAN_SPECTATE, TRUE) ENDIF BREAK // // CASE MP_SETTING_EXPANDED_RADAR // IF GET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_EXPANDED_RADAR) // iCurrentSetting = 0 // SET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_EXPANDED_RADAR, FALSE) // ELSE // iCurrentSetting = 1 // SET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_EXPANDED_RADAR, TRUE) // ENDIF // BREAK // // CASE MP_SETTING_EXPANDED_RADAR_NAMES // IF GET_MP_BOOL_PLAYER_STAT(MPPLY_TOGGLE_OFF_BIG_RADAR) // iCurrentSetting = 0 // SET_MP_BOOL_PLAYER_STAT(MPPLY_TOGGLE_OFF_BIG_RADAR, FALSE) // ELSE // iCurrentSetting = 1 // SET_MP_BOOL_PLAYER_STAT(MPPLY_TOGGLE_OFF_BIG_RADAR, TRUE) // ENDIF // BREAK CASE MP_SETTING_MARKER_DISPLAY iCurrentSetting = GET_PACKED_STAT_INT(PACKED_MP_PLAYER_MARKER_DISPLAY) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = 3 ENDIF IF iCurrentSetting > 3 iCurrentSetting = 0 ENDIF IF iCurrentSetting = 1 // Name & Crew Tag IF IS_PLAYSTATION_PLATFORM() IF !NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_EVERYONE) OR !NETWORK_HAVE_SCS_PRIVATE_MSG_PRIV() iCurrentSetting = 2 ENDIF ENDIF ENDIF SET_PACKED_STAT_INT(PACKED_MP_PLAYER_MARKER_DISPLAY, iCurrentSetting) BREAK CASE MP_SETTING_SESSION_CREWS iCurrentSetting = GET_MP_SESSION_CREWS_NUM() iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < PAUSE_MENU_MIN_SESSION_CREWS iCurrentSetting = PAUSE_MENU_MAX_SESSION_CREWS ENDIF IF iCurrentSetting > PAUSE_MENU_MAX_SESSION_CREWS iCurrentSetting = PAUSE_MENU_MIN_SESSION_CREWS ENDIF SET_MP_SESSION_CREWS_NUM(iCurrentSetting) // SET_MP_SESSION_CREWS_NUM(0) BREAK CASE MP_SETTING_MATCH_AFTER_NJVS IF !g_sMPTunables.bDisableNjvsQuickMatch IF IS_PC_VERSION() IF GET_MP_BOOL_CHARACTER_STAT(MP_STAT_REMAINHOSTOPTION_PC) iCurrentSetting = 1 SET_MP_BOOL_CHARACTER_STAT(MP_STAT_REMAINHOSTOPTION_PC, FALSE) PRINTLN("[TS] SET_MP_BOOL_CHARACTER_STAT(MP_STAT_REMAINHOSTOPTION_PC, FALSE)") ELSE iCurrentSetting = 0 SET_MP_BOOL_CHARACTER_STAT(MP_STAT_REMAINHOSTOPTION_PC, TRUE) PRINTLN("[TS] SET_MP_BOOL_CHARACTER_STAT(MP_STAT_REMAINHOSTOPTION_PC, TRUE)") ENDIF ELSE IF GET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_MATCHMAKING_AFTER_NJVS) iCurrentSetting = 1 SET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_MATCHMAKING_AFTER_NJVS, FALSE) PRINTLN("[TS] SET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_MATCHMAKING_AFTER_NJVS, FALSE)") ELSE iCurrentSetting = 0 SET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_MATCHMAKING_AFTER_NJVS, TRUE) PRINTLN("[TS] SET_PACKED_STAT_BOOL(PACKED_MP_TOGGLE_MATCHMAKING_AFTER_NJVS, TRUE)") ENDIF ENDIF ENDIF BREAK CASE MP_SETTING_CONTENT_FILTER iCurrentSetting = GET_PACKED_STAT_INT(PACKED_MP_CHAR_CONTENT_FILTERING) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = (PAUSE_MENU_MAX_CONTENT_FILTER_OPTIONS-1) ENDIF IF IS_ACCOUNT_OVER_17_FOR_UGC() AND NETWORK_HAVE_USER_CONTENT_PRIVILEGES() IF iCurrentSetting >= PAUSE_MENU_MAX_CONTENT_FILTER_OPTIONS iCurrentSetting = 0 ENDIF ELSE IF iCurrentSetting >= PAUSE_MENU_MAX_CONTENT_FILTER_OPTIONS-1 iCurrentSetting = 0 ENDIF ENDIF PRINTLN("[TS] SET_PACKED_STAT_INT(SET_PACKED_STAT_INT, ", iCurrentSetting, ")") SET_PACKED_STAT_INT(PACKED_MP_CHAR_CONTENT_FILTERING, iCurrentSetting) BREAK CASE MP_SETTING_ONE_ON_ONE_DM iCurrentSetting = GET_MP_INT_CHARACTER_STAT(MP_STAT_TIME_FOR_ONE_ON_ONE_DM) iCurrentSetting += PICK_INT(nextSetting, 1, -1) IF iCurrentSetting < 0 iCurrentSetting = (PAUSE_MENU_MAX_ONE_ON_ONE_DM-1) ENDIF IF iCurrentSetting >= PAUSE_MENU_MAX_ONE_ON_ONE_DM iCurrentSetting = 0 ENDIF PRINTLN("[TS] SET_PACKED_STAT_INT(SET_PACKED_STAT_INT, ", iCurrentSetting, ")") SET_MP_INT_CHARACTER_STAT(MP_STAT_TIME_FOR_ONE_ON_ONE_DM, iCurrentSetting) BREAK ENDSWITCH ENDPROC