//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: HUD Target ID element // // $NoKeywords: $ //============================================================================= #include "cbase.h" #include "c_tf_player.h" #include "c_playerresource.h" #include "c_tf_playerresource.h" #include "tf_classdata.h" #include "hud.h" #include "hudelement.h" #include "iclientmode.h" #include "tf_imagepanel.h" #include "item_model_panel.h" #include "tf_hud_playerstatus.h" #include "tf_spectatorgui.h" #include "vgui/ILocalize.h" #include "vgui/ISurface.h" #include "vgui/IInput.h" #include #include #include #include #include "vgui_controls/TextImage.h" #include "vgui_controls/Label.h" #include "vgui_controls/Button.h" #include "ienginevgui.h" #include "hud_chat.h" // memdbgon must be the last include file in a .cpp file!!! #include "tier0/memdbgon.h" using namespace vgui; //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class CDisguiseStatus : public CHudElement, public EditablePanel { DECLARE_CLASS_SIMPLE( CDisguiseStatus, EditablePanel ); public: CDisguiseStatus( const char *pElementName ); void Init( void ); virtual void ApplySchemeSettings( IScheme *scheme ); virtual void PerformLayout( void ); virtual void Paint( void ); void ShowAndUpdateStatus( void ); void HideStatus( void ); virtual bool ShouldDraw( void ); void CheckName( void ); void CheckWeapon( void ); void CheckHealth( void ); private: CPanelAnimationVar( HFont, m_hFont, "TextFont", "TargetID" ); CTFImagePanel *m_pBGPanel; CEmbeddedItemModelPanel *m_pModelPanel; CTFSpectatorGUIHealth *m_pDisguiseHealth; Label *m_pDisguiseNameLabel; Label *m_pWeaponNameLabel; bool m_bDisguised; CTFWeaponBase *m_pDisguiseWeapon; int m_iDisguiseTeam; }; DECLARE_HUDELEMENT( CDisguiseStatus ); //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- CDisguiseStatus::CDisguiseStatus( const char *pElementName ) : CHudElement( pElementName ), BaseClass( NULL, "DisguiseStatus" ) { Panel *pParent = g_pClientMode->GetViewport(); SetParent( pParent ); SetHiddenBits( HIDEHUD_MISCSTATUS ); m_pModelPanel = NULL; m_pBGPanel = NULL; m_pDisguiseNameLabel = NULL; m_pWeaponNameLabel = NULL; m_pDisguiseHealth = new CTFSpectatorGUIHealth( this, "SpectatorGUIHealth" ); m_bDisguised = true; m_pDisguiseWeapon = NULL; m_iDisguiseTeam = TEAM_UNASSIGNED; } //----------------------------------------------------------------------------- // Purpose: Setup //----------------------------------------------------------------------------- void CDisguiseStatus::Init( void ) { HideStatus(); } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CDisguiseStatus::ApplySchemeSettings( vgui::IScheme *scheme ) { BaseClass::ApplySchemeSettings( scheme ); LoadControlSettings( "Resource/UI/DisguiseStatusPanel.res" ); m_pModelPanel = dynamic_cast( FindChildByName("itemmodelpanel") ); m_pBGPanel = dynamic_cast ( FindChildByName("DisguiseStatusBG") ); m_pDisguiseNameLabel = dynamic_cast