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
|