diff options
Diffstat (limited to 'Northstar.Client/scripts/vscripts/ui/menu_main.nut')
-rw-r--r-- | Northstar.Client/scripts/vscripts/ui/menu_main.nut | 608 |
1 files changed, 0 insertions, 608 deletions
diff --git a/Northstar.Client/scripts/vscripts/ui/menu_main.nut b/Northstar.Client/scripts/vscripts/ui/menu_main.nut deleted file mode 100644 index 6ffd0d3a..00000000 --- a/Northstar.Client/scripts/vscripts/ui/menu_main.nut +++ /dev/null @@ -1,608 +0,0 @@ -global function InitMainMenu -global function EULA_Dialog -global function UpdateDataCenterFooter -global function LaunchGamePurchase -global function SP_Trial_LaunchGamePurchase -global function LaunchSPNew -global function LaunchSPContinue -global function LaunchSPMissionSelect -global function LaunchMP -global function LaunchGame -global function LaunchSPTrialMission -global function GetUserSignInState - -struct -{ - var menu - var versionDisplay - var trialLabel -} file - - -void function InitMainMenu() -{ - RegisterSignal( "EndOnMainMenu_Open" ) - - var menu = GetMenu( "MainMenu" ) - file.menu = menu - - AddMenuEventHandler( menu, eUIEvent.MENU_OPEN, OnMainMenu_Open ) - AddMenuEventHandler( menu, eUIEvent.MENU_NAVIGATE_BACK, OnMainMenu_NavigateBack ) - - var titleRui = Hud_GetRui( Hud_GetChild( file.menu, "TitleRui" ) ) - RuiSetImage( titleRui, "basicImage", $"rui/menu/main_menu/title") - - file.versionDisplay = Hud_GetChild( menu, "versionDisplay" ) - file.trialLabel = Hud_GetChild( menu, "TrialLabel" ) - - #if CONSOLE_PROG - AddMenuFooterOption( menu, BUTTON_A, "#A_BUTTON_SELECT", "", null, IsConsoleSignedIn ) - #if DURANGO_PROG - AddMenuFooterOption( menu, BUTTON_B, "#B_BUTTON_SWITCH_PROFILE", "", null, IsConsoleSignedIn ) - #endif // DURANGO_PROG - - AddMenuVarChangeHandler( "CONSOLE_isSignedIn", UpdateFooterOptions ) - #endif // CONSOLE_PROG - - #if PC_PROG - AddMenuFooterOption( menu, BUTTON_A, "#A_BUTTON_SELECT", "" ) - #endif // PC_PROG - - AddMenuFooterOption( menu, BUTTON_X, "#X_BUTTON_INBOX_ACCEPT", "#INBOX_ACCEPT", OpenDataCenterDialog, IsDataCenterFooterValid, UpdateDataCenterFooter ) - AddMenuFooterOption( menu, BUTTON_Y, "#Y_MENU_TITLE_MODS", "#MENU_TITLE_MODS", void function( var button ) { AdvanceMenu( GetMenu( "ModListMenu" ) ) } ) -#if DEV - if ( DevStartPoints() ) - AddMenuFooterOption( menu, BUTTON_Y, "#Y_BUTTON_DEV_MENU", "#DEV_MENU", OpenSinglePlayerDevMenu ) -#endif // DEV -} - -#if CONSOLE_PROG - bool function IsConsoleSignedIn() - { - return ( GetMenuVarBool( "CONSOLE_isSignedIn" ) ) - } -#endif // CONSOLE_PROG - -void function OnMainMenu_Open() -{ - Signal( uiGlobal.signalDummy, "EndOnMainMenu_Open" ) - EndSignal( uiGlobal.signalDummy, "EndOnMainMenu_Open" ) - - UpdatePromoData() // On script restarts this gives us the last data until the new request is complete - RequestMainMenuPromos() // This will be ignored if there was a recent request. "infoblock_requestInterval" - - TryUnlockCollectiblesAchievement() - TryUnlockCompletedGameAchievements() - - Hud_SetText( file.versionDisplay, GetPublicGameVersion() ) - Hud_Show( file.versionDisplay ) - - thread UpdateTrialLabel() - -#if PC_PROG - ActivatePanel( GetPanel( "MainMenuPanel" ) ) - return -#endif // PC_PROG - - int state - int lastState = -1 - var panel - var lastPanel - - while ( GetTopNonDialogMenu() == file.menu ) - { - state = GetUserSignInState() - - if ( state != lastState ) - { - if ( state == userSignInState.SIGNED_IN ) - panel = GetPanel( "MainMenuPanel" ) - else - panel = GetPanel( "EstablishUserPanel" ) - - if ( panel != lastPanel ) - { - ActivatePanel( panel ) - lastPanel = panel - } - } - - lastState = state - - WaitFrame() - } -} - -void function ActivatePanel( var panel ) -{ - Assert( panel != null ) - - array<var> elems = GetElementsByClassname( file.menu, "MainMenuPanelClass" ) - foreach ( elem in elems ) - { - if ( elem != panel && Hud_IsVisible( elem ) ) - HidePanel( elem ) - } - - ShowPanel( panel ) -} - -void function OnMainMenu_NavigateBack() -{ -#if DURANGO_PROG - Durango_ShowAccountPicker() -#endif // DURANGO_PROG -} - -int function GetUserSignInState() -{ -#if DURANGO_PROG - if ( Durango_InErrorScreen() ) - { - return userSignInState.ERROR - } - else if ( Durango_IsSigningIn() ) - { - return userSignInState.SIGNING_IN - } - else if ( !Console_IsSignedIn() && !Console_SkippedSignIn() ) - { - //printt( "Console_IsSignedIn():", Console_IsSignedIn(), "Console_SkippedSignIn:", Console_SkippedSignIn() ) - return userSignInState.SIGNED_OUT - } - - Assert( Console_IsSignedIn() || Console_SkippedSignIn() ) -#endif - return userSignInState.SIGNED_IN -} - -void function UpdateDataCenterFooter( InputDef data ) -{ - EndSignal( uiGlobal.signalDummy, "EndFooterUpdateFuncs" ) - - int index = int( Hud_GetScriptID( data.vguiElem ) ) - int ping - string name - - while ( data.conditionCheckFunc() ) - { - ping = GetDatacenterPing() - name = GetDatacenterName() - - if ( ping > 0 ) - { - if ( IsControllerModeActive() ) - SetFooterText( file.menu, index, Localize( "#X_BUTTON_DATACENTER_INFO", name, ping ) ) - else - SetFooterText( file.menu, index, Localize( "#DATACENTER_INFO", name, ping ) ) - } - else - { - if ( IsControllerModeActive() ) - SetFooterText( file.menu, index, "#X_BUTTON_DATACENTER_CALCULATING" ) - else - SetFooterText( file.menu, index, "#DATACENTER_CALCULATING" ) - } - - WaitFrame() - } -} - -bool function IsDataCenterFooterValid() -{ - #if PC_PROG - return ( uiGlobal.activeMenu == file.menu ) - #else - return ( uiGlobal.activeMenu == file.menu ) && Console_IsOnline() && Console_IsSignedIn() - #endif -} - -void function SP_Trial_LaunchGamePurchase() -{ - Disconnect() - LaunchGamePurchase() -} - -void function LaunchGamePurchase() -{ - ShowGamePurchaseStore() -} - -void function LaunchSPNew() -{ - uiGlobal.launching = eLaunching.SINGLEPLAYER_NEW - LaunchGame() -} - -void function LaunchSPContinue() -{ - uiGlobal.launching = eLaunching.SINGLEPLAYER_CONTINUE - LaunchGame() -} - -void function LaunchSPMissionSelect() -{ - uiGlobal.launching = eLaunching.SINGLEPLAYER_MISSION_SELECT - LaunchGame() -} - -void function LaunchSPTrialMission() -{ - uiGlobal.launching = eLaunching.SINGLEPLAYER_MISSION_SELECT - SPTrialMission_Start() -} - -void function LaunchMP() -{ - uiGlobal.launching = eLaunching.MULTIPLAYER - LaunchGame() -} - -void function LaunchGame() -{ - Assert( uiGlobal.launching == eLaunching.SINGLEPLAYER_NEW || - uiGlobal.launching == eLaunching.SINGLEPLAYER_CONTINUE || - uiGlobal.launching == eLaunching.SINGLEPLAYER_MISSION_SELECT || - uiGlobal.launching == eLaunching.MULTIPLAYER || - uiGlobal.launching == eLaunching.MULTIPLAYER_INVITE ) - - if ( uiGlobal.activeMenu == GetMenu( "PlayVideoMenu" ) ) - { - SetVideoCompleteFunc( null ) - CloseActiveMenu() - } - - if ( !IsGamePartiallyInstalled() ) - { - DoGameNeedsToInstallDialog() - return - } - - // Because accepting an invite tries to launch the game we need this here - if ( !IsGameFullyInstalled() ) - { - printt( "Game is not fully installed." ) - - if ( uiGlobal.launching == eLaunching.SINGLEPLAYER_CONTINUE ) - { - string saveName = GetSaveName() - string mapName = SaveGame_GetMapName( saveName ) - int startPointIndex = SaveGame_GetStartPoint( saveName ) - - printt( mapName ) - printt( startPointIndex ) - - bool isInTraining = (mapName == "sp_training" && startPointIndex < 5) // "Titanfall" start point - - if ( !isInTraining ) - { - DoGameNeedsToInstallDialog() - return - } - - printt( "Allowing 'continue' option to load into training." ) - } - else if ( uiGlobal.launching != eLaunching.SINGLEPLAYER_NEW ) - { - DoGameNeedsToInstallDialog() - return - } - } - - #if CONSOLE_PROG - if ( !Console_IsSignedIn() ) - { - printt( "Not signed in." ) - return - } - - if ( GetEULAVersionAccepted() < 1 ) // Treat as binary for now, as discussed with Preston. - { - if ( uiGlobal.activeMenu == GetMenu( "EULADialog" ) ) - return - - if ( IsDialog( uiGlobal.activeMenu ) ) - CloseActiveMenu( true ) - - EULA_Dialog() - return - } - - if ( Nucleus_GetState() == NUCLEUS_STATE_INACTIVE ) - Nucleus_Login() - - if ( !uiGlobal.triedNucleusRegistration && uiGlobal.launching == eLaunching.MULTIPLAYER && !Nucleus_GetSkipRegistration() ) - { - uiGlobal.triedNucleusRegistration = true - thread Nucleus_HandleLoginResponse() - return - } - - if ( !GetConVarBool( "gamma_adjusted" ) ) - { - if ( IsDialog( uiGlobal.activeMenu ) ) - CloseActiveMenu( true ) - - AdvanceMenu( GetMenu( "GammaMenu" ) ) - return - } - #endif // CONSOLE_PROG - - if ( ( uiGlobal.launching == eLaunching.MULTIPLAYER || uiGlobal.launching == eLaunching.MULTIPLAYER_INVITE ) && !IsAdvocateGiftComplete() ) - { - if ( IsDialog( uiGlobal.activeMenu ) ) - CloseActiveMenu( true ) - - AdvanceMenu( GetMenu( "AdvocateGiftDialog" ) ) - return - } - - SetMenuWasMultiplayerPlayedLast( true ) - if ( uiGlobal.launching == eLaunching.SINGLEPLAYER_NEW ) - NewGameSelected() - else if ( uiGlobal.launching == eLaunching.SINGLEPLAYER_CONTINUE ) - LoadLastCheckpoint() - else if ( uiGlobal.launching == eLaunching.SINGLEPLAYER_MISSION_SELECT ) - AdvanceMenu( GetMenu( "SinglePlayerMenu" ) ) - else - thread StartSearchForPartyServer() - - uiGlobal.launching = eLaunching.FALSE -} - -void function StartSearchForPartyServer() -{ - printt( "StartSearchForPartyServer" ) - -#if DURANGO_PROG - // IMPORTANT: As a safety measure leave any party view we are in at this point. - // Otherwise, if you are unlucky enough to get stuck in a party view, you will - // trash its state by pointing it to your private lobby. - Durango_LeaveParty() - - // IMPORTANT: It's possible that you have permission to play multiplayer - // because your friend is signed in with his gold account on your machine, - // but once that guy signs out, you shouldn't be able to play like you have - // xboxlive gold anymore. To fix this, we need to check permissions periodically. - // One of the places where we do this periodic check is when you press "PLAY" - printt( "Durango - verifying MP permissions" ) - if ( !Console_HasPermissionToPlayMultiplayer() ) - Durango_VerifyMultiplayerPermissions() -#endif // DURANGO_PROG - - Signal( uiGlobal.signalDummy, "OnCancelConnect" ) - EndSignal( uiGlobal.signalDummy, "OnCancelConnect" ) - - if ( IsDialog( uiGlobal.activeMenu ) ) - CloseActiveMenu( true ) - OpenConnectingDialog() - - Hud_SetText( uiGlobal.ConfirmMenuMessage, "" ) - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, "" ) - - Hud_Show( uiGlobal.ConfirmMenuMessage ) - Hud_Show( uiGlobal.ConfirmMenuErrorCode ) - -#if DURANGO_PROG - if( !Console_IsOnline() ) - { - printt( "Durango - finding empty party server failed - not online" ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#DURANGO_NOT_ONLINE" ) - return - } -#endif // DURANGO_PROG - -#if PS4_PROG - if( !Console_IsOnline() ) - { - printt( "PS4 - finding empty party server failed - not online" ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#INTERNET_NOT_FOUND" ) - return - } - - if ( PS4_isNetworkingDown() ) - { - printt( "PS4 - finding empty party server failed - networking is down" ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_CANNOT_CONNECT" ) - return - } - - if( !PS4_isUserNetworkingEnabled() ) - { - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_CHECKING_USABILITY" ) - PS4_ScheduleUserNetworkingEnabledTest() - WaitFrame() - - if( !PS4_isUserNetworkingResolved() ) - { - printt( "PS4 - finding empty party server stalled - networking isn't resolved yet" ) - // offer cancel ?? - while( !PS4_isUserNetworkingResolved()) - WaitFrame() - } - - if( PS4_getUserNetworkingResolution() == PS4_NETWORK_STATUS_NOT_LOGGED_IN ) - { - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, string(PS4_getUserNetworkingErrorStatus()) ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_LOGIN" ) - - Ps4_LoginDialog_Schedule() - while( Ps4_LoginDialog_Running() ) - WaitFrame() - - PS4_ScheduleUserNetworkingEnabledTest() - WaitFrame() - if( !PS4_isUserNetworkingResolved() ) - { - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, "" ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_CHECKING_USABILITY" ) - while( !PS4_isUserNetworkingResolved()) - WaitFrame() - } - } - - if( PS4_getUserNetworkingResolution() == PS4_NETWORK_STATUS_AGE_RESTRICTION ) - { - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, string(PS4_getUserNetworkingErrorStatus()) ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#MULTIPLAYER_AGE_RESTRICTED" ) - return - } - - if( PS4_getUserNetworkingResolution() == PS4_NETWORK_STATUS_IN_ERROR ) - { - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, string(PS4_getUserNetworkingErrorStatus()) ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_HAD_ERROR" ) - return - } - - if( !PS4_isUserNetworkingEnabled() ) - { - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, string(PS4_getUserNetworkingErrorStatus()) ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_NOT_ALLOWED" ) - return - } - - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, "" ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "" ) - } - - if ( !Ps4_PSN_Is_Loggedin() ) - { - Ps4_LoginDialog_Schedule() - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_LOGIN" ) - - while( Ps4_LoginDialog_Running() ) - WaitFrame() - - if ( !Ps4_PSN_Is_Loggedin() ) - return - } - - if( Ps4_CheckPlus_Schedule() ) - { - while( Ps4_CheckPlus_Running() ) - WaitFrame() - if( !Ps4_CheckPlus_Allowed() ) - { - if( Ps4_CheckPlus_GetLastRequestResults() != 0 ) - { - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, string( Ps4_CheckPlus_GetLastRequestResults()) ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_HAD_ERROR" ) - return - } - - if( Ps4_ScreenPlusDialog_Schedule() ) - { - while( Ps4_ScreenPlusDialog_Running() ) - WaitFrame() - if( !Ps4_ScreenPlusDialog_Allowed() ) - { - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#PSN_MUST_BE_PLUS_USER" ) - return - } - } - else - { - return - } - } - } - - Hud_SetText( uiGlobal.ConfirmMenuErrorCode, "" ) - Hud_SetText( uiGlobal.ConfirmMenuMessage, "" ) -#endif // #if PS4_PROG - - printt( "Checking if this user has permission to play MP\n" ) - if ( !Console_HasPermissionToPlayMultiplayer() ) - { - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#MULTIPLAYER_NOT_AVAILABLE" ) - return - } - - Plat_ShowUGCRestrictionNotice() - while ( Plat_IsSystemMessageDialogOpen() ) - WaitFrame() - - Plat_ShowChatRestrictionNotice() - while ( Plat_IsSystemMessageDialogOpen() ) - WaitFrame() - -#if PC_PROG - if ( Origin_IsEnabled() ) - { - Origin_RequestTicket() - Hud_SetText( uiGlobal.ConfirmMenuMessage, "#WAITING_FOR_ORIGIN" ) - - while ( !Origin_IsReady() ) - WaitFrame() - } -#endif // PC_PROG - - printt( "SearchForPartyServer" ) - SetMenuWasMultiplayerPlayedLast( true ) - SearchForPartyServer() - - Hud_SetAutoText( uiGlobal.ConfirmMenuMessage, "", HATT_MATCHMAKING_EMPTY_SERVER_SEARCH_STATE, 0 ) - Hud_SetAutoText( uiGlobal.ConfirmMenuErrorCode, "", HATT_MATCHMAKING_EMPTY_SERVER_SEARCH_ERROR, 0 ) -} - -void function EULA_Dialog() -{ - if ( GetUserSignInState() != userSignInState.SIGNED_IN ) - return - - if ( GetEULAVersionAccepted() >= 1 ) - return - - AdvanceMenu( GetMenu( "EULADialog" ) ) -} - -void function DoGameNeedsToInstallDialog() -{ - DialogData dialogData - dialogData.header = "#MENU_WAIT_FOR_INTALL" - - int installProgress = int( GetGameFullyInstalledProgress()*100 ) - - if ( uiGlobal.launching == eLaunching.MULTIPLAYER && IsGamePartiallyInstalled() && !Script_IsRunningTrialVersion() ) - { - dialogData.message = Localize("#MENU_WAIT_FOR_INTALL_HINT", installProgress ) - AddDialogButton( dialogData, "#YES", LaunchSPNew ) - AddDialogButton( dialogData, "#NO" ) - } - else - { - dialogData.message = Localize("#MENU_WAIT_FOR_INTALL_HINT_NOTRAINING", installProgress ) - AddDialogButton( dialogData, "#OK" ) - } - - AddDialogFooter( dialogData, "#A_BUTTON_SELECT" ) - AddDialogFooter( dialogData, "#B_BUTTON_CANCEL" ) - - OpenDialog( dialogData ) -} - -void function UpdateTrialLabel() -{ - bool isTrialVersion - bool lastIsTrialVersion = Script_IsRunningTrialVersion() - - Hud_SetVisible( file.trialLabel, lastIsTrialVersion ) - - while ( GetTopNonDialogMenu() == file.menu ) - { - isTrialVersion = Script_IsRunningTrialVersion() - - if ( isTrialVersion != lastIsTrialVersion ) - Hud_SetVisible( file.trialLabel, isTrialVersion ) - - lastIsTrialVersion = isTrialVersion - - WaitFrame() - } -} - -void function OpenSinglePlayerDevMenu( var button ) -{ - AdvanceMenu( GetMenu( "SinglePlayerDevMenu" ) ) -} |