summaryrefslogtreecommitdiff
path: root/game/client/tf/vgui/tf_clientscoreboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/tf/vgui/tf_clientscoreboard.h')
-rw-r--r--game/client/tf/vgui/tf_clientscoreboard.h183
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