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.
85 lines
2.2 KiB
85 lines
2.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef SESSIONLOBBYDIALOG_H |
|
#define SESSIONLOBBYDIALOG_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "basedialog.h" |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Simple menu to choose a matchmaking session type |
|
//----------------------------------------------------------------------------- |
|
class CSessionLobbyDialog : public CBaseDialog |
|
{ |
|
DECLARE_CLASS_SIMPLE( CSessionLobbyDialog, CBaseDialog ); |
|
|
|
public: |
|
CSessionLobbyDialog( vgui::Panel *parent ); |
|
~CSessionLobbyDialog(); |
|
|
|
virtual void OnCommand( const char *pCommand ); |
|
virtual void OnKeyCodePressed( vgui::KeyCode code ); |
|
|
|
virtual void PerformLayout(); |
|
virtual void ApplySettings( KeyValues *inResourceData ); |
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); |
|
|
|
void SetDialogKeys( KeyValues *pKeys ); |
|
void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost ); |
|
void UpdateCountdown( int seconds ); |
|
|
|
private: |
|
void ActivateNextMenu(); |
|
void ActivatePreviousMenu(); |
|
void UpdatePlayerCountDisplay( int iTeam ); |
|
void SetLobbyReadyState( int nPlayersNeeded ); |
|
void PositionTeamInfos(); |
|
|
|
void SetTextFromKeyvalues( CPropertyLabel *pLabel ); |
|
|
|
void SetStartGame( bool bStartGame ); |
|
|
|
enum |
|
{ |
|
BLUE_TEAM_LOBBY, |
|
RED_TEAM_LOBBY, |
|
TOTAL_LOBBY_TEAMS, |
|
}; |
|
|
|
CDialogMenu m_Menus[TOTAL_LOBBY_TEAMS]; |
|
|
|
vgui::Panel *m_pLobbyStateBg; |
|
CPropertyLabel *m_pLobbyStateLabel; |
|
CPropertyLabel *m_pLobbyStateIcon; |
|
CPropertyLabel *m_pHostLabel; |
|
vgui::EditablePanel *m_pHostOptionsPanel; |
|
|
|
KeyValues *m_pDialogKeys; |
|
|
|
CScenarioInfoPanel *m_pScenarioInfo; |
|
CScenarioInfoPanel *m_pTeamInfos[TOTAL_LOBBY_TEAMS]; |
|
|
|
int m_nMinInfoHeight[TOTAL_LOBBY_TEAMS]; |
|
|
|
uint64 m_nHostId; |
|
bool m_bReady; |
|
bool m_bHostLobby; |
|
bool m_bCenterOnScreen; |
|
int m_iLocalTeam; |
|
int m_iActiveMenu; |
|
int m_nImageBorderWidth; |
|
int m_nTeamspacing; |
|
char m_szCommand[MAX_COMMAND_LEN]; |
|
|
|
bool m_bStartingGame; |
|
int m_nLastPlayersNeeded; |
|
}; |
|
|
|
|
|
#endif // SESSIONLOBBYDIALOG_H
|
|
|