blob: 9b5fca0233102ae9d72e7a4683147d349a594b45 (
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
132
133
134
135
136
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================
#ifndef TF_TEAMMENU_H
#define TF_TEAMMENU_H
#ifdef _WIN32
#pragma once
#endif
#include "tf_controls.h"
#include "tf_imagepanel.h"
#include <teammenu.h>
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
class CTFTeamButton : public CExButton
{
private:
DECLARE_CLASS_SIMPLE( CTFTeamButton, CExButton );
public:
CTFTeamButton( vgui::Panel *parent, const char *panelName );
void ApplySettings( KeyValues *inResourceData );
void ApplySchemeSettings( vgui::IScheme *pScheme );
void OnCursorExited();
void OnCursorEntered();
void OnTick( void );
void SetDefaultAnimation( const char *pszName );
private:
bool IsTeamFull();
void SendAnimation( const char *pszAnimation );
void SetMouseEnteredState( bool state );
private:
char m_szModelPanel[64]; // the panel we'll send messages to
int m_iTeam; // the team we're associated with (if any)
float m_flHoverTimeToWait; // length of time to wait before reporting a "hover" message (-1 = no hover)
float m_flHoverTime; // when should a "hover" message be sent?
bool m_bMouseEntered; // used to track when the mouse is over a button
bool m_bTeamDisabled; // used to keep track of whether our team is a valid team for selection
};
//-----------------------------------------------------------------------------
// Purpose: Displays the team menu
//-----------------------------------------------------------------------------
class CTFTeamMenu : public CTeamMenu, public CGameEventListener
{
private:
DECLARE_CLASS_SIMPLE( CTFTeamMenu, CTeamMenu );
public:
CTFTeamMenu( IViewPort *pViewPort );
~CTFTeamMenu();
void Update();
void ShowPanel( bool bShow );
#ifdef _X360
CON_COMMAND_MEMBER_F( CTFTeamMenu, "join_team", Join_Team, "Send a jointeam command", 0 );
#endif
bool IsBlueTeamDisabled(){ return m_bBlueDisabled; }
bool IsRedTeamDisabled(){ return m_bRedDisabled; }
// IGameEventListener interface:
virtual void FireGameEvent( IGameEvent *event );
protected:
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
virtual void OnKeyCodePressed( vgui::KeyCode code );
// command callbacks
virtual void OnCommand( const char *command );
virtual void OnClose();
virtual void LoadMapPage( const char *mapName );
virtual void OnTick( void );
virtual void OnThink() OVERRIDE;
private:
void SetHighlanderTeamsFullPanels( bool bTeamsFull, bool bForce = false );
void ActivateSelectIconHint( int focus_group_number );
private:
CTFTeamButton *m_pBlueTeamButton;
CTFTeamButton *m_pRedTeamButton;
CTFTeamButton *m_pAutoTeamButton;
CTFTeamButton *m_pSpecTeamButton;
CExLabel *m_pSpecLabel;
#ifdef _X360
CTFFooter *m_pFooter;
#else
CExButton *m_pCancelButton;
CExLabel *m_pHighlanderLabel;
CExLabel *m_pHighlanderLabelShadow;
CExLabel *m_pTeamsFullLabel;
CExLabel *m_pTeamsFullLabelShadow;
CTFImagePanel *m_pTeamsFullArrow;
CSCHintIcon *m_pCancelHintIcon;
CSCHintIcon *m_pJoinBluHintIcon;
CSCHintIcon *m_pJoinRedHintIcon;
CSCHintIcon *m_pJoinAutoHintIcon;
CSCHintIcon *m_pJoinSpectatorsHintIcon;
#endif
bool m_bRedDisabled;
bool m_bBlueDisabled;
private:
enum { NUM_TEAMS = 3 };
ButtonCode_t m_iTeamMenuKey;
};
#endif // TF_TEAMMENU_H
|