source-engine/game/client/swarm/vgui/asw_hud_marine_portrait.h
2023-10-03 17:23:56 +03:00

94 lines
3.6 KiB
C++

#ifndef _INCLUDED_ASW_MARINE_PORTRAIT_H
#define _INCLUDED_ASW_MARINE_PORTRAIT_H
#ifdef _WIN32
#pragma once
#endif
#include "vgui_BasePanel.h"
#include <vgui_controls/Panel.h>
#include <vgui_controls/AnimationController.h>
namespace vgui
{
class Label;
class ImagePanel;
};
class C_ASW_Marine_Resource;
class CASWHudPortraits;
class CASW_HUD_Health_Cross;
class HUDVideoPanel;
extern ConVar asw_draw_hud;
// a particular marine portrait on the hud
class CASW_HUD_Marine_Portrait : public vgui::Panel
{
DECLARE_CLASS_SIMPLE( CASW_HUD_Marine_Portrait, vgui::Panel );
public:
CASW_HUD_Marine_Portrait(vgui::Panel *pParent, const char *szPanelName, CASWHudPortraits *pPortraitContainer );
virtual void OnThink();
virtual void Paint();
void PaintClassIcon();
void PaintPortrait();
void PaintAmmo();
void PaintMeds();
void PaintUsing(float fFraction);
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
virtual void PerformLayout();
void PositionMarinePanel();
void SetMarineResource(C_ASW_Marine_Resource *pMarineResource, int index, bool bLocalMarine, bool bForcePosition=false);
float GetUsingFraction();
void SetScale(float fScale);
HUDVideoPanel *m_pVideoFace;
vgui::Label *m_pMarineName;
vgui::Label *m_pMarineNameGlow;
vgui::Label *m_pMarineNumber;
vgui::ImagePanel *m_pBulletsIcon;
vgui::ImagePanel *m_pClipsIcon;
vgui::ImagePanel *m_pLeadershipAuraIcon;
vgui::ImagePanel *m_pFiringOverlay;
float m_fLastFiringFade;
vgui::ImagePanel *m_pInfestedOverlay;
vgui::Label *m_pReloadingOverlay;
vgui::Label *m_pLowAmmoOverlay;
vgui::Label *m_pLowAmmoOverlay2;
vgui::Label *m_pNoAmmoOverlay;
vgui::Label *m_pNoAmmoOverlay2;
CASW_HUD_Health_Cross *m_pHealthCross;
float m_fInfestedFade;
void SetFonts();
CHandle<C_ASW_Marine_Resource> m_hMarineResource;
bool m_bLocalMarine;
int m_iIndex;
bool m_bMedic;
float m_fLastHealth;
float m_fScale;
bool m_bLastWide, m_bLastFace, m_bLastInfested, m_bLastHealthCross; // were we a wide panel last time?
CPanelAnimationVar( vgui::HFont, m_hMarineNameFont, "MarineNameFont", "Default" );
CPanelAnimationVar( vgui::HFont, m_hMarineNameSmallFont, "MarineNameFontSmall", "DefaultMedium" );
CPanelAnimationVar( vgui::HFont, m_hMarineNameGlowFont, "MarineNameGlowFont", "DefaultBlur" );
CPanelAnimationVar( vgui::HFont, m_hMarineNameSmallGlowFont, "MarineNameGlowFont", "DefaultMediumBlur" );
CPanelAnimationVar( vgui::HFont, m_hMarineNumberFont, "MarineNumberFont", "Default" );
CPanelAnimationVarAliasType( int, m_nBlackBarTexture, "BlackBarTexture", "vgui/swarm/HUD/ASWHUDBlackBar", "textureid" );
CPanelAnimationVarAliasType( int, m_nHorizHealthBar, "HealthBarTexture", "vgui/swarm/HUD/HorizHealthBar", "textureid" );
CPanelAnimationVarAliasType( int, m_nVertAmmoBar, "VertAmmoBarTexture", "vgui/swarm/HUD/VertAmmoBar", "textureid" );
CPanelAnimationVarAliasType( int, m_nUsingTexture, "UsingTexture", "vgui/swarm/HUD/UsingOverlaySmall", "textureid" );
CPanelAnimationVarAliasType( int, m_nTinyClipIcon, "TinyClipTexture", "vgui/swarm/HUD/TinyClipIcon", "textureid" );
CPanelAnimationVarAliasType( int, m_nTinyClipIconHoriz, "TinyClipHorizTexture", "vgui/swarm/HUD/TinyClipIconHoriz", "textureid" );
CPanelAnimationVarAliasType( int, m_nWhiteTexture, "WhiteTexture", "vgui/white", "textureid" );
CPanelAnimationVarAliasType( int, m_nMedChargeTexture, "MedCharge", "vgui/swarm/HUD/MedCharge", "textureid" );
CPanelAnimationVarAliasType( int, m_nMedChargeHorizTexture, "MedChargeHoriz", "vgui/swarm/HUD/MedChargeHoriz", "textureid" );
vgui::DHANDLE< CASWHudPortraits > m_hPortraitContainer;
};
#endif // _INCLUDED_ASW_MARINE_PORTRAIT_H