void GameSettings::UpdateSelectMissionButton() { DropDownMenu *menu = dynamic_cast< DropDownMenu* >( FindChildByName( "DrpSelectMission", true ) ); if ( !menu ) return; BaseModHybridButton *button = menu->GetButton(); //dynamic_cast< BaseModHybridButton* >( FindChildByName( "BtnSelectMission", true ) ); if ( m_pSettings && button ) { const char *szGameType = m_pSettings->GetString( "game/mode", "sdk" ); if ( !Q_stricmp( szGameType, "campaign" ) ) { button->SetText( "#ASUI_Select_Campaign" ); button->SetHelpText( "#ASUI_Select_Campaign_tt" ); } else if ( !Q_stricmp( szGameType, "single_mission" ) ) { button->SetText( "#ASUI_Select_Mission" ); button->SetHelpText( "#ASUI_Select_Mission_tt" ); } else if( !Q_stricmp( szGameType, "sdk" ) ) { button->SetText( "Select Map" ); button->SetHelpText( "SDK select map example" ); } else if( !Q_stricmp( szGameType, "swarmkeeper" ) ) { button->SetText( "Select level" ); button->SetHelpText( "Select a Swarm Keeper level" ); } } /* BaseModHybridButton *button = dynamic_cast< BaseModHybridButton* >( FindChildByName( "BtnSelectMission" ) ); if ( m_pSettings && button ) { const char *szGameType = m_pSettings->GetString( "game/mode", "campaign" ); if ( !Q_stricmp( szGameType, "campaign" ) ) { button->SetText( "#ASUI_Select_Campaign" ); button->SetHelpText( "#ASUI_Select_Campaign_tt" ); } else if ( !Q_stricmp( szGameType, "single_mission" ) ) { button->SetText( "#ASUI_Select_Mission" ); button->SetHelpText( "#ASUI_Select_Mission_tt" ); } } */ }
//============================================================================= void MainMenu::OnThink() { // need to change state of flyout if user suddenly disconnects // while flyout is open BaseModUI::FlyoutMenu *flyout = dynamic_cast< FlyoutMenu* >( FindChildByName( "FlmCampaignFlyout" ) ); if ( flyout ) { BaseModHybridButton *pButton = dynamic_cast< BaseModHybridButton* >( flyout->FindChildButtonByCommand( "QuickMatchCoOp" ) ); if ( pButton ) { if ( !CUIGameData::Get()->SignedInToLive() ) { pButton->SetText( "#L4D360UI_QuickStart" ); if ( m_iQuickJoinHelpText != MMQJHT_QUICKSTART ) { pButton->SetHelpText( "#L4D360UI_QuickMatch_Offline_Tip" ); m_iQuickJoinHelpText = MMQJHT_QUICKSTART; } } else { pButton->SetText( "#L4D360UI_QuickMatch" ); if ( m_iQuickJoinHelpText != MMQJHT_QUICKMATCH ) { pButton->SetHelpText( "#L4D360UI_QuickMatch_Tip" ); m_iQuickJoinHelpText = MMQJHT_QUICKMATCH; } } } } if ( IsPC() ) { FlyoutMenu *pFlyout = dynamic_cast< FlyoutMenu* >( FindChildByName( "FlmOptionsFlyout" ) ); if ( pFlyout ) { const MaterialSystem_Config_t &config = materials->GetCurrentConfigForVideoCard(); pFlyout->SetControlEnabled( "BtnBrightness", !config.Windowed() ); } } BaseClass::OnThink(); }
void QuickJoinPanel::UpdateNumGamesFoundLabel( void ) { BaseModHybridButton *title = dynamic_cast< BaseModHybridButton* >( FindChildByName( "LblTitle" ) ); if ( title ) { wchar_t* wFormatString = g_pVGuiLocalize->Find( GetTitle() ); if( wFormatString ) { char gameCountTxt[ 4 ]; itoa( m_FriendInfo.Count(), gameCountTxt, 10 ); wchar_t wGameCountTxt[ 4 ]; g_pVGuiLocalize->ConvertANSIToUnicode( gameCountTxt, wGameCountTxt, sizeof( wGameCountTxt ) ); wchar_t wMessage[ 256 ]; g_pVGuiLocalize->ConstructString( wMessage, sizeof( wMessage ), wFormatString, 1, wGameCountTxt ); title->SetText( wMessage ); } } }
//============================================================================= void DownloadCampaign::UpdateText() { wchar_t s1[MAX_PATH]; wchar_t s2[MAX_PATH]; wchar_t text[MAX_PATH]; g_pVGuiLocalize->ConvertANSIToUnicode( m_campaignName.Get(), s1, sizeof( s1 ) ); g_pVGuiLocalize->ConvertANSIToUnicode( m_author.Get(), s2, sizeof( s2 ) ); const wchar_t * downloadCampaignText = g_pVGuiLocalize->Find( "#L4D360UI_DownloadCampaign_Campaign" ); if ( downloadCampaignText ) { g_pVGuiLocalize->ConstructString( text, sizeof( text ), downloadCampaignText, 2, s1, s2 ); vgui::Label *LblDownloadCampaign = dynamic_cast< vgui::Label * > ( FindChildByName( "LblDownloadCampaign" ) ); if ( LblDownloadCampaign ) { LblDownloadCampaign->SetText( text ); } } g_pVGuiLocalize->ConvertANSIToUnicode( m_webSite.Get(), s1, sizeof( s1 ) ); BaseModHybridButton *BtnURL = dynamic_cast< BaseModHybridButton * > ( FindChildByName( "BtnURL" ) ); if ( BtnURL ) { BtnURL->SetText( s1 ); } if ( m_fromLobby ) { vgui::Label *LblDownloadText = dynamic_cast< vgui::Label * > ( FindChildByName( "LblDownloadText" ) ); if ( LblDownloadText ) { LblDownloadText->SetText( "#L4D360UI_DownloadCampaign_Text_FromLobby" ); } } }
//============================================================================= void MainMenu::ApplySchemeSettings( IScheme *pScheme ) { BaseClass::ApplySchemeSettings( pScheme ); const char *pSettings = "Resource/UI/BaseModUI/MainMenu.res"; #if !defined( _X360 ) if ( !g_pMatchFramework->GetMatchSystem() ) { Msg( "BAD!\n" ); } if ( !g_pMatchFramework->GetMatchSystem()->GetPlayerManager() ) { Msg( "BAD PLAYER MANAGER!\n" ); } if ( !g_pMatchFramework->GetMatchSystem()->GetPlayerManager()->GetLocalPlayer( 0 ) ) { pSettings = "Resource/UI/BaseModUI/MainMenuStub.res"; } #endif LoadControlSettings( pSettings ); BaseModHybridButton *button = dynamic_cast< BaseModHybridButton* >( FindChildByName( "BtnPlaySolo" ) ); if ( button ) { #ifdef _X360 button->SetText( ( XBX_GetNumGameUsers() > 1 ) ? ( "#L4D360UI_MainMenu_PlaySplitscreen" ) : ( "#L4D360UI_MainMenu_PlaySolo" ) ); button->SetHelpText( ( XBX_GetNumGameUsers() > 1 ) ? ( "#L4D360UI_MainMenu_OfflineCoOp_Tip" ) : ( "#L4D360UI_MainMenu_PlaySolo_Tip" ) ); #endif } #ifdef _X360 if ( !XBX_GetPrimaryUserIsGuest() ) { wchar_t wszListText[ 128 ]; wchar_t wszPlayerName[ 128 ]; IPlayer *player1 = NULL; if ( XBX_GetNumGameUsers() > 0 ) { player1 = g_pMatchFramework->GetMatchSystem()->GetPlayerManager()->GetLocalPlayer( XBX_GetUserId( 0 ) ); } IPlayer *player2 = NULL; if ( XBX_GetNumGameUsers() > 1 ) { player2 = g_pMatchFramework->GetMatchSystem()->GetPlayerManager()->GetLocalPlayer( XBX_GetUserId( 1 ) ); } if ( player1 ) { Label *pLblPlayer1GamerTag = dynamic_cast< Label* >( FindChildByName( "LblPlayer1GamerTag" ) ); if ( pLblPlayer1GamerTag ) { g_pVGuiLocalize->ConvertANSIToUnicode( player1->GetName(), wszPlayerName, sizeof( wszPlayerName ) ); g_pVGuiLocalize->ConstructString( wszListText, sizeof( wszListText ), g_pVGuiLocalize->Find( "#L4D360UI_MainMenu_LocalProfilePlayer1" ), 1, wszPlayerName ); pLblPlayer1GamerTag->SetVisible( true ); pLblPlayer1GamerTag->SetText( wszListText ); } } if ( player2 ) { Label *pLblPlayer2GamerTag = dynamic_cast< Label* >( FindChildByName( "LblPlayer2GamerTag" ) ); if ( pLblPlayer2GamerTag ) { g_pVGuiLocalize->ConvertANSIToUnicode( player2->GetName(), wszPlayerName, sizeof( wszPlayerName ) ); g_pVGuiLocalize->ConstructString( wszListText, sizeof( wszListText ), g_pVGuiLocalize->Find( "#L4D360UI_MainMenu_LocalProfilePlayer2" ), 1, wszPlayerName ); pLblPlayer2GamerTag->SetVisible( true ); pLblPlayer2GamerTag->SetText( wszListText ); // in split screen, have player2 gamer tag instead of enable, and disable SetControlVisible( "LblPlayer2DisableIcon", true ); SetControlVisible( "LblPlayer2Disable", true ); SetControlVisible( "LblPlayer2Enable", false ); } } else { SetControlVisible( "LblPlayer2DisableIcon", false ); SetControlVisible( "LblPlayer2Disable", false ); // not in split screen, no player2 gamertag, instead have enable SetControlVisible( "LblPlayer2GamerTag", false ); SetControlVisible( "LblPlayer2Enable", true ); } } #endif if ( IsPC() ) { FlyoutMenu *pFlyout = dynamic_cast< FlyoutMenu* >( FindChildByName( "FlmOptionsFlyout" ) ); if ( pFlyout ) { bool bUsesCloud = false; #ifdef IS_WINDOWS_PC ISteamRemoteStorage *pRemoteStorage = SteamClient()?(ISteamRemoteStorage *)SteamClient()->GetISteamGenericInterface( SteamAPI_GetHSteamUser(), SteamAPI_GetHSteamPipe(), STEAMREMOTESTORAGE_INTERFACE_VERSION ):NULL; #else ISteamRemoteStorage *pRemoteStorage = NULL; AssertMsg( false, "This branch run on a PC build without IS_WINDOWS_PC defined." ); #endif int32 availableBytes, totalBytes = 0; if ( pRemoteStorage && pRemoteStorage->GetQuota( &totalBytes, &availableBytes ) ) { DevMsg("Accessing remote storage. totalBytes = %i\n", totalBytes); if ( totalBytes > 0 ) { DevMsg("Enabling cloud.\n"); bUsesCloud = true; } } pFlyout->SetControlEnabled( "BtnCloud", bUsesCloud ); } } SetFooterState(); if ( IsX360() ) { GameModes *pGameModes = dynamic_cast< GameModes* >( FindChildByName( "BtnGameModes" ) ); if ( pGameModes ) { char lastActive[MAX_PATH]; if ( pGameModes->GetLastActiveNameId( lastActive, sizeof( lastActive ) ) ) { pGameModes->SetActive( lastActive, true ); } else { pGameModes->SetActive( "BtnPlaySolo", true ); } m_ActiveControl = pGameModes; } } if ( IsPC() ) { vgui::Panel *firstPanel = FindChildByName( "BtnCoOp" ); if ( firstPanel ) { if ( m_ActiveControl ) { m_ActiveControl->NavigateFrom( ); } firstPanel->NavigateTo(); } } #if defined( _X360 ) && defined( _DEMO ) SetControlVisible( "BtnExtras", !engine->IsDemoHostedFromShell() ); SetControlVisible( "BtnQuit", engine->IsDemoHostedFromShell() ); #endif // CERT CATCH ALL JUST IN CASE! #ifdef _X360 bool bAllUsersCorrectlySignedIn = ( XBX_GetNumGameUsers() > 0 ); for ( int k = 0; k < ( int ) XBX_GetNumGameUsers(); ++ k ) { if ( !g_pMatchFramework->GetMatchSystem()->GetPlayerManager()->GetLocalPlayer( XBX_GetUserId( k ) ) ) bAllUsersCorrectlySignedIn = false; } if ( !bAllUsersCorrectlySignedIn ) { Warning( "======= SIGNIN FAIL SIGNIN FAIL SIGNIN FAIL SIGNIN FAIL ==========\n" ); Assert( 0 ); CBaseModPanel::GetSingleton().CloseAllWindows( CBaseModPanel::CLOSE_POLICY_EVEN_MSGS ); CAttractScreen::SetAttractMode( CAttractScreen::ATTRACT_GAMESTART ); CBaseModPanel::GetSingleton().OpenWindow( WT_ATTRACTSCREEN, NULL, true ); Warning( "======= SIGNIN RESET SIGNIN RESET SIGNIN RESET SIGNIN RESET ==========\n" ); } #endif }
//============================================================================= void InGameKickPlayerList::LoadLayout() { BaseClass::LoadLayout(); //int iLocalPlayerTeam; if ( false ) // TODO: !GameClientExports()->GetPlayerTeamIdByUserId( -1, iLocalPlayerTeam ) ) { // no local player? Assert( 0 ); // hide all the buttons, weird state for ( int i=0;i<KICK_PLAYER_LIST_MAX_PLAYERS; i++ ) { BaseModHybridButton *pButton = dynamic_cast< BaseModHybridButton* >( FindChildByName( VarArgs( "BtnPlayer%d", i ) ) ); if ( pButton ) { pButton->SetVisible( false ); } } return; } // get a list of players that we can kick m_KickablePlayersUserIDs.Purge(); for( int i = 1; i <= engine->GetMaxClients(); ++i) { player_info_t playerInfo; if( engine->GetPlayerInfo(i, &playerInfo) && !playerInfo.fakeplayer ) { if ( true ) // TODO: GameClientExports()->IsPlayerKickableByLocalPlayer( i ) ) { m_KickablePlayersUserIDs.AddToTail( playerInfo.userID ); } } } int iKickablePlayers = m_KickablePlayersUserIDs.Count(); // If there are no players to be kicked, hide the description and show the label explaining why // there are no players to choose SetControlVisible( "LblDescription", iKickablePlayers > 0 ); SetControlVisible( "LblNoPlayers", iKickablePlayers == 0 ); for ( int i=0;i<KICK_PLAYER_LIST_MAX_PLAYERS; i++ ) { BaseModHybridButton *pButton = dynamic_cast< BaseModHybridButton* >( FindChildByName( VarArgs( "BtnPlayer%d", i+1 ) ) ); if ( pButton ) { if ( i < iKickablePlayers ) { int userID = m_KickablePlayersUserIDs.Element(i); player_info_t playerInfo; if( engine->GetPlayerInfo( engine->GetPlayerForUserID(userID), &playerInfo ) ) { pButton->SetVisible( true ); pButton->SetText( playerInfo.name ); pButton->SetCommand( VarArgs( "KickPlayer%d", userID ) ); } else { pButton->SetVisible( false ); } } else { pButton->SetVisible( false ); } } } }