core/TimerSys.cpp
changeset 1770 9c545310f947
parent 1721 d54c379f7171
child 1904 baa051d23eef
     1.1 --- a/core/TimerSys.cpp	Thu Dec 06 02:25:35 2007 +0000
     1.2 +++ b/core/TimerSys.cpp	Thu Dec 06 03:28:02 2007 +0000
     1.3 @@ -34,19 +34,10 @@
     1.4  #include "ForwardSys.h"
     1.5  #include "sourcemm_api.h"
     1.6  #include "frame_hooks.h"
     1.7 +#include "ConVarManager.h"
     1.8  
     1.9  #define TIMER_MIN_ACCURACY		0.1
    1.10  
    1.11 -#if !defined ORANGEBOX_BUILD
    1.12 -#define CallGlobalChangeCallbacks	CallGlobalChangeCallback
    1.13 -#endif
    1.14 -
    1.15 -#if defined ORANGEBOX_BUILD
    1.16 -SH_DECL_HOOK3_void(ICvar, CallGlobalChangeCallbacks, SH_NOATTRIB, false, ConVar *, const char *, float);
    1.17 -#else
    1.18 -SH_DECL_HOOK2_void(ICvar, CallGlobalChangeCallbacks, SH_NOATTRIB, false, ConVar *, const char *);
    1.19 -#endif
    1.20 -
    1.21  TimerSystem g_Timers;
    1.22  double g_fUniversalTime = 0.0f;
    1.23  float g_fGameStartTime = 0.0f;	/* Game game start time, non-universal */
    1.24 @@ -74,7 +65,8 @@
    1.25  
    1.26  class DefaultMapTimer : 
    1.27  	public IMapTimer,
    1.28 -	public SMGlobalClass
    1.29 +	public SMGlobalClass,
    1.30 +	public IConVarChangeListener
    1.31  {
    1.32  public:
    1.33  	DefaultMapTimer()
    1.34 @@ -118,34 +110,20 @@
    1.35  		mp_timelimit->SetValue(mp_timelimit->GetInt() + extra_time);
    1.36  	}
    1.37  
    1.38 -#if defined ORANGEBOX_BUILD
    1.39 -	void GlobalChangeCallback(ConVar *pVar, const char *old_value, float flOldValue)
    1.40 -#else
    1.41 -	void GlobalChangeCallback(ConVar *pVar, const char *old_value)
    1.42 -#endif
    1.43 +	void OnConVarChanged(ConVar *pConVar, const char *oldValue, float flOldValue)
    1.44  	{
    1.45 -		if (pVar != mp_timelimit)
    1.46 -		{
    1.47 -			return;
    1.48 -		}
    1.49 -
    1.50 -		if (atoi(old_value) == pVar->GetInt())
    1.51 -		{
    1.52 -			return;
    1.53 -		}
    1.54 -
    1.55  		g_Timers.MapTimeLeftChanged();
    1.56  	}
    1.57  
    1.58  private:
    1.59  	void Enable()
    1.60  	{
    1.61 -		SH_ADD_HOOK_MEMFUNC(ICvar, CallGlobalChangeCallbacks, icvar, this, &DefaultMapTimer::GlobalChangeCallback, false);
    1.62 +		g_ConVarManager.AddConVarChangeListener("mp_timelimit", this);
    1.63  	}
    1.64  
    1.65  	void Disable()
    1.66  	{
    1.67 -		SH_REMOVE_HOOK_MEMFUNC(ICvar, CallGlobalChangeCallbacks, icvar, this, &DefaultMapTimer::GlobalChangeCallback, false);
    1.68 +		g_ConVarManager.RemoveConVarChangeListener("mp_timelimit", this);
    1.69  	}
    1.70  
    1.71  private: