summaryrefslogtreecommitdiff
path: root/game/client/dod/dod_hud_winpanel.h
blob: 5cdd3cca9ed6bb483ec67e3d19692afcc5c8bd9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

#ifndef DODWINPANEL_H
#define DODWINPANEL_H
#ifdef _WIN32
#pragma once
#endif

#include <vgui_controls/EditablePanel.h>
#include <game/client/iviewport.h>
#include <vgui/IScheme.h>
#include "hud.h"
#include "hudelement.h"

#include "dod_shareddefs.h"

using namespace vgui;

class CDODWinPanel : public EditablePanel, public CHudElement
{
private:
	DECLARE_CLASS_SIMPLE( CDODWinPanel, EditablePanel );

public:
	CDODWinPanel( const char *pElementName, int iTeam );

	virtual void Reset();
	virtual void Init();
	virtual void VidInit();
	virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
	virtual void FireGameEvent( IGameEvent * event );

	void Show();
	void Hide();

	virtual bool ShouldDraw( void );
	virtual void Paint( void );

	void SetupAvatar( const char *pSide, int pos, int iPlayerIndex );

protected:
	void SetFinalCaptureLabel( const char *szCappers, bool bAvatar );
	void DrawText( char *text, int x, int y, Color clrText );

	CHudTexture *GetIconForCategory( int category );

	CHudTexture *m_pIcon;

	CHudTexture *m_pIconCap;
	CHudTexture *m_pIconDefended;
	CHudTexture *m_pIconBomb;
	CHudTexture *m_pIconKill;

	vgui::Label *m_pLastCapperHeader;
	vgui::Label *m_pLastBomberHeader;

	vgui::Label *m_pLastCapperLabel;		// list of names of the final cappers
	vgui::Label *m_pLastCapperLabel_Avatar;

	vgui::Label *m_pTimerStatusLabel;		// shows time remaining or elapsed at round end

	int m_iLeftCategory;
	vgui::Label *m_pLeftCategoryHeader;
	vgui::Label *m_pLeftCategoryLabels[3];
	int m_iLeftCategoryScores[3];

	int m_iRightCategory;
	vgui::Label *m_pRightCategoryHeader;
	vgui::Label *m_pRightCategoryLabels[3];
	int m_iRightCategoryScores[3];

	bool m_bShowTimerDefend;
	bool m_bShowTimerAttack;
	int m_iTimerTime;

	int m_iFinalEventType;



private:
	CPanelAnimationVarAliasType( int, m_iIconY, "icon_ypos", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconX_left, "icon_xpos_left", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconX_right, "icon_xpos_right", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconW, "icon_w", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconH, "icon_h", "0", "proportional_int" );

	CPanelAnimationVarAliasType( int, m_iIconSize, "icon_stat_size", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconLeftX, "icon_left_stat_x", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconLeftY1, "icon_left_stat_y1", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconLeftY2, "icon_left_stat_y2", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconLeftY3, "icon_left_stat_y3", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconRightX, "icon_right_stat_x", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconRightY1, "icon_right_stat_y1", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconRightY2, "icon_right_stat_y2", "0", "proportional_int" );
	CPanelAnimationVarAliasType( int, m_iIconRightY3, "icon_right_stat_y3", "0", "proportional_int" );

	CPanelAnimationVar( vgui::HFont, m_hNumberFont, "NumberFont", "HudSelectionNumbers" );

	int m_iTeam;
};

class CDODWinPanel_Allies : public CDODWinPanel
{
private:
	DECLARE_CLASS_SIMPLE( CDODWinPanel_Allies, CDODWinPanel );

public:
	CDODWinPanel_Allies( const char *pElementName );

	virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
	virtual void OnScreenSizeChanged( int iOldWide, int iOldTall );
};

class CDODWinPanel_Axis : public CDODWinPanel
{
private:
	DECLARE_CLASS_SIMPLE( CDODWinPanel_Axis, CDODWinPanel );

public:
	CDODWinPanel_Axis( const char *pElementName );

	virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
	virtual void OnScreenSizeChanged( int iOldWide, int iOldTall );
};

#endif //DODWINPANEL_H