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.
165 lines
5.0 KiB
165 lines
5.0 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//============================================================================= |
|
|
|
|
|
#ifndef TF_HUD_TOURNAMENT_H |
|
#define TF_HUD_TOURNAMENT_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "tf_clientscoreboard.h" |
|
#include "tf_playerpanel.h" |
|
#include "basemodelpanel.h" |
|
|
|
class CTFHudTimeStatus; |
|
|
|
class CHudTournament : public CHudElement, public EditablePanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CHudTournament, EditablePanel ); |
|
|
|
public: |
|
CHudTournament( const char *pElementName ); |
|
~CHudTournament(); |
|
|
|
virtual void Init( void ); |
|
virtual void OnTick( void ); |
|
virtual void LevelInit( void ); |
|
virtual void ApplySettings( KeyValues *inResourceData ); |
|
virtual void ApplySchemeSettings( IScheme *scheme ); |
|
virtual void SetVisible( bool state ); |
|
virtual void PerformLayout( void ); |
|
|
|
virtual void FireGameEvent( IGameEvent * event ); |
|
|
|
void PreparePanel( void ); |
|
void PlaySounds( int nTime ); |
|
|
|
virtual bool ShouldDraw( void ) { return m_bShouldBeVisible; } |
|
|
|
private: |
|
void RecalculatePlayerPanels( void ); |
|
void UpdatePlayerPanels( void ); |
|
void SetPlayerPanelsVisible( bool bVisible ); |
|
CTFPlayerPanel *GetOrAddPanel( int iPanelIndex ); |
|
|
|
void InitPlayerList( SectionedListPanel *pPlayerList, int nTeam ); |
|
static bool TFPlayerSortFunc( vgui::SectionedListPanel *list, int itemID1, int itemID2 ); |
|
void UpdatePlayerList(); |
|
void UpdatePlayerAvatar( int playerIndex, KeyValues *kv ); |
|
|
|
void UpdateTeamInfo(); |
|
|
|
private: |
|
Label *m_pTournamentLabel; |
|
Label *m_pReasonLabel; |
|
bool m_bShouldBeVisible; |
|
|
|
float m_flNextUpdate; |
|
|
|
bool m_bTeamReady[MAX_TEAMS]; |
|
|
|
bool m_bReadyStatusMode; |
|
bool m_bCompetitiveMode; |
|
bool m_bReadyTextBlinking; |
|
bool m_bCountDownVisible; |
|
|
|
CUtlVector<CTFPlayerPanel*> m_PlayerPanels; |
|
KeyValues *m_pPlayerPanelKVs; |
|
bool m_bReapplyPlayerPanelKVs; |
|
|
|
vgui::DHANDLE< CTFClientScoreBoardDialog > m_pScoreboard; |
|
|
|
vgui::ScalableImagePanel *m_pCountdownBG; |
|
CExLabel *m_pCountdownLabel; |
|
CExLabel *m_pCountdownLabelShadow; |
|
vgui::ImagePanel *m_pModeImage; |
|
|
|
vgui::ScalableImagePanel *m_pHudTournamentBG; |
|
CExLabel *m_pTournamentConditionLabel; |
|
|
|
CPanelAnimationVarAliasType( int, m_iTeam1PlayerBaseOffsetX, "team1_player_base_offset_x", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam1PlayerBaseX, "team1_player_base_x", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam1PlayerBaseY, "team1_player_base_y", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam2PlayerBaseX, "team2_player_base_x", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam2PlayerBaseOffsetX, "team2_player_base_offset_x", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam2PlayerBaseY, "team2_player_base_y", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam1PlayerDeltaX, "team1_player_delta_x", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam1PlayerDeltaY, "team1_player_delta_y", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam2PlayerDeltaX, "team2_player_delta_x", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeam2PlayerDeltaY, "team2_player_delta_y", "0", "proportional_int" ); |
|
CPanelAnimationVarAliasType( int, m_iTeamsPlayerDeltaXComp, "teams_player_delta_x_comp", "0", "proportional_int" ); |
|
}; |
|
|
|
class CHudTournamentSetup : public CHudElement, public EditablePanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CHudTournamentSetup, EditablePanel ); |
|
|
|
public: |
|
CHudTournamentSetup( const char *pElementName ); |
|
|
|
virtual void Init( void ); |
|
virtual void OnTick( void ); |
|
virtual void LevelInit( void ); |
|
virtual void ApplySchemeSettings( IScheme *scheme ); |
|
virtual bool ShouldDraw( void ); |
|
|
|
virtual void FireGameEvent( IGameEvent * event ); |
|
void EnableInput( void ); |
|
void DisableInput( void ); |
|
bool ToggleState( ButtonCode_t code ); |
|
virtual void OnCommand( const char *command ); |
|
|
|
virtual void OnKeyCodeTyped(vgui::KeyCode code) |
|
{ |
|
if ( code == KEY_ESCAPE || code == KEY_F4 || code == KEY_ENTER ) |
|
{ |
|
ToggleState( code ); |
|
} |
|
else |
|
{ |
|
BaseClass::OnKeyCodeTyped( code ); |
|
} |
|
} |
|
|
|
private: |
|
TextEntry *m_pNameEntry; |
|
CTFImagePanel *m_pEntryBG; |
|
CExButton *m_pReadyButton; |
|
CExButton *m_pNotReadyButton; |
|
vgui::Label *m_pTeamNameLabel; |
|
|
|
|
|
float m_flNextThink; |
|
}; |
|
|
|
class CHudStopWatch : public CHudElement, public EditablePanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CHudStopWatch, EditablePanel ); |
|
|
|
public: |
|
CHudStopWatch( const char *pElementName ); |
|
|
|
virtual void LevelInit( void ); |
|
virtual void ApplySchemeSettings( IScheme *pScheme ); |
|
virtual void OnTick( void ); |
|
virtual bool ShouldDraw( void ); |
|
virtual void FireGameEvent( IGameEvent * event ); |
|
|
|
private: |
|
|
|
CTFHudTimeStatus *m_pTimePanel; |
|
CExLabel *m_pStopWatchLabel; |
|
CExLabel *m_pStopWatchScore; |
|
CExLabel *m_pStopWatchPointsLabel; |
|
ImagePanel *m_pStopWatchImage; |
|
CExLabel *m_pStopWatchDescriptionLabel; |
|
Panel *m_pStopWatchDescriptionBG; |
|
bool m_bShouldBeVisible; |
|
}; |
|
|
|
#endif // TF_HUD_TOURNAMENT_H
|
|
|