diff options
Diffstat (limited to 'game/client/tf2/hud_timer.h')
| -rw-r--r-- | game/client/tf2/hud_timer.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/game/client/tf2/hud_timer.h b/game/client/tf2/hud_timer.h new file mode 100644 index 0000000..b7645ad --- /dev/null +++ b/game/client/tf2/hud_timer.h @@ -0,0 +1,70 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef HUD_TIMER_H +#define HUD_TIMER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "hud_numeric.h" +#include <vgui_controls/Panel.h> + + +//----------------------------------------------------------------------------- +// Purpose: TF2 Countdown Timer +//----------------------------------------------------------------------------- +class CHudTimer : public CHudNumeric +{ + DECLARE_CLASS_SIMPLE( CHudTimer, CHudNumeric ) +public: + CHudTimer( const char *pElementName ); + + virtual void Init( void ); + virtual void OnThink( void ); + + virtual const char *GetLabelText() { return m_szTimerLabel; } + virtual const char *GetPulseEvent( bool increment ) { return ""; } + virtual bool GetValue( char *val, int maxlen ); + + virtual Color GetColor(); + virtual Color GetBoxColor(); + + // Handling + void SetNoFixedTimer( float flTime ); + void SetFixedTimer( float flStartTime, float flTimeLimit ); + void UpdateTimer( float flTime ); + void StartTimer( void ); + void StopTimer( void ); + void CheckForPulse( void ); + int MsgFunc_SetTimer( bf_read &msg ); + int MsgFunc_StartTimer( bf_read &msg ); + int MsgFunc_UpdateTimer( bf_read &msg ); + +public: + int m_iAlpha; + int m_iPaused; + float m_flCurrentTime; + float m_flStartTime; + float m_flPrevTimeSlice; + float m_flPulseTime; + float m_flTimeLimit; + float m_flLastTime; + + // The Timer has two modes of operation: + // m_bFixedTime == true: Timer can't be paused. Time displayed is an offset from the originally specified start time. + // m_bFixedTime == false: Timer can be stopped & started. Time displayed is calculated on the client, and regularly updated by the server + // to ensure it doesn't get too far off the server's time. + bool m_bFixedTime; + +private: + float m_flOpenCloseTime; + + CPanelAnimationStringVar( 128, m_szTimerLabel, "TimerLabel", "" ); +}; + +#endif // HUD_TIMER_H |