extensions/sdktools/vglobals.cpp
changeset 4272 8b39aa02b05b
parent 3823 a15fe74da328
     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  {