You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.0 KiB
71 lines
2.0 KiB
5 years ago
|
//========= 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
|