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

1782 lines
69 KiB
Python
Executable File

USING "net_include.sch"
USING "net_stat_generator.sch"
USING "Transition_Joining.sch"
USING "Transition_Hud.sch"
//USING "Transition_Hud_SF.sch"
USING "Net_hud_activating.sch"
USING "leader_board_common.sch"
using "vehicle_public.sch"
USING "FM_Community_Playlists.sch"
USING "savegame_private.sch"
USING "title_update_globals.sch"
USING "MPHud_CharacterController.sch"
USING "script_misc.sch"
USING "net_heists_common.sch"
MPHUD_PLACEMENT_TOOLS MpHud_Details
MPHUD_GTA_ONLINE_CHARACTER_DATA MpHud_GTAOnlineCharacterData
//BOOL bScreenFadeInChange
//BOOL bContextChange
#IF IS_DEBUG_BUILD
INT iMaxInstructionsCalled2
//FLOAT fYPosLoadingIconAboveButton_lastFrame
PROC RUN_QUICKLAUNCH()
BOOL shouldSkip = FALSE
SWITCH GET_QUICKLAUNCH_STATE()
CASE QUICKLAUNCH_SP
IGNORE_INVITE()
NET_NL()NET_PRINT("RUN_QUICKLAUNCH: SET_JOINING_GAMEMODE(QUICKLAUNCH_SP) ")
REQUEST_TRANSITION(GET_CURRENT_TRANSITION_STATE(), GAMEMODE_SP, GET_CURRENT_HUD_STATE())
BREAK
CASE QUICKLAUNCH_FREEMODE
NET_NL()NET_PRINT("RUN_QUICKLAUNCH: SET_JOINING_GAMEMODE(GAMEMODE_FM) ")
SET_JOINING_GAMEMODE(GAMEMODE_FM)
shouldSkip = TRUE
SET_SRL_TUTORIAL_ACTIVE(FALSE)
BREAK
CASE QUICKLAUNCH_FREEMODE_SPECTATOR
NET_NL()NET_PRINT("RUN_QUICKLAUNCH: SET_JOINING_GAMEMODE(GAMEMODE_FM) QUICKLAUNCH_FREEMODE_SPECTATOR ")
SET_JOINING_GAMEMODE(GAMEMODE_FM)
BREAK
ENDSWITCH
INT iSlot = GET_ACTIVE_CHARACTER_SLOT()
AUTOCOMPLETE_TUTORIALS_TRANSITION(shouldSkip, GET_JOINING_GAMEMODE(), iSlot)
PRINTLN("BWW - RUN_QUICKLAUNCH - g_ShouldShiftingTutorialsBeSkipped = FALSE")
ENDPROC
#ENDIF // IS_DEBUG_BUILD
PROC DO_BAIL_CLEANUP()
IF IS_PAUSE_MENU_ACTIVE()
SET_FRONTEND_ACTIVE(FALSE)
ENDIF
IF GET_CURRENT_HUD_STATE() = HUD_STATE_BOTH_SAVE_TRANSFER
REMOVE_WARNING_MESSAGE_OPTION_ITEMS()
SET_SAVE_TRANSFER_BOTH_STAGE(MIGRATION_MAIN_NONE)
NET_NL()NET_PRINT("[SAVETRANS] ****** BAIL HAPPENED WHILE PROCESSING SAVE TRANSFER, RESET OPERATION *******")
ENDIF
TRIGGER_TRANSITION_MENU_ACTIVE(FALSE)
TRIGGER_TRANSITION_TELL_CREATOR_TO_CLEANUP(TRUE)
g_bKillFMMC_SignedOut = TRUE
PLAYER_LEAVING_CLEANUP(TRUE)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), TRUE)
ENDIF
IF (g_StreamingIsPaused)
SET_STREAMING(TRUE)
g_StreamingIsPaused = FALSE
PRINTLN("[DLC_INTRO_BINK] DO_BAIL_CLEANUP - happened during casino bink video, turning back on streaming.")
ENDIF
IF IS_AUDIO_SCENE_ACTIVE(DLCIntroBinkAudioScene())
STOP_AUDIO_SCENE(DLCIntroBinkAudioScene())
ENDIF
IF GET_CURRENT_HUD_STATE() = HUD_STATE_SELECT_CHARACTER_FM
OR GET_CURRENT_HUD_STATE() = HUD_STATE_CREATE_FACE
OR GET_CURRENT_HUD_STATE() = HUD_STATE_CONFIRM_NEW_CHARACTER
NET_NL()NET_PRINT("DO_BAIL_CLEANUP(): Fading out on bail cleanup due to being in character creator state.\n")
DEBUG_PRINTCALLSTACK()
DO_SCREEN_FADE_OUT(0)
ENDIF
ENDPROC
PROC RESET_MENU_MEMORY()
INT I
FOR I = 0 TO HUD_MENU_ITEMS-1
g_iMenuSelection[I] = 0
ENDFOR
ENDPROC
FUNC BOOL IS_PROCESSING_A_BAIL_EVENT()
IF GET_CURRENT_TRANSITION_STATE() != TRANSITION_STATE_RETURN_TO_SINGLEPLAYER
AND GET_CURRENT_TRANSITION_STATE() != TRANSITION_STATE_WAIT_FOR_SINGLEPLAYER_TO_START
AND GET_CURRENT_TRANSITION_STATE() != TRANSITION_STATE_TERMINATE_MAINTRANSITION
AND GET_CURRENT_TRANSITION_STATE() != TRANSITION_STATE_SP_SWOOP_DOWN
AND GET_CURRENT_TRANSITION_STATE() != TRANSITION_STATE_FM_SWOOP_DOWN
AND (ARE_ONLINE_POLICIES_UP_TO_DATE() OR SCRIPT_IS_CLOUD_AVAILABLE() = FALSE OR IS_LIVETILE_LAUNCHING())
AND IS_ONLINE_POLICIES_MENU_ACTIVE() = FALSE
MULTIPLAYER_ACCESS_CODE nAccessCode
SCRIPT_NETWORK_CAN_ACCESS_MULTIPLAYER(nAccessCode)
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF IS_PLAYER_KICKED_TO_GO_OFFLINE_UNTIL_REBOOT()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: IS_PLAYER_KICKED_TO_GO_OFFLINE_UNTIL_REBOOT \n")
HUD_CHANGE_STATE(HUD_STATE_REBOOT_REQUIRED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_TERMINATE_SESSION)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_REBOOT_REQUIRED)
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF IS_SKYSWOOP_IN_SKY()
IF IS_MOD_INSTALLED()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: IS_MOD_INSTALLED \n")
HUD_CHANGE_STATE(HUD_STATE_MOD_INSTALLED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_MOD_INSTALLED)
ENDIF
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF nAccessCode = ACCESS_DENIED_NETWORK_LOCKED
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: ACCESS_DENIED_NETWORK_LOCKED \n")
HUD_CHANGE_STATE(HUD_STATE_MAINTENANCE)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_MAINTENANCE)
ENDIF
ENDIF
IF IS_PS3_VERSION()
OR IS_XBOX360_VERSION()
OR IS_PLAYSTATION_PLATFORM()
OR IS_XBOX_PLATFORM()
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF NOT NETWORK_IS_CABLE_CONNECTED()
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_IS_CABLE_CONNECTED() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_NOT_ONLINE)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_NOT_CONNECTED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
#IF IS_DEBUG_BUILD
SET_QUICKLAUNCH_STATE(QUICKLAUNCH_EMPTY)
#ENDIF
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT - RETURN TRUE 0 ")
RETURN TRUE
ELIF (IS_PLAYSTATION_PLATFORM() AND NETWORK_IS_NP_AVAILABLE() = FALSE AND NETWORK_GET_NP_UNAVAILABLE_REASON() != REASON_INVALID AND NETWORK_GET_NP_UNAVAILABLE_REASON() != REASON_SIGNED_OUT)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_GET_NP_UNAVAILABLE_REASON = ")NET_PRINT(GET_NP_CONNECTION_STRING(NETWORK_GET_NP_UNAVAILABLE_REASON()))
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
// NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_GET_NP_UNAVAILABLE_REASON() != REASON_INVALID AND != REASON_SIGNED_OUT\n")
HUD_CHANGE_STATE(HUD_STATE_NP_UNAVAILABLE)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_NP_UNAVAILABLE)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_TERMINATE_SESSION)
ELIF NOT NETWORK_IS_SIGNED_ONLINE()
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_IS_SIGNED_ONLINE() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_NOT_ONLINE)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_NOT_CONNECTED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
#IF IS_DEBUG_BUILD
SET_QUICKLAUNCH_STATE(QUICKLAUNCH_EMPTY)
#ENDIF
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT - RETURN TRUE 1 ")
RETURN TRUE
ENDIF
IF NOT NETWORK_IS_SIGNED_IN()
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_IS_SIGNED_IN() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_NOT_ONLINE)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_NOT_CONNECTED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
#IF IS_DEBUG_BUILD
SET_QUICKLAUNCH_STATE(QUICKLAUNCH_EMPTY)
#ENDIF
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT - RETURN TRUE 2 ")
RETURN TRUE
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF DID_A_BAIL_HAPPEN() = FALSE //If the PSPlus expires, it also classes as PRIVALEGES_OKAY_FOR_MP = FALSE
IF NOT PRIVALEGES_OKAY_FOR_MP()
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: PRIVALEGES_OKAY_FOR_MP() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_PERMISSION_ERROR)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_PERMISSION_ERROR)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
#IF IS_DEBUG_BUILD
SET_QUICKLAUNCH_STATE(QUICKLAUNCH_EMPTY)
#ENDIF
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT - RETURN TRUE 4 ")
RETURN TRUE
ENDIF
ELSE
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT - Skip checking PRIVALEGES_OKAY_FOR_MP as a bail is being processed. ")
ENDIF
ENDIF
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
//Banned
IF NETWORK_HAVE_ROS_MULTIPLAYER_PRIV() = FALSE
DO_BAIL_CLEANUP()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_HAVE_ROS_MULTIPLAYER_PRIV() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_BANNED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_PERMISSION_ERROR)
ENDIF
IF NETWORK_HAVE_ROS_CREATE_TICKET_PRIV() = FALSE
DO_BAIL_CLEANUP()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_HAVE_ROS_CREATE_TICKET_PRIV() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_BANNED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_PERMISSION_ERROR)
ENDIF
IF NETWORK_HAVE_ROS_BANNED_PRIV()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_HAVE_ROS_BANNED_PRIV() = TRUE \n")
DO_BAIL_CLEANUP()
HUD_CHANGE_STATE(HUD_STATE_BANNED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_PERMISSION_ERROR)
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF NETWORK_IS_MULTIPLAYER_DISABLED()
OR nAccessCode = ACCESS_DENIED_MULTIPLAYER_DISABLED
OR nAccessCode = ACCESS_DENIED_NETWORK_LOCKED
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_IS_MULTIPLAYER_DISABLED() = TRUE \n")
HUD_CHANGE_STATE(HUD_STATE_MAINTENANCE)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_MAINTENANCE)
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF ARE_PROFILE_SETTINGS_VALID()
#IF NOT FEATURE_GEN9_STANDALONE
IF IS_SP_PROLOGUE_FINISHED() = FALSE
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: IS_SP_PROLOGUE_FINISHED() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_SP_PROLOGUE_NOT_DONE)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_SP_PROLOGUE_NOT_DONE)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
ENDIF
#ENDIF
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF NETWORK_IS_REFRESHING_ROS_CREDENTIALS() = FALSE
IF NETWORK_HAS_VALID_ROS_CREDENTIALS() = FALSE
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_HAS_VALID_ROS_CREDENTIALS() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_PERMISSION_ERROR)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_PERMISSION_ERROR)
ENDIF
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF (SCRIPT_IS_CLOUD_AVAILABLE() = FALSE
//[R4034] If the player disconnects the uplink cable while trying to transfer a character the game will not recognise internet connection has been lost
OR (IS_PLAYSTATION_PLATFORM() AND (NETWORK_IS_CONNETED_TO_NP_PRESENCE() = FALSE)))
AND GET_CURRENT_HUD_STATE() = HUD_STATE_BOTH_SAVE_TRANSFER
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: SCRIPT_IS_CLOUD_AVAILABLE() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_CLOUD_FAIL)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_NOT_CONNECTED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF DLC_CHECK_CLOUD_DATA_CORRECT() = FALSE
AND SCRIPT_IS_CLOUD_AVAILABLE()
INT iCompatFailReason = GET_EXTRACONTENT_CLOUD_RESULT()
SWITCH iCompatFailReason
CASE 0 //DLCRESULT_OK
BREAK
CASE 1 //DLCRESULT_CONNECTION_ERROR
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: DLC_CHECK_CLOUD_DATA_CORRECT() = FALSE & GET_EXTRACONTENT_CLOUD_RESULT = 1 (DLCRESULT_CONNECTION_ERROR) \n")
HUD_CHANGE_STATE(HUD_STATE_COMPAT_CLOUD_FAILED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_DLC_COMPAT_PACK_CLOUD_FAIL)
BREAK
CASE 2 //DLCRESULT_TIMEOUT
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: DLC_CHECK_CLOUD_DATA_CORRECT() = FALSE & GET_EXTRACONTENT_CLOUD_RESULT = 2 (DLCRESULT_TIMEOUT) \n")
HUD_CHANGE_STATE(HUD_STATE_COMPAT_CLOUD_FAILED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_DLC_COMPAT_PACK_CONFIGURATION)
BREAK
ENDSWITCH
// #IF IS_DEBUG_BUILD
// ELSE
// NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: DLC_CHECK_CLOUD_DATA_CORRECT() = TRUE \n")
// #ENDIF
ENDIF
ENDIF
// IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
// IF GET_EVER_HAD_BAD_PACK_ORDER()
// HUD_CHANGE_STATE(HUD_STATE_BAD_PACK_ORDER)
// TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
//
// SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_BAD_PACK_ORDER)
// ENDIF
// ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF NETWORK_IS_TUNABLE_CLOUD_REQUEST_PENDING() = FALSE
AND NETWORK_IS_CLOUD_BACKGROUND_SCRIPT_REQUEST_PENDING() = FALSE
IF nAccessCode = ACCESS_DENIED_NO_TUNABLES
OR nAccessCode = ACCESS_DENIED_NO_BACKGROUND_SCRIPT
#IF IS_DEBUG_BUILD
IF nAccessCode = ACCESS_DENIED_NO_TUNABLES
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: ACCESS_DENIED_NO_TUNABLES() = TRUE \n")
ENDIF
IF nAccessCode = ACCESS_DENIED_NO_BACKGROUND_SCRIPT
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: ACCESS_DENIED_NO_BACKGROUND_SCRIPT() = TRUE \n")
ENDIF
#ENDIF
HUD_CHANGE_STATE(HUD_STATE_SERVER_FILES_MISSING)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_SERVER_FILES_MISSING)
ENDIF
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
BOOL HasFailed
IF CHECK_HAS_CLOUD_REQUESTS_FINISHED(HasFailed)
IF HasFailed = TRUE
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: CHECK_HAS_CLOUD_REQUESTS_FINISHED() = TRUE & HasFailed = TRUE \n")
HUD_CHANGE_STATE(HUD_STATE_COMPAT_DOWLOAD_TIME_OUT)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_DLC_COMPAT_PACK_DOWLOAD_TIME_OUT)
ENDIF
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF DLC_CHECK_COMPAT_PACK_CONFIGURATION() = FALSE
#IF IS_DEBUG_BUILD
OR GET_COMMANDLINE_PARAM_EXISTS("sc_Compatfailed_MainTransition")
OR g_b_MakeCompatPackCheckFail_Maintransition
#ENDIF
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: DLC_CHECK_COMPAT_PACK_CONFIGURATION() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_COMPAT_FAILED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_DLC_COMPAT_PACK_CLOUD_FAIL)
// #IF IS_DEBUG_BUILD
// ELSE
// NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: DLC_CHECK_COMPAT_PACK_CONFIGURATION() = TRUE \n")
// #ENDIF
ENDIF
ENDIF
// #IF IS_DEBUG_BUILD
// IF GET_COMMANDLINE_PARAM_EXISTS("StraightIntoFreemode")
// SCRIPT_ASSERT("Please remove the arg -StraightIntoFreemode as it will cause random game behaviour. ")
// ENDIF
// #ENDIF
BOOL bRunContrainedBoot = FALSE
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_NoBailOnConstrain")
bRunContrainedBoot = FALSE
ENDIF
#ENDIF
IF bRunContrainedBoot
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF NOT HAS_KICKED_CONSTRAINED_TRANSITION()
AND NOT HAS_KICKED_IDLING_TRANSITION()
IF PLM_IS_IN_CONSTRAINED_MODE()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: PLM_IS_IN_CONSTRAINED_MODE() = TRUE \n")
HUD_CHANGE_STATE(HUD_STATE_CONSTRAINED)
SET_HAS_KICKED_CONSTRAINED_TRANSITION(TRUE)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_TERMINATE_SESSION)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_CONSTRAINED)
ENDIF
ENDIF
ENDIF
ENDIF
//Commented out for bug 1023108 as you can get a bail if invited (Cheater invited into a non cheater session)
// IF DID_A_BAIL_HAPPEN() AND GET_CONFIRM_INVITE_INTO_GAME_STATE() = TRUE
// NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT - CANCELLING AN INVITED BAIL ")
// SET_BAIL_STILL_VALID(FALSE)
// TELL_TRANSITION_BAIL_HAPPENED(FALSE)
// ENDIF
IF DID_A_BAIL_HAPPEN()
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF NOT NETWORK_IS_SIGNED_IN()
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: NETWORK_IS_SIGNED_IN() = FALSE \n")
HUD_CHANGE_STATE(HUD_STATE_NOT_ONLINE)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_NOT_CONNECTED)
ELSE
//Generic Bail
SET_BAIL_STILL_VALID(FALSE)
DO_BAIL_CLEANUP()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: GENERIC BAIL HAPPENED \n")
HUD_CHANGE_STATE(HUD_STATE_BAIL)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_BAILED)
ENDIF
#IF IS_DEBUG_BUILD
IF DID_TRANSITION_SESSIONS_JIP_FAIL()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: DID_A_BAIL_HAPPEN **DID_TRANSITION_SESSIONS_JIP_FAIL()** ")
ENDIF
SET_QUICKLAUNCH_STATE(QUICKLAUNCH_EMPTY)
#ENDIF
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT - RETURN TRUE 5 ")
RETURN TRUE
ENDIF
ENDIF
IF HAVE_ANY_TRANSITION_BAILS_HAPPENED() = FALSE
IF IS_BAILED_HAPPENED_SOMEHOW()
DO_BAIL_CLEANUP()
HUD_CHANGE_STATE(HUD_STATE_GENERAL_ERROR)
SET_BAIL_STILL_VALID(FALSE)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_GENERAL_ERROR)
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: GENERIC END SESSION HAPPENED SOMEHOW IS_BAILED_HAPPENED_SOMEHOW = TRUE \n")
#IF IS_DEBUG_BUILD
SET_QUICKLAUNCH_STATE(QUICKLAUNCH_EMPTY)
#ENDIF
SET_BAILED_HAPPENED_SOMEHOW(FALSE)
ENDIF
ENDIF
ELSE
#IF IS_DEBUG_BUILD
IF GET_FRAME_COUNT() % 100 = 0
IF (ARE_ONLINE_POLICIES_UP_TO_DATE() OR SCRIPT_IS_CLOUD_AVAILABLE() = FALSE) = FALSE
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: ARE_ONLINE_POLICIES_UP_TO_DATE = FALSE don't do bail checks.")
ENDIF
IF IS_ONLINE_POLICIES_MENU_ACTIVE()
NET_NL()NET_PRINT("IS_PROCESSING_A_BAIL_EVENT: IS_ONLINE_POLICIES_MENU_ACTIVE = TRUE don't do bail checks.")
ENDIF
ENDIF
#ENDIF
IF IS_ONLINE_POLICIES_MENU_ACTIVE()
OR ARE_ONLINE_POLICIES_UP_TO_DATE() = FALSE
MpHud_Details.bWasCloudAvailableAtTransitionStartForScreenListener = SCRIPT_IS_CLOUD_AVAILABLE()
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
FUNC BOOL SHOULD_REPOSITION_PLAYER()
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
IF NOT (IS_PLAYER_READY_FOR_CUTSCENE(PLAYER_ID()))
NET_NL()NET_PRINT("SHOULD_REPOSITION_PLAYER - IS_PLAYER_READY_FOR_CUTSCENE(PLAYER_ID()) = FALSE ")
RETURN TRUE
ENDIF
ENDIF
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
IF NOT (CAN_PLAYER_START_MISSION(PLAYER_ID()))
NET_NL()NET_PRINT("SHOULD_REPOSITION_PLAYER - CAN_PLAYER_START_MISSION(PLAYER_ID()) = FALSE ")
RETURN TRUE
ENDIF
ENDIF
RETURN FALSE
ENDFUNC
PROC RUN_CLOUD_STATUS_CHANGE(MPHUD_PLACEMENT_TOOLS& Placement)
IF Placement.bWasCloudAvailableAtTransitionStartForScreenListener = FALSE
IF SCRIPT_IS_CLOUD_AVAILABLE()
WARNING_SCREEN_RETURN aResult = RUN_WARNINGSCREEN_TRANSITION_CLOUD_UP()
IF GET_CURRENT_HUD_STATE() != HUD_STATE_LOADING
NET_NL()NET_PRINT("RUN_CLOUD_STATUS_CHANGE:RUN_WARNINGSCREEN_TRANSITION_CLOUD_UP - Move to a blank background. ")
HUD_CHANGE_STATE(HUD_STATE_LOADING)
MpHud_Details.bShouldDisplayCloudChangeScreen = TRUE
ENDIF
IF aResult = WARNING_SCREEN_RETURN_ACCEPT
//Retry
SET_ENTERED_REDUCED_PERMISSIONS_DISPLAYED(FALSE)
SET_ENTERED_GAME_WITH_REDUCED_CONTENT_DUE_TO_CLOUD(FALSE)
NET_NL()NET_PRINT("RUN_CLOUD_STATUS_CHANGE:RUN_WARNINGSCREEN_TRANSITION_CLOUD_UP - WARNING_SCREEN_RETURN_ACCEPT ")
Placement.bWasCloudAvailableAtTransitionStartForScreenListener = TRUE
RUN_RETRY(Placement)
MpHud_Details.bShouldDisplayCloudChangeScreen = FALSE
ELIF aResult = WARNING_SCREEN_RETURN_CANCEL
NET_NL()NET_PRINT("RUN_CLOUD_STATUS_CHANGE:RUN_WARNINGSCREEN_TRANSITION_CLOUD_UP - WARNING_SCREEN_RETURN_CANCEL ")
//Carry on with no Saving.
// Placement.bWasCloudAvailableAtTransitionStartForScreenListener = TRUE
MpHud_Details.bShouldDisplayCloudChangeScreen = FALSE
REQUEST_TRANSITION(TRANSITION_STATE_RETURN_TO_SINGLEPLAYER, GAMEMODE_SP, HUD_STATE_LOADING)
ENDIF
ELSE
IF MpHud_Details.bShouldDisplayCloudChangeScreen = TRUE
//Reset everything as we're on the loading screen with nothing just now. bug 2008465
//Retry
SET_ENTERED_REDUCED_PERMISSIONS_DISPLAYED(FALSE)
SET_ENTERED_GAME_WITH_REDUCED_CONTENT_DUE_TO_CLOUD(FALSE)
NET_NL()NET_PRINT("RUN_CLOUD_STATUS_CHANGE:RUN_WARNINGSCREEN_TRANSITION_CLOUD_UP - SCRIPT_IS_CLOUD_AVAILABLE = FALSE again ")
Placement.bWasCloudAvailableAtTransitionStartForScreenListener = TRUE
RUN_RETRY(Placement)
MpHud_Details.bShouldDisplayCloudChangeScreen = FALSE
ENDIF
ENDIF
ELSE
IF SCRIPT_IS_CLOUD_AVAILABLE() = FALSE
IF HAS_ENTERED_GAME_WITH_REDUCED_CONTENT_DUE_TO_CLOUD() = FALSE
WARNING_SCREEN_RETURN aResult = RUN_WARNINGSCREEN_TRANSITION_CLOUD_DOWN()
IF aResult = WARNING_SCREEN_RETURN_ACCEPT
NET_NL()NET_PRINT("RUN_CLOUD_STATUS_CHANGE:RUN_WARNINGSCREEN_TRANSITION_CLOUD_DOWN - WARNING_SCREEN_RETURN_ACCEPT ")
//Return to SP
Placement.bWasCloudAvailableAtTransitionStartForScreenListener = FALSE
CANCEL_MP_JOIN(TRUE)
RESET_PAUSE_MENU_WARP_REQUESTS()
UNLOAD_PEDHEADSHOT(Placement.ScaleformAlertScreenStruct.HeadshotPic)
UGC_CLEAR_QUERY_RESULTS_BY_OFFLINE_STATUS()
// IF GET_CONFIRM_INVITE_INTO_GAME_STATE()
// HUD_CHANGE_STATE(HUD_STATE_IGNORE_INVITE)
// TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
// ELSE
REQUEST_TRANSITION(TRANSITION_STATE_RETURN_TO_SINGLEPLAYER, GET_CURRENT_GAMEMODE(), HUD_STATE_LOADING)
// ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
PROC MAINTAIN_SETUP_PS4_LIVE_STREAM()
//If this is the orbis version the get the content ID that we chould be loading
IF IS_PLAYSTATION_PLATFORM()
//If we've not done initial set up
IF NOT HAVE_DONE_INITIAL_PS4_LIVE_STREAM_SETUP()
AND (IS_PLAYER_HIGH_ENOUGH_RANK_AND_HAVE_STATS_LOADED(FALSE) OR PASSED_SC_PLAYLIST_RANK_CHECK())
//If we're not launchin an event as that will supersead this.
IF NOT IS_ANY_EVENT_PLAYLIST_LAUNCHING()
//And we're not already launching one
AND NOT IS_PS4_LIVE_STREAM_LAUNCH_ACTIVE()
SETUP_PS4_LIVE_STREAM()
ELSE
PRINTLN("[TS][LSPS4] - IS_ANY_EVENT_PLAYLIST_LAUNCHING = TRUE - not launching the content ID - ", GET_CONTENT_TO_LOAD())
//Clear it
CLEAR_SERVICE_EVENT_ARGUMENTS()
PRINTLN("[TS][LSPS4] - IS_ANY_EVENT_PLAYLIST_LAUNCHING - calling CLEAR_SERVICE_EVENT_ARGUMENTS")
ENDIF
SET_HAVE_DONE_INITIAL_PS4_LIVE_STREAM_SETUP()
ENDIF
// #IF IS_DEBUG_BUILD
// ELSE
// PRINTLN("[LSPS4] - IS_ORBIS_VERSION = FALSE")
// #ENDIF
ENDIF
ENDPROC
PROC MarkAllNearbyVehiclesAsSinglePlayer()
IF NETWORK_IS_GAME_IN_PROGRESS()
CPRINTLN(DEBUG_CLEANUP_SP, "MarkAllNearbyVehiclesAsSinglePlayer - network game in progress")
ELSE
CPRINTLN(DEBUG_CLEANUP_SP, "MarkAllNearbyVehiclesAsSinglePlayer called...")
INT iNumVehicles
INT i
INT iDecor
iNumVehicles = GET_ALL_VEHICLES(g_PoolVehicles)
CPRINTLN(DEBUG_CLEANUP_SP, "MarkAllNearbyVehiclesAsSinglePlayer, iNumVehicles = ", iNumVehicles)
REPEAT iNumVehicles i
IF DOES_ENTITY_EXIST(g_PoolVehicles[i])
IF NOT (GET_ENTITY_POPULATION_TYPE(g_PoolVehicles[i]) = PT_RANDOM_PERMANENT) // so we don't delete trains etc. see 1984133
IF NOT IS_ENTITY_A_MISSION_ENTITY(g_PoolVehicles[i])
OR NOT DOES_ENTITY_BELONG_TO_THIS_SCRIPT(g_PoolVehicles[i], FALSE)
SET_ENTITY_AS_MISSION_ENTITY(g_PoolVehicles[i], TRUE, TRUE)
ENDIF
IF DECOR_IS_REGISTERED_AS_TYPE("MPBitset", DECOR_TYPE_INT)
iDecor = 0
IF DECOR_EXIST_ON(g_PoolVehicles[i], "MPBitset")
iDecor = DECOR_GET_INT(g_PoolVehicles[i], "MPBitset")
ENDIF
IF NOT IS_BIT_SET(iDecor, MP_DECORATOR_BS_SINGLE_PLAYER_VEHICLE)
SET_BIT(iDecor, MP_DECORATOR_BS_SINGLE_PLAYER_VEHICLE)
DECOR_SET_INT(g_PoolVehicles[i], "MPBitset", iDecor)
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_CLEANUP_SP, "MarkAllNearbyVehiclesAsSinglePlayer, marking single player vehicle")
VECTOR vCoords
MODEL_NAMES ModelName
vCoords = GET_ENTITY_COORDS(g_PoolVehicles[i], FALSE)
ModelName = GET_ENTITY_MODEL(g_PoolVehicles[i])
CPRINTLN(DEBUG_CLEANUP_SP, "MarkAllNearbyVehiclesAsSinglePlayer, vehicle[", i, "] at coords ", vCoords, " model enum ", ENUM_TO_INT(ModelName))
#ENDIF
ENDIF
ENDIF
// was originally added for url:bugstar:4429676 but it is causing issues so commenting out. see url:bugstar:5605379
// #IF IS_DEBUG_BUILD
// CPRINTLN(DEBUG_CLEANUP_SP, "MarkAllNearbyVehiclesAsSinglePlayer, setting as no longer needed.")
// #ENDIF
// SET_VEHICLE_AS_NO_LONGER_NEEDED(g_PoolVehicles[i])
ENDIF
ENDIF
ENDREPEAT
ENDIF
ENDPROC
SCRIPT
NET_NL()NET_PRINT("\n\n >>>>> Starting MainTransition, hiya >>>> \n\n")
#IF USE_FINAL_PRINTS
PRINTLN_FINAL("\n\n >>>>> Starting MainTransition, hiya >>>> \n\n")
#ENDIF
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
INIT_STATS()
IF GET_CURRENT_GAMEMODE() != GAMEMODE_CREATOR
g_B_DisplayOnlineSplash = FALSE
ENDIF
SET_BIGMAP_ACTIVE(FALSE)
RUN_TRANSITION_SFX_MENU_SCENE(TRUE)
MarkAllNearbyVehiclesAsSinglePlayer()
IF IS_EMERGENCY_SKYCAM_UP_RUNNING() = FALSE
AND IS_SP_SELECTOR_SKYCAM_UP() = FALSE
AND IS_PAUSE_MENU_REQUESTING_TRANSITION() = FALSE
SET_SKYFREEZE_FROZEN()
ENDIF
IF g_sMPTUNABLES.bDisableSaveTransfers = TRUE
SET_HAS_ENTERED_GTAO_THIS_BOOT(TRUE)
ELSE
IF ARE_SAVES_AVAILABLE_TO_TRANSFER(MpHud_Details) = FALSE
SET_HAS_ENTERED_GTAO_THIS_BOOT(TRUE)
ELSE
NET_NL()NET_PRINT("BC: ARE_SAVES_AVAILABLE_TO_TRANSFER = TRUE so skip stats loading. ")
ENDIF
ENDIF
#IF IS_DEBUG_BUILD
//Set that we should use Rockstar Candidate missions
IF GET_COMMANDLINE_PARAM_EXISTS("sc_UseRockstarCandidateMissions")
SET_SHOULD_USE_ROCKSTAR_CANDIDATE_MISSIONS(FALSE)
ELSE
CLEAR_SHOULD_USE_ROCKSTAR_CANDIDATE_MISSIONS(FALSE)
ENDIF
//Set that we should use off line content
IF GET_COMMANDLINE_PARAM_EXISTS("sc_UseOfflineUGC")
SET_SHOULD_USE_OFFLINE_UGC_CONTENT()
//ELSE
//CLEAR_SHOULD_USE_OFFLINE_UGC_CONTENT()
ENDIF
CREATE_CHARACTER_CREATOR_WIDGETS(MpHud_GTAOnlineCharacterData)
#ENDIF
INT I
#IF IS_DEBUG_BUILD
NET_NL()NET_PRINT(" <<< LOBBY_AUTO_MULTIPLAYER_FREEMODE = ")NET_PRINT_BOOL(LOBBY_AUTO_MULTIPLAYER_FREEMODE())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< GET_IS_LAUNCH_FROM_LIVE_AREA = ")NET_PRINT_BOOL(GET_IS_LAUNCH_FROM_LIVE_AREA())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT = ")NET_PRINT_BOOL(GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_IS_CLOUD_AVAILABLE = ")NET_PRINT_BOOL(NETWORK_IS_CLOUD_AVAILABLE())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_EVERYONE) = ")NET_PRINT_BOOL(NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_EVERYONE))NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_FRIENDS) = ")NET_PRINT_BOOL(NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_FRIENDS))NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_IS_SIGNED_ONLINE() = ")NET_PRINT_BOOL(NETWORK_IS_SIGNED_ONLINE())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_IS_SIGNED_IN() = ")NET_PRINT_BOOL(NETWORK_IS_SIGNED_IN())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_IS_MULTIPLAYER_DISABLED() = ")NET_PRINT_BOOL(NETWORK_IS_MULTIPLAYER_DISABLED())NET_PRINT(" >>>")
IF NETWORK_IS_SIGNED_ONLINE()
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_ONLINE_PRIVILEGES = ")NET_PRINT_BOOL(NETWORK_HAVE_ONLINE_PRIVILEGES())NET_PRINT(" >>>")
ENDIF
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_EVERYONE) = ")NET_PRINT_BOOL(NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_EVERYONE))NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_FRIENDS) = ")NET_PRINT_BOOL(NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_FRIENDS))NET_PRINT(" >>>")
FOR I = 0 TO MAX_NUM_CHARACTER_SLOTS-1
NET_NL()NET_PRINT(" <<< HAS_SLOT_BEEN_IGNORED_SCRIPT(")NET_PRINT_INT(I)NET_PRINT(") = ")NET_PRINT_BOOL(HAS_SLOT_BEEN_IGNORED_SCRIPT(I))NET_PRINT(" >>>")
ENDFOR
NET_NL()NET_PRINT(" <<< IS_ACCOUNT_OVER_17() = ")NET_PRINT_BOOL(IS_ACCOUNT_OVER_17())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< IS_ACCOUNT_OVER_17_FOR_UGC() = ")NET_PRINT_BOOL(IS_ACCOUNT_OVER_17_FOR_UGC())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< IS_ACCOUNT_OVER_17_FOR_CHAT(PLAYER_ID()) = ")NET_PRINT_BOOL(IS_ACCOUNT_OVER_17_FOR_CHAT(PLAYER_ID()))NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< ALLOWED_TO_GET_FRIEND_CONTENT() = ")NET_PRINT_BOOL(ALLOWED_TO_GET_FRIEND_CONTENT())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< ALLOWED_TO_GET_FRIEND_CONTENT(TRUE) = ")NET_PRINT_BOOL(ALLOWED_TO_GET_FRIEND_CONTENT(TRUE))NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< ALLOWED_TO_GET_ROCKSTAR_CONTENT() = ")NET_PRINT_BOOL(ALLOWED_TO_GET_ROCKSTAR_CONTENT())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< ALLOWED_TO_GET_PERSONAL_CONTENT() = ")NET_PRINT_BOOL(ALLOWED_TO_GET_PERSONAL_CONTENT())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< ALLOWED_TO_GET_DISC_CONTENT() = ")NET_PRINT_BOOL(ALLOWED_TO_GET_DISC_CONTENT())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< IS_PLAYER_KICKED_TO_GO_OFFLINE() = ")NET_PRINT_BOOL(IS_PLAYER_KICKED_TO_GO_OFFLINE())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< SCRIPT_IS_CLOUD_AVAILABLE() = ")NET_PRINT_BOOL(SCRIPT_IS_CLOUD_AVAILABLE())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< IS_SAVING_HAVING_TROUBLE() = ")NET_PRINT_BOOL(IS_SAVING_HAVING_TROUBLE())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< HAS_IMPORTANT_STATS_LOADED() = ")NET_PRINT_BOOL(HAS_IMPORTANT_STATS_LOADED())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< IS_ROCKSTAR_DEV() = ")NET_PRINT_BOOL(IS_ROCKSTAR_DEV())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< GET_EVER_HAD_BAD_PACK_ORDER() = ")NET_PRINT_BOOL(GET_EVER_HAD_BAD_PACK_ORDER())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< ARE_SAVES_AVAILABLE_TO_TRANSFER() = ")NET_PRINT_BOOL(ARE_SAVES_AVAILABLE_TO_TRANSFER(MpHud_Details))NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_PLATFORM_SUBSCRIPTION() = ")NET_PRINT_BOOL(NETWORK_HAVE_PLATFORM_SUBSCRIPTION())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAS_AGE_RESTRICTIONS() = ")NET_PRINT_BOOL(NETWORK_HAS_AGE_RESTRICTIONS())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_IS_CABLE_CONNECTED() = ")NET_PRINT_BOOL(NETWORK_IS_CABLE_CONNECTED())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< PRIVALEGES_OKAY_FOR_MP() = ")NET_PRINT_BOOL(PRIVALEGES_OKAY_FOR_MP())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< HAS_ONLINE_PRIVILAGES() = ")NET_PRINT_BOOL(HAS_ONLINE_PRIVILAGES())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< IS_LIVETILE_LAUNCHING() = ")NET_PRINT_BOOL(IS_LIVETILE_LAUNCHING())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< ARE_SAVES_AND_HEIST_PROGRESS_IN_TROUBLE() = ")NET_PRINT_BOOL(ARE_SAVES_AND_HEIST_PROGRESS_IN_TROUBLE())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAS_VALID_ROS_CREDENTIALS() = ")NET_PRINT_BOOL(NETWORK_HAS_VALID_ROS_CREDENTIALS())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_IS_REFRESHING_ROS_CREDENTIALS() = ")NET_PRINT_BOOL(NETWORK_IS_REFRESHING_ROS_CREDENTIALS())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_ROS_BANNED_PRIV() = ")NET_PRINT_BOOL(NETWORK_HAVE_ROS_BANNED_PRIV())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_ROS_MULTIPLAYER_PRIV() = ")NET_PRINT_BOOL(NETWORK_HAVE_ROS_MULTIPLAYER_PRIV())NET_PRINT(" >>>")
NET_NL()NET_PRINT(" <<< NETWORK_HAVE_ROS_CREATE_TICKET_PRIV() = ")NET_PRINT_BOOL(NETWORK_HAVE_ROS_CREATE_TICKET_PRIV())NET_PRINT(" >>>")
//NET_NL()NET_PRINT(" <<< DOES_PLAYER_HAVE_XBOX_GOLD_MEMBERSHIP() = ")NET_PRINT_BOOL(DOES_PLAYER_HAVE_XBOX_GOLD_MEMBERSHIP(FALSE))NET_PRINT(" >>>")
#ENDIF
#IF USE_FINAL_PRINTS
PRINTLN_FINAL(" <<< LOBBY_AUTO_MULTIPLAYER_FREEMODE = ", LOBBY_AUTO_MULTIPLAYER_FREEMODE(), " >>>")
PRINTLN_FINAL(" <<< GET_IS_LAUNCH_FROM_LIVE_AREA = ", GET_IS_LAUNCH_FROM_LIVE_AREA(), " >>>")
PRINTLN_FINAL(" <<< GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT = ", GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT(), " >>>")
PRINTLN_FINAL(" <<< NETWORK_IS_CLOUD_AVAILABLE = ", NETWORK_IS_CLOUD_AVAILABLE() , " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_EVERYONE) = " , NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_EVERYONE) , " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_FRIENDS) = " , NETWORK_HAVE_USER_CONTENT_PRIVILEGES(PC_FRIENDS) , " >>>")
PRINTLN_FINAL(" <<< NETWORK_IS_SIGNED_ONLINE() = " , NETWORK_IS_SIGNED_ONLINE() , " >>>")
PRINTLN_FINAL(" <<< NETWORK_IS_SIGNED_IN() = " , NETWORK_IS_SIGNED_IN() , " >>>")
PRINTLN_FINAL(" <<< NETWORK_IS_MULTIPLAYER_DISABLED() = " , NETWORK_IS_MULTIPLAYER_DISABLED() , " >>>")
IF NETWORK_IS_SIGNED_ONLINE()
PRINTLN_FINAL(" <<< NETWORK_HAVE_ONLINE_PRIVILEGES = " , NETWORK_HAVE_ONLINE_PRIVILEGES() , " >>>")
ENDIF
PRINTLN_FINAL(" <<< NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_EVERYONE) = " , NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_EVERYONE) , " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_FRIENDS) = " , NETWORK_HAVE_COMMUNICATION_PRIVILEGES(PC_FRIENDS) , " >>>")
FOR I = 0 TO MAX_NUM_CHARACTER_SLOTS-1
PRINTLN_FINAL(" <<< HAS_SLOT_BEEN_IGNORED_SCRIPT(", I, ") = ", HAS_SLOT_BEEN_IGNORED_SCRIPT(I), " >>>")
ENDFOR
PRINTLN_FINAL(" <<< IS_ACCOUNT_OVER_17() = " , IS_ACCOUNT_OVER_17() , " >>>")
PRINTLN_FINAL(" <<< IS_ACCOUNT_OVER_17_FOR_UGC() = " , IS_ACCOUNT_OVER_17_FOR_UGC() , " >>>")
PRINTLN_FINAL(" <<< IS_ACCOUNT_OVER_17_FOR_CHAT(PLAYER_ID()) = " , IS_ACCOUNT_OVER_17_FOR_CHAT(PLAYER_ID()) , " >>>")
PRINTLN_FINAL(" <<< ALLOWED_TO_GET_FRIEND_CONTENT() = " , ALLOWED_TO_GET_FRIEND_CONTENT() , " >>>")
PRINTLN_FINAL(" <<< ALLOWED_TO_GET_FRIEND_CONTENT(TRUE) = " , ALLOWED_TO_GET_FRIEND_CONTENT(TRUE) , " >>>")
PRINTLN_FINAL(" <<< ALLOWED_TO_GET_ROCKSTAR_CONTENT() = " , ALLOWED_TO_GET_ROCKSTAR_CONTENT() , " >>>")
PRINTLN_FINAL(" <<< ALLOWED_TO_GET_PERSONAL_CONTENT() = " , ALLOWED_TO_GET_PERSONAL_CONTENT() , " >>>")
PRINTLN_FINAL(" <<< ALLOWED_TO_GET_DISC_CONTENT() = " , ALLOWED_TO_GET_DISC_CONTENT() , " >>>")
PRINTLN_FINAL(" <<< IS_PLAYER_KICKED_TO_GO_OFFLINE() = " , IS_PLAYER_KICKED_TO_GO_OFFLINE() , " >>>")
PRINTLN_FINAL(" <<< SCRIPT_IS_CLOUD_AVAILABLE() = " , SCRIPT_IS_CLOUD_AVAILABLE() , " >>>")
PRINTLN_FINAL(" <<< IS_SAVING_HAVING_TROUBLE() = " , IS_SAVING_HAVING_TROUBLE() , " >>>")
PRINTLN_FINAL(" <<< HAS_IMPORTANT_STATS_LOADED() = " , HAS_IMPORTANT_STATS_LOADED() , " >>>")
PRINTLN_FINAL(" <<< IS_ROCKSTAR_DEV() = " , IS_ROCKSTAR_DEV() , " >>>")
PRINTLN_FINAL(" <<< GET_EVER_HAD_BAD_PACK_ORDER() = " , GET_EVER_HAD_BAD_PACK_ORDER() , " >>>")
PRINTLN_FINAL(" <<< ARE_SAVES_AVAILABLE_TO_TRANSFER() = " , ARE_SAVES_AVAILABLE_TO_TRANSFER(MpHud_Details) , " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAVE_PLATFORM_SUBSCRIPTION() = " , NETWORK_HAVE_PLATFORM_SUBSCRIPTION() , " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAS_AGE_RESTRICTIONS() = " , NETWORK_HAS_AGE_RESTRICTIONS() , " >>>")
PRINTLN_FINAL(" <<< NETWORK_IS_CABLE_CONNECTED() = " , NETWORK_IS_CABLE_CONNECTED() , " >>>")
PRINTLN_FINAL(" <<< PRIVALEGES_OKAY_FOR_MP() = " , PRIVALEGES_OKAY_FOR_MP() , " >>>")
PRINTLN_FINAL(" <<< HAS_ONLINE_PRIVILAGES() = " , HAS_ONLINE_PRIVILAGES() , " >>>")
PRINTLN_FINAL(" <<< IS_LIVETILE_LAUNCHING() = " , IS_LIVETILE_LAUNCHING() , " >>>")
PRINTLN_FINAL(" <<< ARE_SAVES_AND_HEIST_PROGRESS_IN_TROUBLE() = ", ARE_SAVES_AND_HEIST_PROGRESS_IN_TROUBLE(), " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAS_VALID_ROS_CREDENTIALS() = ", NETWORK_HAS_VALID_ROS_CREDENTIALS(), " >>>")
PRINTLN_FINAL(" <<< NETWORK_IS_REFRESHING_ROS_CREDENTIALS() = ", NETWORK_IS_REFRESHING_ROS_CREDENTIALS(), " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAVE_ROS_BANNED_PRIV() = ", NETWORK_HAVE_ROS_BANNED_PRIV(), " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAVE_ROS_MULTIPLAYER_PRIV() = ", NETWORK_HAVE_ROS_MULTIPLAYER_PRIV(), " >>>")
PRINTLN_FINAL(" <<< NETWORK_HAVE_ROS_CREATE_TICKET_PRIV() = ", NETWORK_HAVE_ROS_CREATE_TICKET_PRIV(), " >>>")
//PRINTLN_FINAL(" <<< DOES_PLAYER_HAVE_XBOX_GOLD_MEMBERSHIP() = ", DOES_PLAYER_HAVE_XBOX_GOLD_MEMBERSHIP(FALSE)," >>>")
#ENDIF
MpHud_Details.bWasCloudAvailableAtTransitionStartForScreenListener = SCRIPT_IS_CLOUD_AVAILABLE()
SET_PLAYER_HAVE_PRIVILEGES(HAS_ONLINE_PRIVILAGES())
INITIALISE_PLAYERS_SELECTED_CHARACTER_TEAM()
INITIALISE_JOINING_CHARACTER()
DISABLE_ALL_MP_HUD()
SET_THIS_SCRIPT_CAN_BE_PAUSED(FALSE)
IF IS_PLAYER_A_SP_CHARACTER() = FALSE
AND GET_IS_PLAYER_IN_ANIMAL_FORM() = FALSE
AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("main")) = 0
SET_TRANSITION_STARTED_IN_MP(TRUE)
ELSE
SET_TRANSITION_STARTED_IN_MP(FALSE)
ENDIF
SET_QUIT_CURRENT_GAME(FALSE)
IF IS_TRANSITION_STARTED_IN_MP() = FALSE
//NET_SET_PLAYER_CONTROL(PLAYER_ID(), FALSE, NSPC_FREEZE_POSITION, TRUE)
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE)
FREEZE_ENTITY_POSITION(PLAYER_PED_ID(), TRUE)
ELSE
IF IS_NET_PLAYER_OK(PLAYER_ID())
IF PLAYER_IS_THE_DRIVER_IN_A_CAR()
VEHICLE_INDEX PlayerVehicle
PlayerVehicle = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID())
IF NETWORK_HAS_CONTROL_OF_ENTITY(PlayerVehicle)
SET_VEHICLE_STOP_INSTANTLY_WHEN_PLAYER_INACTIVE(PlayerVehicle, FALSE)
ENDIF
ENDIF
SET_PLAYER_CONTROL(PLAYER_ID(), FALSE, SPC_ALLOW_PLAYER_DAMAGE)
SET_EVERYONE_IGNORE_PLAYER(PLAYER_ID(), FALSE)
ENDIF
ENDIF
MpHud_Details.SaveSpinnerPos = GET_HUD_COMPONENT_POSITION(NEW_HUD_SAVING_GAME)
NET_NL()NET_PRINT("MpHud_Details.SaveSpinnerPos.x = ")NET_PRINT_FLOAT(MpHud_Details.SaveSpinnerPos.x)
NET_NL()NET_PRINT("MpHud_Details.SaveSpinnerPos.y = ")NET_PRINT_FLOAT(MpHud_Details.SaveSpinnerPos.y)
//Setting this to false as it's not only user input that can bring the hud back up after quitting it.
TRIGGER_TRANSITION_MENU_ACTIVE(FALSE)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_EMPTY)
DISPLAYING_SCRIPT_HUD(HUDPART_TRANSITIONHUD, TRUE)
SET_DPADDOWN_ACTIVATION_STATE(DPADDOWN_NONE)
DPADDOWN_ONE_TIME_ACTIVE(FALSE)
HIDE_CELLPHONE_SIGNIFIERS_FOR_CUTSCENE (TRUE)
g_PlayerBlipsData.bBigMapIsActive = TRUE
FOR I = 0 TO MAX_NUM_CHARACTER_SLOTS-1
g_DressedPed_CrewTshirt[I] = FALSE
ENDFOR
#IF IS_DEBUG_BUILD
RUN_QUICKLAUNCH()
#ENDIF
CLEANUP_LEADERBOARD_CAM(TRUE, TRUE, TRUE, FALSE, FALSE)
SET_CORONA_TO_CLEANUP(TRUE)
IF NOT IS_TRANSITION_BLOCKING_MUSIC_STOP()
NET_NL()NET_PRINT("Maintransition : Trigger : GTA_ONLINE_STOP_SCORE")
TRIGGER_MUSIC_EVENT("GTA_ONLINE_STOP_SCORE")
ELSE
NET_NL()NET_PRINT("Maintransition : Blocked : GTA_ONLINE_STOP_SCORE")
ENDIF
SET_TUTORIAL_SKIP_IN_RACE()
RESET_MENU_MEMORY()
DISPLAY_RADAR(TRUE)
DISPLAY_HUD(TRUE)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK)
DISABLE_CONTROL_ACTION(PLAYER_CONTROL, INPUT_ATTACK2)
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_PAUSE)
CLEAR_TIMECYCLE_MODIFIER()
NET_NL()NET_PRINT("Tunables: Maintrasition called NETWORK_REQUEST_CLOUD_TUNABLES() ")
NETWORK_REQUEST_CLOUD_TUNABLES()
RANKUP_REMOVE()
RESET_ALL_CHAR_PED_CREATION()
MpHud_Details.SelectedGamemode = -1
NETWORK_SET_VOICE_ACTIVE(FALSE)
NET_NL()NET_PRINT("Maintransition START : ACTIVATE_FRONTEND_MENU(FE_MENU_VERSION_EMPTY_NO_BACKGROUND)")
IF DID_A_BAIL_HAPPEN() = FALSE
AND IS_TRANSITION_TELLING_CREATOR_TO_CLEANUP() = FALSE
SET_FRONTEND_ACTIVE(FALSE)
ENDIF
// KGM 15/2/13: Changed to refresh the 'Freemode' tunables context to ensure the correct default values are set - this will need to change to an appropriate CnC context when it is back
// Refresh_MP_Script_Tunables(TUNE_CONTEXT_FM)
FORCE_SCRIPTED_GFX_WHEN_FRONTEND_ACTIVE(TRUE)
SET_SCRIPT_GFX_DRAW_BEHIND_PAUSEMENU(TRUE)
IF IS_AUDIO_SCENE_ACTIVE("MP_GLOBAL_SCENE")
STOP_AUDIO_SCENE("MP_GLOBAL_SCENE")
ENDIF
// IF IS_PAUSE_MENU_REQUESTING_TRANSITION() //Valid. Just commented out with the blur being removed.
// OR IS_SOMETHING_QUITTING_MP()
// #IF IS_DEBUG_BUILD
// NET_NL()NET_PRINT("TOGGLE_RENDERPHASES FALSE has been called from MainTransition because ")
// IF IS_PAUSE_MENU_REQUESTING_TRANSITION()
// NET_PRINT("IS_PAUSE_MENU_REQUESTING_TRANSITION = TRUE ")
// ENDIF
// IF IS_SOMETHING_QUITTING_MP()
// NET_PRINT("IS_SOMETHING_QUITTING_MP = TRUE ")
// ENDIF
// #ENDIF
// TOGGLE_RENDERPHASES(FALSE)
// ENDIF
SET_TUTORIAL_CUTSCENE_IS_GOING_TO_RUN(FALSE)
CLEAR_HELP()
SET_CHARACTER_NEW_FOR_UNLOCKS(FALSE)
STOP_CUTSCENE_IMMEDIATELY()
STOP_GAMEPLAY_HINT()
NETWORK_SET_MOCAP_CUTSCENE_CAN_BE_SKIPPED(TRUE)
g_b_NextRPAdditionShowRankBar = FALSE
#IF IS_DEBUG_BUILD
IF NETWORK_IS_SIGNED_ONLINE()
NET_NL()NET_PRINT("STARTING MainTransition with ")
NET_NL()NET_PRINT(" - NETWORK_HAVE_ONLINE_PRIVILEGES ")NET_PRINT_BOOL(NETWORK_HAVE_ONLINE_PRIVILEGES())
ENDIF
#ENDIF
IF NETWORK_IS_IN_MP_CUTSCENE() // Wrapped in check to prevent John gurney's assert that fires if NETWORK_SET_IN_MP_CUTSCENE with the same value for it's agrument more than once.
PRINTLN("[TS] [MSRAND] - NETWORK_SET_IN_MP_CUTSCENE(FALSE)")
NETWORK_SET_IN_MP_CUTSCENE(FALSE)
ENDIF
SET_AUTOJOIN_CAMERA_IN_SKY(FALSE)
SET_RADIO_TO_STATION_NAME("OFF")
SET_SAVE_TRANSFER_ALREADY_DONE_360(FALSE)
SET_SAVE_TRANSFER_ALREADY_DONE_PS3(FALSE)
SET_WIDESCREEN_BORDERS(FALSE, 0)
IF IS_FREEMODE_PROLOGUE_PROFILE_SETTINGS_PASSED(PSFP_PLAYER_SAVE_TRANSFERS_STATS_UPDATED, 0)
SET_EVENTS_SAVE_TRANSFER_HAS_HAPPENED(TRUE)
ENDIF
// #IF IS_DEBUG_BUILD
//
//
// IF GET_INDEX_OF_CURRENT_LEVEL() = LEVEL_NET_TEST
// OR LOBBY_AUTO_MULTIPLAYER_FREEMODE() //Straight into FM
// OR LOBBY_AUTO_MULTIPLAYER_CNC() //Straight into CNC
// OR LOBBY_AUTO_MULTIPLAYER_MENU() //Straight into the character menu with CNC selected
INIT_STATS()
// ENDIF
// #ENDIF
SET_TELL_PLAYER_PLAYING_ALONE(FALSE)
g_b_HasSkippedTutorialDueToNoMoreTutorials = FALSE
g_b_ReapplyStickySaveFailedFeed = FALSE
THEFEED_FLUSH_QUEUE()
VECTOR aPos
FLOAT aHeading
IF HAS_IMPORTANT_STATS_LOADED()
FOR I = 0 TO MAX_NUM_CHARACTER_SLOTS-1
g_Private_CHARACTER_TEAM[I] = GET_PACKED_STAT_INT(PACKED_CHAR_TEAM, I)
ENDFOR
FOR I = 0 TO MAX_NUM_CHARACTER_SLOTS-1
PRINTLN("[MainTransition] g_Private_CHARACTER_TEAM[",I,"] = ", g_Private_CHARACTER_TEAM[I])
ENDFOR
NET_NL()NET_PRINT("[MainTransition] g_Private_ACTIVE_CHARACTER = ")NET_PRINT_INT(g_Private_ACTIVE_CHARACTER)
ENDIF
MpHud_Details.bIsCloudDownUGCChecks = IS_CLOUD_DOWN_CLOUD_LOADER()
FORCE_RESET_ALL_TRANSACTION_DATA()
#IF FEATURE_GEN9_STANDALONE
MULTIPLAYER_ACCESS_CODE nAccessCode
#ENDIF
SWITCH GET_CURRENT_GAMEMODE()
CASE GAMEMODE_FM
// IF IS_PAUSE_MENU_REQUESTING_TRANSITION()
// IF NETWORK_IS_ACTIVITY_SESSION()
// NET_NL()NET_PRINT("BC: NETWORK_IS_ACTIVITY_SESSION and quit through the pause menu - g_b_QuitActivityThroughPauseMenu = TRUE ")
// g_b_QuitActivityThroughPauseMenu = TRUE
// ENDIF
// ENDIF
// IS_QUICK_CAMERA_QUIT_FINISHED()
NET_NL()NET_PRINT("initial transition, FM to FM ")
MpHud_Details.ScreenPlace.iSelectedCharacter = GET_ACTIVE_CHARACTER_SLOT()
TRANSITION_CHANGE_STATE(TRANSITION_STATE_MP_SWOOP_UP)
IF GET_JOINING_GAMEMODE() = GAMEMODE_FM
OR GET_PAUSE_MENU_WARP_TO_GAMEMODE() = GAMEMODE_FM
AND NOT IS_SCREEN_FADED_OUT() AND NOT IS_SCREEN_FADING_OUT()
SET_NEWS_FEED_SPLASH_SCREEN_ACTIVE(TRUE, FALSE)
ENDIF
IF IS_A_SPECTATOR_CAM_ACTIVE()
SET_QUIT_GAME_WITH_SPECTATOR_ACTIVE(TRUE)
ENDIF
SET_TIME_SCALE(1.0)
NET_NL()NET_PRINT("[MainTransition] GAMEMODE_FM SET_TIME_SCALE(1.0) ")
BREAK
CASE GAMEMODE_CREATOR
IF IS_NEW_LOAD_SCENE_ACTIVE()
NEW_LOAD_SCENE_STOP()
ENDIF
SET_TIME_SCALE(1.0)
NET_NL()NET_PRINT("[MainTransition] GAMEMODE_CREATOR SET_TIME_SCALE(1.0) ")
// aPos = GET_INITIAL_SPAWN_COORDS_IF_BAILED_FROM_CREATOR(aHeading)
// SET_ENTITY_COORDS(PLAYER_PED_ID(), aPos, FALSE)
// IF NOT IS_PED_INJURED(PLAYER_PED_ID())
// SET_ENTITY_HEADING(PLAYER_PED_ID(), aHeading)
// ENDIF
NET_NL()NET_PRINT("Initial transition Decision: Move Player- Setting players coords at ")NET_PRINT_VECTOR(aPos)
SET_TRANSITION_STRING("HUD_QUITCREAT")
SET_SHOULD_RUN_FULL_CLOUD_REFRESH()
g_bKillFMMCmenu = TRUE
NET_NL()NET_PRINT("initial transition, Creator up ")
NET_NL()NET_PRINT("g_TransitionData.vSkyCamPos = ")NET_PRINT_VECTOR(g_TransitionData.vSkyCamPos )
g_FMMC_STRUCT.bKillFMMC = TRUE
g_FMMC_STRUCT.iMissionType = -1
HUD_CHANGE_STATE(HUD_STATE_LOADING)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_CREATOR_SWOOP_UP)
BREAK
DEFAULT
// REQUEST_DLC_MANIFEST()
SET_SINGLEPLAYER_END_NOW()
IF IS_PLAYER_KICKED_TO_GO_OFFLINE()
SET_PLAYER_KICKED_TO_GO_OFFLINE(FALSE)
ENDIF
IF GET_IS_LOADING_SCREEN_ACTIVE()
THEFEED_ONLY_SHOW_TOOLTIPS(TRUE)
aPos = GET_INITIAL_SPAWN_COORDS_IF_BAILED_FROM_CREATOR(aHeading)
SET_ENTITY_COORDS(PLAYER_PED_ID(), aPos, FALSE)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_ENTITY_HEADING(PLAYER_PED_ID(), aHeading)
ENDIF
NET_NL()NET_PRINT("Initial transition Decision: LOBBY_AUTO_MULTIPLAYER_FREEMODE Move Player- Setting players coords at ")NET_PRINT_VECTOR(aPos)
ENDIF
IF (GET_CAM_VIEW_MODE_FOR_CONTEXT(CAM_VIEW_MODE_CONTEXT_ON_FOOT) = CAM_VIEW_MODE_FIRST_PERSON)
ENDIF
//Commented out due to bug 1878439
// IF NOT IS_SCREEN_FADED_OUT() AND NOT IS_SCREEN_FADING_OUT()
SET_NEWS_FEED_SPLASH_SCREEN_ACTIVE(TRUE, TRUE)
// ENDIF
IF NOT DONT_CLEAN_UP_COMUNITY_PLAYLIST_VARS_EXITING_FMMC_LAUNCHER()
AND NOT IS_ANY_EVENT_PLAYLIST_LAUNCHING()
//Check if a playlist is avaliable
CHECK_SC_COMMUNITY_PLAYLIST_ACTIVE()
ENDIF
//Clear the old display Y flag
CLEAR_NEED_TO_DISPLAY_Y_ON_MAIN_TRANSITION()
// Make a singleplayer save as we switch away from it.
// Don't do this if we are booting directly into MP.
// IF NOT LOBBY_AUTO_MULTIPLAYER_FREEMODE()
// AND NOT LOBBY_AUTO_MULTIPLAYER_EVENT()
// DO_MP_TRANSITION_STARTING_SAVE()
// ENDIF
//Check to see if the playlist was pressed on initial boot
IF LOBBY_AUTO_MULTIPLAYER_EVENT()
#IF IS_DEBUG_BUILD
//Or we should force launch a playlist
OR GET_COMMANDLINE_PARAM_EXISTS("sc_ForceLaunchScPlaylist")
#ENDIF
PRINTLN("[TS] LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB() = TRUE")
IF IS_SC_COMMUNITY_PLAYLIST_ACTIVE()
SET_SC_COMMUNITY_PLAYLIST_LAUNCH_WHEN_ENTERING_FM(GET_TYPE_BASED_ON_TYPE_PRIORITY(), TRUE)
ENDIF
LOBBY_SET_AUTO_MULTIPLAYER_EVENT(FALSE)
//clean up the random job if it's some how set.
IF LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB()
LOBBY_SET_AUTO_MP_RANDOM_JOB(FALSE)
ENDIF
//Check to see if the random job was pressed on initial boot
ELIF LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB()
#IF IS_DEBUG_BUILD
//Or we should force launch a playlist
OR GET_COMMANDLINE_PARAM_EXISTS("sc_ForceLaunchRandom")
#ENDIF
//Ignore this if we're accepting an invite
IF NOT IS_ANY_TRANSITION_SESSION_INVITE_BEING_ACTIONED()
PRINTLN("[TS] LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB() = TRUE")
PRINTLN("[TS] *****************************************************************")
PRINTLN("[TS] * LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB - T - ", GET_CLOUD_TIME_AS_INT(), ", F - ", GET_FRAME_COUNT(), " *")
#IF USE_FINAL_PRINTS
PRINTLN_FINAL("[TS] * LOBBY_AUTO_MULTIPLAYER_RANDOM_JOB - T - ", GET_CLOUD_TIME_AS_INT(), ", F - ", GET_FRAME_COUNT(), " *")
#ENDIF
PRINTLN("[TS] *****************************************************************")
#IF FEATURE_COPS_N_CROOKS
IF IS_EVENT_PLAYLIST_ACTIVE_BY_TYPE(ciEVENT_COPS_AND_CROOKS)
SET_GOING_TO_ARCADE(TRUE)
PRINTLN("[TS] SET_SC_COMMUNITY_PLAYLIST_LAUNCH_WHEN_ENTERING_FM(ciEVENT_COPS_AND_CROOKS, TRUE) - Transition into C&C")
ELSE
#ENDIF
SET_TRANSITION_SESSION_AUTO_RANDOM_JOB()
PRINTLN("[TS] SET_TRANSITION_SESSION_AUTO_RANDOM_JOB()")
#IF FEATURE_COPS_N_CROOKS
ENDIF
#ENDIF
PRINTLN("[TS] LOBBY_SET_AUTO_MP_RANDOM_JOB(FALSE)")
ENDIF
LOBBY_SET_AUTO_MP_RANDOM_JOB(FALSE)
#IF IS_DEBUG_BUILD
ELSE
PRINTLN("[TS] LOBBY_AUTO_MULTIPLAYER_EVENT() = FALSE")
PRINTLN("[TS] LOBBY_SET_AUTO_MP_RANDOM_JOB() = FALSE")
#ENDIF // IS_DEBUG_BUILD
ENDIF
SET_TIME_SCALE(1.0)
NET_NL()NET_PRINT("[MainTransition] DEFAULT SET_TIME_SCALE(1.0) ")
IF SHOULD_REPOSITION_PLAYER()
TRIGGER_TRANSITION_NEED_TO_REPOSITION_SP_GUY(TRUE)
ENDIF
IF IS_TRANSITION_TELLING_CREATOR_TO_CLEANUP()
// IF NOT IS_PLAYER_SWITCH_IN_PROGRESS()
// aPos = GET_INITIAL_SPAWN_COORDS_IF_BAILED_FROM_CREATOR(aHeading)
// SET_ENTITY_COORDS(PLAYER_PED_ID(), aPos, FALSE)
// IF NOT IS_PED_INJURED(PLAYER_PED_ID())
// SET_ENTITY_HEADING(PLAYER_PED_ID(), aHeading)
// ENDIF
// NET_NL()NET_PRINT("Initial transition Decision: Move Player- Setting players coords at ")NET_PRINT_VECTOR(aPos)
// ENDIF
g_bKillFMMCmenu = TRUE
NET_NL()NET_PRINT("Initial transition Decision: in Creator at Start of MainTransition = TRUE")
g_FMMC_STRUCT.bKillFMMC = TRUE
g_FMMC_STRUCT.iMissionType = -1
TRANSITION_CHANGE_STATE(TRANSITION_STATE_CREATOR_SWOOP_UP)
#IF FEATURE_FREEMODE_ARCADE
ELIF (IS_FREEMODE_ARCADE() AND IS_RETURN_TO_LANDING_PAGE())
g_bKillFMMCmenu = TRUE
NET_NL()NET_PRINT("Initial transition Decision: returning form the lobby to the pre lobby. ")
g_FMMC_STRUCT.bKillFMMC = TRUE
g_FMMC_STRUCT.iMissionType = -1
IF HAS_RETURN_TO_LANDING_PAGE_ERROR()
HUD_CHANGE_STATE(HUD_STATE_ARCADE_ERRORS)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_TERMINATE_SESSION_AND_HOLD)
ELSE
HUD_CHANGE_STATE(HUD_STATE_ARCADE_TRANSITION)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_RETURN_TO_LANDING_PAGE)
ENDIF
#ENDIF // FEATURE_FREEMODE_ARCADE
ELIF IS_FAKE_MULTIPLAYER_MODE_SET()
g_bKillFMMCmenu = TRUE
NET_NL()NET_PRINT("Initial transition Decision: think we're in the Creator at Start of MainTransition due to FakeMP being set. ")
g_FMMC_STRUCT.bKillFMMC = TRUE
g_FMMC_STRUCT.iMissionType = -1
TRANSITION_CHANGE_STATE(TRANSITION_STATE_CREATOR_SWOOP_UP)
ELIF IS_TRANSITION_STARTED_IN_MP()
NET_NL()NET_PRINT("Initial transition Decision: GET_CURRENT_GAMEMODE = EMPTY but IS_TRANSITION_STARTED_IN_MP = TRUE - possibly an invite. ")
MpHud_Details.ScreenPlace.iSelectedCharacter = GET_ACTIVE_CHARACTER_SLOT()
TRANSITION_CHANGE_STATE(TRANSITION_STATE_MP_SWOOP_UP)
// url:bugstar:7379690 - Gen9 - Standalone - [XR-074] - After simulating a network outage during or after a save migration from Gen8 to Gen 9 in MP, the title will try to send the user to SP instead of Landing page.
// not sure if this is the best place to put this, but it was the permision fails that were triggering wrongly just below, so this should catch it
// before that happens and bail 'correctly'
#IF FEATURE_GEN9_STANDALONE
ELIF (SCRIPT_NETWORK_CAN_ACCESS_MULTIPLAYER(nAccessCode) = FALSE AND (nAccessCode = ACCESS_DENIED_NOT_SIGNED_ONLINE))
DO_BAIL_CLEANUP()
SET_BAIL_STILL_VALID(FALSE)
NET_NL()NET_PRINT("Initial transition Decision: ACCESS_DENIED_NOT_SIGNED_ONLINE \n")
HUD_CHANGE_STATE(HUD_STATE_NOT_ONLINE)
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_NOT_CONNECTED)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
#ENDIF
ELSE
NET_NL()NET_PRINT("Initial transition Decision: IS_ANY_MP_CONTENT_REDUCED_DUE_TO_PERMISSIONS() = ") NET_PRINT_BOOL(IS_ANY_MP_CONTENT_REDUCED_DUE_TO_PERMISSIONS())
NET_NL()NET_PRINT("Initial transition Decision: GET_IS_LOADING_SCREEN_ACTIVE() = ") NET_PRINT_BOOL(GET_IS_LOADING_SCREEN_ACTIVE())
NET_NL()NET_PRINT("Initial transition Decision: IS_PLAYSTATION_PLATFORM() = ") NET_PRINT_BOOL(IS_PLAYSTATION_PLATFORM())
NET_NL()NET_PRINT("Initial transition Decision: NETWORK_IS_NP_AVAILABLE() = ") NET_PRINT_BOOL(NETWORK_IS_NP_AVAILABLE())
NET_NL()NET_PRINT("Initial transition Decision: NETWORK_HAVE_ROS_BANNED_PRIV() = ") NET_PRINT_BOOL(NETWORK_HAVE_ROS_BANNED_PRIV())
NET_NL()NET_PRINT("Initial transition Decision: NETWORK_HAVE_ROS_MULTIPLAYER_PRIV() = ") NET_PRINT_BOOL(NETWORK_HAVE_ROS_MULTIPLAYER_PRIV())
NET_NL()NET_PRINT("Initial transition Decision: NETWORK_HAVE_ROS_CREATE_TICKET_PRIV() = ") NET_PRINT_BOOL(NETWORK_HAVE_ROS_CREATE_TICKET_PRIV())
NET_NL()NET_PRINT("Initial transition Decision: AM_I_ACCEPTING_TRANSITION_SESSIONS_INVITE() = ") NET_PRINT_BOOL(AM_I_ACCEPTING_TRANSITION_SESSIONS_INVITE())
NET_NL()NET_PRINT("Initial transition Decision: IS_ANY_TRANSITION_SESSION_INVITE_BEING_ACTIONED() = ") NET_PRINT_BOOL(IS_ANY_TRANSITION_SESSION_INVITE_BEING_ACTIONED())
IF IS_ANY_MP_CONTENT_REDUCED_DUE_TO_PERMISSIONS()
AND (GET_IS_LOADING_SCREEN_ACTIVE() AND NOT IS_ANY_TRANSITION_SESSION_INVITE_BEING_ACTIONED())
AND (NOT IS_PLAYSTATION_PLATFORM() OR (IS_PLAYSTATION_PLATFORM() AND NETWORK_IS_NP_AVAILABLE()))
AND NETWORK_HAVE_ROS_BANNED_PRIV() = FALSE
AND NETWORK_HAVE_ROS_MULTIPLAYER_PRIV()
AND NETWORK_HAVE_ROS_CREATE_TICKET_PRIV()
IF ARE_ONLINE_POLICIES_UP_TO_DATE()
SET_CURRENT_TRANSITION_BAILING_OPTIONS(BAILING_OPTIONS_PERMISSION_ERROR)
NET_NL()NET_PRINT("Initial transition Decision: IS_ANY_MP_CONTENT_REDUCED_DUE_TO_PERMISSIONS & GET_IS_LOADING_SCREEN_ACTIVE OR GET_IS_LAUNCH_FROM_LIVE_AREA ")
#IF USE_FINAL_PRINTS
PRINTLN_FINAL("Initial transition Decision: IS_ANY_MP_CONTENT_REDUCED_DUE_TO_PERMISSIONS & GET_IS_LOADING_SCREEN_ACTIVE OR GET_IS_LAUNCH_FROM_LIVE_AREA.")
#ENDIF
HUD_CHANGE_STATE(HUD_STATE_REDUCED_CONTENT)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
ELSE
NET_NL()NET_PRINT("Initial transition Decision: ARE_ONLINE_POLICIES_UP_TO_DATE = FALSE ")
MpHud_Details.bReducedPermsAndNoPolicyFromLoading = TRUE
HUD_CHANGE_STATE(HUD_STATE_LOADING)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_SP_SWOOP_UP)
ENDIF
ELSE
IF GET_IS_LAUNCH_FROM_LIVE_AREA()
NET_NL()NET_PRINT("Initial transition Decision: GET_IS_LAUNCH_FROM_LIVE_AREA = TRUE, setting Gamemode to FM ")
SET_JOINING_GAMEMODE(GAMEMODE_FM)
ENDIF
IF GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT()
NET_NL()NET_PRINT("Initial transition Decision: GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT = TRUE, setting Gamemode to FM ")
SET_JOINING_GAMEMODE(GAMEMODE_FM)
ENDIF
IF IS_PAUSE_MENU_MIGRATE_SAVES()
CLEAR_FREEMODE_PROLOGUE_PROFILE_SETTINGS(PSFP_PLAYER_ASKED_TRANSFER_SAVES, 0)
CLEAR_FREEMODE_PROLOGUE_PROFILE_SETTINGS(PSFP_PLAYER_ASKED_TRANSFER_SAVES, 1)
NET_NL()NET_PRINT("Initial transition Decision: IS_PAUSE_MENU_MIGRATE_SAVES = TRUE, setting Gamemode to FM ")
SET_JOINING_GAMEMODE(GAMEMODE_FM)
ENDIF
NET_NL()NET_PRINT("Initial transition Decision: GET_CURRENT_GAMEMODE = EMPTY ")
IF g_Private_MP_Picked_from_selector
AND LOBBY_AUTO_MULTIPLAYER_FREEMODE() = FALSE
AND GET_CONFIRM_INVITE_INTO_GAME_STATE() = FALSE
AND GET_IS_LAUNCH_FROM_LIVE_AREA() = FALSE
AND GET_IS_LIVE_AREA_LAUNCH_WITH_CONTENT() = FALSE
HUD_CHANGE_STATE(HUD_STATE_LOADING)
TRANSITION_CHANGE_STATE(TRANSITION_STATE_SP_SWOOP_UP)
// HUD_CHANGE_STATE(HUD_STATE_CONFIRM_LEAVE_SP)
// TRANSITION_CHANGE_STATE(TRANSITION_STATE_WAIT_HUD_EXIT)
ELSE
IF ARE_ONLINE_POLICIES_UP_TO_DATE() = FALSE
MpHud_Details.bReducedPermsAndNoPolicyFromLoading = TRUE
NET_NL()NET_PRINT("Initial transition Decision: bReducedPermsAndNoPolicyFromLoading = TRUE ")
ENDIF
TRANSITION_CHANGE_STATE(TRANSITION_STATE_SP_SWOOP_UP)
ENDIF
ENDIF
ENDIF
BREAK
ENDSWITCH
FORCE_RESPAWN(TRUE)
UGC_SET_USING_OFFLINE_CONTENT(FALSE)
IF NOT IS_PLAYER_PLAYING(PLAYER_ID())
NET_NL()NET_PRINT("BC: - IS_PLAYER_PLAYING() = FALSE = calling PAUSE_DEATH_ARREST_RESTART & IGNORE_NEXT_RESTART ")
PAUSE_DEATH_ARREST_RESTART(TRUE)
IGNORE_NEXT_RESTART(TRUE)
// FORCE_GAME_STATE_PLAYING()
ENDIF
IF IS_PED_INJURED(PLAYER_PED_ID())
IF NETWORK_IS_GAME_IN_PROGRESS()
NET_NL()NET_PRINT("BC: - NETWORK_RESURRECT_LOCAL_PLAYER() = TRUE = calling RESURRECT_PED ")
NETWORK_RESURRECT_LOCAL_PLAYER(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), 0.0, 0, FALSE)
SET_FORCED_RESPAWN_ACTIVE()
ELSE
IF IS_ENTITY_DEAD(PLAYER_PED_ID())
RESURRECT_PED(PLAYER_PED_ID())
NET_NL()NET_PRINT("BC: - IS_PED_INJURED() = TRUE = calling RESURRECT_PED ")
ELSE
REVIVE_INJURED_PED(PLAYER_PED_ID())
NET_NL()NET_PRINT("BC: - IS_PED_INJURED() = TRUE = calling REVIVE_INJURED_PED ")
ENDIF
ENDIF
ELSE
NET_NL()NET_PRINT("BC: - IS_PED_INJURED() = FALSE ")
ENDIF
IF g_bForceEntityAlphaOnJoin
RESET_ENTITY_ALPHA(PLAYER_PED_ID())
g_bResetAlphaOnSpawn = TRUE
PRINTLN("BC: - reseting player alpha on game entry g_bResetAlphaOnSpawn = TRUE")
ENDIF
IF GET_CURRENT_GAMEMODE() = GAMEMODE_FM
AND GET_JOINING_GAMEMODE() = GAMEMODE_FM
SET_JOINING_SPINNER_LOADING(TRUE)
ENDIF
SET_PLAYER_INVINCIBLE(PLAYER_ID(), TRUE)
NET_NL()NET_PRINT("initial MainTransition: SET_PLAYER_INVINCIBLE(PLAYER_ID(), TRUE) ")
SET_TRANSITION_STRING("")
g_b_HasJoinedSessionHappened = FALSE
#IF IS_DEBUG_BUILD //For Codes testbeds
//IF NETWORK_IS_IN_CODE_DEVELOPMENT_MODE()
IF GET_INDEX_OF_CURRENT_LEVEL() = LEVEL_NET_TEST
SWITCH GET_CURRENT_GAMEMODE()
CASE GAMEMODE_MPTESTBED
TRANSITION_BEGIN_RESPAWN()
NET_NL()NET_PRINT("NETWORK_IS_IN_CODE_DEVELOPMENT_MODE = TRUE in TESTBED - AUTOMATIC RESPAWN")
TRANSITION_CHANGE_STATE(TRANSITION_STATE_TERMINATE_MAINTRANSITION)
BREAK
ENDSWITCH
ENDIF
// REQUEST_ADDITIONAL_TEXT("MPAWD", MP_STATS_TEXT_SLOT)
#ENDIF
IF SHOULD_TRANSITION_SESSION_LAUNCH_MAIN_FM_SCRIPT() = FALSE
AND SHOULD_KILL_ALL_MP_SCRIPTS_FOR_SCTV_SWITCH() = FALSE
SET_TRANSITION_TO_IGNORE_LAUNCH_SCRIPT_START(FALSE)
ENDIF
// CreatedDate = EmptyDate
SET_TRANSITION_ACTIVE(TRUE)
INT iTransitionStages = 1
IF IS_PLAYER_SWITCH_IN_PROGRESS()
iTransitionStages = 0
ENDIF
// IF NETWORK_IS_CLOCK_TIME_OVERRIDDEN()
// MpHud_Details.iMainTransition_Hours = GET_CLOCK_HOURS()
// MpHud_Details.iMainTransition_Minutes = GET_CLOCK_MINUTES()
// MpHud_Details.iMainTransition_Seconds = GET_CLOCK_SECONDS()
// ENDIF
g_bHasTransitionSpawnedPlayer = FALSE
g_Private_LoadingNetworkShopINVENTORY.LoadingStages = 0
#IF IS_DEBUG_BUILD
TEXT_PLACEMENT KickTextPlacement
TEXT_STYLE KickTextStyle
INT WhoKickedYou = g_iKickEveryoneOutSessionPlayerNumber
PLAYER_INDEX WhoKickedEveryone = INT_TO_NATIVE(PLAYER_INDEX, WhoKickedYou)
BOOL AreYouBeingKicked = GlobalplayerBD[NATIVE_TO_INT(WhoKickedEveryone)].bKickEveryoneOutSessionTrigger
TEXT_LABEL_63 WhoKickedEveryone_str
IF IS_PLAYER_PLAYING(WhoKickedEveryone)
WhoKickedEveryone_str = GET_PLAYER_NAME(WhoKickedEveryone)
ENDIF
#ENDIF // IS_DEBUG_BUILD
g_iForceDLCStoreSetUp = ciPROCESS_MPHUD_COMPAT_FAILED_INT
PRINTLN("PROCESS_MPHUD_COMPAT_FAILED - g_iForceDLCStoreSetUp = ciPROCESS_MPHUD_COMPAT_FAILED_INT")
IF IS_TRANSITION_HEADING_FOR_CREATOR()
NET_NL()NET_PRINT("MAINTRANS: IS_TRANSITION_HEADING_FOR_CREATOR = TRUE ")
BOOL bCleanupLivetile = (NOT IS_LIVETILE_LAUNCHING())
RESET_EVERYTHING_TRANSITION_SESSION_FOR_SP_BAIL(DEFAULT, bCleanupLivetile)
IF IS_NEW_LOAD_SCENE_ACTIVE()
NEW_LOAD_SCENE_STOP()
NET_NL()NET_PRINT("MAINTRANS: NEW_LOAD_SCENE_STOP")
ENDIF
IF g_eMissionRunningOnMPSwitchStart = SP_MISSION_PROLOGUE
NET_NL()NET_PRINT("MAINTRANS: RUN_RCI_PROLOGUE")
RUN_RCI_PROLOGUE()
g_eTriggerRCI = RCI_NONE
ELIF g_eMissionRunningOnMPSwitchStart = SP_MISSION_MICHAEL_1
NET_NL()NET_PRINT("MAINTRANS: RUN_RCI_MICHAEL1")
RUN_RCI_MICHAEL1()
g_eTriggerRCI = RCI_NONE
ELSE
RUN_CUSTOM_CLEANUP_ON_RESPAWN()
ENDIF
ENDIF
NETWORK_TRANSITION_START(ENUM_TO_INT(TRANSITION_TYPE_MAIN),ENUM_TO_INT(GET_JOINING_GAMEMODE()),1,1)
START_NET_TIMER(g_st_LastTransitionTrackingState, TRUE)
START_NET_TIMER(g_st_LastTransitionTrackingStateOVERALL, TRUE)
PRINTLN("[net_transition][TRANSTRACK] Start timers ")
WHILE TRUE
#IF FEATURE_GEN9_STANDALONE
#IF ALLOW_REDIRECT_TO_SP
// Gen9 Standalone introduces pending transitions. Process them here
PROCESS_PENDING_TRANSITION_DATA()
#ENDIF // ALLOW_REDIRECT_TO_SP
#ENDIF // FEATURE_GEN9_STANDALONE
//g_charCreatorDatacharCreatorState
//ENUM CHAR_CREATOR_GLOBAL_STATE
// CHARACTER_CREATOR_INIT,
// CHARACTER_CREATOR_WAIT_FOR_FRONTEND,
// CHARACTER_CREATOR_RUN,
// CHARACTER_CREATOR_INPUT_NAME,
// CHARACTER_CREATOR_JOINING_GTA_ONLINE,
// CHARACTER_CREATOR_WARNING_MESSAGE
//ENDENUM
//FLOAT theY = 0.5
//FLOAT theX = 0.1
//DISPLAY_BOOL_FOR_F9_TRANSITION(UI3DSCENE_IS_AVAILABLE(), "UI3DSCENE_IS_AVAILABLE", theX, theY)
//DISPLAY_BOOL_FOR_F9_TRANSITION(UI3DSCENE_PUSH_PRESET("MPLOBBY_ALL5SLOTS"), "UI3DSCENE_PUSH_PRESET(MPLOBBY_ALL5SLOTS)", theX, theY)
//DISPLAY_BOOL_FOR_F9_TRANSITION(g_CharPedCreation[0].bChildGenerated, "g_CharPedCreation[0].bChildGenerated", theX, theY)
//DISPLAY_BOOL_FOR_F9_TRANSITION(g_CharPedCreation[1].bChildGenerated, "g_CharPedCreation[1].bChildGenerated", theX, theY)
//DISPLAY_BOOL_FOR_F9_TRANSITION(GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CHAR_ISACTIVE, 0), "GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CHAR_ISACTIVE, 0)", theX, theY)
//DISPLAY_BOOL_FOR_F9_TRANSITION(GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CHAR_ISACTIVE, 1), "GET_MP_BOOL_CHARACTER_STAT(MP_STAT_CHAR_ISACTIVE, 1)", theX, theY)
//DISPLAY_BOOL_FOR_F9_TRANSITION(g_b_ShouldIncrementFlag, "g_b_ShouldIncrementFlag = ", theX, theY)
//DISPLAY_BOOL_FOR_F9_TRANSITION(g_ARE_ALL_CHAR_CREATOR_PEDS_LOADED, "g_ARE_ALL_CHAR_CREATOR_PEDS_LOADED = ", theX, theY)
//DISPLAY_INT_FOR_F9_TRANSITION( g_charCreatorDatacharCreatorState, "g_charCreatorDatacharCreatorState = ", theX, theY, TRUE)
//g_charCreatorDatacharCreatorState = -1
//g_b_ShouldIncrementFlag = FALSE
//g_ARE_ALL_CHAR_CREATOR_PEDS_LOADED = FALSE
REPLAY_PREVENT_RECORDING_AND_UI_THIS_FRAME()
IF HAS_IMPORTANT_STATS_LOADED()
FOR I = 0 TO MAX_NUM_CHARACTER_SLOTS-1
g_Private_CHARACTER_TEAM[I] = GET_PACKED_STAT_INT(PACKED_CHAR_TEAM, I)
ENDFOR
#IF IS_DEBUG_BUILD
IF g_Private_ACTIVE_CHARACTER != GET_MP_INT_PLAYER_STAT(MPPLY_LAST_MP_CHAR)
NET_NL()NET_PRINT("[SET_ACTIVE_CHARACTER_SLOT]2 g_Private_ACTIVE_CHARACTER = ")NET_PRINT_INT(g_Private_ACTIVE_CHARACTER)
ENDIF
#ENDIF
g_Private_ACTIVE_CHARACTER = GET_MP_INT_PLAYER_STAT(MPPLY_LAST_MP_CHAR)
// NET_NL()NET_PRINT("[SET_ACTIVE_CHARACTER_SLOT] g_Private_ACTIVE_CHARACTER = ")NET_PRINT_INT(g_Private_ACTIVE_CHARACTER)
ENDIF
// IF PREPARE_MUSIC_EVENT("GTA_ONLINE_STOP_SCORE")
// TRIGGER_MUSIC_EVENT("GTA_ONLINE_STOP_SCORE")
// ENDIF
#IF IS_DEBUG_BUILD
IF AreYouBeingKicked = TRUE
KickTextPlacement.x = 0.1
KickTextPlacement.y = 0.2
SET_TITLE_TEXT(KickTextStyle)
DRAW_TEXT_WITH_PLAYER_NAME(KickTextPlacement, KickTextStyle, WhoKickedEveryone_str, "CTRLQ_PRESSED", HUD_COLOUR_RED)
ENDIF
#ENDIF
//maintain the launching of the playlist during the main transition.
MAINTAIN_LAUNCHING_COMMUNITY_PLAYLIST_DURING_TRANSITION()
HIDE_HUD_FOR_TRANSITION_THIS_FRAME()
SWITCH iTransitionStages
CASE 0
#IF IS_DEBUG_BUILD
NET_NL()NET_PRINT("BC: waiting for IS_PLAYER_SWITCH_IN_PROGRESS to finish before starting transition. ")
NET_NL()NET_PRINT(" - IS_PLAYER_SWITCH_IN_PROGRESS = ")NET_PRINT_BOOL(IS_PLAYER_SWITCH_IN_PROGRESS())
IF IS_PLAYER_SWITCH_IN_PROGRESS()
NET_NL()NET_PRINT(" - GET_PLAYER_SWITCH_STATE = ")NET_PRINT(GET_SWITCH_STATE_STRING(GET_PLAYER_SWITCH_STATE()))
ENDIF
NET_NL()NET_PRINT(" - GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYSTATIC = ")NET_PRINT_BOOL((GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYSTATIC))
NET_NL()NET_PRINT(" - GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYMOVING = ")NET_PRINT_BOOL((GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYMOVING))
NET_NL()NET_PRINT(" - GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYMOVING = ")NET_PRINT_BOOL((GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYMOVING))
NET_NL()NET_PRINT(" - DO_CAMERA_QUICK_EXIT_TO_SP() = ")NET_PRINT_BOOL(DO_CAMERA_QUICK_EXIT_TO_SP())
NET_NL()NET_PRINT(" - IS_ANY_EXTERNAL_EMERGENCY_SKYCAM_UP_ACTIVE() = ")NET_PRINT_BOOL(IS_ANY_EXTERNAL_EMERGENCY_SKYCAM_UP_ACTIVE())
#ENDIF
IF NOT IS_PLAYER_SWITCH_IN_PROGRESS()
OR GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYSTATIC
OR GET_SKYSWOOP_STAGE() = SKYSWOOP_INSKYMOVING
OR DO_CAMERA_QUICK_EXIT_TO_SP()
OR IS_ANY_EXTERNAL_EMERGENCY_SKYCAM_UP_ACTIVE()
#IF IS_DEBUG_BUILD
IF IS_PLAYER_SWITCH_IN_PROGRESS()
AND GET_QUICKLAUNCH_STATE() != QUICKLAUNCH_EMPTY
AND GET_SKYSWOOP_STAGE() = SKYSWOOP_NONE
KILL_PLAYER_SWITCH_NOW()
NET_NL()NET_PRINT("BC: waiting for IS_PLAYER_SWITCH_IN_PROGRESS but player used shift F during a SP switch so just kill active skycam. ")
ENDIF
#ENDIF
KILL_ALL_EXTERNAL_PLAYER_SWITCHES()
iTransitionStages = 1
ELSE
IF NOT IS_SCRIPT_BAILS_PROCESSING()
IF NOT SHOULD_TRANSITION_SESSION_PULL_CAM_UP_FOR_SESSION_CHANGE()
KILL_PLAYER_SWITCH_NOW()
ELSE
NET_NL()NET_PRINT("BC: waiting for SHOULD_TRANSITION_SESSION_PULL_CAM_UP_FOR_SESSION_CHANGE to finish before starting transition. ")
ENDIF
ELSE
IF g_b_skyCamPausedForOutroLastFrame = FALSE
NET_NL()NET_PRINT("BC: g_b_skyCamPausedForOutroLastFrame = FALSE at the start of maintransition so call RESET_SKYCAM_HOLD() ")
RESET_SKYCAM_HOLD()
ENDIF
NET_NL()NET_PRINT("BC: IS_SCRIPT_BAILS_PROCESSING = TRUE, don't kill skycam, just move on. ")
iTransitionStages = 1
ENDIF
ENDIF
BREAK
CASE 1
IF MpHud_Details.bHaveTunablesSetup = FALSE
IF TRANSITION_START_TUNABLE_LOADER()
NET_NL()NET_PRINT("BC: TRANSITION_START_TUNABLE_LOADER = TRUE ")
MpHud_Details.bHaveTunablesSetup = TRUE
ENDIF
ENDIF
IF IS_NET_PLAYER_OK(PLAYER_ID(), TRUE, FALSE)
IF HAS_IMPORTANT_STATS_LOADED()
MAINTAIN_CHUTE_ON()
ENDIF
ENDIF
//Launch the live time item if we need to.
MAINTAIN_SETUP_PS4_LIVE_STREAM()
IS_PROCESSING_A_BAIL_EVENT()
MAINTAIN_TRANSITION_JOINING(MpHud_Details, MpHud_GTAOnlineCharacterData)
MAINTAIN_TRANSITION_HUD(MpHud_Details, MpHud_GTAOnlineCharacterData)
IF IS_SKYSWOOP_IN_SKY()
IF IS_PLAYER_PED_BIGFOOT()
NET_NL()NET_PRINT("[MORPHMODEL] MainTransition: IS_PLAYER_PED_BIGFOOT() = TRUE, Switch back here. ")
CHANGE_PLAYER_PED_TO_HUMAN_FLAGS_ONLY()
ENDIF
ENDIF
IF IS_TUTORIAL_CUTSCENE_GOING_TO_RUN() = FALSE
// IF GET_CURRENT_HUD_STATE() = HUD_STATE_SELECT_CHARACTER_FM
// OR MpHud_Details.bShouldDisplayCloudChangeScreen
// // OR GET_CURRENT_HUD_STATE() = HUD_STATE_CREATE_FACE
// IF g_AreBirdsDisplaying
//
// RUN_CLOUD_STATUS_CHANGE(MpHud_Details)
// SET_SRL_TUTORIAL_ACTIVE(FALSE)
//
// SET_SKYSWOOP_UP(FALSE, FALSE, FALSE, SWITCH_TYPE_LONG, TRUE, 0,0,0,FALSE)
// ENDIF
// ENDIF
IF GET_CURRENT_HUD_STATE() = HUD_STATE_SELECT_CHARACTER_FM
OR MpHud_Details.bShouldDisplayCloudChangeScreen
RUN_CLOUD_STATUS_CHANGE(MpHud_Details)
SET_SRL_TUTORIAL_ACTIVE(FALSE)
ENDIF
ENDIF
BREAK
ENDSWITCH
g_AreBirdsDisplaying = FALSE
#IF IS_DEBUG_BUILD
UPDATE_HIGHEST_NUMBER_OF_COMMANDS_EXECUTED_THIS_FRAME(iMaxInstructionsCalled2)
#ENDIF
WAIT(0)
ENDWHILE
ENDSCRIPT