2025-06-04 03:22:50 +02:00

70 lines
1.8 KiB
C++

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: Displays HUD elements to indicate damage taken
//
//=====================================================================================//
#ifndef SFHUDDAMAGEINDICATOR_H_
#define SFHUDDAMAGEINDICATOR_H_
#include "hud.h"
#include "hud_element_helper.h"
#include "scaleformui/scaleformui.h"
#include "sfhudflashinterface.h"
class SFHudDamageIndicator : public SFHudFlashInterface
{
enum DamageDirection
{
SFDD_DamageUp = 0,
SFDD_DamageDown,
SFDD_DamageLeft,
SFDD_DamageRight,
SFDD_DamageTotal, // also means turn on damage from all directions
SFDD_DamageFirst = SFDD_DamageUp
};
public:
explicit SFHudDamageIndicator( const char *value );
virtual ~SFHudDamageIndicator();
// These overload the CHudElement class
virtual void ProcessInput( void );
virtual void LevelInit( void );
virtual void LevelShutdown( void );
virtual bool ShouldDraw( void );
virtual void SetActive( bool bActive );
virtual void Reset( void );
// these overload the ScaleformFlashInterfaceMixin class
virtual void FlashReady( void );
virtual bool PreUnloadFlash( void );
// Handler for our message
bool MsgFunc_Damage( const CCSUsrMsg_Damage &msg );
CUserMessageBinder m_UMCMsgDamage;
protected:
void IndicateDamage( DamageDirection dmgDir, float newPercentage );
void HideAll( void );
private:
void CalcDamageDirection( const Vector &vecFrom, C_BasePlayer *pVictimPlayer );
protected:
float m_lastFrameTime;
// Parameters copied from cs_hud_damageindicator:
float m_flAttackFront;
float m_flAttackRear;
float m_flAttackLeft;
float m_flAttackRight;
float m_flFadeCompleteTime; //don't draw past this time
};
#endif /* SFHUDINFOPANEL_H_ */