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: