summaryrefslogtreecommitdiff
path: root/game/client/tf/tf_hud_robot_destruction_status.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/tf/tf_hud_robot_destruction_status.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/client/tf/tf_hud_robot_destruction_status.h')
-rw-r--r--game/client/tf/tf_hud_robot_destruction_status.h218
1 files changed, 218 insertions, 0 deletions
diff --git a/game/client/tf/tf_hud_robot_destruction_status.h b/game/client/tf/tf_hud_robot_destruction_status.h
new file mode 100644
index 0000000..db0ac26
--- /dev/null
+++ b/game/client/tf/tf_hud_robot_destruction_status.h
@@ -0,0 +1,218 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef TF_HUD_ROBOT_DESTRUCTION_STATUS_H
+#define TF_HUD_ROBOT_DESTRUCTION_STATUS_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tf_controls.h"
+#include "tf_imagepanel.h"
+#include "hud_controlpointicons.h"
+#include "GameEventListener.h"
+#include "tf_logic_robot_destruction.h"
+#include "tf_time_panel.h"
+#include "entity_capture_flag.h"
+
+class CTFHudRobotDestruction_StateImage : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CTFHudRobotDestruction_StateImage, vgui::EditablePanel );
+public:
+ CTFHudRobotDestruction_StateImage( Panel *parent, const char *name, const char *pszResFile );
+
+ virtual void ApplySchemeSettings( IScheme *pScheme ) OVERRIDE;
+ virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE;
+
+ void SetImageVisible( bool bVisible ) { m_pImage->SetVisible( bVisible ); }
+protected:
+ vgui::ImagePanel *m_pImage;
+ vgui::ImagePanel *m_pRobotImage;
+ const char *m_pszResFile;
+};
+
+//-----------------------------------------------------------------------------
+class CTFHudRobotDestruction_DeadImage : public CTFHudRobotDestruction_StateImage
+{
+ DECLARE_CLASS_SIMPLE( CTFHudRobotDestruction_DeadImage, CTFHudRobotDestruction_StateImage );
+public:
+ CTFHudRobotDestruction_DeadImage( Panel *parent, const char *name, const char *pszResFile );
+
+ void SetProgress( float flProgress );
+private:
+ CTFProgressBar *m_pRespawnProgressBar;
+};
+
+//-----------------------------------------------------------------------------
+class CTFHudRobotDestruction_ActiveImage : public CTFHudRobotDestruction_StateImage
+{
+ DECLARE_CLASS_SIMPLE( CTFHudRobotDestruction_ActiveImage, CTFHudRobotDestruction_StateImage );
+public:
+ CTFHudRobotDestruction_ActiveImage( Panel *parent, const char *name, const char *pszResFile );
+
+ virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE;
+};
+
+//-----------------------------------------------------------------------------
+class CTFHudRobotDestruction_RobotIndicator : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CTFHudRobotDestruction_RobotIndicator, vgui::EditablePanel );
+
+public:
+
+ CTFHudRobotDestruction_RobotIndicator( vgui::Panel *pParent, const char *pszName, CTFRobotDestruction_RobotGroup *pGroup );
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
+ virtual void PerformLayout() OVERRIDE;
+ virtual void ApplySettings( KeyValues *inResourceData );
+ virtual void OnTick() OVERRIDE;
+
+ void DoUnderAttackBlink();
+ int GetGroupNumber() const;
+ int GetTeamNumber() const;
+ void UpdateState();
+ eRobotUIState GetState() const { return m_eState; }
+ const CTFRobotDestruction_RobotGroup *GetGroup() const { return m_hGroup.Get(); }
+ void SetNextRobotIndicator( CTFHudRobotDestruction_RobotIndicator * pNext ) { m_pNextRobotIndicator = pNext; }
+ void SetPrevRobotIndicator( CTFHudRobotDestruction_RobotIndicator * pPrev ) { m_pPrevRobotIndicator = pPrev; }
+private:
+
+ CTFHudRobotDestruction_RobotIndicator *m_pPrevRobotIndicator;
+ CTFHudRobotDestruction_RobotIndicator *m_pNextRobotIndicator;
+ CHandle< CTFRobotDestruction_RobotGroup > m_hGroup;
+ vgui::EditablePanel *m_pRobotStateContainer;
+ CTFHudRobotDestruction_DeadImage *m_pDeadPanel;
+ CTFHudRobotDestruction_ActiveImage *m_pActivePanel;
+ CTFHudRobotDestruction_StateImage *m_pShieldedPanel;
+
+ float m_flHealthPercentage;
+ eRobotUIState m_eState;
+
+ CControlPointIconSwoop * m_pSwoop;
+};
+
+class CTFHUDRobotDestruction : public vgui::EditablePanel, public CGameEventListener
+{
+ DECLARE_CLASS_SIMPLE( CTFHUDRobotDestruction, vgui::EditablePanel );
+
+public:
+ typedef CUtlVector< CTFHudRobotDestruction_RobotIndicator* > RobotVector_t;
+
+ CTFHUDRobotDestruction( vgui::Panel *parent, const char *name );
+ ~CTFHUDRobotDestruction();
+
+ virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE;
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
+ virtual void PerformLayout() OVERRIDE;
+ virtual bool IsVisible( void ) OVERRIDE;
+ virtual void Reset();
+ virtual void OnTick() OVERRIDE;
+ virtual void PaintBackground() OVERRIDE;
+ virtual void Paint() OVERRIDE;
+
+ virtual void FireGameEvent( IGameEvent *pEvent ) OVERRIDE;
+
+
+ void UpdateRobotElements();
+private:
+ void PaintPDPlayerScore( const CTFPlayer* pPlayer );
+
+ void UpdateStolenPoints( int nTeam, EditablePanel* pContainer );
+ void UpdateCarriedFlagStatus( C_BasePlayer *pNewOwner, C_BaseEntity *pFlag );
+ void UpdateStolenFlagStatus( int nTeam, C_BaseEntity *pFlag );
+ void PerformRobotLayout( RobotVector_t& vecRobots, int nTeam );
+ void SetPlayingToLabelVisible( bool bVisible );
+ void UpdateTeamRobotCounts();
+
+ int m_nStealLeftEdge;
+ int m_nStealRightEdge;
+ KeyValues *m_pRobotIndicatorKVs;
+ CExLabel *m_pPlayingTo;
+ vgui::Panel *m_pPlayingToBG;
+ RobotVector_t m_vecRedRobots;
+ RobotVector_t m_vecBlueRobots;
+ EditablePanel *m_pCarriedContainer;
+ vgui::ImagePanel *m_pCarriedImage;
+ EditablePanel *m_pScoreContainer;
+ EditablePanel *m_pProgressBarsContainer;
+ EditablePanel *m_pBlueStolenContainer;
+ EditablePanel *m_pBlueDroppedPanel;
+ EditablePanel *m_pRedStolenContainer;
+ EditablePanel *m_pRedDroppedPanel;
+ EditablePanel *m_pBlueScoreValueContainer;
+ EditablePanel *m_pRedScoreValueContainer;
+ EditablePanel *m_pCountdownContainer; // used in the player destruction .res file
+ CTFImagePanel *m_pTeamLeaderImage;
+ bool m_bPlayingRD;
+
+ class CProgressPanel : public ImagePanel, public CGameEventListener
+ {
+ DECLARE_CLASS_SIMPLE( CProgressPanel, ImagePanel );
+ public:
+
+ CProgressPanel( vgui::Panel *parent, const char *name );
+
+ virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE;
+ virtual void PaintBackground() OVERRIDE;
+ virtual void OnTick() OVERRIDE;
+ virtual void FireGameEvent( IGameEvent * pEvent ) OVERRIDE;
+
+ void SetProgress( float flProgress, bool bInstant = false );
+ void Blink();
+ void SetApproachSpeed( float flApproachSpeed ) { m_flApproachSpeed = flApproachSpeed; }
+ void SetColor( const Color& c ) { m_StandardColor = c; }
+ private:
+ void CaptureBounds();
+ void CalculateSize();
+
+ float m_flWidth;
+ float m_flXpos;
+ int m_nXOrg;
+ int m_nYOrg;
+ int m_nWideOrg;
+ int m_nTallOrg;
+ float m_flLastScoreTime;
+ float m_flCurrentProgress;
+ float m_flEndProgress;
+ float m_flLastTick;
+
+ CPanelAnimationVarAliasType( int, m_nLeftOffset, "left_offset", "25", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_nRightOffset, "right_offset", "25", "proportional_int" );
+ CPanelAnimationVar( Color, m_StandardColor, "standard_color", "255 255 255 255" );
+ CPanelAnimationVar( Color, m_BrightColor, "bright_color", "255 255 255 255" );
+ CPanelAnimationVar( bool, m_bLeftToRight, "left_to_right", "1" );
+ CPanelAnimationVar( float, m_flApproachSpeed, "approach_speed", "1.f" );
+ CPanelAnimationVar( float, m_flBlinkThreshold, "blink_threshold", "2.f" );
+ CPanelAnimationVar( float, m_flBlinkRate, "blink_rate", "3.f" );
+ };
+
+ CProgressPanel *m_pCarriedFlagProgressBar;
+ EditablePanel *m_pRedVictoryPanel;
+ CProgressPanel *m_pRedProgressBar;
+ CProgressPanel *m_pRedProgressBarEscrow;
+ EditablePanel *m_pBlueVictoryPanel;
+ CProgressPanel *m_pBlueProgressBar;
+ CProgressPanel *m_pBlueProgressBarEscrow;
+ CHandle< CCaptureFlag > m_hRedFlag;
+ CHandle< CCaptureFlag > m_hBlueFlag;
+
+ CPanelAnimationVarAliasType( int, m_nStealLeftEdgeOffset, "left_steal_edge_offset", "25", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_nStealRightEdgeOffset, "right_steal_edge_offset", "100", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iRobotXOffset, "robot_x_offset", "6", "proportional_int");
+ CPanelAnimationVarAliasType( int, m_iRobotYOffset, "robot_y_offset", "25", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iRobotXStep, "robot_x_step", "5", "proportional_int");
+ CPanelAnimationVarAliasType( int, m_iRobotYStep, "robot_y_step", "0", "proportional_int");
+
+ CPanelAnimationVar( Color, m_ColorBlue, "color_blue", "0 0 255 255" );
+ CPanelAnimationVar( Color, m_ColorRed, "color_red", "255 0 0 255" );
+
+ CPanelAnimationVar( vgui::HFont, m_hPDPlayerScoreFont, "player_name_font", "HudFontSmallBold" );
+ CPanelAnimationVar( Color, m_TextColor, "text_color", "255 255 255 255" );
+};
+
+#endif // TF_HUD_ROBOT_DESTRUCTION_STATUS_H
+