hl2_src-leak-2017/src/game/client/tf2/hud_timer.h

71 lines
2.0 KiB
C++

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