aboutsummaryrefslogtreecommitdiff
path: root/sp/src/game/client/hud_controlpointicons.h
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /sp/src/game/client/hud_controlpointicons.h
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/game/client/hud_controlpointicons.h')
-rw-r--r--sp/src/game/client/hud_controlpointicons.h876
1 files changed, 438 insertions, 438 deletions
diff --git a/sp/src/game/client/hud_controlpointicons.h b/sp/src/game/client/hud_controlpointicons.h
index 46e2fc93..c660ca73 100644
--- a/sp/src/game/client/hud_controlpointicons.h
+++ b/sp/src/game/client/hud_controlpointicons.h
@@ -1,438 +1,438 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================
-
-#ifndef HUD_CONTROLPOINTICONS_H
-#define HUD_CONTROLPOINTICONS_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "cbase.h"
-#include "hudelement.h"
-#include <vgui_controls/Panel.h>
-#include <vgui_controls/Label.h>
-#include <vgui_controls/ImagePanel.h>
-#include "vgui_controls/EditablePanel.h"
-#include "vgui_controls/AnimationController.h"
-#include "vgui_controls/CircularProgressBar.h"
-#include <vgui/ISurface.h>
-#include "tf_controls.h"
-#include "IconPanel.h"
-
-#define PULSE_TIME_PER_ICON 1.5f
-
-#define PULSE_RAMP_TIME 0.5
-#define PULSE_REMAP_SIZE 6.0
-#define FAKE_CAPTURE_TIME 5.0
-#define FAKE_CAPTURE_POST_PAUSE 2.0
-
-extern ConVar mp_capstyle;
-extern ConVar mp_blockstyle;
-
-#define STARTCAPANIM_SWOOP_LENGTH 0.4
-#define STARTCAPANIM_ICON_SWITCH 0.15
-#define FINISHCAPANIM_SWOOP_LENGTH 0.2
-
-#define CAP_BOX_INDENT_X XRES(2)
-#define CAP_BOX_INDENT_Y YRES(2)
-
-#define CP_TEXTURE_COUNT 8
-
-class CControlPointIcon;
-
-// Options for how the cap progress teardrop positions itself around the cap point icon
-enum
-{
- CP_DIR_N,
- CP_DIR_NW,
- CP_DIR_NE,
-};
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class CControlPointCountdown : public vgui::EditablePanel
-{
- DECLARE_CLASS_SIMPLE( CControlPointCountdown, vgui::EditablePanel );
-
-public:
- CControlPointCountdown(Panel *parent, const char *name);
-
- virtual void ApplySchemeSettings( IScheme *scheme );
- virtual void PerformLayout();
- virtual void OnTick( void );
-
- void SetUnlockTime( float flTime );
- float GetUnlockTime( void ){ return m_flUnlockTime; }
-
-private:
-
- bool m_bFire5SecRemain;
- bool m_bFire4SecRemain;
- bool m_bFire3SecRemain;
- bool m_bFire2SecRemain;
- bool m_bFire1SecRemain;
- bool m_bFire0SecRemain;
-
- int m_flUnlockTime;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class CControlPointProgressBar : public vgui::EditablePanel
-{
- DECLARE_CLASS_SIMPLE( CControlPointProgressBar, vgui::EditablePanel );
-public:
- CControlPointProgressBar(Panel *parent);
-
- virtual void ApplySchemeSettings( IScheme *pScheme );
- virtual void PerformLayout( void );
- virtual void Paint( void );
- virtual bool IsVisible( void );
- virtual void Reset( void );
-
- void SetupForPoint( CControlPointIcon *pIcon );
- void UpdateBarText( void );
-
-private:
- CControlPointIcon *m_pAttachedToIcon;
- vgui::CircularProgressBar *m_pBar;
- vgui::Label *m_pBarText;
- CIconPanel *m_pTeardrop;
- CIconPanel *m_pTeardropSide;
- CIconPanel *m_pBlocked;
- int m_iOrgHeight;
- int m_iMidGroupIndex;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class CControlPointIconSwoop : public vgui::ImagePanel, public CGameEventListener
-{
- DECLARE_CLASS_SIMPLE( CControlPointIconSwoop, vgui::ImagePanel );
-public:
- CControlPointIconSwoop(Panel *parent, const char *name) : vgui::ImagePanel( parent, name )
- {
- SetImage( "../sprites/obj_icons/capture_highlight" );
- SetShouldScaleImage( true );
- ListenForGameEvent( "localplayer_changeteam" );
- }
-
- virtual void PaintBackground( void )
- {
- float flElapsedTime = (gpGlobals->curtime - m_flStartCapAnimStart);
-
- if (GetImage())
- {
- surface()->DrawSetColor(255, 255, 255, 255);
- int iYPos = RemapValClamped( flElapsedTime, 0, STARTCAPANIM_SWOOP_LENGTH, 0, GetTall() );
- GetImage()->SetPos( 0, iYPos );
- GetImage()->Paint();
- }
-
- // Once we've finished the swoop, go away
- if ( flElapsedTime >= STARTCAPANIM_SWOOP_LENGTH )
- {
- SetVisible( false );
- }
- }
-
- virtual bool IsVisible( void )
- {
- if ( IsInFreezeCam() == true )
- return false;
-
- return BaseClass::IsVisible();
- }
-
- void StartSwoop( void )
- {
- m_flStartCapAnimStart = gpGlobals->curtime;
- }
-
- void FireGameEvent( IGameEvent * event )
- {
- if ( FStrEq( "localplayer_changeteam", event->GetName() ) )
- {
- SetVisible( false );
- }
- }
-
-private:
- float m_flStartCapAnimStart;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class CControlPointIconCapArrow : public vgui::Panel
-{
- DECLARE_CLASS_SIMPLE( CControlPointIconCapArrow, vgui::Panel );
-public:
- CControlPointIconCapArrow( CControlPointIcon *pIcon, Panel *parent, const char *name);
-
- virtual void Paint( void );
- virtual bool IsVisible( void );
-
- void SetImage( const char *pszImage )
- {
- m_pArrowMaterial = materials->FindMaterial( pszImage, TEXTURE_GROUP_VGUI );
- }
-
-private:
- IMaterial *m_pArrowMaterial;
- CControlPointIcon *m_pAttachedToIcon;
-
-};
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class CControlPointIconCapturePulse : public vgui::ImagePanel
-{
- DECLARE_CLASS_SIMPLE( CControlPointIconCapturePulse, vgui::ImagePanel );
-public:
- CControlPointIconCapturePulse(Panel *parent, const char *name) : vgui::ImagePanel( parent, name )
- {
- SetImage( "../sprites/obj_icons/icon_obj_white" );
- SetShouldScaleImage( true );
- }
-
- virtual void PaintBackground( void )
- {
- if ( m_flFinishCapAnimStart && gpGlobals->curtime > m_flFinishCapAnimStart )
- {
- float flElapsedTime = MAX( 0, (gpGlobals->curtime - m_flFinishCapAnimStart) );
- if (GetImage())
- {
- surface()->DrawSetColor(255, 255, 255, 255);
- int iSize = RemapValClamped( flElapsedTime, 0, FINISHCAPANIM_SWOOP_LENGTH, GetWide(), m_iShrinkSize );
- GetImage()->SetPos( (GetWide() - iSize)*0.5, (GetTall() - iSize)*0.5 );
- GetImage()->SetSize( iSize, iSize );
- GetImage()->Paint();
- }
-
- // Once we've finished the swoop, go away
- if ( flElapsedTime >= FINISHCAPANIM_SWOOP_LENGTH )
- {
- SetVisible( false );
- }
- }
- }
-
- void StartPulse( float flTime, int iShrinkSize )
- {
- m_flFinishCapAnimStart = flTime;
- m_iShrinkSize = iShrinkSize;
-
- if ( GetWide() < m_iShrinkSize )
- {
- SetWide( m_iShrinkSize );
- }
- }
-
- virtual bool IsVisible( void )
- {
- if ( IsInFreezeCam() == true )
- return false;
-
- return BaseClass::IsVisible();
- }
-
-private:
- float m_flFinishCapAnimStart;
- int m_iShrinkSize;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose: The base image in the cap point icons that pulses.
-//-----------------------------------------------------------------------------
-class CControlPointIconPulseable : public vgui::ImagePanel
-{
- DECLARE_CLASS_SIMPLE( CControlPointIconPulseable, vgui::ImagePanel );
-public:
- CControlPointIconPulseable(Panel *parent, const char *name, int iIndex) : vgui::ImagePanel( parent, name )
- {
- SetShouldScaleImage( true );
- m_pPulseImage = NULL;
- m_iCPIndex = iIndex;
- }
-
- virtual void ApplySchemeSettings( IScheme *pScheme );
- virtual void OnSizeChanged(int newWide, int newTall);
- virtual void PaintBackground( void );
-
- void StartPulsing( float flDelay, float flPulseTime, bool bAccelerate );
- void StopPulsing( void );
-
- virtual bool IsVisible( void )
- {
- if ( IsInFreezeCam() == true )
- return false;
-
- return BaseClass::IsVisible();
- }
-
-private:
- int m_iCPIndex;
- float m_flStartCapAnimStart;
- float m_flPulseTime;
- bool m_bAccelerateOverCapture;
- IImage *m_pPulseImage;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose: A single icon that shows the state of one control point
-//-----------------------------------------------------------------------------
-class CControlPointIcon : public vgui::EditablePanel, public CHudElement
-{
- DECLARE_CLASS_SIMPLE( CControlPointIcon, vgui::EditablePanel );
-public:
- CControlPointIcon( Panel *parent, const char *pName, int iIndex );
- ~CControlPointIcon( void );
-
- virtual void ApplySchemeSettings( IScheme *scheme );
- virtual void PerformLayout( void );
-
- void UpdateImage( void );
- void UpdateCapImage( void );
- bool IsPointLocked( void );
- int GetCapIndex( void ) { return m_iCPIndex; }
- void SetSwipeUp( bool bUp ) { m_bSwipeUp = bUp; }
- bool ShouldSwipeUp( void ) { return m_bSwipeUp; }
- int GetCapProgressDir( void ) { return m_iCapProgressDir; }
- void SetCapProgressDir( int iDir ) { m_iCapProgressDir = iDir; }
- void FakePulse( float flTime );
- bool IsVisible( void );
- virtual void Paint( void );
- bool IsPointUnlockCountdownRunning( void );
-
- virtual void FireGameEvent( IGameEvent *event );
-
- void SetUnlockTime( float flTime )
- {
- if ( m_pCountdown )
- {
- m_pCountdown->SetUnlockTime( flTime );
- }
- }
-
- void SetTimerTime( float flTime ); // used to display CCPTimerLogic countdowns
-
-private:
- virtual void OnTick();
-
-private:
- int m_iCPIndex;
- vgui::ImagePanel *m_pOverlayImage;
- CControlPointIconPulseable *m_pBaseImage;
- CControlPointIconCapArrow *m_pCapImage;
- DHANDLE< CControlPointIconSwoop > m_pCapHighlightImage;
- DHANDLE< CControlPointIconCapturePulse > m_pCapPulseImage;
- vgui::ImagePanel *m_pCapPlayerImage;
- vgui::Label *m_pCapNumPlayers;
- bool m_bSwipeUp;
- float m_flStartCapAnimStart;
- int m_iCapProgressDir;
- int m_iPrevCappers;
- bool m_bCachedLockedState;
-
- bool m_bCachedCountdownState;
- CControlPointCountdown *m_pCountdown;
-
- DHANDLE< CExLabel > m_pCPTimerLabel; // used to display CCPTimerLogic countdowns
- DHANDLE< vgui::ImagePanel > m_pCPTimerBG; // used to display CCPTimerLogic countdowns
- float m_flCPTimerTime;
- bool m_bRedText;
- Color m_cRegularColor;
- Color m_cHighlightColor;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-class CHudControlPointIcons : public CHudElement, public vgui::Panel
-{
-public:
- DECLARE_CLASS_SIMPLE( CHudControlPointIcons, vgui::Panel );
-
- CHudControlPointIcons( const char *pName );
- virtual ~CHudControlPointIcons( void );
-
- virtual void ApplySchemeSettings( IScheme *scheme );
- virtual void PerformLayout( void );
- virtual void Paint();
- virtual void Init();
- virtual void Reset();
- virtual bool IsVisible( void );
- virtual void LevelShutdown( void );
-
- virtual bool ShouldDraw( void )
- {
- return IsVisible();
- }
-
- virtual void FireGameEvent( IGameEvent *event );
-
- void UpdateProgressBarFor( int iIndex );
- void InitIcons();
- void ShutdownIcons();
- void DrawBackgroundBox( int xpos, int ypos, int nBoxWidth, int nBoxHeight, bool bCutCorner );
- bool PaintTeamBaseIcon( int index, float flXPos, float flYPos, float flIconSize );
-
- bool IsFakingCapture( int index = -1, bool *bMult = NULL, float *flFakeTime = NULL )
- {
- if ( m_bFakingCapture && m_flFakeCaptureTime < gpGlobals->curtime )
- {
- m_iCurrentCP = -1;
- m_bFakingCapture = false;
- m_bFakingCaptureMult = false;
- }
-
- if ( bMult) *bMult = m_bFakingCaptureMult;
- if ( flFakeTime ) *flFakeTime = m_flFakeCaptureTime;
- return (m_bFakingCapture && (index == -1 || index == m_iCurrentCP));
- }
-
-private:
- int m_iCPTextures[CP_TEXTURE_COUNT];
- int m_iCPCappingTextures[CP_TEXTURE_COUNT];
- int m_iTeamBaseTextures[MAX_TEAMS];
-
- int m_iBackgroundTexture;
- Color m_clrBackground;
- Color m_clrBorder;
-
- int m_iCurrentCP; // the index of the control point the local is currently in
- int m_iLastCP; // the index of the control point the local player was last in
-
- // Capture faking for Intros
- float m_flPulseTime;
- bool m_bFakingCapture;
- bool m_bFakingCaptureMult;
- float m_flFakeCaptureTime;
-
- CPanelAnimationVar( vgui::HFont, m_hTextFont, "ChatFont", "Default" );
-
- CPanelAnimationVarAliasType( int, m_nCornerCutSize, "CornerCutSize", "5", "proportional_int" );
- CPanelAnimationVarAliasType( int, m_nBackgroundOverlap, "BackgroundOverlap", "5", "proportional_int" );
-
- CPanelAnimationVarAliasType( int, m_iIconStartX, "icon_start_x", "10", "proportional_int" );
- CPanelAnimationVarAliasType( int, m_iIconStartY, "icon_start_y", "10", "proportional_int" );
- CPanelAnimationVarAliasType( float, m_flIconExpand, "icon_expand", "0", "proportional_float" );
- CPanelAnimationVarAliasType( int, m_iIconSize, "iconsize", "24", "proportional_int" );
-
-
- CPanelAnimationVarAliasType( int, m_iIconGapWidth, "separator_width", "7", "proportional_int" );
- CPanelAnimationVarAliasType( int, m_iIconGapHeight, "separator_height", "9", "proportional_int" );
- CPanelAnimationVarAliasType( int, m_nHeightOffset, "height_offset", "0", "proportional_int" );
-
- CUtlVector<CControlPointIcon *> m_Icons;
-};
-
-#endif // HUD_CONTROLPOINTICONS_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#ifndef HUD_CONTROLPOINTICONS_H
+#define HUD_CONTROLPOINTICONS_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "cbase.h"
+#include "hudelement.h"
+#include <vgui_controls/Panel.h>
+#include <vgui_controls/Label.h>
+#include <vgui_controls/ImagePanel.h>
+#include "vgui_controls/EditablePanel.h"
+#include "vgui_controls/AnimationController.h"
+#include "vgui_controls/CircularProgressBar.h"
+#include <vgui/ISurface.h>
+#include "tf_controls.h"
+#include "IconPanel.h"
+
+#define PULSE_TIME_PER_ICON 1.5f
+
+#define PULSE_RAMP_TIME 0.5
+#define PULSE_REMAP_SIZE 6.0
+#define FAKE_CAPTURE_TIME 5.0
+#define FAKE_CAPTURE_POST_PAUSE 2.0
+
+extern ConVar mp_capstyle;
+extern ConVar mp_blockstyle;
+
+#define STARTCAPANIM_SWOOP_LENGTH 0.4
+#define STARTCAPANIM_ICON_SWITCH 0.15
+#define FINISHCAPANIM_SWOOP_LENGTH 0.2
+
+#define CAP_BOX_INDENT_X XRES(2)
+#define CAP_BOX_INDENT_Y YRES(2)
+
+#define CP_TEXTURE_COUNT 8
+
+class CControlPointIcon;
+
+// Options for how the cap progress teardrop positions itself around the cap point icon
+enum
+{
+ CP_DIR_N,
+ CP_DIR_NW,
+ CP_DIR_NE,
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CControlPointCountdown : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CControlPointCountdown, vgui::EditablePanel );
+
+public:
+ CControlPointCountdown(Panel *parent, const char *name);
+
+ virtual void ApplySchemeSettings( IScheme *scheme );
+ virtual void PerformLayout();
+ virtual void OnTick( void );
+
+ void SetUnlockTime( float flTime );
+ float GetUnlockTime( void ){ return m_flUnlockTime; }
+
+private:
+
+ bool m_bFire5SecRemain;
+ bool m_bFire4SecRemain;
+ bool m_bFire3SecRemain;
+ bool m_bFire2SecRemain;
+ bool m_bFire1SecRemain;
+ bool m_bFire0SecRemain;
+
+ int m_flUnlockTime;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CControlPointProgressBar : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CControlPointProgressBar, vgui::EditablePanel );
+public:
+ CControlPointProgressBar(Panel *parent);
+
+ virtual void ApplySchemeSettings( IScheme *pScheme );
+ virtual void PerformLayout( void );
+ virtual void Paint( void );
+ virtual bool IsVisible( void );
+ virtual void Reset( void );
+
+ void SetupForPoint( CControlPointIcon *pIcon );
+ void UpdateBarText( void );
+
+private:
+ CControlPointIcon *m_pAttachedToIcon;
+ vgui::CircularProgressBar *m_pBar;
+ vgui::Label *m_pBarText;
+ CIconPanel *m_pTeardrop;
+ CIconPanel *m_pTeardropSide;
+ CIconPanel *m_pBlocked;
+ int m_iOrgHeight;
+ int m_iMidGroupIndex;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CControlPointIconSwoop : public vgui::ImagePanel, public CGameEventListener
+{
+ DECLARE_CLASS_SIMPLE( CControlPointIconSwoop, vgui::ImagePanel );
+public:
+ CControlPointIconSwoop(Panel *parent, const char *name) : vgui::ImagePanel( parent, name )
+ {
+ SetImage( "../sprites/obj_icons/capture_highlight" );
+ SetShouldScaleImage( true );
+ ListenForGameEvent( "localplayer_changeteam" );
+ }
+
+ virtual void PaintBackground( void )
+ {
+ float flElapsedTime = (gpGlobals->curtime - m_flStartCapAnimStart);
+
+ if (GetImage())
+ {
+ surface()->DrawSetColor(255, 255, 255, 255);
+ int iYPos = RemapValClamped( flElapsedTime, 0, STARTCAPANIM_SWOOP_LENGTH, 0, GetTall() );
+ GetImage()->SetPos( 0, iYPos );
+ GetImage()->Paint();
+ }
+
+ // Once we've finished the swoop, go away
+ if ( flElapsedTime >= STARTCAPANIM_SWOOP_LENGTH )
+ {
+ SetVisible( false );
+ }
+ }
+
+ virtual bool IsVisible( void )
+ {
+ if ( IsInFreezeCam() == true )
+ return false;
+
+ return BaseClass::IsVisible();
+ }
+
+ void StartSwoop( void )
+ {
+ m_flStartCapAnimStart = gpGlobals->curtime;
+ }
+
+ void FireGameEvent( IGameEvent * event )
+ {
+ if ( FStrEq( "localplayer_changeteam", event->GetName() ) )
+ {
+ SetVisible( false );
+ }
+ }
+
+private:
+ float m_flStartCapAnimStart;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CControlPointIconCapArrow : public vgui::Panel
+{
+ DECLARE_CLASS_SIMPLE( CControlPointIconCapArrow, vgui::Panel );
+public:
+ CControlPointIconCapArrow( CControlPointIcon *pIcon, Panel *parent, const char *name);
+
+ virtual void Paint( void );
+ virtual bool IsVisible( void );
+
+ void SetImage( const char *pszImage )
+ {
+ m_pArrowMaterial = materials->FindMaterial( pszImage, TEXTURE_GROUP_VGUI );
+ }
+
+private:
+ IMaterial *m_pArrowMaterial;
+ CControlPointIcon *m_pAttachedToIcon;
+
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CControlPointIconCapturePulse : public vgui::ImagePanel
+{
+ DECLARE_CLASS_SIMPLE( CControlPointIconCapturePulse, vgui::ImagePanel );
+public:
+ CControlPointIconCapturePulse(Panel *parent, const char *name) : vgui::ImagePanel( parent, name )
+ {
+ SetImage( "../sprites/obj_icons/icon_obj_white" );
+ SetShouldScaleImage( true );
+ }
+
+ virtual void PaintBackground( void )
+ {
+ if ( m_flFinishCapAnimStart && gpGlobals->curtime > m_flFinishCapAnimStart )
+ {
+ float flElapsedTime = MAX( 0, (gpGlobals->curtime - m_flFinishCapAnimStart) );
+ if (GetImage())
+ {
+ surface()->DrawSetColor(255, 255, 255, 255);
+ int iSize = RemapValClamped( flElapsedTime, 0, FINISHCAPANIM_SWOOP_LENGTH, GetWide(), m_iShrinkSize );
+ GetImage()->SetPos( (GetWide() - iSize)*0.5, (GetTall() - iSize)*0.5 );
+ GetImage()->SetSize( iSize, iSize );
+ GetImage()->Paint();
+ }
+
+ // Once we've finished the swoop, go away
+ if ( flElapsedTime >= FINISHCAPANIM_SWOOP_LENGTH )
+ {
+ SetVisible( false );
+ }
+ }
+ }
+
+ void StartPulse( float flTime, int iShrinkSize )
+ {
+ m_flFinishCapAnimStart = flTime;
+ m_iShrinkSize = iShrinkSize;
+
+ if ( GetWide() < m_iShrinkSize )
+ {
+ SetWide( m_iShrinkSize );
+ }
+ }
+
+ virtual bool IsVisible( void )
+ {
+ if ( IsInFreezeCam() == true )
+ return false;
+
+ return BaseClass::IsVisible();
+ }
+
+private:
+ float m_flFinishCapAnimStart;
+ int m_iShrinkSize;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: The base image in the cap point icons that pulses.
+//-----------------------------------------------------------------------------
+class CControlPointIconPulseable : public vgui::ImagePanel
+{
+ DECLARE_CLASS_SIMPLE( CControlPointIconPulseable, vgui::ImagePanel );
+public:
+ CControlPointIconPulseable(Panel *parent, const char *name, int iIndex) : vgui::ImagePanel( parent, name )
+ {
+ SetShouldScaleImage( true );
+ m_pPulseImage = NULL;
+ m_iCPIndex = iIndex;
+ }
+
+ virtual void ApplySchemeSettings( IScheme *pScheme );
+ virtual void OnSizeChanged(int newWide, int newTall);
+ virtual void PaintBackground( void );
+
+ void StartPulsing( float flDelay, float flPulseTime, bool bAccelerate );
+ void StopPulsing( void );
+
+ virtual bool IsVisible( void )
+ {
+ if ( IsInFreezeCam() == true )
+ return false;
+
+ return BaseClass::IsVisible();
+ }
+
+private:
+ int m_iCPIndex;
+ float m_flStartCapAnimStart;
+ float m_flPulseTime;
+ bool m_bAccelerateOverCapture;
+ IImage *m_pPulseImage;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: A single icon that shows the state of one control point
+//-----------------------------------------------------------------------------
+class CControlPointIcon : public vgui::EditablePanel, public CHudElement
+{
+ DECLARE_CLASS_SIMPLE( CControlPointIcon, vgui::EditablePanel );
+public:
+ CControlPointIcon( Panel *parent, const char *pName, int iIndex );
+ ~CControlPointIcon( void );
+
+ virtual void ApplySchemeSettings( IScheme *scheme );
+ virtual void PerformLayout( void );
+
+ void UpdateImage( void );
+ void UpdateCapImage( void );
+ bool IsPointLocked( void );
+ int GetCapIndex( void ) { return m_iCPIndex; }
+ void SetSwipeUp( bool bUp ) { m_bSwipeUp = bUp; }
+ bool ShouldSwipeUp( void ) { return m_bSwipeUp; }
+ int GetCapProgressDir( void ) { return m_iCapProgressDir; }
+ void SetCapProgressDir( int iDir ) { m_iCapProgressDir = iDir; }
+ void FakePulse( float flTime );
+ bool IsVisible( void );
+ virtual void Paint( void );
+ bool IsPointUnlockCountdownRunning( void );
+
+ virtual void FireGameEvent( IGameEvent *event );
+
+ void SetUnlockTime( float flTime )
+ {
+ if ( m_pCountdown )
+ {
+ m_pCountdown->SetUnlockTime( flTime );
+ }
+ }
+
+ void SetTimerTime( float flTime ); // used to display CCPTimerLogic countdowns
+
+private:
+ virtual void OnTick();
+
+private:
+ int m_iCPIndex;
+ vgui::ImagePanel *m_pOverlayImage;
+ CControlPointIconPulseable *m_pBaseImage;
+ CControlPointIconCapArrow *m_pCapImage;
+ DHANDLE< CControlPointIconSwoop > m_pCapHighlightImage;
+ DHANDLE< CControlPointIconCapturePulse > m_pCapPulseImage;
+ vgui::ImagePanel *m_pCapPlayerImage;
+ vgui::Label *m_pCapNumPlayers;
+ bool m_bSwipeUp;
+ float m_flStartCapAnimStart;
+ int m_iCapProgressDir;
+ int m_iPrevCappers;
+ bool m_bCachedLockedState;
+
+ bool m_bCachedCountdownState;
+ CControlPointCountdown *m_pCountdown;
+
+ DHANDLE< CExLabel > m_pCPTimerLabel; // used to display CCPTimerLogic countdowns
+ DHANDLE< vgui::ImagePanel > m_pCPTimerBG; // used to display CCPTimerLogic countdowns
+ float m_flCPTimerTime;
+ bool m_bRedText;
+ Color m_cRegularColor;
+ Color m_cHighlightColor;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CHudControlPointIcons : public CHudElement, public vgui::Panel
+{
+public:
+ DECLARE_CLASS_SIMPLE( CHudControlPointIcons, vgui::Panel );
+
+ CHudControlPointIcons( const char *pName );
+ virtual ~CHudControlPointIcons( void );
+
+ virtual void ApplySchemeSettings( IScheme *scheme );
+ virtual void PerformLayout( void );
+ virtual void Paint();
+ virtual void Init();
+ virtual void Reset();
+ virtual bool IsVisible( void );
+ virtual void LevelShutdown( void );
+
+ virtual bool ShouldDraw( void )
+ {
+ return IsVisible();
+ }
+
+ virtual void FireGameEvent( IGameEvent *event );
+
+ void UpdateProgressBarFor( int iIndex );
+ void InitIcons();
+ void ShutdownIcons();
+ void DrawBackgroundBox( int xpos, int ypos, int nBoxWidth, int nBoxHeight, bool bCutCorner );
+ bool PaintTeamBaseIcon( int index, float flXPos, float flYPos, float flIconSize );
+
+ bool IsFakingCapture( int index = -1, bool *bMult = NULL, float *flFakeTime = NULL )
+ {
+ if ( m_bFakingCapture && m_flFakeCaptureTime < gpGlobals->curtime )
+ {
+ m_iCurrentCP = -1;
+ m_bFakingCapture = false;
+ m_bFakingCaptureMult = false;
+ }
+
+ if ( bMult) *bMult = m_bFakingCaptureMult;
+ if ( flFakeTime ) *flFakeTime = m_flFakeCaptureTime;
+ return (m_bFakingCapture && (index == -1 || index == m_iCurrentCP));
+ }
+
+private:
+ int m_iCPTextures[CP_TEXTURE_COUNT];
+ int m_iCPCappingTextures[CP_TEXTURE_COUNT];
+ int m_iTeamBaseTextures[MAX_TEAMS];
+
+ int m_iBackgroundTexture;
+ Color m_clrBackground;
+ Color m_clrBorder;
+
+ int m_iCurrentCP; // the index of the control point the local is currently in
+ int m_iLastCP; // the index of the control point the local player was last in
+
+ // Capture faking for Intros
+ float m_flPulseTime;
+ bool m_bFakingCapture;
+ bool m_bFakingCaptureMult;
+ float m_flFakeCaptureTime;
+
+ CPanelAnimationVar( vgui::HFont, m_hTextFont, "ChatFont", "Default" );
+
+ CPanelAnimationVarAliasType( int, m_nCornerCutSize, "CornerCutSize", "5", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_nBackgroundOverlap, "BackgroundOverlap", "5", "proportional_int" );
+
+ CPanelAnimationVarAliasType( int, m_iIconStartX, "icon_start_x", "10", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iIconStartY, "icon_start_y", "10", "proportional_int" );
+ CPanelAnimationVarAliasType( float, m_flIconExpand, "icon_expand", "0", "proportional_float" );
+ CPanelAnimationVarAliasType( int, m_iIconSize, "iconsize", "24", "proportional_int" );
+
+
+ CPanelAnimationVarAliasType( int, m_iIconGapWidth, "separator_width", "7", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iIconGapHeight, "separator_height", "9", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_nHeightOffset, "height_offset", "0", "proportional_int" );
+
+ CUtlVector<CControlPointIcon *> m_Icons;
+};
+
+#endif // HUD_CONTROLPOINTICONS_H