hl2_src-leak-2017/src/game/client/tf/tf_hud_mediccallers.h

63 lines
1.9 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef TF_HUD_MEDICCALLERS_H
#define TF_HUD_MEDICCALLERS_H
#ifdef _WIN32
#pragma once
#endif
#include <vgui_controls/EditablePanel.h>
#include <game/client/iviewport.h>
#include <vgui/IScheme.h>
#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<C_BaseEntity> 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