//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //============================================================================= #ifndef TF_HUD_MEDICCALLERS_H #define TF_HUD_MEDICCALLERS_H #ifdef _WIN32 #pragma once #endif #include #include #include #include "hud.h" #include "hudelement.h" #include "tf_imagepanel.h" #include "c_tf_player.h" //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class CTFMedicCallerPanel : public vgui::EditablePanel, public CGameEventListener { DECLARE_CLASS_SIMPLE( CTFMedicCallerPanel, vgui::EditablePanel ); public: CTFMedicCallerPanel( vgui::Panel *parent, const char *name ); ~CTFMedicCallerPanel( void ); virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); virtual void PerformLayout( void ); virtual void OnTick( void ); virtual void PaintBackground( void ); virtual void Paint( void ); virtual const char *GetControlSettingFile() const { return "resource/UI/MedicCallerPanel.res"; } void GetCallerPosition( const Vector &vecDelta, float flRadius, float *xpos, float *ypos, float *flRotation ); void SetEntity( C_BaseEntity *pEntity, float flDuration, Vector &vecOffset ); void SetMedicCallerType( MedicCallerType nType ); static void AddMedicCaller( C_BaseEntity *pEntity, float flDuration, Vector &vecOffset, MedicCallerType nType = CALLER_TYPE_NORMAL ); virtual void FireGameEvent( IGameEvent *event ); protected: C_BaseEntity *GetEntity() const { return m_hEntity; } private: IMaterial *m_pArrowMaterial; float m_flRemoveAt; Vector m_vecOffset; CHandle m_hEntity; int m_iDrawArrow; bool m_bOnscreen; bool m_bBurning; bool m_bBleeding; float m_flPanelScale; int m_nCallerType; }; #endif // TF_HUD_MEDICCALLERS_H