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.
139 lines
4.3 KiB
139 lines
4.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
#ifndef TF_LOBBYPANEL_COMP_H |
|
#define TF_LOBBYPANEL_COMP_H |
|
|
|
#include "cbase.h" |
|
#include "game/client/iviewport.h" |
|
#include "tf_lobbypanel.h" |
|
#include "tf_leaderboardpanel.h" |
|
#include "local_steam_shared_object_listener.h" |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include <tier0/memdbgon.h> |
|
|
|
using namespace GCSDK; |
|
|
|
class CBaseLobbyPanel; |
|
|
|
namespace vgui |
|
{ |
|
class ScrollableEditablePanel; |
|
}; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CLadderLobbyLeaderboard : public CTFLeaderboardPanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CLadderLobbyLeaderboard, CTFLeaderboardPanel ); |
|
public: |
|
|
|
CLadderLobbyLeaderboard( Panel *pParent, const char *pszPanelName ); |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Create leaderboard panels |
|
//----------------------------------------------------------------------------- |
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE; |
|
virtual void PerformLayout() OVERRIDE; |
|
virtual void OnCommand( const char *command ) OVERRIDE; |
|
|
|
virtual bool GetLeaderboardData( CUtlVector< LeaderboardEntry_t* >& scores ); |
|
virtual bool UpdateLeaderboards(); |
|
|
|
void SetLeaderboard( const char *pszLeaderboardName, bool bGlobal ); |
|
|
|
const char *GetLeaderboardName() const { return m_pszLeaderboardName; } |
|
bool IsDataValid( void ) { return m_bIsDataValid; } |
|
|
|
private: |
|
const char *m_pszLeaderboardName; |
|
bool m_bGlobal; |
|
bool m_bIsDataValid; |
|
|
|
vgui::ScrollableEditablePanel *m_pScoreListScroller; |
|
EditablePanel *m_pScoreList; |
|
|
|
CTFTextToolTip *m_pToolTip; |
|
vgui::EditablePanel *m_pToolTipEmbeddedPanel; |
|
}; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CLobbyPanel_Comp : public CBaseLobbyPanel, public CLocalSteamSharedObjectListener |
|
{ |
|
DECLARE_CLASS_SIMPLE( CLobbyPanel_Comp, CBaseLobbyPanel ); |
|
|
|
public: |
|
CLobbyPanel_Comp( vgui::Panel *pParent, CBaseLobbyContainerFrame* pLobbyContainer ); |
|
virtual ~CLobbyPanel_Comp(); |
|
|
|
// |
|
// Panel overrides |
|
// |
|
virtual void PerformLayout() OVERRIDE; |
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE; |
|
virtual void OnCommand( const char *command ) OVERRIDE; |
|
|
|
virtual EMatchGroup GetMatchGroup( void ) const OVERRIDE; |
|
|
|
virtual void SOCreated( const CSteamID & steamIDOwner, const CSharedObject *pObject, ESOCacheEvent eEvent ) OVERRIDE; |
|
virtual void SOUpdated( const CSteamID & steamIDOwner, const CSharedObject *pObject, ESOCacheEvent eEvent ) OVERRIDE; |
|
|
|
virtual void OnThink() OVERRIDE; |
|
|
|
// |
|
// CGameEventListener overrides |
|
// |
|
virtual void FireGameEvent( IGameEvent *event ) OVERRIDE; |
|
|
|
private: |
|
virtual bool ShouldShowLateJoin() const OVERRIDE; |
|
virtual void ApplyChatUserSettings( const LobbyPlayerInfo &player,KeyValues *pKV ) const OVERRIDE; |
|
virtual const char* GetResFile() const OVERRIDE { return "Resource/UI/LobbyPanel_Comp.res"; } |
|
|
|
CPanelAnimationVarAliasType( int, m_iStatMedalWidth, "stat_medal_width", "14", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iMedalCountWidth, "stat_medal_count_width", "20", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iHasPassWidth, "has_pass_width", "12", "proportional_int" ); |
|
|
|
CUtlVector<vgui::Label *> m_vecSearchCriteriaLabels; |
|
|
|
// leaderboards |
|
CLadderLobbyLeaderboard *m_pCompetitiveModeLeaderboard; |
|
|
|
vgui::HFont m_fontMedalsCount; |
|
|
|
enum EMatchHistorySortMethods_t |
|
{ |
|
SORT_BY_RESULT = 0, |
|
SORT_BY_DATE, |
|
SORT_BY_MAP, |
|
SORT_BY_KDR, |
|
|
|
NUM_SORT_METHODS |
|
}; |
|
|
|
CScrollableList* m_pMatchHistoryScroller; |
|
EMatchHistorySortMethods_t m_eMatchSortMethod; |
|
bool m_bDescendingMatchHistorySort; |
|
|
|
float m_flCompetitiveRankProgress; |
|
float m_flCompetitiveRankPrevProgress; |
|
float m_flRefreshPlayerListTime; |
|
bool m_bCompetitiveRankChangePlayedSound; |
|
bool m_bMatchHistoryLoaded; |
|
|
|
void WriteGameSettingsControls() OVERRIDE; |
|
|
|
int GetMedalCountForStat( EMatchGroup unLadderType, RankStatType_t nStatType, int nMedalLevel ); |
|
|
|
|
|
void UpdateMatchDataForLocalPlayer(); |
|
bool m_bMatchDataForLocalPlayerDirty; |
|
}; |
|
|
|
#endif //TF_LOBBYPANEL_COMP_H
|
|
|