source-engine/game/client/dod/dod_hud_playerstatus_health.h
2022-04-16 12:05:19 +03:00

79 lines
2.3 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef DOD_HUD_PLAYERSTATUS_HEALTH_H
#define DOD_HUD_PLAYERSTATUS_HEALTH_H
#ifdef _WIN32
#pragma once
#endif
class C_DODPlayer;
//-----------------------------------------------------------------------------
// Purpose: Health playerclass image (with red transparency)
//-----------------------------------------------------------------------------
class CDoDHudHealthBar : public vgui::ImagePanel
{
DECLARE_CLASS_SIMPLE( CDoDHudHealthBar, vgui::ImagePanel );
public:
CDoDHudHealthBar( vgui::Panel *parent, const char *name );
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
virtual void OnThink();
virtual void Paint( void );
void SetHealthDelegatePlayer( C_DODPlayer *pPlayer );
C_DODPlayer *GetHealthDelegatePlayer( void );
private:
float m_flPercentage;
int m_iMaterialIndex;
Color m_clrHealthHigh;
Color m_clrHealthMed;
Color m_clrHealthLow;
Color m_clrBackground;
Color m_clrBorder;
EHANDLE m_hHealthDelegatePlayer;
CPanelAnimationVar( float, m_flFirstWarningLevel, "FirstWarning", "0.50" );
CPanelAnimationVar( float, m_flSecondWarningLevel, "SecondWarning", "0.25" );
};
//-----------------------------------------------------------------------------
// Purpose: Health panel
//-----------------------------------------------------------------------------
class CDoDHudHealth : public vgui::EditablePanel
{
DECLARE_CLASS_SIMPLE( CDoDHudHealth, vgui::EditablePanel );
public:
CDoDHudHealth( vgui::Panel *parent, const char *name );
virtual void OnThink();
virtual void OnScreenSizeChanged(int iOldWide, int iOldTall);
void SetHealthDelegatePlayer( C_DODPlayer *pPlayer );
C_DODPlayer *GetHealthDelegatePlayer( void );
private:
int m_nPrevClass; // used to store the player's class so we don't have to keep setting the image
int m_nPrevTeam;
CDoDHudHealthBar *m_pHealthBar;
vgui::ImagePanel *m_pClassImage; // draws the class image and the red "damage taken" part
vgui::ImagePanel *m_pClassImageBG; // draws the class image outline
EHANDLE m_hHealthDelegatePlayer;
};
#endif // DOD_HUD_PLAYERSTATUS_HEALTH_H