1.1 --- a/extensions/sdktools/extension.cpp Sat Dec 01 00:37:47 2007 +0000
1.2 +++ b/extensions/sdktools/extension.cpp Sun Dec 02 01:51:48 2007 +0000
1.3 @@ -35,6 +35,7 @@
1.4 #include "vhelpers.h"
1.5 #include "vglobals.h"
1.6 #include "tempents.h"
1.7 +#include "vsound.h"
1.8
1.9 #if defined ORANGEBOX_BUILD
1.10 #define SDKTOOLS_GAME_FILE "sdktools.games.ep2"
1.11 @@ -63,6 +64,8 @@
1.12 IVoiceServer *voiceserver = NULL;
1.13 IPlayerInfoManager *playerinfomngr = NULL;
1.14 ICvar *icvar = NULL;
1.15 +SourceHook::CallClass<IVEngineServer> *enginePatch = NULL;
1.16 +SourceHook::CallClass<IEngineSound> *enginesoundPatch = NULL;
1.17 HandleType_t g_CallHandle = 0;
1.18 HandleType_t g_TraceHandle = 0;
1.19
1.20 @@ -149,6 +152,7 @@
1.21
1.22 g_TEManager.Shutdown();
1.23 s_TempEntHooks.Shutdown();
1.24 + s_SoundHooks.Shutdown();
1.25
1.26 gameconfs->CloseGameConfigFile(g_pGameConf);
1.27 playerhelpers->RemoveClientListener(&g_SdkTools);
1.28 @@ -156,6 +160,17 @@
1.29
1.30 SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, this, &SDKTools::LevelInit, true);
1.31 SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, ServerActivate, gamedll, this, &SDKTools::OnServerActivate, false);
1.32 +
1.33 + if (enginePatch)
1.34 + {
1.35 + SH_RELEASE_CALLCLASS(enginePatch);
1.36 + enginePatch = NULL;
1.37 + }
1.38 + if (enginesoundPatch)
1.39 + {
1.40 + SH_RELEASE_CALLCLASS(enginesoundPatch);
1.41 + enginesoundPatch = NULL;
1.42 + }
1.43 }
1.44
1.45 bool SDKTools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool late)
1.46 @@ -170,6 +185,9 @@
1.47 GET_V_IFACE_ANY(GetServerFactory, playerinfomngr, IPlayerInfoManager, INTERFACEVERSION_PLAYERINFOMANAGER);
1.48 GET_V_IFACE_CURRENT(GetEngineFactory, icvar, ICvar, CVAR_INTERFACE_VERSION);
1.49
1.50 + enginePatch = SH_GET_CALLCLASS(engine);
1.51 + enginesoundPatch = SH_GET_CALLCLASS(engsound);
1.52 +
1.53 return true;
1.54 }
1.55
1.56 @@ -179,6 +197,7 @@
1.57
1.58 g_TEManager.Initialize();
1.59 s_TempEntHooks.Initialize();
1.60 + s_SoundHooks.Initialize();
1.61 InitializeValveGlobals();
1.62 }
1.63