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.
125 lines
3.9 KiB
125 lines
3.9 KiB
|
|
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#include "cbase.h" |
|
#include "iclientmode.h" |
|
#include "hud.h" |
|
#include "hudelement.h" |
|
#include <vgui/IScheme.h> |
|
#include <vgui_controls/EditablePanel.h> |
|
#include <vgui_controls/Label.h> |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "tier0/memdbgon.h" |
|
|
|
using namespace vgui; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CTFWaitingForPlayersPanel : public EditablePanel, public CHudElement |
|
{ |
|
private: |
|
DECLARE_CLASS_SIMPLE( CTFWaitingForPlayersPanel, EditablePanel ); |
|
|
|
public: |
|
CTFWaitingForPlayersPanel( const char *pElementName ); |
|
|
|
virtual void LevelInit(); |
|
virtual void Init(); |
|
virtual void FireGameEvent( IGameEvent * event ); |
|
virtual void ApplySchemeSettings( IScheme *pScheme ); |
|
|
|
virtual bool ShouldDraw( void ); |
|
|
|
private: |
|
Label *m_pWaitingForPlayersLabel; |
|
Label *m_pWaitingForPlayersEndingLabel; |
|
}; |
|
|
|
DECLARE_HUDELEMENT_DEPTH( CTFWaitingForPlayersPanel, 1 ); |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Constructor |
|
//----------------------------------------------------------------------------- |
|
CTFWaitingForPlayersPanel::CTFWaitingForPlayersPanel( const char *pElementName ) |
|
: EditablePanel( NULL, "WaitingForPlayersPanel" ), CHudElement( pElementName ) |
|
{ |
|
Panel *pParent = g_pClientMode->GetViewport(); |
|
SetParent( pParent ); |
|
SetScheme( "ClientScheme" ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
void CTFWaitingForPlayersPanel::LevelInit() |
|
{ |
|
SetVisible( false ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
void CTFWaitingForPlayersPanel::Init() |
|
{ |
|
// listen for events |
|
ListenForGameEvent( "teamplay_waiting_begins" ); |
|
ListenForGameEvent( "teamplay_waiting_ends" ); |
|
ListenForGameEvent( "teamplay_waiting_abouttoend" ); |
|
|
|
SetVisible( false ); |
|
|
|
CHudElement::Init(); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
void CTFWaitingForPlayersPanel::ApplySchemeSettings( IScheme *pScheme ) |
|
{ |
|
BaseClass::ApplySchemeSettings( pScheme ); |
|
|
|
LoadControlSettings( "resource/UI/WaitingForPlayersPanel.res" ); |
|
|
|
m_pWaitingForPlayersLabel = dynamic_cast<Label *>(FindChildByName( "WaitingForPlayersLabel" )); |
|
m_pWaitingForPlayersEndingLabel = dynamic_cast<Label *>(FindChildByName( "WaitingForPlayersEndingLabel" )); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
void CTFWaitingForPlayersPanel::FireGameEvent( IGameEvent * event ) |
|
{ |
|
const char *pEventName = event->GetName(); |
|
|
|
if ( Q_strcmp( "teamplay_waiting_ends", pEventName ) == 0 ) |
|
{ |
|
SetVisible( false ); |
|
} |
|
else if ( Q_strcmp( "teamplay_waiting_begins", pEventName ) == 0 ) |
|
{ |
|
SetVisible( true ); |
|
m_pWaitingForPlayersLabel->SetVisible( true ); |
|
m_pWaitingForPlayersEndingLabel->SetVisible( false ); |
|
} |
|
else if ( Q_strcmp( "teamplay_waiting_abouttoend", pEventName ) == 0 ) |
|
{ |
|
SetVisible( true ); |
|
m_pWaitingForPlayersLabel->SetVisible( false ); |
|
m_pWaitingForPlayersEndingLabel->SetVisible( true ); |
|
} |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
bool CTFWaitingForPlayersPanel::ShouldDraw( void ) |
|
{ |
|
return ( IsVisible() ); |
|
}
|
|
|