Files
gtav-src/script/dev_ng/shared/PauseMenu/PauseMenu_Map.sc
T
2025-09-29 00:52:08 +02:00

701 lines
30 KiB
Python
Executable File

/***********************************
* Name: PauseMenu_MP_Map.sc
* Author: James Adwick
* Date: 05/11/2012
* Purpose: Script to run while players
* are on map tab to display
* mission details
***********************************/
USING "globals.sch"
USING "PauseMenu_MP_Public.sch"
USING "PauseMenu_SP_Public.sch"
USING "Flow_Mission_Data_Public.sch"
USING "shop_public.sch"
USING "fmmc_cloud_loader.sch"
USING "mp_scaleform_functions_xml.sch"
USING "transition_common.sch"
USING "fm_quickmatch_header.sch"
USING "net_time_trials.sch"
USING "net_rc_time_trials.sch"
#IF FEATURE_GEN9_EXCLUSIVE
USING "net_hsw_time_trials.sch"
#ENDIF
BLIP_INDEX mapBlip
BLIP_INDEX mapBlipLastFrame
VECTOR vLocation //The location of the blip
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 for the mission (let us know subtype of Capture mode)
INT iMissionBitSetTwo //The bitset for the mission (let us know subtype of Capture mode)
INT iRank //The rank the player must be at
INT iRating //The mission rating
BOOL bVerified //The mission is R* verified
BOOL bHasPhoto //Has the missiong got a photo
BOOL bRockstarCreated
TEXT_LABEL_23 tlFileName
INT iDecHash
INT iMaxTeams
BOOL bAllowStartJob // KEITH 20/3/14: TRUE if the 'start mission' option should be allowed for this blip, FALSE if not (added to disable this for remote player's UGC missions)
INT iPhotoVersion
INT iPhotoPath
DOWNLOAD_PHOTO_DATA DLPhotoData
STRUCT_DL_PHOTO_VARS_LITE sDownloadPhotoData
BOOL bJoinJobWarning
BOOL bCantJoinJobWarning
BOOL bCleanupJobCall
BOOL bPushbikeOnly
INT iRootContentIDHash
INT iAdversaryModeType
SCRIPT_TIMER iGarageCheck
TEXT_LABEL_31 tlJoinMissionName
INT iJoinMissionType
INT iJoinMaxPlayers
INT iJoinAvailable
BOOL bGetDescription
CACHED_MISSION_DESCRIPTION_LOAD_VARS sCMDLvars
//SP_MISSIONS eMission //Single player mission ID.
//SHOP_NAME_ENUM eShop //shop id
//PURPOSE: Controls loading and displaying the mission photo
PROC CONTROL_MISSION_PHOTO_DISPLAY()
IF DLPhotoData.bLoadMissionPhoto = TRUE
//Initialisation
IF DLPhotoData.bInitLoadMissionPhoto = FALSE
RESET_STRUCT_DL_PHOTO_VARS_LITE(sDownloadPhotoData) //CLEAN_UP_PHOTO_FOR_FMMC(sDownloadPhotoData)
DLPhotoData.bInitLoadMissionPhoto = TRUE
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] CONTROL_MISSION_PHOTO_DISPLAY - INIT")
ENDIF
IF sDownloadPhotoData.bSucess = FALSE
//Load Photo
//IF ARE_STRINGS_EQUAL(DLPhotoData.sFileName, "City")
//OR ARE_STRINGS_EQUAL(DLPhotoData.sFileName, "Country_side")
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] CONTROL_MISSION_PHOTO_DISPLAY - START LOADING")
IF DOWNLOAD_PHOTO_FOR_FMMC_LITE(sDownloadPhotoData, tlFileName, 0, iPhotoVersion, iPhotoPath)
OR iMissionType = FMMC_TYPE_TIME_TRIAL
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PAUSE MAP - CONTROL_MISSION_PHOTO_DISPLAY - A - tlFileName = ", tlFileName)
//OR DOWNLOAD_PHOTO_FOR_FMMC(sDownloadPhotoData, DLPhotoData.sCreator, DLPhotoData.sFileName) //"RSN_BobbyW_1", "513f98028fc43216549b3416") //DLPhotoData.sCreator, DLPhotoData.sFileName) //GET_MISSION_CREATOR_PM_STAT(), GET_MISSION_FILENAME_PM_STAT())
//Failsafe Photo
TEXT_LABEL_31 strTxd
TEXT_LABEL_31 strName
INT iLoadInt
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PAUSE MAP - CONTROL_MISSION_PHOTO_DISPLAY - A - sFileName = ", DLPhotoData.sFileName)
DLPhotoData.sFileName = TEXTURE_DOWNLOAD_GET_NAME(sDownloadPhotoData.iTextureDownloadHandle)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PAUSE MAP - CONTROL_MISSION_PHOTO_DISPLAY - B - sFileName = ", DLPhotoData.sFileName)
IF NOT IS_STRING_NULL_OR_EMPTY(DLPhotoData.sFileName)
AND sDownloadPhotoData.bSucess = TRUE
strTxd = DLPhotoData.sFileName
strName = DLPhotoData.sFileName
iLoadInt = 0
ELSE
iLoadInt = 1
IF iMissionType = FMMC_TYPE_TIME_TRIAL
strTxd = "PM_TT_"
strTxd += GET_CURRENT_TIME_TRIAL_OLD_MAPPING(GET_CURRENT_ACTIVE_FM_TIME_TRIAL())
strName = "TTSHOT"
strName += GET_CURRENT_TIME_TRIAL_OLD_MAPPING(GET_CURRENT_ACTIVE_FM_TIME_TRIAL())
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PAUSE MAP - CONTROL_MISSION_PHOTO_DISPLAY - strTxd = ",strTxd, " - strName = ",strName )
ELIF iMissionType = FMMC_TYPE_RC_TIME_TRIAL
strTxd = "PM_RCTT_"
strTxd += GET_CURRENT_RC_TIME_TRIAL_OLD_MAPPING(GET_CURRENT_ACTIVE_FM_RC_TIME_TRIAL())
strName = "RCTTSHOT"
strName += GET_CURRENT_RC_TIME_TRIAL_OLD_MAPPING(GET_CURRENT_ACTIVE_FM_RC_TIME_TRIAL())
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PAUSE MAP - CONTROL_MISSION_PHOTO_DISPLAY - strTxd = ",strTxd, " - strName = ",strName )
#IF FEATURE_GEN9_EXCLUSIVE
ELIF iMissionType = FMMC_TYPE_HSW_TIME_TRIAL
strTxd = "PM_HSWTT_"
strTxd += ENUM_TO_INT(GET_CURRENT_HSW_TIME_TRIAL())
strName = "HSWTTSHOT"
strName += ENUM_TO_INT(GET_CURRENT_HSW_TIME_TRIAL())
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PAUSE MAP - CONTROL_MISSION_PHOTO_DISPLAY - strTxd = ",strTxd, " - strName = ",strName )
#ENDIF
ELSE
IF GET_HASH_OF_MAP_AREA_AT_COORDS(vLocation) = MAP_AREA_CITY
strTxd = "MPCarHUD"
strName = "City"
ELSE
strTxd = "MPCarHUD"
strName = "Country_side"
ENDIF
ENDIF
ENDIF
INT iJobType = 0
/*IF bVerified //DON'T DISPLAY VERIFIED OR ROCKSTAR - 1614275 and 1614277
iJobType = 1
ELIF bRockstarCreated
iJobType = 2
ENDIF*/
//IF iJobType = 0
TAKE_CONTROL_OF_FRONTEND()
// //PM_SET_COLUMN_TITLE(DLPhotoData.iColumn, GET_MISSION_DETAIL_STRING_FOR_PAUSE_MENU(DLPhotoData.iMissionType), DLPhotoData.tl31MissionName, DLPhotoData.bVerified, strTxd, strName) //"513f98028fc43216549b3416", "513f98028fc43216549b3416")//DLPhotoData.sFileName, DLPhotoData.sFileName)
// //PM_SET_COLUMN_TITLE(DLPhotoData.iColumn, GET_MISSION_DETAIL_STRING_FOR_PAUSE_MENU(DLPhotoData.iMissionType), DLPhotoData.tl31MissionName, DLPhotoData.bVerified)
SET_FRONTEND_DETAILS_TITLE(DLPhotoData.iColumn, " ", DLPhotoData.tl31MissionName, iJobType, strTxd, strName, TRUE, iLoadInt, iMissionType, iMissionSubType, tlFileName, bPushbikeOnly, iRootContentIDHash, iAdversaryModeType)
RELEASE_CONTROL_OF_FRONTEND()
//ENDIF
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PAUSE MAP - CONTROL_MISSION_PHOTO_DISPLAY - SET_FRONTEND_DETAILS_TITLE called with ", strTxd, " and ", strName, " LoadInt = ", iLoadInt, " iJobType = ", iJobType)
sDownloadPhotoData.bSucess = TRUE
ENDIF
ENDIF
ELSE
//Cleanup
IF DLPhotoData.bInitLoadMissionPhoto = TRUE
RESET_STRUCT_DL_PHOTO_VARS_LITE(sDownloadPhotoData) //CLEAN_UP_PHOTO_FOR_FMMC(sDownloadPhotoData)
DOWNLOAD_PHOTO_DATA emptyData
DLPhotoData = emptyData
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] CONTROL_MISSION_PHOTO_DISPLAY - CLEAN UP")
ENDIF
ENDIF
ENDPROC
//PURPOSE: Gets the cached Mission Description and once done displays the Mission Details box
PROC GET_CACHED_DESCRIPTION(BOOL bShowStartMission)
IF bGetDescription = TRUE
IF REQUEST_AND_LOAD_CACHED_DESCRIPTION(iDecHash, sCMDLvars)
// Update right hand column and display - uses code-cached long description
DISPLAY_MISSION_DETAILS(1, ENUM_TO_INT(MENU_UNIQUE_ID_MISSION_CREATOR_LISTITEM), vLocation, iRating, tl63Creator, tl31MissionName, UGC_GET_CACHED_DESCRIPTION_WITH_NO_TRANSLATION_CHECK(iDecHash, 500),
iRank, iMinPlayers, iMaxPlayers, iMissionType, iMissionSubType, iMissionBitSet, iMissionBitSetTwo, bVerified, tlFileName, DLPhotoData, bHasPhoto, bRockstarCreated, iMaxTeams, DEFAULT,DEFAULT,DEFAULT, iRootContentIDHash, iAdversaryModeType)
IF (bAllowStartJob AND bShowStartMission)
SHOW_START_MISSION_INSTRUCTIONAL_BUTTON(TRUE)
ENDIF
SHOW_PM_COLUMN(1)
bGetDescription = FALSE
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - REQUEST_AND_LOAD_CACHED_DESCRIPTION done")
#IF IS_DEBUG_BUILD
ELSE
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - waiting on REQUEST_AND_LOAD_CACHED_DESCRIPTION")
#ENDIF
ENDIF
ENDIF
ENDPROC
//PURPOSE: Controls the player joining the currently selected mission
PROC PROCESS_JOIN_MISSION()
IF bJoinJobWarning = FALSE
//Join Job Check
IF bCantJoinJobWarning = FALSE
IF DOES_BLIP_EXIST(mapBlipLastFrame)
IF IS_MISSION_CREATOR_BLIP(mapBlipLastFrame)
TAKE_CONTROL_OF_FRONTEND()
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_X)
IF (bAllowStartJob)
PLAY_SOUND_FRONTEND(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET")
iJoinAvailable = CAN_DO_QUICK_MATCH(iGarageCheck, iMissionType)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PROCESS_JOIN_MISSION - CAN_DO_QUICK_MATCH = ", iJoinAvailable)
IF iJoinAvailable = 0
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PROCESS_JOIN_MISSION - bJoinJobWarning = TRUE - Name = ", tl31MissionName)
tlJoinMissionName = tlFileName
iJoinMissionType = iMissionType
iJoinMaxPlayers = iMaxPlayers
IF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_SPECIAL_VEHICLE_RACE_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_SPECIAL_VEHICLE_RACE_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_BUNKER_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_BUNKER_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_TRANSFORM_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_TRANSFORM_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_TARGET_ASSAULT_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_TARGET_ASSAULT_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_HOTRING_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_HOTRING_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_ARENA_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_ARENA_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_RACE_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_RACE_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_SURVIVAL_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_SURVIVAL_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_OPEN_WHEEL_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_OPEN_WHEEL_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_STREET_RACE_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_STREET_RACE_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_PURSUIT_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_PURSUIT_SERIES
#IF FEATURE_GEN9_EXCLUSIVE
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_HSW_RACE_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_HSW_RACE_SERIES
#ENDIF
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_COMMUNITY_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_COMMUNITY_SERIES
ELIF CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_CAYO_PERICO_SERIES(iRootContentIDHash)
iJoinMissionType = FMMC_TYPE_CAYO_PERICO_SERIES
ELIF iJoinMissionType = FMMC_TYPE_MISSION
AND CV2_IS_THIS_ROOT_CONTENT_A_CORONA_FLOW_ADVERSARY_SERIES_JOB(iRootContentIDHash)
AND NOT g_sMPTunables.bDisableStuntSeriesBucket
iJoinMissionType = CV2_GET_ADVERSARY_SERIES_TYPE_FROM_ROOT_CONTENT_ID(iRootContentIDHash)
ELIF iJoinMissionType = FMMC_TYPE_MISSION
IF IS_THIS_AN_ADVERSARY_MODE_MISSION(iRootContentIDHash, iAdversaryModeType)
iJoinMissionType = FMMC_TYPE_MISSION_NEW_VS
ELIF iMissionSubType = FMMC_MISSION_TYPE_CTF
iJoinMissionType = FMMC_TYPE_MISSION_CTF
ELIF iMissionSubType = FMMC_MISSION_TYPE_VERSUS
iJoinMissionType = FMMC_TYPE_MISSION_VS
ELIF iMissionSubType = FMMC_MISSION_TYPE_LTS
iJoinMissionType = FMMC_TYPE_MISSION_LTS
ELIF iMissionSubType = FMMC_MISSION_TYPE_COOP
iJoinMissionType = FMMC_TYPE_MISSION_COOP
ENDIF
ELIF iJoinMissionType = FMMC_TYPE_RACE
AND CV2_IS_THIS_ROOT_CONTENT_ID_A_CORONA_FLOW_JOB(iRootContentIDHash)
AND NOT g_sMPTunables.bDisableStuntSeriesBucket
iJoinMissionType = FMMC_TYPE_RACE_STUNT_FOR_QM
ENDIF
bJoinJobWarning = TRUE
ELSE
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PROCESS_JOIN_MISSION - bCantJoinJobWarning = TRUE - Name = ", tl31MissionName)
bCantJoinJobWarning = TRUE
ENDIF
ENDIF
ENDIF
RELEASE_CONTROL_OF_FRONTEND()
ENDIF
ENDIF
//Can't Join Job Warning Message
ELSE
TAKE_CONTROL_OF_FRONTEND()
TEXT_LABEL_15 sBody
sBody = "PM_INF_QMF"
sBody += iJoinAvailable
SET_WARNING_MESSAGE_WITH_HEADER("PM_INF_QMFT", sBody, FE_WARNING_CANCEL)
IF IS_CONTROL_JUST_RELEASED(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)
OR NETWORK_SESSION_IS_AWAITING_INVITE_RESPONSE()
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PROCESS_JOIN_MISSION - bCantJoinJobWarning = FALSE - Name = ", tl31MissionName)
bCantJoinJobWarning = FALSE
ENDIF
RELEASE_CONTROL_OF_FRONTEND()
ENDIF
//Confirm Join Job
ELSE
TAKE_CONTROL_OF_FRONTEND()
SET_WARNING_MESSAGE_WITH_HEADER("PM_QUIT_K1", "PM_QUIT_WARN7", FE_WARNING_OKCANCEL)
IF IS_CONTROL_JUST_RELEASED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
OR bCleanupJobCall
IF NOT bCleanupJobCall
SET_TRANSITION_SESSIONS_CLEAN_UP_ON_CALL_NOW_IF_NEEDED()
bCleanupJobCall = TRUE
ENDIF
IF !AM_I_TRANSITION_SESSIONS_STARTING_ON_CALL()
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PROCESS_JOIN_MISSION - ACCEPT - Name = ", tl31MissionName)
//PLAY_SOUND_FRONTEND(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET")
SET_FRONTEND_ACTIVE(FALSE)
IF DOES_BLIP_EXIST(mapBlipLastFrame)
BLIP_SPRITE blipSprite = GET_BLIP_SPRITE(mapBlipLastFrame)
IF blipSprite = RADAR_TRACE_STUNT_PREMIUM
SET_TRANSITION_SESSIONS_LAUNCHING_PROFESSIONAL_RACE()
SET_TRANSITION_SESSIONS_SKIP_JOB_WARNING()
ELIF blipSprite = RADAR_TRACE_STUNT
g_iCV2TelemetryLaunchCorona = 100
SET_TRANSITION_SESSIONS_SKIP_JOB_WARNING()
ELIF blipSprite = RADAR_TRACE_STEERINGWHEEL
OR blipSprite = RADAR_TRACE_TROPHY
OR CV2_IS_BLIP_ADVERSARY_SERIES_BLIP(blipSprite)
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_STREET_RACE_SERIES
OR blipSprite = RADAR_TRACE_PURSUIT_SERIES
OR blipSprite = RADAR_TRACE_FEATURED_SERIES
OR blipSprite = RADAR_TRACE_RACE_OPEN_WHEEL
OR ((blipSprite = RADAR_TRACE_RACE_LAND) AND (GET_BLIP_COLOUR(mapBlipLastFrame) = GET_BLIP_COLOUR_FROM_HUD_COLOUR(HUD_COLOUR_PINKLIGHT)))
OR ((blipSprite = RADAR_TRACE_HORDE) AND (GET_BLIP_COLOUR(mapBlipLastFrame) = GET_BLIP_COLOUR_FROM_HUD_COLOUR(HUD_COLOUR_ORANGE)))
#IF FEATURE_GEN9_EXCLUSIVE
OR blipSprite = RADAR_TRACE_HSW_RACE_SERIES
#ENDIF
OR blipSprite = RADAR_TRACE_COMMUNITY_SERIES
OR blipSprite = RADAR_TRACE_CAYO_SERIES
SET_TRANSITION_SESSIONS_SKIP_JOB_WARNING()
ENDIF
ENDIF
SET_PLAYER_LEAVING_CORONA_VECTOR(GET_PLAYER_PERCEIVED_COORDS(PLAYER_ID()))
//Set that we picked a specific job
IF NOT IS_STRING_NULL_OR_EMPTY(tlJoinMissionName)
AND NOT TRANSITION_SESSIONS_SKIP_JOB_WARNING()
SET_TRANSITION_SESSIONS_PICKED_SPECIFIC_JOB()
ENDIF
SET_MY_TRANSITION_SESSION_CONTENT_ID(tlJoinMissionName)
SET_TRANSITION_SESSIONS_STARTING_QUICK_MATCH()
SET_TRANSITION_SESSIONS_QUICK_MATCH_TYPE(iJoinMissionType)
SET_FM_JOB_ENTERY_TYPE(ciMISSION_ENTERY_TYPE_HOST_PAUSE_MENU)
NET_SET_PLAYER_CONTROL(PLAYER_ID(), FALSE, NSPC_NO_COLLISION | NSPC_FREEZE_POSITION)
SET_PLAYER_FORCING_OWN_INSTANCE_OF_CORONA()
CLEAR_PAUSE_MENU_IS_USING_UGC()
SET_TRANSITION_SESSIONS_QUICK_MATCH_MAX_PLAYERS(iJoinMaxPlayers)
SET_TRANSITION_SESSIONS_NEED_TO_WARP_TO_START_SKYCAM()
GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].iFmLauncherGameState = FMMC_LAUNCHER_STATE_LOAD_MISSION_FOR_TRANSITION_SESSION
bJoinJobWarning = FALSE
ENDIF
ELIF IS_CONTROL_JUST_RELEASED(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)
OR NETWORK_SESSION_IS_AWAITING_INVITE_RESPONSE()
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] PROCESS_JOIN_MISSION - CANCEL - Name = ", tl31MissionName)
//PLAY_SOUND_FRONTEND(-1, "CANCEL", "HUD_FRONTEND_DEFAULT_SOUNDSET")
bJoinJobWarning = FALSE
bCleanupJobCall = FALSE
ENDIF
RELEASE_CONTROL_OF_FRONTEND()
ENDIF
ENDPROC
PROC PROCESS_DLC_CONTENT_CALL()
IF g_sMPTunables.bENABLE_DLC_CONTENT_CONTROLLER = FALSE
EXIT
ENDIF
IF g_sDLCContentContollerStruct.iTriggerBitset = 0
IF DOES_BLIP_EXIST(mapBlipLastFrame)
IF IS_MISSION_CREATOR_BLIP(mapBlipLastFrame)
AND IS_DLC_CONTENT_BLIP(mapBlipLastFrame)
DLC_CONTENT eContent = GET_DLC_CONTENT_FROM_BLIP(mapBlipLastFrame)
IF eContent != eDLCCONTENT_INVALID
AND DOES_DLC_CONTENT_HAVE_CORRESPONDANCE(eContent)
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_X)
TAKE_CONTROL_OF_FRONTEND()
PRINTLN("[DLC_CONTENT] - PROCESS_DLC_CONTENT_CALL - Selected to trigger correspondance from the pause menu, force close pause menu and trigger.")
PLAY_SOUND_FRONTEND(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET")
SET_BIT(g_sDLCContentContollerStruct.iTriggerBitset, ENUM_TO_INT(eContent))
SET_FRONTEND_ACTIVE(FALSE)
RELEASE_CONTROL_OF_FRONTEND()
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
FUNC BOOL GET_TIME_TRIAL_INFO_FROM_VECTOR()
VECTOR vEnd, vDir
FLOAT fStart, fEnd
IF GET_TIME_TRIAL_LOCATION_INFO(GET_CURRENT_ACTIVE_FM_TIME_TRIAL(), vLocation, fStart, vEnd, fEnd, vDir)
IF ARE_VECTORS_ALMOST_EQUAL(GET_BLIP_COORDS(mapBlip), vLocation)
iRating = -1
tl63Creator = "NULL"
tl31MissionName = GET_FILENAME_FOR_AUDIO_CONVERSATION(GET_TIME_TRIAL_ROUTE_STRING(GET_CURRENT_ACTIVE_FM_TIME_TRIAL()))
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - GET_TIME_TRIAL_INFO_FROM_VECTOR - tl31MissionName = ", tl31MissionName)
tl63Description = GET_TIME_TRIAL_DESCRIPTION_STRING(GET_CURRENT_ACTIVE_FM_TIME_TRIAL())
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - GET_TIME_TRIAL_DESCRIPTION_STRING - tl63Description = ", tl63Description)
iRank = 3
iMinPlayers = 1
iMaxPlayers = 1
iMissionType = FMMC_TYPE_TIME_TRIAL
iMissionSubType = 0
iMissionBitSet = 0
iMissionBitSetTwo = 0
bVerified = FALSE
iRootContentIDHash = 0
iAdversaryModeType = 0
tlFileName = "NULL"
bHasPhoto = FALSE
bRockstarCreated = TRUE
iMaxTeams = 1
bPushbikeOnly = FALSE
DLPhotoData.sFileName = "NULL"
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL GET_RC_TIME_TRIAL_INFO_FROM_VECTOR()
//IF GET_TIME_TRIAL_LOCATION_INFO(GET_CURRENT_ACTIVE_FM_TIME_TRIAL(), vLocation, fStart, vEnd, fEnd, vDir)
IF ARE_VECTORS_ALMOST_EQUAL(GET_BLIP_COORDS(mapBlip), AMRCTT_GET_CORONA_LOCATION(GET_CURRENT_ACTIVE_FM_RC_TIME_TRIAL()))
iRating = -1
tl63Creator = "NULL"
tl31MissionName = GET_FILENAME_FOR_AUDIO_CONVERSATION(AMRCTT_GET_VARIATION_NAME_STRING(GET_CURRENT_ACTIVE_FM_RC_TIME_TRIAL()))
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - GET_RC_TIME_TRIAL_INFO_FROM_VECTOR - tl31MissionName = ", tl31MissionName)
tl63Description = AMRCTT_GET_VARIATION_Description_STRING(GET_CURRENT_ACTIVE_FM_RC_TIME_TRIAL())
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - GET_RC_TIME_TRIAL_INFO_FROM_VECTOR - tl63Description = ", tl63Description)
iRank = 3
iMinPlayers = 1
iMaxPlayers = 1
iMissionType = FMMC_TYPE_RC_TIME_TRIAL
iMissionSubType = 0
iMissionBitSet = 0
iMissionBitSetTwo = 0
bVerified = FALSE
iRootContentIDHash = 0
iAdversaryModeType = 0
tlFileName = "NULL"
bHasPhoto = FALSE
bRockstarCreated = TRUE
iMaxTeams = 1
bPushbikeOnly = FALSE
DLPhotoData.sFileName = "NULL"
RETURN TRUE
ENDIF
//ENDIF
RETURN FALSE
ENDFUNC
#IF FEATURE_GEN9_EXCLUSIVE
FUNC BOOL GET_HSW_TIME_TRIAL_INFO_FROM_VECTOR()
//IF GET_TIME_TRIAL_LOCATION_INFO(GET_CURRENT_ACTIVE_FM_TIME_TRIAL(), vLocation, fStart, vEnd, fEnd, vDir)
IF ARE_VECTORS_ALMOST_EQUAL(GET_BLIP_COORDS(mapBlip), GET_HSW_TIME_TRIAL_START_LOCATION(GET_CURRENT_HSW_TIME_TRIAL()))
iRating = -1
tl63Creator = "NULL"
tl31MissionName = GET_FILENAME_FOR_AUDIO_CONVERSATION(GET_HSW_TIME_TRIAL_ROUTE_NAME_STRING(GET_CURRENT_HSW_TIME_TRIAL()))
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - GET_HSW_TIME_TRIAL_INFO_FROM_VECTOR - tl31MissionName = ", tl31MissionName)
tl63Description = GET_HSW_TIME_TRIAL_ROUTE_DESCRIPTION_STRING(GET_CURRENT_HSW_TIME_TRIAL())
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - GET_HSW_TIME_TRIAL_INFO_FROM_VECTOR - tl63Description = ", tl63Description)
iRank = 3
iMinPlayers = 1
iMaxPlayers = 1
iMissionType = FMMC_TYPE_HSW_TIME_TRIAL
iMissionSubType = 0
iMissionBitSet = 0
iMissionBitSetTwo = 0
bVerified = FALSE
iRootContentIDHash = 0
iAdversaryModeType = 0
tlFileName = "NULL"
bHasPhoto = FALSE
bRockstarCreated = TRUE
iMaxTeams = 1
bPushbikeOnly = FALSE
DLPhotoData.sFileName = "NULL"
RETURN TRUE
ENDIF
//ENDIF
RETURN FALSE
ENDFUNC
#ENDIF
PROC SET_GLOBAL_FOR_PREMIUM_RACE_BLIP(BLIP_INDEX tempBlip)
//CPRINTLN(DEBUG_AMBIENT, "SET_GLOBAL_FOR_PREMIUM_RACE_BLIP")
IF IS_HOVERING_OVER_MISSION_CREATOR_BLIP()
// 2919150 - set Premium Blip global if currently highlighted.
IF DOES_BLIP_EXIST(tempBlip)
IF GET_BLIP_SPRITE(tempBlip) = RADAR_TRACE_STUNT_PREMIUM
g_bV2CoronaMapBlipIsPremiumRace = TRUE
//SCRIPT_ASSERT("g_bV2CoronaMapBlipIsPremiumRace = TRUE")
ENDIF
ENDIF
ELSE
g_bV2CoronaMapBlipIsPremiumRace = FALSE
ENDIF
//CPRINTLN(DEBUG_AMBIENT, "SET_GLOBAL_FOR_PREMIUM_RACE_BLIP - g_bV2CoronaMapBlipIsPremiumRace = ", g_bV2CoronaMapBlipIsPremiumRace)
ENDPROC
// ************************************************************
// ******************** MAIN SCRIPT LOOP **********************
// ************************************************************
SCRIPT( PAUSE_MENU_LAUNCH_DATA args )
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] Map pausemenu script launched with args: ", args.operation, ", Menu: ", args.MenuScreenId, ", Prev:", args.PreviousId, ", Unique: ", args.UniqueIdentifier)
#ENDIF
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
// KEITH 3/5/13: Added to retrieve code-cached long mission descriptions if required
// STRING cachedDescription
// UGC_DESCRIPTION cachedDescAsTLs
// INT cachedDescTypeID = 0
INT iCreatorID = ILLEGAL_CREATOR_ID
INT iCachedDescID = ILLEGAL_ARRAY_POSITION
g_bHasPauseMapBeenAccessed = TRUE
BOOL bShowStartMission
SWITCH args.operation
CASE kUpdate
WHILE(TRUE)
WAIT(0) // One and only wait in MP script.
// Is code ready for script to take control
IF IS_FRONTEND_READY_FOR_CONTROL()
bShowStartMission = TRUE
REQUEST_MAP_INFOCARD_TXDS()
mapBlip = GET_NEW_SELECTED_MISSION_CREATOR_BLIP()
IF IS_HOVERING_OVER_MISSION_CREATOR_BLIP()
IF DOES_BLIP_EXIST(mapBlip)
IF mapBlipLastFrame != mapBlip
IF DOES_BLIP_EXIST(mapBlipLastFrame)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT_EMPTY")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
ENDIF END_SCALEFORM_MOVIE_METHOD()
ENDIF
mapBlipLastFrame = NULL
ENDIF
ENDIF
ELSE
IF DOES_BLIP_EXIST(mapBlipLastFrame)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT_EMPTY")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
ENDIF END_SCALEFORM_MOVIE_METHOD()
ENDIF
mapBlipLastFrame = NULL
bGetDescription = FALSE
ENDIF
SET_GLOBAL_FOR_PREMIUM_RACE_BLIP(mapBlip)
IF IS_ARENA_CREATOR()
PROCESS_ARENA_CREATOR_MAP()
ENDIF
//**TWH - CMcM - #1396679 - Checked that the blip exists before checking against or storing mapBlipLastFrame. Checks were getting skipped the other way.
// Is the blip index valid
IF DOES_BLIP_EXIST(mapBlip)
//Is this a new blip that we haven't processed on a previous frame?
IF mapBlip != mapBlipLastFrame
// Is this a blip we specified as mission creator
IF IS_MISSION_CREATOR_BLIP(mapBlip)
//Are we in MP or SP?
IF g_bInMultiplayer
// MP. Are mission details available
IF GET_MISSION_INFO_FROM_VECTOR(mapBlip, vLocation, tl63Creator, tl31MissionName, tl63Description, iMinPlayers, iMaxPlayers, iMissionType, iMissionSubType, iMissionBitSet, iMissionBitSetTwo,
iRank, iRating, bVerified, iCreatorID, iCachedDescID, bHasPhoto, bRockstarCreated, tlFileName, iDecHash, iMaxTeams, bAllowStartJob,bPushbikeOnly, iPhotoVersion, iPhotoPath, iRootContentIDHash, iAdversaryModeType)
CPRINTLN(DEBUG_PAUSE_MENU, "[JA@PAUSEMENU] Valid MP blip selected by player, display column")
IF g_sMPTunables.bENABLE_SERIES_INFOCARDS
AND GET_SERIES_FROM_BLIP(mapBlip) != ciCV2_SERIES_INVALID
#IF FEATURE_GEN9_EXCLUSIVE
AND NOT IS_PLAYER_ON_MP_INTRO()
#ENDIF
INT iSeries
iSeries = GET_SERIES_FROM_BLIP(mapBlip)
IF REQUEST_AND_LOAD_SERIES_BLIP_INFORMATION(iSeries)
DISPLAY_SERIES_BLIP_INFORMATION(iSeries)
ENDIF
ELSE
IF REQUEST_AND_LOAD_CACHED_DESCRIPTION(iDecHash, sCMDLvars)
// Update right hand column and display - uses code-cached long description
DISPLAY_MISSION_DETAILS(1, ENUM_TO_INT(MENU_UNIQUE_ID_MISSION_CREATOR_LISTITEM), vLocation, iRating, tl63Creator, tl31MissionName, UGC_GET_CACHED_DESCRIPTION_WITH_NO_TRANSLATION_CHECK(iDecHash, 500),
iRank, iMinPlayers, iMaxPlayers, iMissionType, iMissionSubType, iMissionBitSet, iMissionBitSetTwo, bVerified, tlFileName, DLPhotoData, bHasPhoto, bRockstarCreated, iMaxTeams, FALSE, bPushbikeOnly, DEFAULT, iRootContentIDHash, iAdversaryModeType)
IF (bAllowStartJob)
SHOW_START_MISSION_INSTRUCTIONAL_BUTTON(TRUE)
ENDIF
SHOW_PM_COLUMN(1)
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - REQUEST_AND_LOAD_CACHED_DESCRIPTION done")
ELSE
bGetDescription = TRUE
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - bGetDescription = TRUE")
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - waiting on REQUEST_AND_LOAD_CACHED_DESCRIPTION")
ENDIF
ENDIF
ELSE
IF GET_TIME_TRIAL_INFO_FROM_VECTOR()
OR GET_RC_TIME_TRIAL_INFO_FROM_VECTOR()
#IF FEATURE_GEN9_EXCLUSIVE
OR GET_HSW_TIME_TRIAL_INFO_FROM_VECTOR()
#ENDIF
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - Found a Time Trial blip.")
DISPLAY_MISSION_DETAILS(1, ENUM_TO_INT(MENU_UNIQUE_ID_MISSION_CREATOR_LISTITEM), vLocation, iRating, tl63Creator, tl31MissionName, tl63Description,
iRank, iMinPlayers, iMaxPlayers, iMissionType, iMissionSubType, iMissionBitSet, iMissionBitSetTwo, bVerified, tlFileName, DLPhotoData, bHasPhoto, bRockstarCreated, iMaxTeams, FALSE, bPushbikeOnly, FALSE, iRootContentIDHash, iAdversaryModeType)
ENDIF
IF g_sMPTunables.bENABLE_DLC_CONTENT_CONTROLLER
AND IS_DLC_CONTENT_BLIP(mapBlip)
#IF FEATURE_GEN9_EXCLUSIVE
AND NOT IS_PLAYER_ON_MP_INTRO()
#ENDIF
DLC_CONTENT eContent
eContent = GET_DLC_CONTENT_FROM_BLIP(mapBlip)
IF REQUEST_AND_LOAD_DLC_CONTENT_BLIP_INFORMATION(eContent)
CPRINTLN(DEBUG_PAUSE_MENU, " ---> PAUSE_MENU_MAP - Displaying data for a DLC blip")
DISPLAY_DLC_CONTENT_BLIP_INFORMATION(eContent, bShowStartMission, DLPhotoData)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
//**TWH - CMcM - #1396679 - Checked that the blip exists before checking against or storing mapBlipLastFrame. Checks were getting skipped the other way.
//Store the blip we hovered over this frame.
mapBlipLastFrame = mapBlip
ENDIF
// Kenneth R.
IF g_sVehicleGenNSData.bInGarage
IF IS_PAUSEMAP_IN_INTERIOR_MODE()
HIDE_MINIMAP_EXTERIOR_MAP_THIS_FRAME()
ELSE
HIDE_MINIMAP_INTERIOR_MAP_THIS_FRAME()
SET_FAKE_PAUSEMAP_PLAYER_POSITION_THIS_FRAME(g_sVehicleGenNSData.vGarageEntryCoords.x, g_sVehicleGenNSData.vGarageEntryCoords.y)
ENDIF
ENDIF
IF g_bInMultiplayer
GET_CACHED_DESCRIPTION(bShowStartMission)
PROCESS_JOIN_MISSION()
CONTROL_MISSION_PHOTO_DISPLAY()
PROCESS_DLC_CONTENT_CALL()
ENDIF
ENDIF
ENDWHILE
BREAK
ENDSWITCH
g_bV2CoronaMapBlipIsPremiumRace = FALSE
RELEASE_MAP_INFOCARD_TXDS()
TERMINATE_THIS_THREAD()
ENDSCRIPT