Files
2025-09-29 00:52:08 +02:00

2782 lines
131 KiB
Scheme
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/***********************************
* Name: PauseMenu_MP_Public.sch
* Author: James Adwick
* Date: 05/11/2012
* Purpose: Common functions for
* MP pause menu screens
***********************************/
USING "globals.sch"
USING "PauseMenu_public.sch"
USING "fmmc_cloud_loader.sch"
USING "commands_zone.sch"
USING "mp_scaleform_functions_xml.sch"
USING "net_time_trials.sch"
USING "DLC_Content_Controller.sch"
#IF FEATURE_GEN9_EXCLUSIVE
USING "net_hsw_time_trials.sch"
#ENDIF
ENUM PAUSE_MENU_MP_GLOBAL_STATE
PAUSE_MENU_GLOBAL_STATE_INIT = 0,
PAUSE_MENU_GLOBAL_STATE_DISPLAYING,
PAUSE_MENU_GLOBAL_STATE_LOAD_PLAYLIST_FOR_EDIT,
PAUSE_MENU_GLOBAL_STATE_EDIT_PLAYLIST,
PAUSE_MENU_GLOBAL_STATE_SAVE_PLAYLIST,
PAUSE_MENU_GLOBAL_STATE_DELETE_PLAYLIST,
PAUSE_MENU_GLOBAL_STATE_DELETE_PLAYLIST_BOOKMARK,
PAUSE_MENU_GLOBAL_STATE_CLOUD_WARNING_MESSAGE,
PAUSE_MENU_GLOBAL_STATE_WARNING_MESSAGE,
PAUSE_MENU_GLOBAL_STATE_COLUMN_WARNING_MESSAGE,
PAUSE_MENU_GLOBAL_STATE_PUBLISH_MISSION,
PAUSE_MENU_GLOBAL_STATE_NOT_AVAILABLE,
PAUSE_MENU_GLOBAL_STATE_QUICK_PLAY_JOIN,
PAUSE_MENU_GLOBAL_STATE_QUALIFYING_PLAYLIST_JOIN,
PAUSE_MENU_GLOBAL_STATE_EVENT_PLAYLIST_JOIN,
PAUSE_MENU_GLOBAL_STATE_COLUMN_NAME_CHALLENGE,
PAUSE_MENU_GLOBAL_STATE_ADD_BOOKMARK,
PAUSE_MENU_GLOBAL_STATE_DELETE_BOOKMARK,
PAUSE_MENU_GLOBAL_STATE_REPORT_UGC,
PAUSE_MENU_GLOBAL_STATE_CLEANUP,
PAUSE_MENU_GLOBAL_STATE_ACCOUNT_PICKER,
PAUSE_MENU_GLOBAL_STATE_MIGRATION_STATUS
// PAUSE_MENU_RUNNING_STARTER_PACK_BROWSER
ENDENUM
PAUSE_MENU_MP_GLOBAL_STATE pauseMenuGlobalState
// *********** SCALEFORM FUNCTIONS ***********
/// PURPOSE:
/// Sets up a column to be shown in the PauseMenu Scaleform
/// After all the data for a given column is set up, call PM_DISPLAY_DATA_SLOT!
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iMenuId - Which menu this is considered
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// bActive - Appears grayed out or not
/// pszLabel - Stringtable identifier to display.
PROC MP_SET_DATA_SLOT(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, BOOL bActive, STRING pszLabel, BOOL bRockstarVerified = FALSE, INT iMissionType = 0, BOOL bPlayed = FALSE)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) //-1) // active or not
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel) // text label
IF bRockstarVerified
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // rockstar verified or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // rockstar verified or not
ENDIF
IF bPlayed
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(21) // VALID ICON
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bPlayed)
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMissionType) // mission type
END_SCALEFORM_MOVIE_METHOD()
ENDIF
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] MP_SET_DATA_SLOT - Column ", iColumn, " Index ", iMenuIndex)
ENDPROC
/// PURPOSE: Set up a row in pause menu with setting options
PROC MP_SET_DATA_SLOT_SETTING(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING pszLabel, STRING tlOption)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(tlOption)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE: Update a row in the pause menu for a setting option
PROC MP_UPDATE_DATA_SLOT_SETTING(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING pszLabel, STRING tlOption)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("UPDATE_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(tlOption)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE: Set up a row in pause menu with number options
PROC MP_SET_DATA_SLOT_SETTING_INT(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING pszLabel, INT iNumber, BOOL bActive = TRUE)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
//**TWH - CMcM - #1416411 - Greyed out and disabled Crew options when the player didnt have a crew. Had to update MP_SET_DATA_SLOT_SETTING_INT to allow inactive entries.
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) //-1) // active or not
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
TEXT_LABEL_15 tlNumber = "NUMBER"
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(tlNumber)
ADD_TEXT_COMPONENT_INTEGER(iNumber)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE: Update a row in pause menu with number options
PROC MP_UPDATE_DATA_SLOT_SETTING_INT(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING pszLabel, INT iNumber)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("UPDATE_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
TEXT_LABEL_15 tlNumber = "NUMBER"
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(tlNumber)
ADD_TEXT_COMPONENT_INTEGER(iNumber)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE: Set up a row in pause menu with setting options
PROC MP_SET_DATA_SLOT_SETTING_PANEL(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, INT iType, STRING pszLabel, STRING tlOption, BOOL bActive = TRUE, FLOAT fOptionFloat=-1.0)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] MP_SET_DATA_SLOT_SETTING_PANEL - iMenuIndex ", iMenuIndex)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iType) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) // active or not
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel)
IF NOT IS_STRING_NULL_OR_EMPTY(tlOption)
IF DOES_TEXT_LABEL_EXIST(tlOption)
PRINTLN("MP_UPDATE_DATA_SLOT_SETTING_PANEL exists tlOption = ", tlOption)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(tlOption)
IF fOptionFloat>-1.0
IF ARE_STRINGS_EQUAL(tlOption, "PM_CASH")
ADD_TEXT_COMPONENT_FLOAT(fOptionFloat, 0)
ELSE
ADD_TEXT_COMPONENT_FLOAT(fOptionFloat, 2)
ENDIF
ENDIF
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
ELSE
PRINTLN("MP_UPDATE_DATA_SLOT_SETTING_PANEL tlOption = ", tlOption)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM1")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(tlOption)
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
ENDIF
ENDIF
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE: Update a row in the pause menu for a setting option
PROC MP_UPDATE_DATA_SLOT_SETTING_PANEL(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, INT iType, STRING pszLabel, STRING tlOption, BOOL bActive = TRUE, FLOAT fOptionFloat=-1.0)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("UPDATE_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iType) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(-1) // active or not
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel)
IF NOT IS_STRING_NULL_OR_EMPTY(tlOption)
IF DOES_TEXT_LABEL_EXIST(tlOption)
PRINTLN("MP_UPDATE_DATA_SLOT_SETTING_PANEL exists tlOption = ", tlOption)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(tlOption)
IF fOptionFloat>-1.0
IF ARE_STRINGS_EQUAL(tlOption, "PM_CASH")
ADD_TEXT_COMPONENT_FLOAT(fOptionFloat, 0)
ELSE
ADD_TEXT_COMPONENT_FLOAT(fOptionFloat, 2)
ENDIF
ENDIF
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
ELSE
PRINTLN("MP_UPDATE_DATA_SLOT_SETTING_PANEL tlOption = ", tlOption)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRTNM1")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(tlOption)
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
ENDIF
ENDIF
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Updates a column to be shown in the PauseMenu Scaleform
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iMenuId - Which menu this is considered
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// bActive - Appears grayed out or not
/// pszLabel - Stringtable identifier to display.
PROC MP_UPDATE_DATA_SLOT(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, BOOL bActive, STRING pszLabel, BOOL bRockstarVerified = FALSE, INT iMissionType = 0)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("UPDATE_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) //-1) // active or not
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel) // text label
IF bRockstarVerified
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // rockstar verified or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // rockstar verified or not
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMissionType) // mission type
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
FUNC INT MP_GET_MISSION_ICON_FOR_PAUSE_MENU(INT iMissionType, INT iMissionSubType, INT iAdversaryModeType)
INT iMissionTypeIcon = iMissionType
IF iMissionTypeIcon = -1
iMissionTypeIcon = 0
ELIF iMissionTypeIcon = FMMC_TYPE_BASE_JUMP
iMissionTypeIcon = 9
ELIF iMissionTypeIcon = FMMC_TYPE_MISSION_CTF
iMissionTypeIcon = 5
ELIF iMissionTypeIcon = FMMC_TYPE_SURVIVAL
iMissionTypeIcon = 4
ELIF iMissionTypeIcon = FMMC_TYPE_MISSION
IF iMissionSubType = FMMC_MISSION_TYPE_LTS //FMMC_TYPE_MISSION_LTS
iMissionTypeIcon = 16
ELIF iMissionSubType = FMMC_MISSION_TYPE_CTF //FMMC_TYPE_MISSION_CTF
iMissionTypeIcon = 17
ELSE
iMissionTypeIcon = 1
ENDIF
ELIF iMissionTypeIcon = FMMC_TYPE_DEATHMATCH
IF iMissionSubType = FMMC_DEATHMATCH_TEAM
iMissionTypeIcon = 5
ELIF iMissionSubType = FMMC_DEATHMATCH_VEHICLE
iMissionTypeIcon = 10
ELIF iMissionSubType = FMMC_KING_OF_THE_HILL
OR iMissionSubType = FMMC_KING_OF_THE_HILL_TEAM
iMissionTypeIcon = 24 // itempiconforpausemenu // itempiconforpausemenu
ELSE
iMissionTypeIcon = 2
ENDIF
ELIF iMissionTypeIcon = FMMC_TYPE_RACE
IF iMissionSubType = FMMC_RACE_TYPE_STANDARD
OR iMissionSubType = FMMC_RACE_TYPE_P2P
iMissionTypeIcon = 11
ELIF iMissionSubType = FMMC_RACE_TYPE_STUNT
OR iMissionSubType = FMMC_RACE_TYPE_STUNT_P2P
iMissionTypeIcon = 20
ELIF iMissionSubType = FMMC_RACE_TYPE_TARGET
OR iMissionSubType = FMMC_RACE_TYPE_TARGET_P2P
iMissionTypeIcon = 22
ELIF iMissionSubType = FMMC_RACE_TYPE_ON_FOOT
OR iMissionSubType = FMMC_RACE_TYPE_ON_FOOT_P2P
iMissionTypeIcon = 12
ELIF iMissionSubType = FMMC_RACE_TYPE_BIKE_AND_CYCLE
OR iMissionSubType = FMMC_RACE_TYPE_BIKE_AND_CYCLE_P2P
iMissionTypeIcon = 13
ELIF iMissionSubType = FMMC_RACE_TYPE_BOAT
OR iMissionSubType = FMMC_RACE_TYPE_BOAT_P2P
iMissionTypeIcon = 14
ELIF iMissionSubType = FMMC_RACE_TYPE_AIR
OR iMissionSubType = FMMC_RACE_TYPE_AIR_P2P
iMissionTypeIcon = 15
ELIF iMissionSubType = FMMC_RACE_TYPE_OPEN_WHEEL
OR iMissionSubType = FMMC_RACE_TYPE_OPEN_WHEEL_P2P
iMissionTypeIcon = 26
ELIF iMissionSubType = FMMC_RACE_TYPE_PURSUIT
iMissionTypeIcon = 30
ELIF iMissionSubType = FMMC_RACE_TYPE_STREET
iMissionTypeIcon = 31
#IF FEATURE_GEN9_EXCLUSIVE
ELIF iMissionSubType = FMMC_RACE_TYPE_HSW
OR iMissionSubType = FMMC_RACE_TYPE_HSW_P2P
iMissionTypeIcon = 11 //to be updated if/when we get a new icon
#ENDIF
ELSE
iMissionTypeIcon = 3
ENDIF
ENDIF
BOOL bisArenawar = IS_THIS_AN_ARENA_WAR_ACTIVITY( iMissionType, iMissionSubType, iAdversaryModeType)
IF bisArenawar
iMissionTypeIcon = 23
ENDIF
#IF IS_DEBUG_BUILD
IF itempiconforpausemenu != 0
iMissionTypeIcon = itempiconforpausemenu
ENDIF
#ENDIF
RETURN iMissionTypeIcon
ENDFUNC
/// PURPOSE:
/// Sets up a column to be shown in the PauseMenu Scaleform with literal string
/// After all the data for a given column is set up, call PM_DISPLAY_DATA_SLOT!
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iMenuId - Which menu this is considered
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// bActive - Appears grayed out or not
/// pszLabel - Stringtable identifier to display.
PROC MP_SET_DATA_SLOT_WITH_STRING(#IF IS_DEBUG_BUILD INT iLesRating ,#ENDIF INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, BOOL bActive, STRING pszLabel, BOOL bRockstarCreated = FALSE, INT iMissionType = -1, INT iMissionSubType = -1, BOOL bIsMissionComplete = FALSE, BOOL bRockstarVerified = FALSE, INT iAdversaryModeType = 0)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(-1) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) //-1) // active or not
ENDIF
TEXT_LABEL_63 tlTemp
#IF IS_DEBUG_BUILD
IF iLesRating > 0
tlTemp = "("
tlTemp += iLesRating
tlTemp += ") "
ENDIF
#ENDIF
tlTemp += pszLabel
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME(tlTemp) // text label
//bRockstarVerified = TRUE
IF bRockstarCreated
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // rockstar verified or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // rockstar verified or not
ENDIF
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_SET_DATA_SLOT_WITH_STRING pszLabel = ", pszLabel)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_SET_DATA_SLOT_WITH_STRING bRockstarVerified = ", bRockstarVerified)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_SET_DATA_SLOT_WITH_STRING iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_SET_DATA_SLOT_WITH_STRING iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_SET_DATA_SLOT_WITH_STRING iAdversaryModeType = ", iAdversaryModeType)
INT iMissionTypeIcon = MP_GET_MISSION_ICON_FOR_PAUSE_MENU(iMissionType, iMissionSubType, iAdversaryModeType)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_SET_DATA_SLOT_WITH_STRING iMissionTypeIcon = ", iMissionTypeIcon)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMissionTypeIcon) // mission type
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("")
IF bRockstarVerified OR bRockstarCreated
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(HUD_COLOUR_BLUE))
ELSE
IF iMissionType = -1
AND iMissionSubType = -1
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(-1)
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(HUD_COLOUR_PURE_WHITE))
ENDIF
ENDIF
// ** THESE PARAMS ARE UNUSED FOR THIS TYPE OF MENU ITEM **
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
// *************************************************
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bIsMissionComplete)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Sets up a column to be shown in the PauseMenu Scaleform with literal string
/// After all the data for a given column is set up, call PM_DISPLAY_DATA_SLOT!
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iMenuId - Which menu this is considered
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// bActive - Appears grayed out or not
/// pszLabel - Stringtable identifier to display.
PROC MP_UPDATE_DATA_SLOT_WITH_STRING(#IF IS_DEBUG_BUILD INT iLesRating ,#ENDIF INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, BOOL bActive, STRING pszLabel, BOOL bRockstarCreated = FALSE, INT iMissionType = -1, INT iMissionSubType = -1, BOOL bIsMissionComplete = FALSE, BOOL bRockstarVerified = FALSE, INT iAdversaryModeType = 0)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("UPDATE_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(-1) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) //-1) // active or not
ENDIF
TEXT_LABEL_63 tlTemp
#IF IS_DEBUG_BUILD
IF iLesRating > 0
tlTemp = "("
tlTemp += iLesRating
tlTemp += ") "
ENDIF
#ENDIF
tlTemp += pszLabel
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME(tlTemp) // text label
IF bRockstarCreated
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // rockstar verified or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // rockstar verified or not
ENDIF
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_UPDATE_DATA_SLOT_WITH_STRING pszLabel = ", pszLabel)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_UPDATE_DATA_SLOT_WITH_STRING bRockstarVerified = ", bRockstarVerified)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_UPDATE_DATA_SLOT_WITH_STRING iMissionType = ", iMissionType)
INT iMissionTypeIcon = MP_GET_MISSION_ICON_FOR_PAUSE_MENU(iMissionType, iMissionSubType, iAdversaryModeType)
CPRINTLN(DEBUG_PAUSE_MENU, "------------------->>>>>>>>>>MP_UPDATE_DATA_SLOT_WITH_STRING iMissionTypeIcon = ", iMissionTypeIcon)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMissionTypeIcon) // mission type
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("")
IF bRockstarVerified OR bRockstarCreated
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(HUD_COLOUR_BLUE))
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(HUD_COLOUR_PURE_WHITE))
ENDIF
// ** THESE PARAMS ARE UNUSED FOR THIS TYPE OF MENU ITEM **
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
// *************************************************
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bIsMissionComplete)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Sets up mission stat (string format) for third column of pause menu
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// bRating - TRUE if stat is a rating for a mission (shows thumb)
/// stStatTitle - Text label for name of stat
/// stStatValue - Text lable of stat value
/// fRating - Rating value of mission
/// bRealName - If stat is a literal string rather than text label
PROC PM_SET_DATA_SLOT_FOR_STAT( INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, BOOL bRating, STRING stStatTitle, STRING stStatValue,
INT iRating = 0, BOOL bRealName = FALSE, BOOL bCreator = FALSE, BOOL bSCNickname = FALSE)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId)// menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
IF bRating
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // Special case (thumb)
ELSE
IF bCreator
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3) // Correct font
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
ENDIF
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatTitle) // stat name
IF bRealName
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME(stStatValue) // Literal string
ELSE
IF bRating
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(stStatValue) // stat value is float for rating
ADD_TEXT_COMPONENT_INTEGER(iRating)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatValue) // stat value is just text label
ENDIF
ENDIF
BOOL bCrewTag
IF bCreator
// TEXT_LABEL_15 tlCreatorCrewTag
IF ARE_STRINGS_EQUAL(stStatValue, GET_ROCKSTAR_CREATED_USER_STRING())
PRINTLN("PM_SET_DATA_SLOT_FOR_STAT - ARE_STRINGS_EQUAL = ", stStatValue)
ENDIF
IF ARE_STRINGS_EQUAL(stStatValue, GET_ROCKSTAR_VERIFIED_USER_STRING())
PRINTLN("PM_SET_DATA_SLOT_FOR_STAT - ARE_STRINGS_EQUAL = ", stStatValue)
ENDIF
IF ARE_STRINGS_EQUAL(stStatValue, "Verified")
PRINTLN("PM_SET_DATA_SLOT_FOR_STAT - ARE_STRINGS_EQUAL = ", stStatValue)
ENDIF
IF COMPARE_STRINGS(stStatValue, GET_ROCKSTAR_VERIFIED_USER_STRING(), FALSE, 10) = 0
PRINTLN("PM_SET_DATA_SLOT_FOR_STAT - COMPARE_STRINGS = ", stStatValue)
ENDIF
IF IS_STRING_EMPTY_HUD(stStatValue)
PRINTLN("PM_SET_DATA_SLOT_FOR_STAT - IS_STRING_EMPTY_HUD = ", stStatValue)
ENDIF
// IF NOT ARE_STRINGS_EQUAL(stStatValue, GET_ROCKSTAR_CREATED_USER_STRING())
// AND NOT ARE_STRINGS_EQUAL(stStatValue, GET_ROCKSTAR_VERIFIED_USER_STRING())
// AND NOT ARE_STRINGS_EQUAL(stStatValue, "Verified")
// AND COMPARE_STRINGS(stStatValue, "Verified", FALSE, 8) != 0
// AND COMPARE_STRINGS(stStatValue, GET_ROCKSTAR_VERIFIED_USER_STRING(), FALSE, 10) != 0
// //**TWH - CMcM - #1394125 - I think this assert is because stStatValue is an empty string. I'm not sure, though.
// AND NOT IS_STRING_EMPTY_HUD(stStatValue)
//
// PRINTLN("PM_SET_DATA_SLOT_FOR_STAT - stStatValue = ", stStatValue)
// IF !IS_PC_VERSION() AND !IS_PLAYSTATION_PLATFORM()
// GAMER_HANDLE thisHandle
// thisHandle = GET_GAMER_HANDLE_USER(stStatValue)
// IF IS_GAMER_HANDLE_VALID(thisHandle)
// IF IS_PLAYER_IN_ACTIVE_CLAN(thisHandle)
// GET_GAMER_HANDLE_CREW_TAG_FOR_SCALEFORM(thisHandle, tlCreatorCrewTag)
// //SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME_STRING(tlCreatorCrewTag) // Crewtag
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME(tlCreatorCrewTag)
// bCrewTag = TRUE
// ENDIF
// ENDIF
// ENDIF
//
// ENDIF
ENDIF
IF NOT bCrewTag
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("")
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bSCNickname)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Sets up mission stat (string format) for third column of pause menu
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// bRating - TRUE if stat is a rating for a mission (shows thumb)
/// stStatTitle - Text label for name of stat
/// stStatValue - Text lable of stat value
/// fRating - Rating value of mission
/// bRealName - If stat is a literal string rather than text label
PROC PM_SET_DATA_SLOT_FOR_TYPE_STAT(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING stStatTitle, STRING stStatValue, INT iMissionType, INT iIconColour, BOOL bPlayed)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
//IF iMissionType = FMMC_TYPE_DEATHMATCH
//OR iMissionType = FMMC_TYPE_RACE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) // Type has a valid icon
//ELSE
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
//ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatTitle) // stat name
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatValue) // stat value is just text label
/*IF iMissionType = FMMC_TYPE_DEATHMATCH
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // DM type
ELIF iMissionType = FMMC_TYPE_RACE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2) // Race type
ENDIF*/
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PM_SET_DATA_SLOT_FOR_TYPE_STAT - iMissionType ", iMissionType)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iIconColour)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bPlayed)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Sets up a mission stat containing an int value for third column
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// stStatTitle - Text label for name of stat
/// stStatText - Text label of stat value (must contain ~1~)
/// iInt - Value of stat
PROC PM_SET_DATA_SLOT_FOR_STAT_WITH_NUMBER(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING stStatTitle, STRING stStatText, INT iInt)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId)// menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatTitle) // stat name
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(stStatText) // Show min - max style
ADD_TEXT_COMPONENT_INTEGER(iInt)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Sets up a mission stat containing a time value for third column
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// stStatTitle - Text label for name of stat
/// stStatText - Text label of stat value (must contain ~a~)
/// iInt - Value of stat
PROC PM_SET_DATA_SLOT_FOR_STAT_WITH_TIME(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING stStatTitle, STRING stStatText, INT iInt)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId)// menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatTitle) // stat name
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(stStatText) // Show min - max style
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iInt, TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS|TIME_FORMAT_MILLISECONDS|TEXT_FORMAT_USE_DOT_FOR_MILLISECOND_DIVIDER|TEXT_FORMAT_HIDE_MILLISECONDS_UNITS_DIGIT)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
PROC PM_SET_DATA_SLOT_FOR_STAT_WITH_TWO_NUMBERS(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING stStatTitle, STRING stStatText, INT iInt, INT iInt2)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId)// menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatTitle) // stat name
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(stStatText) // Show min - max style
ADD_TEXT_COMPONENT_INTEGER(iInt)
ADD_TEXT_COMPONENT_INTEGER(iInt2)
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
PROC MP_SET_DATA_SLOT_SETTING_YES_NO(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING stStatTitle, BOOL bYes, BOOL bUnlocks = FALSE)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatTitle) // stat name
IF bYes = TRUE
IF bUnlocks = FALSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("PM_UJOB_YES") // Yes
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("PM_UCON_ULK") // Unlocked
ENDIF
ELSE
IF bUnlocks = FALSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("PM_UJOB_NO") // No
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("PM_UCON_LCK") // Unlocked
ENDIF
ENDIF
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Sets number of players stat for mission details in third column
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// stStatTitle - Text label for name of stat
/// iMinPlayers - Value of the minimum players
/// iMaxPlayers - Value of the maximum players
PROC PM_SET_DATA_SLOT_FOR_PLAYERS(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, STRING stStatTitle, INT iMinPlayers, INT iMaxPlayers)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId)// menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(stStatTitle) // stat name
IF iMinPlayers != iMaxPlayers
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("PM_PLAYERS_V") // Show min - max style
ADD_TEXT_COMPONENT_INTEGER(iMinPlayers)
ADD_TEXT_COMPONENT_INTEGER(iMaxPlayers)
END_TEXT_COMMAND_SCALEFORM_STRING()
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("NUMBER") // They are the same so just set to number of players
ADD_TEXT_COMPONENT_INTEGER(iMaxPlayers)
END_TEXT_COMMAND_SCALEFORM_STRING()
ENDIF
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
/// PURPOSE:
/// Sets up a warning message in the columns.
/// PARAMS:
/// iColumn - Which column, probably 0,1,2
/// iMenuIndex - Which item in the list, probably 0-9
/// iMenuId - Which menu this is considered
/// iUniqueId - Identifier for this menuitem (can be anything, really)
/// bActive - Appears grayed out or not
/// pszLabel - Stringtable identifier to display.
PROC MP_SET_COLUMN_WARNING_MESSAGE(BOOL bShow, INT iColumnIndex, INT iColumnSpan, STRING sBody, STRING sTitle, INT iBackground, STRING sTextureDict, STRING sTextureName, INT iInsertionInt = -1, INT ilayout = 0, BOOL bUseliteralstring = FALSE )
DEBUG_PRINTCALLSTACK()
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SHOW_WARNING_MESSAGE")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bShow) // Show
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumnIndex) // Start Column
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumnSpan) // Column Span
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sBody) // Body Text
IF bUseliteralstring
SCALEFORM_MOVIE_METHOD_ADD_PARAM_LITERAL_STRING(sBody)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_LITERAL_STRING(sTitle)
ELSE
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sBody)
IF iInsertionInt > -1
ADD_TEXT_COMPONENT_INTEGER(iInsertionInt)
ENDIF
END_TEXT_COMMAND_UNPARSED_SCALEFORM_STRING()
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sTitle) // Title Text
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iBackground) // Background Type (0 = Rockstar, 1 = Social Club)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING(sTextureDict) // Texture Dictionary
SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING(sTextureName) // Texture Name
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ilayout) // ilayout
IF bUseliteralstring
SCALEFORM_MOVIE_METHOD_ADD_PARAM_LITERAL_STRING("")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
ENDIF
END_SCALEFORM_MOVIE_METHOD()
ENDIF
SET_PM_WARNINGSCREEN_ACTIVE(bShow)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] MP_SET_COLUMN_WARNING_MESSAGE - CALLED - ", bShow, " - Title ", sTitle)
ENDPROC
// Returns text label based on type of mission
FUNC STRING GET_MISSION_STRING_FOR_PAUSEMENU(INT iMissionType)
IF iMissionType = FMMC_TYPE_DEATHMATCH
RETURN "FMMC_MPM_TY1"
ELIF iMissionType = FMMC_TYPE_RACE
RETURN "FMMC_MPM_TY2"
ELIF iMissionType = FMMC_TYPE_GANGHIDEOUT
RETURN "FMMC_MPM_TY5"
ELIF iMissionType = FMMC_TYPE_SURVIVAL
RETURN "FMMC_MPM_TY4"
ELIF iMissionType = FMMC_TYPE_BASE_JUMP
RETURN "FMMC_MPM_TY8"
ENDIF
RETURN "FMMC_MPM_TY0" //Mission
ENDFUNC
PROC PM_MENU_SHIFT_DEPTH(INT iDirection, BOOL bAllowExitIfAtTop = FALSE)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PM_MENU_SHIFT_DEPTH, iDirection = ", iDirection, ", bAllowExitIfAtTop = ", bAllowExitIfAtTop)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("MENU_SHIFT_DEPTH")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iDirection)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(!bAllowExitIfAtTop)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
// Scaleform functions to set the column title and show / hide columns
PROC PM_SET_COLUMN_TITLE(INT iColumn, STRING sTitle, STRING sMissionName, BOOL bVerified, STRING sTxdDict = NULL, STRING sTxdName = NULL, INT iLoadInt = -1)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_COLUMN_TITLE")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sTitle)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME(sMissionName)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bVerified)
IF NOT IS_STRING_NULL_OR_EMPTY(sTxdDict)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING(sTxdDict)
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING("")
ENDIF
IF NOT IS_STRING_NULL_OR_EMPTY(sTxdName)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING(sTxdName)
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_TEXTURE_NAME_STRING("")
ENDIF
IF iLoadInt != -1
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iLoadInt)
ENDIF
END_SCALEFORM_MOVIE_METHOD()
ENDIF
//CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PM_SET_COLUMN_TITLE - sTxdDict = ", sTxdDict)
//CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PM_SET_COLUMN_TITLE - sTxdName = ", sTxdName)
ENDPROC
// Scaleform functions to set the column title and show / hide columns
PROC PM_SET_COLUMN_TITLE_ONLY(INT iColumn, STRING sTitle, STRING sInsertText)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PM_SET_COLUMN_TITLE_ONLY: ", sTitle)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_COLUMN_TITLE")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sTitle)
IF NOT ARE_STRINGS_EQUAL(sInsertText, " ")
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sInsertText)
ENDIF
END_TEXT_COMMAND_SCALEFORM_STRING()
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
PROC PM_ALLOW_CLICK_FROM_COLUMN(INT iColumn, BOOL bCanEnterViaColumnToColumn)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PM_ALLOW_CLICK_FROM_COLUMN, iColumn = ", iColumn, ", bCanEnterViaColumnToColumn = ", PICK_STRING(bCanEnterViaColumnToColumn, "TRUE", "FALSE"))
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("ALLOW_CLICK_FROM_COLUMN")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bCanEnterViaColumnToColumn)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
PROC CLEAR_MISSION_CREATOR_COLUMNS()
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT_EMPTY")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
ENDIF END_SCALEFORM_MOVIE_METHOD()
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT_EMPTY")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
ENDIF END_SCALEFORM_MOVIE_METHOD()
ENDPROC
PROC CLEAR_PM_COLUMN(INT iColumn)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] Clearing column: ", iColumn)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT_EMPTY")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
ENDIF END_SCALEFORM_MOVIE_METHOD()
ENDPROC
PROC CLEAR_MISSIONS_COLUMN(INT iColumn)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT_EMPTY")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
ENDIF END_SCALEFORM_MOVIE_METHOD()
ENDPROC
PROC CLEAR_MISSION_DETAILS_COLUMN()
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT_EMPTY")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
ENDIF END_SCALEFORM_MOVIE_METHOD()
ENDPROC
PROC PRIVATE_SHOW_PM_COLUMN(INT iColumn, BOOL bShow)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SHOW_COLUMN")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bShow)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
IF iColumn = 2//THIRD_COLUMN
IF bShow
CLEAR_BIT(iBS_PM_ColumnHidden, iColumn)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PRIVATE_SHOW_PM_COLUMN - iBS_PM_ColumnHidden - TRUE - ", iColumn)
ELSE
SET_BIT(iBS_PM_ColumnHidden, iColumn)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PRIVATE_SHOW_PM_COLUMN - iBS_PM_ColumnHidden - FALSE - ", iColumn)
ENDIF
ENDIF
ENDPROC
FUNC BOOL IS_PAUSE_MENU_COLUMN_HIDDEN(INT iColumn)
RETURN IS_BIT_SET(iBS_PM_ColumnHidden, iColumn)
ENDFUNC
/// PURPOSE: Locks column in pause menu so highlight won't move to another column
PROC LOCK_PM_COLUMN(INT iColumn, BOOL bLock)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] LOCK_PM_COLUMN col ", iColumn, " bLock ", bLock)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_COLUMN_CAN_JUMP")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(!bLock)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
PROC SHOW_PM_COLUMN(INT iColumn)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] Show column ", iColumn)
DEBUG_PRINTCALLSTACK()
PRIVATE_SHOW_PM_COLUMN(iColumn, TRUE)
ENDPROC
PROC HIDE_PM_COLUMN(INT iColumn)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] Hide column ", iColumn)
DEBUG_PRINTCALLSTACK()
PRIVATE_SHOW_PM_COLUMN(iColumn, FALSE)
ENDPROC
/// PURPOSE: Sets a highlight of a select
PROC SET_PM_HIGHLIGHT(INT iColumn, INT iIndex = 0, BOOL bAlwayaFalse = FALSE, BOOL bSetFocus = FALSE)
CPRINTLN(DEBUG_PAUSE_MENU, "SET_PM_HIGHLIGHT iColumn = ", iColumn, " iIndex = ", iIndex)
IF iIndex = -1
CPRINTLN(DEBUG_PAUSE_MENU, "BAILED ON IT BECAUSE IT'S -1!")
EXIT
ENDIF
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_COLUMN_HIGHLIGHT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iIndex)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bAlwayaFalse)
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bSetFocus)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
// Returns text label based on type of mission
FUNC STRING GET_MISSION_DETAIL_STRING_FOR_PAUSE_MENU(INT iMissionType, INT iMissionSubType = -1)
IF iMissionType = FMMC_TYPE_DEATHMATCH
IF (iMissionSubType = FMMC_KING_OF_THE_HILL OR iMissionSubType = FMMC_KING_OF_THE_HILL_TEAM)
RETURN "PM_DETAILS_Q"
ELSE
RETURN "PM_DETAILS_D"
ENDIF
ELIF iMissionType = FMMC_TYPE_RACE
RETURN "PM_DETAILS_R"
ELIF iMissionType = FMMC_TYPE_SURVIVAL
RETURN "PM_DETAILS_S"
ELIF iMissionType = FMMC_TYPE_GANGHIDEOUT
RETURN "PM_DETAILS_G"
ELIF iMissionType = FMMC_TYPE_MISSION
RETURN "PM_DETAILS_M"
ELIF iMissionType = FMMC_TYPE_BASE_JUMP
RETURN "PM_DETAILS_P"
ENDIF
RETURN "PM_DETAILS"
ENDFUNC
FUNC STRING GET_CRIMINAL_ENTERPRISE_STARTER_PACK_WHERE_TO_PURCHASE(INT pauseMenuRoute1, INT menuindex)
SWITCH pauseMenuRoute1
CASE 0 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_ALL
SWITCH menuindex
CASE 0 RETURN "PM_PREMWHR_DYN8" BREAK //Maze Bank West Executive Office
CASE 1 RETURN "PM_PREMWHR_MAZE" BREAK //Paleto Forest Bunker
CASE 2 RETURN "PM_PREMWHR_MAZE" BREAK //Great Chaparral Biker Clubhouse
CASE 3 RETURN "PM_PREMWHR_BIKAP" BREAK //Senora Desert Counterfeit Cash Factory
CASE 4 RETURN "PM_PREMWHR_REAL" BREAK //1561 San Vitas Street
CASE 5 RETURN "PM_PREMWHR_REAL" BREAK //1337 Exceptionalists Way 10 Car Garage
CASE 6 RETURN "PM_PREMWHR_WAR" BREAK // Dune FAV
CASE 7 RETURN "PM_PREMWHR_LEG" BREAK // Turismo R
CASE 8 RETURN "PM_PREMWHR_LEG" BREAK // Banshee
CASE 9 RETURN "PM_PREMWHR_LEG" BREAK // Enus windsor
CASE 10 RETURN "PM_PREMWHR_LEG" BREAK // Coquette Classic
CASE 11 RETURN "PM_PREMWHR_LEG" BREAK // Huntley S
CASE 12 RETURN "PM_PREMWHR_SSA" BREAK // Obey Omnis
CASE 13 RETURN "PM_PREMWHR_SSA" BREAK // Pegassi Vortex
CASE 14 RETURN "PM_PREMWHR_SSA" BREAK // Western Zomvie Chopper
CASE 15 RETURN "PM_PREMWHR_ELI" BREAK // Maibatsu Frogger
CASE 16 RETURN "PM_PREMWHR_WEP" BREAK
CASE 17 RETURN "PM_PREMWHR_WEP" BREAK
CASE 18 RETURN "PM_PREMWHR_WEP" BREAK
CASE 19 RETURN "PM_PREMWHR_CLT" BREAK
CASE 20 RETURN "PM_PREMWHR_CLT" BREAK
CASE 21 RETURN "PM_PREMWHR_CLT" BREAK
CASE 22 RETURN "PM_PREMWHR_CLT" BREAK
CASE 23 RETURN "PM_PREMWHR_TAT" BREAK
ENDSWITCH
BREAK
CASE 1 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_PROPERTY
SWITCH menuindex
CASE 0 RETURN "PM_PREMWHR_DYN8" BREAK //Maze Bank West Executive Office
CASE 1 RETURN "PM_PREMWHR_MAZE" BREAK //Paleto Forest Bunker
CASE 2 RETURN "PM_PREMWHR_MAZE" BREAK //Great Chaparral Biker Clubhouse
CASE 3 RETURN "PM_PREMWHR_BIKAP" BREAK //Senora Desert Counterfeit Cash Factory
CASE 4 RETURN "PM_PREMWHR_REAL" BREAK //1561 San Vitas Street
CASE 5 RETURN "PM_PREMWHR_REAL" BREAK //1337 Exceptionalists Way 10 Car Garage
ENDSWITCH
BREAK
CASE 2 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_VEHICLES
SWITCH menuindex
CASE 0 RETURN "PM_PREMWHR_WAR" BREAK // Dune FAV
CASE 1 RETURN "PM_PREMWHR_LEG" BREAK // Turismo R
CASE 2 RETURN "PM_PREMWHR_LEG" BREAK // Banshee
CASE 3 RETURN "PM_PREMWHR_LEG" BREAK // Enus windsor
CASE 4 RETURN "PM_PREMWHR_LEG" BREAK // Coquette Classic
CASE 5 RETURN "PM_PREMWHR_LEG" BREAK // Huntley S
CASE 6 RETURN "PM_PREMWHR_SSA" BREAK // Obey Omnis
CASE 7 RETURN "PM_PREMWHR_SSA" BREAK // Pegassi Vortex
CASE 8 RETURN "PM_PREMWHR_SSA" BREAK // Western Zomvie Chopper
CASE 9 RETURN "PM_PREMWHR_ELI" BREAK // Maibatsu Frogger
ENDSWITCH
BREAK
CASE 3 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_WEAPONS
RETURN "PM_PREMWHR_WEP"
BREAK
CASE 4 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_RACE
RETURN "PM_PREMWHR_CLT"
BREAK
CASE 5 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_BIKER
RETURN "PM_PREMWHR_CLT"
BREAK
CASE 6 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_STUNT
RETURN "PM_PREMWHR_CLT"
BREAK
CASE 7 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_IMPORT_EXPORT
RETURN "PM_PREMWHR_CLT"
BREAK
CASE 8 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_TATTOOS
RETURN "PM_PREMWHR_TAT"
BREAK
ENDSWITCH
RETURN "PM_DETAILS"
ENDFUNC
FUNC CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT GET_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_ENUM_FROM_COLUMNS(INT pauseMenuRoute1, INT menuindex)
SWITCH pauseMenuRoute1
CASE 0 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_ALL
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_MAZE_BANK_WEST_EXECUTIVE_OFFICE break
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_PALETO_FOREST_BUNKER break
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_GREAT_CHAPARRAL_BIKER_CLUBHOUSE break
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_SENORA_DESERT_CONTERFEIT_CASH_FACTORY break
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1561_SAN_VITAS_STREET_APARTMENT break
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1337_EXCEPTIONALISTS_WAY_10_CAR_GARAGE break
CASE 6 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_BF_DUNE_FAV break
CASE 7 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_GROTTI_TURISMO_R break
CASE 8 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_BRAVADO_BANSHEE break
CASE 9 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_ENUS_WINDSOR break
CASE 10 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_INVETERO_COQUETTE_CLASSIC break
CASE 11 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_ENUS_HUNTLEY_S break
CASE 12 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_OBEY_OMNIS break
CASE 13 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_PEGASSI_VORTEX break
CASE 14 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_WESTERN_ZOMBIE_CHOPPER break
CASE 15 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_MAIBATSU_FROGGER break
CASE 16 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_WEAPON_MARKSMAN_RIFLE break
CASE 17 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_WEAPON_COMPACT_RIFLE break
CASE 18 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_WEAPON_COMPACT_GRENADE_LAUNCHER break
CASE 19 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_STUNT_RACE_ALL BREAK
CASE 20 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_STUNT_RACE_ALL BREAK
CASE 21 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_IMPORT_EXPORT_ALL BREAK
CASE 22 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_IMPORT_EXPORT_ALL BREAK
CASE 23 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_ALL BREAK
ENDSWITCH
BREAK
CASE 2 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_VEHICLES
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_BF_DUNE_FAV break
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_GROTTI_TURISMO_R break
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_BRAVADO_BANSHEE break
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_ENUS_WINDSOR break
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_INVETERO_COQUETTE_CLASSIC break
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_ENUS_HUNTLEY_S break
CASE 6 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_OBEY_OMNIS break
CASE 7 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_PEGASSI_VORTEX break
CASE 8 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_WESTERN_ZOMBIE_CHOPPER break
CASE 9 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_VEHICLE_MAIBATSU_FROGGER break
ENDSWITCH
BREAK
CASE 1//PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_PROPERTY
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_MAZE_BANK_WEST_EXECUTIVE_OFFICE break
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_PALETO_FOREST_BUNKER break
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_GREAT_CHAPARRAL_BIKER_CLUBHOUSE break
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_SENORA_DESERT_CONTERFEIT_CASH_FACTORY break
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1561_SAN_VITAS_STREET_APARTMENT break
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_PROPERTY_1337_EXCEPTIONALISTS_WAY_10_CAR_GARAGE break
ENDSWITCH
BREAK
CASE 3 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_WEAPONS break
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_WEAPON_MARKSMAN_RIFLE break
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_WEAPON_COMPACT_RIFLE break
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_WEAPON_COMPACT_GRENADE_LAUNCHER break
ENDSWITCH
BREAK
CASE 4 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_RACE
// IF menuindex < 21
// RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_IMPORT_EXPORT_ALL
// ELSE //IF menuindex >= 21
// RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_STUNT_RACE_ALL
// ENDIF
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_NAVY_RACING_SUIT BREAK
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_GRAY_RACING_SUIT BREAK
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_RED_RACING_SUIT BREAK
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_BLACK_RACING_SUIT BREAK
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_GREEN_RACING_SUIT BREAK
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_WHITE_RACING_SUIT BREAK
ENDSWITCH
BREAK
CASE 5 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_BIKER
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_GREEN_BIKER_SUIT BREAK
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_RED_BIKER_SUIT BREAK
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_ITALIAN_BIKER_SUIT BREAK
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_BLACK_BIKER_SUIT BREAK
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_FRENCH_BIKER_SUIT BREAK
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_YELLOW_BIKER_SUIT BREAK
CASE 6 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_PINK_BIKER_SUIT BREAK
CASE 7 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_BLUE_BIKER_SUIT BREAK
ENDSWITCH
BREAK
CASE 6 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_STUNT
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_WHITE_STUNTMAN_SUIT BREAK
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_BLUE_STUNTMAN_SUIT BREAK
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_RED_STUNTMAN_SUIT BREAK
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_BLACK_STUNTMAN_SUIT BREAK
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_PINK_STUNTMAN_SUIT BREAK
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_GOLD_STUNTMAN_SUIT BREAK
CASE 6 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_SILVER_STUNTMAN_SUIT BREAK
ENDSWITCH
BREAK
CASE 7// PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_IMPORT_EXPORT
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_ANORAK BREAK
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_BIGNESS BREAK
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_DEALERSHIP BREAK
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_GUNSHOW BREAK
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_HIP_HOP BREAK
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_NEW_SKOOL BREAK
CASE 6 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_PATCHWORK BREAK
CASE 7 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_PLAIN_SIGHT BREAK
CASE 8 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_PUFF BREAK
CASE 9 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_THE_SMOLDER BREAK
ENDSWITCH
BREAK
CASE 8 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_TATTOOS
SWITCH menuindex
CASE 0 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_RIDE_FOREVER BREAK
CASE 1 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_BROTHERS_FOR_LIFE BREAK
CASE 2 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_FLAMING_REAPER BREAK
CASE 3 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_CLAWED_BEAST BREAK
CASE 4 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_RIP_MY_BROTHERS BREAK
CASE 5 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_FREEMOM_WHEELS BREAK
CASE 6 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_CHOPPER_FREEDOM BREAK
CASE 7 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_FAGGIO BREAK
CASE 8 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_WE_ARE_THE_MODS BREAK
CASE 9 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_REAPER_VULTURE BREAK
CASE 10 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_UNFORGIVEN BREAK
CASE 11 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_NO_REGRETS BREAK
CASE 12 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_BROTHERHOOD_OF_BIKES BREAK
CASE 13 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_WESTERN_EAGLE BREAK
CASE 14 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_BONE_WRENCH BREAK
CASE 15 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_AMERICAN_DREAM BREAK
CASE 16 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_WESTERN_MC BREAK
CASE 17 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_GRUESOME_TALONS BREAK
CASE 18 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_SKELETAL_CHOPPER BREAK
CASE 19 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_DEMON_CROSSBONES BREAK
CASE 20 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_MADE_IN_AMERICA BREAK
CASE 21 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_BOTH_BARRELS BREAK
CASE 22 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_DEMON_RIDER BREAK
CASE 23 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_BIKER_MOUNT BREAK
CASE 24 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_GAS_GUZZLER BREAK
CASE 25 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_GEAR_HEAD BREAK
CASE 26 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_SKULL_OF_TAURUS BREAK
CASE 27 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_WEB_RIDER BREAK
CASE 28 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_WESTERN_STYLIZED BREAK
CASE 29 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_FTW BREAK
CASE 30 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_MORBID_ARACHNID BREAK
CASE 31 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_MUFFLER_HELMET BREAK
CASE 32 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_POISON_SCORPION BREAK
CASE 33 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_RIDE_HARD_DIE_FAST BREAK
CASE 34 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_CHAIN_FIST BREAK
CASE 35 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_GOOD_LUCK BREAK
CASE 36 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_LIVE_TO_RIDE BREAK
CASE 37 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_CRANIAL_ROSE BREAK
CASE 38 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_MACABRE_TREE BREAK
CASE 39 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_URBAN_STUNTER BREAK
CASE 40 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_MUM BREAK
CASE 41 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_THESE_COLOURS_DONT_RUN BREAK
CASE 42 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_SNAKE_BIKE BREAK
CASE 43 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_SKULL_CHAIN BREAK
CASE 44 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_GRIM_RIDER BREAK
CASE 45 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_EAGLE_EMBLEM BREAK
CASE 46 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_LADY_MORTALITY BREAK
CASE 47 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_SWOOPING_EAGLE BREAK
CASE 48 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_LAUGHING_SKULL BREAK
CASE 49 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_BONE_CRUISER BREAK
CASE 50 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_RIDE_FREE BREAK
CASE 51 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_SCORCHED_SOUL BREAK
CASE 52 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_ENGULFED_SKULL BREAK
CASE 53 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_BAD_LUCK BREAK
CASE 54 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_RIDE_OR_DIE BREAK
CASE 55 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_ROSE_TRIBUTE BREAK
CASE 56 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_STFU BREAK
CASE 57 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_AMERICAN_MADE BREAK
CASE 58 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_DUSK_RIDER BREAK
CASE 59 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_WESTERN_INSIGNIA BREAK
CASE 60 RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_TATTOO_DRAGONS_FURY BREAK
ENDSWITCH
BREAK
ENDSWITCH
RETURN CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_OUTFIT_STUNT_RACE_ALL
ENDFUNC
FUNC STRING GET_CRIMINAL_ENTERPRISE_STARTER_PACK_HOW_TO_USE(INT pauseMenuRoute1, INT menuindex)
SWITCH pauseMenuRoute1
CASE 0 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_ALL
SWITCH menuindex
CASE 0 RETURN "PROP_MAZ_D" BREAK //Maze Bank West Executive Office
CASE 1 RETURN "PROP_PAL_D" BREAK //Paleto Forest Bunker
CASE 2 RETURN "PROP_CHAP_D" BREAK //Great Chaparral Biker Clubhouse
CASE 3 RETURN "PROP_SEN_D" BREAK //Senora Desert Counterfeit Cash Factory
CASE 4 RETURN "PROP_VITA_D" BREAK //1561 San Vitas Street
CASE 5 RETURN "PROP_EXCEP_D" BREAK //1337 Exceptionalists Way 10 Car Garage
CASE 6 RETURN "VEH_DUNE_D" BREAK
CASE 7 RETURN "VEH_TURI_D" BREAK
CASE 8 RETURN "VEH_BAN_D" BREAK
CASE 9 RETURN "VEH_WINS_D" BREAK
CASE 10 RETURN "VEH_COQ_D" BREAK
CASE 11 RETURN "VEH_HUNT_D" BREAK
CASE 12 RETURN "VEH_OMIS_D" BREAK
CASE 13 RETURN "VEH_VORT_D" BREAK
CASE 14 RETURN "VEH_ZOMB_D" BREAK
CASE 15 RETURN "VEH_FROG_D" BREAK
CASE 16 RETURN "WEP_MARK_D" BREAK
CASE 17 RETURN "WEP_COMP_D" BREAK
CASE 18 RETURN "WEP_GREN_D" BREAK
CASE 19 RETURN "SUIT_RACE_D" BREAK
CASE 20 RETURN "WEP_BIKE_D" BREAK
CASE 21 RETURN "WEP_STUNT_D" BREAK
CASE 22 RETURN "WEP_IMPEX_D" BREAK
CASE 23 RETURN "WEP_TAT_D" BREAK
BREAK
ENDSWITCH
BREAK
CASE 1 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_PROPERTY
SWITCH menuindex
CASE 0 RETURN "PROP_MAZ_D" BREAK //Maze Bank West Executive Office
CASE 1 RETURN "PROP_PAL_D" BREAK //Paleto Forest Bunker
CASE 2 RETURN "PROP_CHAP_D" BREAK //Great Chaparral Biker Clubhouse
CASE 3 RETURN "PROP_SEN_D" BREAK //Senora Desert Counterfeit Cash Factory
CASE 4 RETURN "PROP_VITA_D" BREAK //1561 San Vitas Street
CASE 5 RETURN "PROP_EXCEP_D" BREAK //1337 Exceptionalists Way 10 Car Garage
BREAK
ENDSWITCH
BREAK
CASE 2 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_VEHICLES
SWITCH menuindex
CASE 0 RETURN "VEH_DUNE_D" BREAK
CASE 1 RETURN "VEH_TURI_D" BREAK
CASE 2 RETURN "VEH_BAN_D" BREAK
CASE 3 RETURN "VEH_WINS_D" BREAK
CASE 4 RETURN "VEH_COQ_D" BREAK
CASE 5 RETURN "VEH_HUNT_D" BREAK
CASE 6 RETURN "VEH_OMIS_D" BREAK
CASE 7 RETURN "VEH_VORT_D" BREAK
CASE 8 RETURN "VEH_ZOMB_D" BREAK
CASE 9 RETURN "VEH_FROG_D" BREAK
BREAK
ENDSWITCH
BREAK
CASE 3 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_WEAPONS
SWITCH menuindex
CASE 0 RETURN "WEP_MARK_D" BREAK
CASE 1 RETURN "WEP_COMP_D" BREAK
CASE 2 RETURN "WEP_GREN_D" BREAK
BREAK
ENDSWITCH
BREAK
CASE 4 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_RACE
RETURN "SUIT_RACE_D"
BREAK
CASE 5 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_BIKER
RETURN "WEP_BIKE_D"
BREAK
CASE 6 // PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_STUNT
RETURN "WEP_STUNT_D"
BREAK
CASE 7// PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_OUTFITS_IMPORT_EXPORT
RETURN "WEP_IMPEX_D"
BREAK
CASE 8 //PM_D2_CRIMINAL_ENTERPRISE_STARTER_PACK_TATTOOS
RETURN "WEP_TAT_D"
BREAK
ENDSWITCH
RETURN "PM_DETAILS"
ENDFUNC
/// PURPOSE: Sets the scaleform data slots to display the mission details
PROC DISPLAY_CRIMINAL_ENTERPRISE_STARTER_PACK_ITEM_DETAILS(INT iColumn, INT pauseMenuRoute2, STRING tl31MissionName, INT iPrice, INT pauseMenuRoute1, INT menuindex )
//tl63Description = tl63Description // To be set up
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_CRIMINAL_ENTERPRISE_STARTER_PACK_ITEM_DETAILS - bInitLoadMissionPhoto = FALSE")
SHOW_PM_COLUMN(2)
TAKE_CONTROL_OF_FRONTEND()
SET_FRONTEND_DETAILS_TITLE(iColumn, "", tl31MissionName, 0, "", "", FALSE)
PM_SET_DATA_SLOT_FOR_STAT(iColumn, 0, pauseMenuRoute2, 0 , FALSE, "BS_WB_COST", "ITEM_FREE")
PM_SET_DATA_SLOT_FOR_STAT_WITH_NUMBER(iColumn, 1, pauseMenuRoute2, 1, "PM_PREM_RRP", "IMPOUND_COST", iPrice)
// IF HAS_PLAYER_PURCHASED_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT(GET_CRIMINAL_ENTERPRISE_STARTER_PACK_CONTENT_ENUM_FROM_COLUMNS(pauseMenuRoute1,menuindex))
// PM_SET_DATA_SLOT_FOR_STAT(iColumn, 2, pauseMenuRoute2, 2, FALSE, "PM_PREM_PURCH", "PM_PREM_OWNED")
// else
PM_SET_DATA_SLOT_FOR_STAT(iColumn, 2, pauseMenuRoute2, 2, FALSE, "PM_PREM_PURCH", GET_CRIMINAL_ENTERPRISE_STARTER_PACK_WHERE_TO_PURCHASE(pauseMenuRoute1,menuindex))
// endif
//PM_SET_DATA_SLOT_FOR_STAT(iColumn, 3, pauseMenuRoute2, 3, FALSE, "PM_PREM_USE", GET_CRIMINAL_ENTERPRISE_STARTER_PACK_HOW_TO_USE(pauseMenuRoute1,menuindex))
PM_SET_DATA_SLOT(iColumn, 3, pauseMenuRoute2, 3, FALSE, " ", FALSE, 4) // Type 4 to show white bar
PM_SET_DATA_SLOT(iColumn, 4, pauseMenuRoute2, 4, FALSE, GET_CRIMINAL_ENTERPRISE_STARTER_PACK_HOW_TO_USE(pauseMenuRoute1,menuindex), FALSE, 5)
PM_DISPLAY_DATA_SLOT(iColumn)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DESCRIPTION")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
IF pauseMenuGlobalState != PAUSE_MENU_GLOBAL_STATE_EDIT_PLAYLIST
RELEASE_CONTROL_OF_FRONTEND()
ENDIF
ENDPROC
FUNC INT AMRCTT_GET_PAR_TIME_PAUSE_MENU(AMRCTT_VARIATION eVariation)
IF g_sMPTunables.iRC_TIME_TRIAL_OVERRIDE_TIME > 0
RETURN g_sMPTunables.iRC_TIME_TRIAL_OVERRIDE_TIME
ELSE
SWITCH eVariation
CASE AV_CONSTRUCTION_SITE_I RETURN 110000
CASE AV_CYPRESS_FLATS RETURN 90000
CASE AV_HILL_VALLEY_CHURCH_CEMETERY RETURN 80000
CASE AV_LA_FUENTE_BLANCA RETURN 87000
CASE AV_LITTLE_SEOUL_PARK RETURN 70000
CASE AV_DAVIS_QUARTZ RETURN 92000
CASE AV_VESPUCCI_BEACH RETURN 125000
CASE AV_CONSTRUCTION_SITE_II RETURN 72000
CASE AV_VESPUCCI_CANALS RETURN 113000
CASE AV_PALMER_TAYLOR_POWER_STATION RETURN 105000
ENDSWITCH
ENDIF
RETURN 0
ENDFUNC
/// PURPOSE: Sets the scaleform data slots to display the mission details
PROC DISPLAY_MISSION_DETAILS(INT iColumn, INT iMenuID, VECTOR vLocation, INT iRating, STRING tl63Creator,
STRING tl31MissionName, STRING tl63Description,
INT iRank, INT iMinPlayers, INT iMaxPlayers, INT iMissionType, INT iMissionSubType, INT iMissionBitSet, INT iMissionBitSetTwo,
BOOL bVerified, TEXT_LABEL_23 sFileName, DOWNLOAD_PHOTO_DATA &DLPhotoData, BOOL bHasMissionGotPhoto, BOOL bRockstarCreated, INT iMaxTeams, BOOL bSCNickname=FALSE, BOOL bPushbikeOnly=FALSE, BOOL bLiteralDecString = TRUE, INT iRootContentIDHash = 0, INT iAdversaryModeType = 0)
//tl63Description = tl63Description // To be set up
//Setup Loading of Photo
DLPhotoData.iColumn = iColumn
DLPhotoData.iMissionType = iMissionType
DLPhotoData.tl31MissionName = tl31MissionName
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_MISSION_DETAILS - tl31MissionName = ", tl31MissionName)
DLPhotoData.bVerified = bVerified
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_MISSION_DETAILS - bVerified = ", bVerified)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_MISSION_DETAILS - bRockstarCreated = ", bRockstarCreated)
DLPhotoData.sCreator = tl63Creator
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_MISSION_DETAILS - tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_MISSION_DETAILS - tl63Description = ", tl63Description)
IF bHasMissionGotPhoto = TRUE
DLPhotoData.sFileName = sFileName
ELSE
//DLPhotoData.sCreator = "RSN_BobbyW_1"
//DLPhotoData.sFileName = "513f98028fc43216549b3416"
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_MISSION_DETAILS - HAS NO PHOTO - USE DEFAULT")
IF GET_HASH_OF_MAP_AREA_AT_COORDS(vLocation) = MAP_AREA_CITY
DLPhotoData.sFileName = "City"
ELSE
DLPhotoData.sFileName = "Country_side"
ENDIF
ENDIF
DLPhotoData.bLoadMissionPhoto = TRUE
DLPhotoData.bInitLoadMissionPhoto = FALSE
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] DISPLAY_MISSION_DETAILS - bInitLoadMissionPhoto = FALSE")
SHOW_PM_COLUMN(2)
TAKE_CONTROL_OF_FRONTEND()
INT iIconColour = ENUM_TO_INT(HUD_COLOUR_WHITE)
INT iJobType = 0
// Added as UGC has been pushed back.
//bRockstarCreated = TRUE
IF bRockstarCreated
tl63Creator = GET_ROCKSTAR_CREATED_USER_STRING()
iIconColour = ENUM_TO_INT(HUD_COLOUR_BLUE)
//iJobType = 2
ELIF bVerified
//tl63Creator = GET_ROCKSTAR_VERIFIED_USER_STRING()
iIconColour = ENUM_TO_INT(HUD_COLOUR_BLUE)
//iJobType = 1
ENDIF
// get correct icon for mission
INT iMissionTypeIcon
GET_PAUSE_MENU_MISSION_ICON(iMissionType, iMissionSubType, iMissionTypeIcon, iAdversaryModeType)
//PM_RESET_ALL_DATA_SLOTS(iColumn)
//PM_SET_COLUMN_TITLE(iColumn, GET_MISSION_DETAIL_STRING_FOR_PAUSE_MENU(iMissionType), tl31MissionName, bVerified) // Will need to pass screenshot textures
SET_FRONTEND_DETAILS_TITLE(iColumn, "", tl31MissionName, iJobType, "", "", TRUE, 1, iMissionType, iMissionSubType, sFileName, bPushbikeOnly, iRootContentIDHash, iAdversaryModeType)
IF iMissionType = FMMC_TYPE_TIME_TRIAL
iIconColour = ENUM_TO_INT(HUD_COLOUR_NET_PLAYER2)
PM_SET_DATA_SLOT_FOR_PLAYERS(iColumn, 0, iMenuID, 0, "PM_PLAYERS", iMinPlayers, iMaxPlayers)
PM_SET_DATA_SLOT_FOR_TYPE_STAT(iColumn, 1, iMenuID, 1, "PM_TYPE", GET_MISSION_SUBTYPE_STRING_FOR_PAUSEMENU(iMissionType, iMissionSubtype, iMissionBitSet, iMissionBitSetTwo, DEFAULT, iAdversaryModeType), iMissionTypeIcon, iIconColour, IS_BIT_SET(iMissionBitSet, ciROCKSTAR_CREATED_MISSION_HAS_BEEN_PLAYED))
PM_SET_DATA_SLOT_FOR_STAT_WITH_TIME(iColumn, 2, iMenuID, 2, "PM_PTIME", "STRTNM1", GET_BEST_TRIAL_TIME(GET_CURRENT_ACTIVE_FM_TIME_TRIAL()))
PM_SET_DATA_SLOT_FOR_STAT(iColumn, 3, iMenuID, 3, FALSE, "PM_AREA", GET_NAME_OF_ZONE(vLocation))
PM_SET_DATA_SLOT(iColumn, 4, iMenuID, 4, FALSE, " ", FALSE, 4) // Type 4 to show white bar
PM_SET_DATA_SLOT(iColumn, 5, iMenuID, 5, FALSE, tl63Description, bLiteralDecString, 5)
ELIF iMissionType = FMMC_TYPE_RC_TIME_TRIAL
iIconColour = ENUM_TO_INT(HUD_COLOUR_NET_PLAYER2)
PM_SET_DATA_SLOT_FOR_PLAYERS(iColumn, 0, iMenuID, 0, "PM_PLAYERS", iMinPlayers, iMaxPlayers)
PM_SET_DATA_SLOT_FOR_TYPE_STAT(iColumn, 1, iMenuID, 1, "PM_TYPE", GET_MISSION_SUBTYPE_STRING_FOR_PAUSEMENU(iMissionType, iMissionSubtype, iMissionBitSet, iMissionBitSetTwo, DEFAULT, iAdversaryModeType), iMissionTypeIcon, iIconColour, IS_BIT_SET(iMissionBitSet, ciROCKSTAR_CREATED_MISSION_HAS_BEEN_PLAYED))
PM_SET_DATA_SLOT_FOR_STAT_WITH_TIME(iColumn, 2, iMenuID, 2, "PM_PTIME", "STRTNM1", AMRCTT_GET_PAR_TIME_PAUSE_MENU(GET_CURRENT_ACTIVE_FM_RC_TIME_TRIAL() ))
PM_SET_DATA_SLOT_FOR_STAT(iColumn, 3, iMenuID, 3, FALSE, "PM_AREA", GET_NAME_OF_ZONE(AMRCTT_GET_START_LOCATION(GET_CURRENT_ACTIVE_FM_RC_TIME_TRIAL() )))
PM_SET_DATA_SLOT(iColumn, 4, iMenuID, 4, FALSE, " ", FALSE, 4) // Type 4 to show white bar
PM_SET_DATA_SLOT(iColumn, 5, iMenuID, 5, FALSE, tl63Description, bLiteralDecString, 5)
#IF FEATURE_GEN9_EXCLUSIVE
ELIF iMissionType = FMMC_TYPE_HSW_TIME_TRIAL
iIconColour = ENUM_TO_INT(HUD_COLOUR_NET_PLAYER2)
PM_SET_DATA_SLOT_FOR_PLAYERS(iColumn, 0, iMenuID, 0, "PM_PLAYERS", iMinPlayers, iMaxPlayers)
PM_SET_DATA_SLOT_FOR_TYPE_STAT(iColumn, 1, iMenuID, 1, "PM_TYPE", "HSWTT_TITLE", iMissionTypeIcon, iIconColour, IS_BIT_SET(iMissionBitSet, ciROCKSTAR_CREATED_MISSION_HAS_BEEN_PLAYED))
IF GET_HSW_TIME_TRIAL_TIER() != eHSWTTTIER_INVALID
PM_SET_DATA_SLOT_FOR_STAT_WITH_TIME(iColumn, 2, iMenuID, 2, "PM_PTIME", "STRTNM1", GET_HSW_TIME_TRIAL_TARGET_TIME_MS(GET_CURRENT_HSW_TIME_TRIAL(), GET_HSW_TIME_TRIAL_TIER()))
PM_SET_DATA_SLOT_FOR_STAT(iColumn, 3, iMenuID, 3, FALSE, "PM_AREA", GET_NAME_OF_ZONE(GET_HSW_TIME_TRIAL_START_LOCATION(GET_CURRENT_HSW_TIME_TRIAL() )))
PM_SET_DATA_SLOT(iColumn, 4, iMenuID, 4, FALSE, " ", FALSE, 4) // Type 4 to show white bar
PM_SET_DATA_SLOT(iColumn, 5, iMenuID, 5, FALSE, tl63Description, bLiteralDecString, 5)
ELSE
PM_SET_DATA_SLOT_FOR_STAT(iColumn, 2, iMenuID, 2, FALSE, "PM_AREA", GET_NAME_OF_ZONE(GET_HSW_TIME_TRIAL_START_LOCATION(GET_CURRENT_HSW_TIME_TRIAL() )))
PM_SET_DATA_SLOT(iColumn, 3, iMenuID, 3, FALSE, " ", FALSE, 4) // Type 4 to show white bar
PM_SET_DATA_SLOT(iColumn, 4, iMenuID, 4, FALSE, tl63Description, bLiteralDecString, 5)
ENDIF
#ENDIF
ELSE
INT iIndex = 0
CPRINTLN(DEBUG_PAUSE_MENU, " -- DISPLAY_MISSION_DETAILS -- BEFORE RATED DRAWN - iRating = ", iRating)
IF iRating = -1
PM_SET_DATA_SLOT_FOR_STAT(iColumn, iIndex, iMenuID, iIndex, TRUE, "PM_RATING", "PM_RATING_N")
CPRINTLN(DEBUG_PAUSE_MENU, " -- DISPLAY_MISSION_DETAILS -- NOT RATED - iRating = ", iRating)
ELSE
PM_SET_DATA_SLOT_FOR_STAT(iColumn, iIndex, iMenuID, iIndex, TRUE, "PM_RATING", "PM_RATING_V", iRating)
CPRINTLN(DEBUG_PAUSE_MENU, " -- DISPLAY_MISSION_DETAILS -- RATED - iRating = ", iRating)
ENDIF
iIndex++
PM_SET_DATA_SLOT_FOR_STAT(iColumn, iIndex, iMenuID, iIndex, FALSE, "PM_CREATED", tl63Creator, 0, TRUE, TRUE, bSCNickname)
iIndex++
PM_SET_DATA_SLOT_FOR_STAT_WITH_NUMBER(iColumn, iIndex, iMenuID, iIndex, "PM_RANK", "NUMBER", iRank)
iIndex++
IF iMaxPlayers > NUM_NETWORK_REAL_PLAYERS()
iMaxPlayers = NUM_NETWORK_REAL_PLAYERS()
ENDIF
PM_SET_DATA_SLOT_FOR_PLAYERS(iColumn, iIndex, iMenuID, iIndex, "PM_PLAYERS", iMinPlayers, iMaxPlayers)
iIndex++
IF iMaxTeams > 1
PM_SET_DATA_SLOT_FOR_STAT_WITH_NUMBER(iColumn, iIndex, iMenuID, iIndex, "PM_TEAMS", "NUMBER", iMaxTeams)
iIndex++
PM_SET_DATA_SLOT_FOR_TYPE_STAT(iColumn, iIndex, iMenuID, iIndex, "PM_TYPE", GET_MISSION_SUBTYPE_STRING_FOR_PAUSEMENU(iMissionType, iMissionSubtype, iMissionBitSet, iMissionBitSetTwo, DEFAULT, iAdversaryModeType), iMissionTypeIcon, iIconColour, IS_BIT_SET(iMissionBitSet, ciROCKSTAR_CREATED_MISSION_HAS_BEEN_PLAYED))
iIndex++
PM_SET_DATA_SLOT_FOR_STAT(iColumn, iIndex, iMenuID, iIndex, FALSE, "PM_AREA", GET_NAME_OF_ZONE(vLocation))
iIndex++
IF !IS_STRING_NULL_OR_EMPTY(tl63Description)
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, " ", FALSE, 4) // Type 4 to show white bar
iIndex++
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, tl63Description, TRUE, 5)
iIndex++
ELSE
// Clear data slots
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, "", TRUE, 5)
iIndex++
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, "", TRUE, 5)
iIndex++
ENDIF
ELSE
PM_SET_DATA_SLOT_FOR_TYPE_STAT(iColumn, iIndex, iMenuID, iIndex, "PM_TYPE", GET_MISSION_SUBTYPE_STRING_FOR_PAUSEMENU(iMissionType, iMissionSubtype, iMissionBitSet, iMissionBitSetTwo, DEFAULT, iAdversaryModeType), iMissionTypeIcon, iIconColour, IS_BIT_SET(iMissionBitSet, ciROCKSTAR_CREATED_MISSION_HAS_BEEN_PLAYED))
iIndex++
PM_SET_DATA_SLOT_FOR_STAT(iColumn, iIndex, iMenuID, iIndex, FALSE, "PM_AREA", GET_NAME_OF_ZONE(vLocation))
iIndex++
IF !IS_STRING_NULL_OR_EMPTY(tl63Description)
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, " ", FALSE, 4) // Type 4 to show white bar
iIndex++
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, tl63Description, TRUE, 5)
iIndex++
//PM_RESET_DATA_SLOT(8)
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, "", TRUE, 5)
iIndex++
ELSE
// Clear data slots
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, "", TRUE, 5)
iIndex++
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, "", TRUE, 5)
iIndex++
//PM_RESET_DATA_SLOT(8)
PM_SET_DATA_SLOT(iColumn, iIndex, iMenuID, iIndex, FALSE, "", TRUE, 5)
iIndex++
ENDIF
ENDIF
ENDIF
PM_DISPLAY_DATA_SLOT(iColumn)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DESCRIPTION")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
END_SCALEFORM_MOVIE_METHOD()
ENDIF
IF pauseMenuGlobalState != PAUSE_MENU_GLOBAL_STATE_EDIT_PLAYLIST
RELEASE_CONTROL_OF_FRONTEND()
ENDIF
ENDPROC
/// PURPOSE: Displays a loading spinner in position passed
/// PARAMS:
/// iPos - 0-4 (xPos = 0.5, 1, 1.5, 2, 2.5)
PROC SET_COLUMN_AS_BUSY(INT iPos, BOOL bBusy)
PAUSE_MENU_SET_BUSY_SPINNER(bBusy, iPos)
ENDPROC
//Get an array position from a vector
FUNC INT GET_ARRAY_POS_FROM_COORD(FMMC_ROCKSTAR_CREATED_STRUCT &sStructPassedIn, VECTOR vBlipPos)
INT iLoops
FOR iLoops = 0 TO (COUNT_OF(sStructPassedIn.sMissionHeaderVars) - 1)
IF sStructPassedIn.sMissionHeaderVars[iLoops].vStartPos.x = vBlipPos.x
AND sStructPassedIn.sMissionHeaderVars[iLoops].vStartPos.y = vBlipPos.y
RETURN iLoops
ENDIF
ENDFOR
RETURN -1
ENDFUNC
//Get an array position from a vector
FUNC INT GET_ARRAY_POS_FROM_COORD_VERIFIED(FMMC_ROCKSTAR_VERIFIED_STRUCT &sStructPassedIn, VECTOR vBlipPos)
INT iLoops
FOR iLoops = 0 TO (COUNT_OF(sStructPassedIn.sMissionHeaderVars) - 1)
IF sStructPassedIn.sMissionHeaderVars[iLoops].vStartPos.x = vBlipPos.x
AND sStructPassedIn.sMissionHeaderVars[iLoops].vStartPos.y = vBlipPos.y
RETURN iLoops
ENDIF
ENDFOR
RETURN -1
ENDFUNC
//Get an array position from a vector
FUNC INT GET_ARRAY_POS_FROM_COORD_USER_MISSION(FMMC_GLOBAL_HEADER_STRUCT &sStructPassedIn, VECTOR vBlipPos)
INT iLoops
FOR iLoops = 0 TO (COUNT_OF(sStructPassedIn.sMyMissionHeaderVars) - 1)
IF sStructPassedIn.sMyMissionHeaderVars[iLoops].vStartPos.x = vBlipPos.x
AND sStructPassedIn.sMyMissionHeaderVars[iLoops].vStartPos.y = vBlipPos.y
RETURN iLoops
ENDIF
ENDFOR
RETURN -1
ENDFUNC
//Get an array position from a vector
FUNC INT GET_ARRAY_POS_FROM_COORD_REMOTE_USER_MISSION(VECTOR vBlipPos)
INT iLoops
FOR iLoops = 0 TO (COUNT_OF(GlobalServerBD_MissionsShared.cloudDetails) - 1)
IF GlobalServerBD_MissionsShared.cloudDetails[iLoops].mscHeaderData.vStartPos.x = vBlipPos.x
AND GlobalServerBD_MissionsShared.cloudDetails[iLoops].mscHeaderData.vStartPos.y = vBlipPos.y
RETURN iLoops
ENDIF
ENDFOR
RETURN -1
ENDFUNC
//Get all the details about a mission
FUNC BOOL GET_MISSION_INFO_FROM_VECTOR( BLIP_INDEX biPassed, //The blip
VECTOR &vLocation, //The location
TEXT_LABEL_63 &tl63Creator, //The creator
TEXT_LABEL_63 &tl31MissionName, //The mission name
TEXT_LABEL_63 &tl63Description, //The mission description
INT &iMinPlayers, //The min number of players
INT &iMaxPlayers, //the max number of players
INT &iMissionType, //the mission type
INT &iMissionSubType, //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
INT &iMissionBitSet, //The bitset of the mission (Capture mode, HOLD, CONTEND etc)
INT &iMissionBitSetTwo, //The bitset of the mission (Capture mode, HOLD, CONTEND etc)
INT &iRank, //The rank player must be at
INT &iRating, //the mission rating
BOOL &bVerified, //Rockstar verified
INT &iCreatorID, //The CreatorID
INT &iCachedDescID, //The cached mision descriptionID
BOOL &bHasPhoto,
BOOL &bRockstarCreated,
TEXT_LABEL_23 &tl23FileName,
INT &iDecHash,
INT &iMaxTeams,
BOOL &bAllowStartJob, // KEITH 20/3/14: To disable 'start job' option for remote player's UGC on map
BOOL &bPushbikeOnly,
INT &iPhotoVersion,
INT &iPhotoPath,
INT &iRootContentIDHash,
INT &iAdversaryModeType
#IF IS_DEBUG_BUILD ,
BOOL bPrintData = TRUE
#ENDIF)
// KEITH 3/5/13: Set defaults for a couple of return values so they can be ignored by the calling function if not set below
iCreatorID = ILLEGAL_CREATOR_ID
iCachedDescID = ILLEGAL_ARRAY_POSITION
bAllowStartJob = FALSE
iRootContentIDHash = 0
iAdversaryModeType = 0
IF DOES_BLIP_EXIST(biPassed)
IF GET_BLIP_INFO_ID_DISPLAY(biPassed) != DISPLAY_NOTHING
vLocation = GET_BLIP_COORDS(biPassed) //The coords?
INT iArrayPos = -1 //the return array pos
BLIP_SPRITE blipSprite = GET_BLIP_SPRITE(biPassed)
INT blipColour = GET_BLIP_COLOUR(biPassed)
IF blipSprite = RADAR_TRACE_COMMUNITY_SERIES
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[ciCV2_SERIES_COMMUNITY]
CPRINTLN(DEBUG_PAUSE_MENU, "RADAR_TRACE_COMMUNITY_SERIES - iArrayPos = ", iArrayPos)
//Fill out the data
IF iArrayPos != -1
tl63Creator = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlOwner //The creator
tl31MissionName = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlMissionName //The mission name
tl63Description = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
iMinPlayers = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
iMaxPlayers = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMaxPlayers //The max number of players
iMissionType = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iType //The mission type.
iMissionSubType = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = 1 //The mission rank.
iRating = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iRating //The mission rating
tl23FileName = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlName //The file name
iDecHash = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iPhotoPath
iRootContentIDHash = g_FMMC_ROCKSTAR_VERIFIED.sDefaultCoronaOptions[iArrayPos].iRootContentIdHash
iAdversaryModeType = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iAdversaryModeType
bVerified = FALSE
iCreatorID = FMMC_ROCKSTAR_CREATOR_ID
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = TRUE
iMaxTeams = g_FMMC_ROCKSTAR_VERIFIED.sDefaultCoronaOptions[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
bPushbikeOnly = IS_BIT_SET(g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_IS_PUSH_BIKE_ONLY)
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - A")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ENDIF
RETURN FALSE
ENDIF
IF blipSprite = RADAR_TRACE_STUNT_PREMIUM
INT iLoop, iPlaylist
REPEAT ciMAX_V2_PROFESSIONAL_CORONAS iLoop
IF g_sMPTunables.iProfesionalCoronaType[iLoop] = FMMC_TYPE_RACE
iPlaylist = iLoop
ENDIF
ENDREPEAT
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iPlaylist]
CPRINTLN(DEBUG_PAUSE_MENU, "RADAR_TRACE_STUNT_PREMIUM - iArrayPos = ", iArrayPos)
//Fill out the data
IF iArrayPos != -1
tl63Creator = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlOwner //The creator
tl31MissionName = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlMissionName //The mission name
tl63Description = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
iMinPlayers = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
iMaxPlayers = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMaxPlayers //The max number of players
iMissionType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iType //The mission type.
iMissionSubType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = 1 //The mission rank.
iRating = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iRating //The mission rating
tl23FileName = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlName //The file name
iDecHash = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iPhotoPath
iRootContentIDHash = g_FMMC_ROCKSTAR_CREATED.sDefaultCoronaOptions[iArrayPos].iRootContentIdHash
iAdversaryModeType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iAdversaryModeType
bVerified = FALSE
iCreatorID = FMMC_ROCKSTAR_CREATOR_ID
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = TRUE
iMaxTeams = g_FMMC_ROCKSTAR_CREATED.sDefaultCoronaOptions[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
bPushbikeOnly = IS_BIT_SET(g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_IS_PUSH_BIKE_ONLY)
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - A")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ENDIF
ENDIF
IF blipSprite = RADAR_TRACE_STUNT
OR blipSprite = RADAR_TRACE_FEATURED_SERIES
OR CV2_IS_BLIP_ADVERSARY_SERIES_BLIP(blipSprite)
OR blipSprite = RADAR_TRACE_STEERINGWHEEL
OR blipSprite = RADAR_TRACE_ADVERSARY_BUNKER
OR blipSprite = RADAR_TRACE_RACE_TF
OR blipSprite = RADAR_TRACE_ACSR_RACE_TARGET
OR blipSprite = RADAR_TRACE_ACSR_RACE_HOTRING
OR blipSprite = RADAR_TRACE_ARENA_SERIES
OR ((blipSprite = RADAR_TRACE_RACE_LAND) AND (blipColour = GET_BLIP_COLOUR_FROM_HUD_COLOUR(HUD_COLOUR_PINKLIGHT)))
OR ((blipSprite = RADAR_TRACE_HORDE) AND (blipColour = GET_BLIP_COLOUR_FROM_HUD_COLOUR(HUD_COLOUR_PINKLIGHT)))
OR blipSprite = RADAR_TRACE_RACE_OPEN_WHEEL
OR blipSprite = RADAR_TRACE_STREET_RACE_SERIES
OR blipSprite = RADAR_TRACE_PURSUIT_SERIES
#IF FEATURE_GEN9_EXCLUSIVE
OR blipSprite = RADAR_TRACE_HSW_RACE_SERIES
#ENDIF
OR blipSprite = RADAR_TRACE_CAYO_SERIES
IF blipSprite = RADAR_TRACE_STUNT
iArrayPos = g_sV2CoronaVars.iCurrentMissionArrayPos
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_STUNT_PREMIUM iArrayPos = ", iArrayPos)
ELIF blipSprite = RADAR_TRACE_STEERINGWHEEL
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_SPECIAL_VEHICLE_RACE_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_STEERINGWHEEL iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_ADVERSARY_BUNKER
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_BUNKER_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_ADVERSARY_BUNKER iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_RACE_TF
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_TRANSFORM_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_TRANSFORM iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_ACSR_RACE_TARGET
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_TARGET_ASSAULT_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_ACSR_RACE_TARGET iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_ACSR_RACE_HOTRING
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_HOTRING_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_ACSR_RACE_HOTRING iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_ARENA_SERIES
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_ARENA_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_ARENA_SERIES iArrayPos = ", iArrayPos)
ENDIF
ELIF ((blipSprite = RADAR_TRACE_RACE_LAND) AND (blipColour = GET_BLIP_COLOUR_FROM_HUD_COLOUR(HUD_COLOUR_PINKLIGHT)))
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_RACE_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_RACE_LAND and HUD_COLOUR_PINKLIGHT iArrayPos = ", iArrayPos)
ENDIF
ELIF ((blipSprite = RADAR_TRACE_HORDE) AND (blipColour = GET_BLIP_COLOUR_FROM_HUD_COLOUR(HUD_COLOUR_PINKLIGHT)))
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_SURVIVAL_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_HORDE and HUD_COLOUR_PINKLIGHT iArrayPos = ", iArrayPos)
ENDIF
ELIF (blipSprite = RADAR_TRACE_RACE_OPEN_WHEEL)
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_OPEN_WHEEL_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_RACE_OPEN_WHEEL iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_FEATURED_SERIES
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_MISSION_NEW_VS)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* CV2_GET_ADVERSARY_SERIES_ARRAY_POS iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_STREET_RACE_SERIES
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_STREET_RACE_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_STREET_RACE_SERIES iArrayPos = ", iArrayPos)
ENDIF
ELIF blipSprite = RADAR_TRACE_PURSUIT_SERIES
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_PURSUIT_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_PURSUIT_SERIES iArrayPos = ", iArrayPos)
ENDIF
#IF FEATURE_GEN9_EXCLUSIVE
ELIF blipSprite = RADAR_TRACE_HSW_RACE_SERIES
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_HSW_RACE_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_HSW_RACE_SERIES iArrayPos = ", iArrayPos)
ENDIF
#ENDIF
ELIF blipSprite = RADAR_TRACE_CAYO_SERIES
iArrayPos = CV2_GET_ADVERSARY_SERIES_ARRAY_POS(FMMC_TYPE_CAYO_PERICO_SERIES)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* RADAR_TRACE_CAYO_SERIES iArrayPos = ", iArrayPos)
ENDIF
ELSE
iArrayPos = CV2_GET_ADVERSARY_SERIES_FROM_BLIP_SPRITE(blipSprite)
IF iArrayPos != -1
iArrayPos = g_sV2CoronaVars.iCurrentArrayPosProfessional[iArrayPos]
CPRINTLN(DEBUG_PAUSE_MENU, "[CV2]* CV2_GET_ADVERSARY_SERIES_FROM_BLIP_SPRITE iArrayPos = ", iArrayPos)
ENDIF
ENDIF
//Fill out the data
IF iArrayPos != -1
tl63Creator = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlOwner //The creator
tl31MissionName = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlMissionName //The mission name
tl63Description = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
INT iPlaylist = CV2_GET_ADVERSARY_SERIES_PLAYLIST_FROM_ROOT_CONTENT_ID(g_FMMC_ROCKSTAR_CREATED.sDefaultCoronaOptions[iArrayPos].iRootContentIdHash, TRUE)
IF iPlaylist != -1
AND g_sMPTunables.iFmCoronaPlaylistProffesionalNumberMin[iPlaylist] != -1
iMinPlayers = g_sMPTunables.iFmCoronaPlaylistProffesionalNumberMin[iPlaylist]
ELSE
iMinPlayers = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
ENDIF
IF iPlaylist != -1
AND g_sMPTunables.iFmCoronaPlaylistProffesionalNumberMax[iPlaylist] != -1
iMaxPlayers = g_sMPTunables.iFmCoronaPlaylistProffesionalNumberMax[iPlaylist]
ELSE
iMaxPlayers = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMaxPlayers //The max number of players
ENDIF
iMissionType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iType //The mission type.
iMissionSubType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iRank //The mission rank.
iRating = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iRating //The mission rating
tl23FileName = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlName //The file name
iDecHash = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iPhotoPath
iRootContentIDHash = g_FMMC_ROCKSTAR_CREATED.sDefaultCoronaOptions[iArrayPos].iRootContentIdHash
iAdversaryModeType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iAdversaryModeType
bVerified = FALSE
iCreatorID = FMMC_ROCKSTAR_CREATOR_ID
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = TRUE
iMaxTeams = g_FMMC_ROCKSTAR_CREATED.sDefaultCoronaOptions[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
bPushbikeOnly = IS_BIT_SET(g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_IS_PUSH_BIKE_ONLY)
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - A")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ENDIF
ENDIF
SWITCH blipColour
//Rockstar created
CASE BLIP_COLOUR_DEFAULT
CASE BLIP_COLOUR_BLUE
CASE BLIP_COLOUR_YELLOW
CASE BLIP_COLOUR_WHITE
//ROCKSTAR CREATED
iArrayPos = GET_ARRAY_POS_FROM_COORD(g_FMMC_ROCKSTAR_CREATED, vLocation)
CPRINTLN(DEBUG_PAUSE_MENU, "ROCKSTAR ATTEMPT - iArrayPos = ", iArrayPos)
//Fill out the data
IF iArrayPos != -1
tl63Creator = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlOwner //The creator
tl31MissionName = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlMissionName //The mission name
tl63Description = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
iMinPlayers = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
iMaxPlayers = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMaxPlayers //The max number of players
iMissionType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iType //The mission type.
iMissionSubType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iRank //The mission rank.
iRating = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iRating //The mission rating
tl23FileName = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].tlName //The file name
iDecHash = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iPhotoPath
iRootContentIDHash = g_FMMC_ROCKSTAR_CREATED.sDefaultCoronaOptions[iArrayPos].iRootContentIdHash
iAdversaryModeType = g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iAdversaryModeType
bVerified = FALSE
iCreatorID = FMMC_ROCKSTAR_CREATOR_ID
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = TRUE
iMaxTeams = g_FMMC_ROCKSTAR_CREATED.sDefaultCoronaOptions[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
bPushbikeOnly = IS_BIT_SET(g_FMMC_ROCKSTAR_CREATED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_IS_PUSH_BIKE_ONLY)
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - A")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ELSE
//LOCAL USER
iArrayPos = GET_ARRAY_POS_FROM_COORD_USER_MISSION(g_FMMC_HEADER_STRUCT, vLocation)
CPRINTLN(DEBUG_PAUSE_MENU, " USER ATTEMPT - iArrayPos = ", iArrayPos)
PRINTLN(" USER ATTEMPT - player name = ", GET_PLAYER_NAME(PLAYER_ID()))
IF iArrayPos != -1
IF iArrayPos >= MAX_NUMBER_FMMC_SAVES
tl63Creator = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlOwner //The creator
ELSE
tl63Creator = GET_PLAYER_NAME(PLAYER_ID()) //The creator
ENDIF
tl31MissionName = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlMissionName // tlMissionName[iArrayPos] //The mission name
tl63Description = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
iMinPlayers = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
iMaxPlayers = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMaxPlayers //the max number of players
iMissionType = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iType //the mission type.
iMissionSubType = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iRank //the mission rank.
iRating = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iRating //the mission rating
iDecHash = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iPhotoPath
bVerified = FALSE //TRUE
iCreatorID = NATIVE_TO_INT(PLAYER_ID())
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = FALSE
tl23FileName = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlName
iMaxTeams = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - B")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ELSE
//VERIFIED
iArrayPos = GET_ARRAY_POS_FROM_COORD_VERIFIED(g_FMMC_ROCKSTAR_VERIFIED, vLocation)
CPRINTLN(DEBUG_PAUSE_MENU, " VERIFIED ATTEMPT - iArrayPos = ", iArrayPos)
IF iArrayPos != -1
tl63Creator = g_FMMC_ROCKSTAR_VERIFIED.tlOwnerPretty[iArrayPos] //The creator
tl31MissionName = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlMissionName //The mission name
tl63Description = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
iMinPlayers = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
iMaxPlayers = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMaxPlayers //the max number of players
iMissionType = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iType //the mission type.
iMissionSubType = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iRank //the mission rank.
iRating = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iRating //the mission rating
iDecHash = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iPhotoPath
bVerified = TRUE
iCreatorID = FMMC_ROCKSTAR_CANDIDATE_CREATOR_ID
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bPushbikeOnly = IS_BIT_SET(g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_IS_PUSH_BIKE_ONLY)
bRockstarCreated = FALSE
tl23FileName = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlName
iMaxTeams = g_FMMC_ROCKSTAR_VERIFIED.sDefaultCoronaOptions[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - C")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ELSE
//REMOTE USER
iArrayPos = GET_ARRAY_POS_FROM_COORD_REMOTE_USER_MISSION(vLocation)
CPRINTLN(DEBUG_PAUSE_MENU, " REMOTE USER ATTEMPT - iArrayPos = ", iArrayPos)
IF iArrayPos != -1
tl63Creator = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.tlOwner //The creator
tl31MissionName = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.tlMissionName //The mission name
tl63Description = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.tlMissionDec //The mission description
iMinPlayers = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iMinPlayers //The min number of players
iMaxPlayers = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iMaxPlayers //the max number of players
iMissionType = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iType //the mission type.
iMissionSubType = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iBitset //Bitset of the mission
iRank = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iRank //the mission rank.
iRating = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iRating //the mission rating
// KEITH 21/3/14 [1788785] - this is server data and the Description Hash is specific to the local player so the shared Hash is locally wrong
// and the actual hash needs the mission header data to be downloaded, which it isn't, and so isn't locally available
//iDecHash = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iMissionDecHash //The description hash
iDecHash = 0
bVerified = FALSE
iCreatorID = FMMC_ROCKSTAR_CANDIDATE_CREATOR_ID
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = FALSE
tl23FileName = GlobalServerBD_MissionsShared.cloudDetails[iArrayPos].mscHeaderData.tlName
iMaxTeams = 1
bAllowStartJob = FALSE // Remote player's UGC on map shouldn't display or accept the 'start mission' option
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - D")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ELSE
//NONE
CPRINTLN(DEBUG_PAUSE_MENU, "GET_MISSION_INFO_FROM_VECTOR = -1 (BLIP_COLOUR_DEFAULT & BLIP_COLOUR_WHITE)")
RETURN FALSE
ENDIF
ENDIF
ENDIF
ENDIF
BREAK
//Rocstar Verified
CASE BLIP_COLOUR_FREEMODE
//Get an array Pos
iArrayPos = GET_ARRAY_POS_FROM_COORD_VERIFIED(g_FMMC_ROCKSTAR_VERIFIED, vLocation)
CPRINTLN(DEBUG_PAUSE_MENU, "B - iArrayPos = ", iArrayPos)
//Fill out the data
IF iArrayPos != -1
tl63Creator = g_FMMC_ROCKSTAR_VERIFIED.tlOwnerPretty[iArrayPos] //The creator
tl31MissionName = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlMissionName //The mission name
tl63Description = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
iMinPlayers = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
iMaxPlayers = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMaxPlayers //the max number of players
iMissionType = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iType //the mission type.
iMissionSubType = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iRank //the mission rank.
iRating = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iRating //the mission rating
iDecHash = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iPhotoPath
bVerified = TRUE
iCreatorID = FMMC_ROCKSTAR_CANDIDATE_CREATOR_ID
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = FALSE
tl23FileName = g_FMMC_ROCKSTAR_VERIFIED.sMissionHeaderVars[iArrayPos].tlName
iMaxTeams = g_FMMC_ROCKSTAR_VERIFIED.sDefaultCoronaOptions[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - C")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ELSE
iArrayPos = GET_ARRAY_POS_FROM_COORD_USER_MISSION(g_FMMC_HEADER_STRUCT, vLocation)
CPRINTLN(DEBUG_PAUSE_MENU, "B - SECOND ATTEMPT - iArrayPos = ", iArrayPos)
IF iArrayPos != -1
tl63Creator = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlOwner //The creator
tl31MissionName = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlMissionName // tlMissionName[iArrayPos] //The mission name
tl63Description = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlMissionDec //The mission description
iMinPlayers = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMinPlayers //The min number of players
iMaxPlayers = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMaxPlayers //the max number of players
iMissionType = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iType //the mission type.
iMissionSubType = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iSubType //The Sub Type (Team Deathmatch, Vehicle Deathmatch, etc)
iMissionBitSet = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iBitset //Bitset of the mission
iMissionBitSetTwo = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iBitsetTwo //Bitset of the mission
iRank = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iRank //the mission rank.
iRating = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iRating //the mission rating
iDecHash = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMissionDecHash //The description hash
iPhotoVersion = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iPhotoVersion
iPhotoPath = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iPhotoPath
bVerified = FALSE //TRUE
iCreatorID = NATIVE_TO_INT(PLAYER_ID())
iCachedDescID = iArrayPos
bHasPhoto = TRUE //IS_BIT_SET(g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iBitSet, ciROCKSTAR_CREATED_MISSION_HAS_PHOTO)
bRockstarCreated = FALSE
tl23FileName = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].tlName
iMaxTeams = g_FMMC_HEADER_STRUCT.sMyMissionHeaderVars[iArrayPos].iMaxNumberOfTeams
bAllowStartJob = TRUE
#IF IS_DEBUG_BUILD
IF bPrintData
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - D")
CPRINTLN(DEBUG_PAUSE_MENU, "tl63Creator = ", tl63Creator)
CPRINTLN(DEBUG_PAUSE_MENU, "tl31MissionName = ", tl31MissionName)
CPRINTLN(DEBUG_PAUSE_MENU, "iDecHash = ", iDecHash)
CPRINTLN(DEBUG_PAUSE_MENU, "iMinPlayers = ", iMinPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionType = ", iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMissionSubType = ", iMissionSubType)
CPRINTLN(DEBUG_PAUSE_MENU, "iMaxPlayers = ", iMaxPlayers)
CPRINTLN(DEBUG_PAUSE_MENU, "iRank = ", iRank)
CPRINTLN(DEBUG_PAUSE_MENU, "iRating = ", iRating)
ENDIF
#ENDIF
RETURN TRUE
ELSE
CPRINTLN(DEBUG_PAUSE_MENU, "B - GET_MISSION_INFO_FROM_VECTOR = -1 (BLIP_COLOUR_FREEMODE)")
RETURN FALSE
ENDIF
ENDIF
BREAK
//Player created.
DEFAULT
CPRINTLN(DEBUG_PAUSE_MENU, "MAP - MISSION DATA - X")
CPRINTLN(DEBUG_PAUSE_MENU, "GET_MISSION_INFO_FROM_VECTOR - NOT SURE WHAT BLIP IS")
BREAK
ENDSWITCH
ELSE
CPRINTLN(DEBUG_PAUSE_MENU, "GET_MISSION_INFO_FROM_VECTOR - GET_BLIP_INFO_ID_DISPLAY(biPassed) = DISPLAY_NOTHING")
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
PROC PROCESS_ARENA_CREATOR_MAP()
IF IS_PAUSE_MENU_ACTIVE()
HIDE_MINIMAP_EXTERIOR_MAP_THIS_FRAME()
ENDIF
ENDPROC
FUNC INT GET_SERIES_FROM_BLIP(BLIP_INDEX biPassed)
BLIP_SPRITE blipSprite = GET_BLIP_SPRITE(biPassed)
HUD_COLOURS hudColour = GET_HUD_COLOUR_FROM_BLIP_COLOUR(GET_BLIP_COLOUR(biPassed))
IF hudColour != HUD_COLOUR_PINKLIGHT
RETURN -1
ENDIF
SWITCH blipSprite
// Stunt Series
CASE RADAR_TRACE_STUNT
RETURN ciCV2_SERIES_STUNT
// Premiumn Race
CASE RADAR_TRACE_STUNT_PREMIUM
RETURN ciCV2_SERIES_PREMIUM_RACE
// Featured Series
CASE RADAR_TRACE_FEATURED_SERIES
RETURN ciCV2_SERIES_FEATURED
// Adversary Series (16 Player)
CASE RADAR_TRACE_ADVERSARY_16
RETURN ciCV2_SERIES_ADVERSARY_LARGE
// Adversary Series (8 Player)
CASE RADAR_TRACE_ADVERSARY_8
RETURN ciCV2_SERIES_ADVERSARY_MEDIUM
// Adversary Series (4 Player)
CASE RADAR_TRACE_ADVERSARY_4
RETURN ciCV2_SERIES_ADVERSARY_SMALL
// Special Vehicle Series
CASE RADAR_TRACE_STEERINGWHEEL
RETURN ciCV2_SERIES_SPECIAL_VEHICLE
// Bunker Series
CASE RADAR_TRACE_ADVERSARY_BUNKER
RETURN ciCV2_SERIES_BUNKER
// Transform Series
CASE RADAR_TRACE_RACE_TF
RETURN ciCV2_SERIES_TRANSFORM
// San Andreas Super Sport Series (Hotring)
CASE RADAR_TRACE_ACSR_RACE_HOTRING
RETURN ciCV2_SERIES_SAN_ANDREAS_SUPER_SPORT
// Arena Series
CASE RADAR_TRACE_ARENA_SERIES
RETURN ciCV2_SERIES_ARENA_WAR
// Race Series
CASE RADAR_TRACE_RACE_LAND
IF hudColour = HUD_COLOUR_PINKLIGHT
RETURN ciCV2_SERIES_RACE
ENDIF
BREAK
// Survival Series
CASE RADAR_TRACE_HORDE
IF hudColour = HUD_COLOUR_PINKLIGHT
RETURN ciCV2_SERIES_SURVIVAL
ENDIF
BREAK
// Open Wheel Series
CASE RADAR_TRACE_RACE_OPEN_WHEEL
RETURN ciCV2_SERIES_OPEN_WHEEL
// Street Race Series
CASE RADAR_TRACE_STREET_RACE_SERIES
RETURN ciCV2_SERIES_STREET_RACE
// Pursuit Series
CASE RADAR_TRACE_PURSUIT_SERIES
RETURN ciCV2_SERIES_PURSUIT
// HSW Race Series
#IF FEATURE_GEN9_EXCLUSIVE
CASE RADAR_TRACE_HSW_RACE_SERIES
RETURN ciCV2_SERIES_HSW_RACE
#ENDIF
CASE RADAR_TRACE_COMMUNITY_SERIES
RETURN ciCV2_SERIES_COMMUNITY
CASE RADAR_TRACE_CAYO_SERIES
RETURN ciCV2_SERIES_CAYO_PERICO
ENDSWITCH
RETURN -1
ENDFUNC
FUNC BOOL REQUEST_AND_LOAD_SERIES_BLIP_INFORMATION(INT iSeries)
UNUSED_PARAMETER(iSeries)
RETURN TRUE
ENDFUNC
PROC DISPLAY_SERIES_BLIP_INFORMATION(INT iSeries)
TAKE_CONTROL_OF_FRONTEND()
INT iColumn = ciDLC_CONTENT_PM_COLUMN
INT iIndex = 0
INT iMenuID = ENUM_TO_INT(MENU_UNIQUE_ID_MISSION_CREATOR_LISTITEM)
SHOW_CONTACT_INSTRUCTIONAL_BUTTON(FALSE)
SHOW_START_MISSION_INSTRUCTIONAL_BUTTON(TRUE)
SHOW_PM_COLUMN(iColumn)
// IMAGE (with the pack name in the overlay at the bottom)
SET_FRONTEND_DETAILS_TITLE(iColumn, "", GET_FILENAME_FOR_AUDIO_CONVERSATION(GET_SERIES_NAME(iSeries)), DEFAULT, GET_DLC_CONTENT_TEXTURE_DICT(), GET_SERIES_TEXTURE_STRING(iSeries))
// Show race class or vehicle model for Premium race
IF iSeries = ciCV2_SERIES_PREMIUM_RACE
AND g_iCurrentPremiumRacePos != -1
// Vehicle Model
IF g_sMPTunables.iFmCoronaPlaylistProffesionalRaceClass[g_iCurrentPremiumRacePos] > FMMC_VEHICLE_UPDATE_FUTURE_VEHICLES
OR g_sMPTunables.iFmCoronaPlaylistProffesionalRaceClass[g_iCurrentPremiumRacePos] < 0
PM_SET_DATA_SLOT_FOR_STAT( iColumn, iIndex, iMenuID, iIndex, FALSE, "FMMCCPD_CHG", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(INT_TO_ENUM(MODEL_NAMES, g_sMPTunables.iFmCoronaPlaylistProffesionalRaceClass[g_iCurrentPremiumRacePos])))
iIndex++
// Vehicle Class
ELSE
PM_SET_DATA_SLOT_FOR_STAT( iColumn, iIndex, iMenuID, iIndex, FALSE, "FMMC_VEH_CL", CV2_GET_ACTIVE_RACE_CLASS_STRING(g_sMPTunables.iFmCoronaPlaylistProffesionalRaceClass[g_iCurrentPremiumRacePos]))
iIndex++
ENDIF
ENDIF
// PLAYERS
IF GET_SERIES_MIN_PLAYERS(iSeries) = GET_SERIES_MAX_PLAYERS(iSeries)
PM_SET_DATA_SLOT_FOR_STAT_WITH_NUMBER( iColumn, iIndex, iMenuID, iIndex, "PM_PLAYERS", "NUMBER", GET_SERIES_MIN_PLAYERS(iSeries))
iIndex++
ELSE
PM_SET_DATA_SLOT_FOR_PLAYERS( iColumn, iIndex, iMenuID, iIndex, "PM_PLAYERS", GET_SERIES_MIN_PLAYERS(iSeries), GET_SERIES_MAX_PLAYERS(iSeries))
iIndex++
ENDIF
// TYPE
PM_SET_DATA_SLOT_FOR_STAT( iColumn, iIndex, iMenuID, iIndex, FALSE, "DLCC_TYPE", GET_SERIES_TYPE_STRING(iSeries))
iIndex++
// BREAK --------------------------------------------------------------------------------------------------------------------------------------------
PM_SET_DATA_SLOT( iColumn, iIndex, iMenuID, iIndex, FALSE, " ", FALSE, 4) // Type 4 to show white bar
iIndex++
// ROLLOVER
PM_SET_DATA_SLOT( iColumn, iIndex, iMenuID, iIndex, FALSE, GET_FILENAME_FOR_AUDIO_CONVERSATION(GET_SERIES_ROLLOVER_COPY(iSeries)), TRUE, 5)
iIndex++
PM_DISPLAY_DATA_SLOT(iColumn)
RELEASE_CONTROL_OF_FRONTEND()
ENDPROC
FUNC DLC_CONTENT GET_DLC_CONTENT_FROM_BLIP(BLIP_INDEX biBlip)
// INT blipColour = GET_BLIP_COLOUR(biBlip)
// HUD_COLOURS blipHudColour = GET_HUD_COLOUR_FROM_BLIP_COLOUR(blipColour)
// STRING blipName = GET_BLIP_NAME(biBlip)
BLIP_SPRITE blipSprite = GET_BLIP_SPRITE(biBlip)
VECTOR blipCoords = GET_BLIP_COORDS(biBlip)
SWITCH blipSprite
// Heist
CASE RADAR_TRACE_MP_HEIST
RETURN eDLCCONTENT_HEISTS
CASE RADAR_TRACE_MP_LAMAR
IF ARE_VECTORS_ALMOST_EQUAL(blipCoords, GET_DLC_CONTENT_BLIP_COORD(eDLCCONTENT_THE_CONTRACT), 5.0)
RETURN eDLCCONTENT_THE_CONTRACT
ENDIF
RETURN eDLCCONTENT_LOWRIDER
CASE RADAR_TRACE_SECUROSERV
RETURN eDLCCONTENT_FAIFAF
CASE RADAR_TRACE_MICHAEL_FAMILY
RETURN eDLCCONTENT_BIKER
CASE RADAR_TRACE_ARMENIAN_FAMILY
RETURN eDLCCONTENT_GUNRUNNING
// Smuggler
CASE RADAR_TRACE_RON
RETURN eDLCCONTENT_SMUGGLER
CASE RADAR_TRACE_HEIST_DOOMSDAY
CASE RADAR_TRACE_HEIST_DOOMSDAY_UNAVAILABLE
RETURN eDLCCONTENT_DOOMSDAY_HEIST
CASE RADAR_TRACE_TREVOR_FAMILY
RETURN eDLCCONTENT_AFTER_HOURS
CASE RADAR_TRACE_FBI_OFFICERS_STRAND
RETURN eDLCCONTENT_ARENA_WAR
CASE RADAR_TRACE_CASINO
RETURN eDLCCONTENT_DIAMOND_CASINO_AND_RESORT
CASE RADAR_TRACE_HEIST_DIAMOND
CASE RADAR_TRACE_HEIST_DIAMOND_UNAVAILABLE
RETURN eDLCCONTENT_DIAMOND_CASINO_HEIST
CASE RADAR_TRACE_HEIST_ISLAND
CASE RADAR_TRACE_HEIST_ISLAND_UNAVAILABLE
RETURN eDLCCONTENT_CAYO_PERICO_HEIST
CASE RADAR_TRACE_MARTIN_MADRAZZO
RETURN eDLCCONTENT_MADRAZO_DISPATCH
CASE RADAR_TRACE_SIMEON_FAMILY
RETURN eDLCCONTENT_SIMEON_REPO
CASE RADAR_TRACE_GERALD
RETURN eDLCCONTENT_GERALDS_LAST_PLAY
CASE RADAR_TRACE_CAR_MEET
RETURN eDLCCONTENT_LOS_SANTOS_TUNERS
#IF FEATURE_DLC_1_2022
CASE RADAR_TRACE_AGENT_ULP
RETURN eDLCCONTENT_ULP_MISSIONS
CASE RADAR_TRACE_CAR_SHOWROOM_SIMEON
RETURN eDLCCONTENT_PREMIUM_DELUXE_MOTORSPORT
BREAK
#ENDIF
ENDSWITCH
RETURN eDLCCONTENT_INVALID
ENDFUNC
FUNC BOOL IS_DLC_CONTENT_BLIP(BLIP_INDEX biBlip)
RETURN GET_DLC_CONTENT_FROM_BLIP(biBlip) != eDLCCONTENT_INVALID
ENDFUNC
FUNC BOOL REQUEST_AND_LOAD_DLC_CONTENT_BLIP_INFORMATION(DLC_CONTENT eContent)
UNUSED_PARAMETER(eContent)
RETURN TRUE
ENDFUNC
PROC DISPLAY_DLC_CONTENT_BLIP_INFORMATION(DLC_CONTENT eContent, BOOL &bShowStartMission, DOWNLOAD_PHOTO_DATA &DLPhotoData)
TAKE_CONTROL_OF_FRONTEND()
// We have textures to show here, so reset any loading of previous job images
DLPhotoData.bLoadMissionPhoto = FALSE
DLPhotoData.bInitLoadMissionPhoto = FALSE
INT iColumn = ciDLC_CONTENT_PM_COLUMN
INT iIndex = 0
INT iMenuID = ENUM_TO_INT(MENU_UNIQUE_ID_MISSION_CREATOR_LISTITEM)
SHOW_START_MISSION_INSTRUCTIONAL_BUTTON(FALSE)
IF g_sDLCContentContollerStruct.iTriggerBitset = 0
AND DOES_DLC_CONTENT_HAVE_CORRESPONDANCE(eContent)
SHOW_START_MISSION_INSTRUCTIONAL_BUTTON(FALSE)
SHOW_CONTACT_INSTRUCTIONAL_BUTTON(TRUE)
bShowStartMission = FALSE
ENDIF
SHOW_PM_COLUMN(iColumn)
// IMAGE (with the pack name in the overlay at the bottom)
SET_FRONTEND_DETAILS_TITLE(iColumn, "", GET_FILENAME_FOR_AUDIO_CONVERSATION(GET_DLC_CONTENT_PACK_NAME(eContent)), DEFAULT, GET_DLC_CONTENT_TEXTURE_DICT(), GET_DLC_CONTENT_TEXTURE_STRING(eContent))
// CONTACT
PM_SET_DATA_SLOT_FOR_STAT( iColumn, iIndex, iMenuID, iIndex, FALSE, "DLCC_CONTACT", GET_DLC_CONTENT_CONTACT_STRING(eContent))
iIndex++
// PROPERTY
IF NOT IS_STRING_NULL_OR_EMPTY(GET_DLC_CONTENT_PROPERTY_STRING(eContent))
PM_SET_DATA_SLOT_FOR_STAT( iColumn, iIndex, iMenuID, iIndex, FALSE, "DLCC_PROPERTY", GET_DLC_CONTENT_PROPERTY_STRING(eContent))
iIndex++
ENDIF
// WEBSITE
IF NOT IS_STRING_NULL_OR_EMPTY(GET_DLC_CONTENT_WEBSITE_STRING(eContent))
PM_SET_DATA_SLOT_FOR_STAT( iColumn, iIndex, iMenuID, iIndex, FALSE, "DLCC_WEBSITE", GET_DLC_CONTENT_WEBSITE_STRING(eContent))
iIndex++
ENDIF
// TYPE
IF NOT IS_STRING_NULL_OR_EMPTY(GET_DLC_CONTENT_TYPE_STRING(eContent))
PM_SET_DATA_SLOT_FOR_STAT( iColumn, iIndex, iMenuID, iIndex, FALSE, "DLCC_TYPE", GET_DLC_CONTENT_TYPE_STRING(eContent))
iIndex++
ENDIF
// BREAK --------------------------------------------------------------------------------------------------------------------------------------------
PM_SET_DATA_SLOT( iColumn, iIndex, iMenuID, iIndex, FALSE, " ", FALSE, 4) // Type 4 to show white bar
iIndex++
PM_SET_DATA_SLOT( iColumn, iIndex, iMenuID, iIndex, FALSE, GET_FILENAME_FOR_AUDIO_CONVERSATION(GET_DLC_CONTENT_ROLLOVER_COPY(eContent)), TRUE, 5)
iIndex++
PM_DISPLAY_DATA_SLOT(iColumn)
RELEASE_CONTROL_OF_FRONTEND()
ENDPROC