//========= 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 //----------------------------------------------------------------------------- // 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