You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
3.9 KiB
114 lines
3.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Serves as the base panel for the entire matchmaking UI |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef MATCHMAKINGBASEPANEL_H |
|
#define MATCHMAKINGBASEPANEL_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "basedialog.h" |
|
#include "utlstack.h" |
|
#include "const.h" |
|
|
|
enum EGameType |
|
{ |
|
GAMETYPE_RANKED_MATCH, |
|
GAMETYPE_STANDARD_MATCH, |
|
GAMETYPE_SYSTEMLINK_MATCH, |
|
}; |
|
|
|
//---------------------------- |
|
// CMatchmakingBasePanel |
|
//---------------------------- |
|
class CMatchmakingBasePanel : public CBaseDialog |
|
{ |
|
DECLARE_CLASS_SIMPLE( CMatchmakingBasePanel, CBaseDialog ); |
|
|
|
public: |
|
CMatchmakingBasePanel(vgui::Panel *parent); |
|
~CMatchmakingBasePanel(); |
|
|
|
virtual void OnCommand( const char *pCommand ); |
|
virtual void OnKeyCodePressed( vgui::KeyCode code ); |
|
virtual void Activate(); |
|
|
|
void SessionNotification( const int notification, const int param = 0 ); |
|
void SystemNotification( const int notification ); |
|
void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost ); |
|
void SessionSearchResult( int searchIdx, void *pHostData, XSESSION_SEARCHRESULT *pResult, int ping ); |
|
|
|
void OnLevelLoadingStarted(); |
|
void OnLevelLoadingFinished(); |
|
void CloseGameDialogs( bool bActivateNext = true ); |
|
void CloseAllDialogs( bool bActivateNext = true ); |
|
void CloseBaseDialogs( void ); |
|
|
|
void SetFooterButtons( CBaseDialog *pOwner, KeyValues *pData, int nButtonGap = -1 ); |
|
void ShowFooter( bool bShown ); |
|
void SetFooterButtonVisible( const char *pszText, bool bVisible ); |
|
|
|
uint GetGameType( void ) { return m_nGameType; } |
|
|
|
MESSAGE_FUNC_CHARPTR( LoadMap, "LoadMap", mapname ); |
|
private: |
|
void OnOpenWelcomeDialog(); |
|
void OnOpenPauseDialog(); |
|
void OnOpenRankingsDialog(); |
|
void OnOpenSystemLinkDialog(); |
|
void OnOpenPlayerMatchDialog(); |
|
void OnOpenRankedMatchDialog(); |
|
void OnOpenAchievementsDialog(); |
|
|
|
//============================================================================= |
|
// HPE_BEGIN: |
|
// [dwenger] Specific code for CS Achievements Display |
|
//============================================================================= |
|
|
|
// $TODO(HPE): Move this to a game-specific location |
|
void OnOpenCSAchievementsDialog(); |
|
|
|
//============================================================================= |
|
// HPE_END |
|
//============================================================================= |
|
|
|
void OnOpenLeaderboardDialog( const char *pResourceName ); |
|
void OnOpenSessionOptionsDialog( const char *pResourceName ); |
|
void OnOpenSessionLobbyDialog( const char *pResourceName ); |
|
void OnOpenSessionBrowserDialog( const char *pResourceName ); |
|
|
|
void LoadSessionProperties(); |
|
bool ValidateSigninAndStorage( bool bOnlineRequired, const char *pIssuingCommand ); |
|
void CenterDialog( vgui::PHandle dlg ); |
|
void PushDialog( vgui::DHANDLE< CBaseDialog > &hDialog ); |
|
void PopDialog( bool bActivateNext = true ); |
|
|
|
vgui::DHANDLE< CBaseDialog > m_hWelcomeDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hPauseDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hStatsDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hRankingsDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hLeaderboardDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hSystemLinkDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hPlayerMatchDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hRankedMatchDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hAchievementsDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hSessionOptionsDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hSessionLobbyDialog; |
|
vgui::DHANDLE< CBaseDialog > m_hSessionBrowserDialog; |
|
|
|
CUtlStack< vgui::DHANDLE< CBaseDialog > > m_DialogStack; |
|
|
|
uint m_nSessionType; |
|
uint m_nGameType; |
|
bool m_bPlayingOnline; |
|
char m_szMapLoadName[MAX_MAP_NAME]; |
|
KeyValues *m_pSessionKeys; |
|
|
|
CFooterPanel *m_pFooter; |
|
}; |
|
|
|
|
|
#endif // MATCHMAKINGBASEPANEL_H
|
|
|