1.1 --- a/extensions/sdktools/vglobals.cpp Mon Mar 03 05:20:40 2014 -0600
1.2 +++ b/extensions/sdktools/vglobals.cpp Mon Mar 03 05:20:40 2014 -0600
1.3 @@ -119,14 +119,31 @@
1.4 }
1.5
1.6 #if defined PLATFORM_WINDOWS
1.7 +#define FAKECLIENT_KEY "CreateFakeClient_Windows"
1.8 +#elif defined PLATFORM_LINUX
1.9 +#define FAKECLIENT_KEY "CreateFakeClient_Linux"
1.10 +#elif defined PLATFORM_APPLE
1.11 +#define FAKECLIENT_KEY "CreateFakeClient_Mac"
1.12 +#else
1.13 +#error "Unsupported platform"
1.14 +#endif
1.15 +
1.16 void GetIServer()
1.17 {
1.18 + void *addr;
1.19 const char *sigstr;
1.20 char sig[32];
1.21 size_t siglen;
1.22 int offset;
1.23 void *vfunc = NULL;
1.24
1.25 + /* Use the symbol if it exists */
1.26 + if (g_pGameConf->GetMemSig("sv", &addr) && addr)
1.27 + {
1.28 + iserver = reinterpret_cast<IServer *>(addr);
1.29 + return;
1.30 + }
1.31 +
1.32 #if defined METAMOD_PLAPI_VERSION || PLAPI_VERSION >= 11
1.33 /* Get the CreateFakeClient function pointer */
1.34 if (!(vfunc=SH_GET_ORIG_VFNPTR_ENTRY(engine, &IVEngineServer::CreateFakeClient)))
1.35 @@ -147,7 +164,7 @@
1.36 #endif
1.37
1.38 /* Get signature string for IVEngineServer::CreateFakeClient() */
1.39 - sigstr = g_pGameConf->GetKeyValue("CreateFakeClient_Windows");
1.40 + sigstr = g_pGameConf->GetKeyValue(FAKECLIENT_KEY);
1.41
1.42 if (!sigstr)
1.43 {
1.44 @@ -172,18 +189,6 @@
1.45 /* Finally we have the interface we were looking for */
1.46 iserver = *reinterpret_cast<IServer **>(reinterpret_cast<unsigned char *>(vfunc) + offset);
1.47 }
1.48 -#elif defined PLATFORM_POSIX
1.49 -void GetIServer()
1.50 -{
1.51 - void *addr;
1.52 - if (!g_pGameConf->GetMemSig("sv", &addr) || !addr)
1.53 - {
1.54 - return;
1.55 - }
1.56 -
1.57 - iserver = reinterpret_cast<IServer *>(addr);
1.58 -}
1.59 -#endif
1.60
1.61 void GetResourceEntity()
1.62 {