diff options
Diffstat (limited to 'game/client/tf/vgui/tf_clientscoreboard.h')
| -rw-r--r-- | game/client/tf/vgui/tf_clientscoreboard.h | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/game/client/tf/vgui/tf_clientscoreboard.h b/game/client/tf/vgui/tf_clientscoreboard.h new file mode 100644 index 0000000..c297035 --- /dev/null +++ b/game/client/tf/vgui/tf_clientscoreboard.h @@ -0,0 +1,183 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef TF_SCOREBOARD_H +#define TF_SCOREBOARD_H +#ifdef _WIN32 +#pragma once +#endif + +#include "hud.h" +#include "hudelement.h" +#include "tf_hud_playerstatus.h" +#include "clientscoreboarddialog.h" +#include "tf_hud_mann_vs_machine_scoreboard.h" + +class CAvatarImagePanel; +class CTFBadgePanel; +//class CTFStatsGraph; + +//----------------------------------------------------------------------------- +// Purpose: displays the scoreboard +//----------------------------------------------------------------------------- + +class CTFClientScoreBoardDialog : public CClientScoreBoardDialog +{ +private: + DECLARE_CLASS_SIMPLE( CTFClientScoreBoardDialog, CClientScoreBoardDialog ); + +public: + CTFClientScoreBoardDialog( IViewPort *pViewPort ); + virtual ~CTFClientScoreBoardDialog(); + + virtual void Reset() OVERRIDE; + virtual void Update() OVERRIDE; + virtual void ShowPanel( bool bShow ) OVERRIDE; + virtual void OnCommand( const char *command ) OVERRIDE; + + int HudElementKeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding ); + + struct duel_panel_t + { + vgui::EditablePanel *m_pPanel; + CAvatarImagePanel *m_pAvatar; + CExLabel *m_pPlayerNameLabel; + }; + + MESSAGE_FUNC_PTR( OnItemSelected, "ItemSelected", panel ); + MESSAGE_FUNC_PTR( OnItemContextMenu, "ItemContextMenu", panel ); + void OnScoreBoardMouseRightRelease( void ); + + MESSAGE_FUNC_PARAMS( OnReportPlayer, "ReportPlayer", pData ); + +protected: + virtual void PerformLayout(); + virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); + + virtual void PostApplySchemeSettings( vgui::IScheme *pScheme ) {}; + + vgui::SectionedListPanel *GetPlayerListRed( void ){ return m_pPlayerListRed; } + vgui::SectionedListPanel *GetPlayerListBlue( void ){ return m_pPlayerListBlue; } + +private: + void InitPlayerList( vgui::SectionedListPanel *pPlayerList ); + void SetPlayerListImages( vgui::SectionedListPanel *pPlayerList ); + void UpdateTeamInfo(); + void UpdatePlayerList(); + void UpdateSpectatorList(); + void UpdatePlayerDetails(); + void UpdateServerTimeLeft(); + void UpdateArenaWaitingToPlayList( void ); + void ClearPlayerDetails(); + bool ShouldShowAsSpectator( int iPlayerIndex ); + bool ShouldShowAsArenaWaitingToPlay( int iPlayerIndex ); + void GetCameraUnderlayBounds( int *pX, int *pY, int *pWide, int *pTall ); + bool UseMouseMode( void ); + void InitializeInputScheme( void ); + + void AdjustForVisibleScrollbar( void ); + void UpdateBadgePanels( CUtlVector<CTFBadgePanel*> &pBadgePanels, vgui::SectionedListPanel *pPlayerList ); + + virtual void FireGameEvent( IGameEvent *event ); + + static bool TFPlayerSortFunc( vgui::SectionedListPanel *list, int itemID1, int itemID2 ); + + vgui::SectionedListPanel *GetSelectedPlayerList( void ); + + void UpdatePlayerModel(); + + vgui::SectionedListPanel *m_pPlayerListBlue; + vgui::SectionedListPanel *m_pPlayerListRed; + CExLabel *m_pLabelPlayerName; + CExLabel *m_pLabelDuelOpponentPlayerName; + vgui::ImagePanel *m_pImagePanelHorizLine; + CTFClassImage *m_pClassImage; + vgui::EditablePanel *m_pLocalPlayerStatsPanel; + vgui::EditablePanel *m_pLocalPlayerDuelStatsPanel; + duel_panel_t m_duelPanelLocalPlayer; + duel_panel_t m_duelPanelOpponent; + vgui::Menu *m_pRightClickMenu; + + CExLabel *m_pKillsLabel; + CExLabel *m_pDeathsLabel; + CExLabel *m_pAssistLabel; + CExLabel *m_pDestructionLabel; + CExLabel *m_pCapturesLabel; + CExLabel *m_pDefensesLabel; + CExLabel *m_pDominationsLabel; + CExLabel *m_pRevengeLabel; + CExLabel *m_pHealingLabel; + CExLabel *m_pInvulnsLabel; + CExLabel *m_pTeleportsLabel; + CExLabel *m_pHeadshotsLabel; + CExLabel *m_pBackstabsLabel; + CExLabel *m_pBonusLabel; + CExLabel *m_pSupportLabel; + CExLabel *m_pDamageLabel; + + CExLabel *m_pServerTimeLeftValue; + vgui::HFont m_pFontTimeLeftNumbers; + vgui::HFont m_pFontTimeLeftString; + + CTFHudMannVsMachineScoreboard *m_pMvMScoreboard; + + int m_iImageDominated; + int m_iImageDominatedDead; + int m_iImageNemesis; + int m_iImageNemesisDead; + int m_iImageStreak; + int m_iImageStreakDead; + + int m_iImageDom[SCOREBOARD_DOMINATION_ICONS]; + int m_iImageDomDead[SCOREBOARD_DOMINATION_ICONS]; + int m_iImageClass[SCOREBOARD_CLASS_ICONS]; + int m_iImageClassAlt[SCOREBOARD_CLASS_ICONS]; + + int m_iImagePing[SCOREBOARD_PING_ICONS]; + int m_iImagePingDead[SCOREBOARD_PING_ICONS]; + + int m_iTextureCamera; + + bool m_bIsPVEMode; +// bool m_bDisplayLevel; + bool m_bMouseActivated; + vgui::HFont m_hScoreFontDefault; + vgui::HFont m_hScoreFontSmallest; + + CPanelAnimationVarAliasType( int, m_iSpacerWidth, "spacer", "5", "proportional_int" ); + CPanelAnimationVarAliasType( int, m_iNemesisWidth, "nemesis_width", "20", "proportional_int" ); + CPanelAnimationVarAliasType( int, m_iMedalWidth, "medal_width", "15", "proportional_int" ); + CPanelAnimationVarAliasType( int, m_iKillstreakWidth, "killstreak_width", "20", "proportional_int" ); + CPanelAnimationVarAliasType( int, m_iKillstreakImageWidth, "killstreak_image_width", "20", "proportional_int" ); + + CTFPlayerModelPanel *m_pPlayerModelPanel; + int m_nPlayerModelPanelIndex; + + bool m_bRedScrollBarVisible; + bool m_bBlueScrollBarVisible; + int m_nExtraSpace; + + CExLabel *m_pRedTeamName; + CExLabel *m_pBlueTeamName; + + CAvatarImagePanel *m_pRedLeaderAvatarImage; + EditablePanel *m_pRedLeaderAvatarBG; + vgui::ImagePanel *m_pRedTeamImage; + CAvatarImagePanel *m_pBlueLeaderAvatarImage; + EditablePanel *m_pBlueLeaderAvatarBG; + vgui::ImagePanel *m_pBlueTeamImage; + + CUtlVector< CTFBadgePanel* > m_pBlueBadgePanels; + CUtlVector< CTFBadgePanel* > m_pRedBadgePanels; + + CHandle< C_TFPlayer > m_hSelectedPlayer; + bool m_bUsePlayerModel; +}; + +const wchar_t *GetPointsString( int iPoints ); + +#endif // TF_SCOREBOARD_H |