Updated SDKTools IServer finding on Windows for Ep2v and CSS (bug 5450, r=me).

This commit is contained in:
Nicholas Hastings 2012-08-23 07:47:44 -04:00
parent 805306bdf0
commit d88f07fd31
3 changed files with 14 additions and 6 deletions

View File

@ -127,14 +127,22 @@ void GetIServer()
#if defined METAMOD_PLAPI_VERSION || PLAPI_VERSION >= 11
/* Get the CreateFakeClient function pointer */
#if SOURCE_ENGINE == SE_ORANGEBOXVALVE || SOURCE_ENGINE == SE_CSS
if (!(vfunc=SH_GET_ORIG_VFNPTR_ENTRY(engine, &IVEngineServer::CreateFakeClientEx)))
#else
if (!(vfunc=SH_GET_ORIG_VFNPTR_ENTRY(engine, &IVEngineServer::CreateFakeClient)))
#endif
{
return;
}
#else
/* Get the interface manually */
SourceHook::MemFuncInfo info = {true, -1, 0, 0};
#if SOURCE_ENGINE == SE_ORANGEBOXVALVE || SOURCE_ENGINE == SE_CSS
SourceHook::GetFuncInfo(&IVEngineServer::CreateFakeClientEx, info);
#else
SourceHook::GetFuncInfo(&IVEngineServer::CreateFakeClient, info);
#endif
vfunc = enginePatch->GetOrigFunc(info.vtbloffs, info.vtblindex);
if (!vfunc)

View File

@ -114,7 +114,7 @@
{
"Keys"
{
/* Signature for the beginning of IVEngineServer::CreateFakeClient.
/* Signature for the beginning of IVEngineServer::CreateFakeClientEx.
*
* The engine binary is not actually scanned in order to look for
* this. SourceHook is used to used to determine the address of the
@ -122,7 +122,7 @@
* the expected code. A pointer to sv (IServer interface) is used
* here.
*/
"CreateFakeClient_Windows" "\x55\x8B\xEC\x8B\x45\x2A\x50\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x85\xC0"
"CreateFakeClient_Windows" "\x55\x8B\xEC\x8B\x2A\x2A\x8A\x2A\x2A\x51\xB9\x2A\x2A\x2A\x2A\xA2"
}
"Offsets"
@ -130,7 +130,7 @@
/* Offset into IVEngineServer::CreateFakeClient */
"sv"
{
"windows" "8"
"windows" "11"
}
}

View File

@ -138,7 +138,7 @@
{
"Keys"
{
/* Signature for the beginning of IVEngineServer::CreateFakeClient.
/* Signature for the beginning of IVEngineServer::CreateFakeClientEx.
*
* The engine binary is not actually scanned in order to look for
* this. SourceHook is used to used to determine the address of the
@ -146,7 +146,7 @@
* the expected code. A pointer to sv (IServer interface) is used
* here.
*/
"CreateFakeClient_Windows" "\x55\x8B\xEC\x8B\x45\x2A\x50\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x85\xC0"
"CreateFakeClient_Windows" "\x55\x8B\xEC\x8B\x2A\x2A\x8A\x2A\x2A\x51\xB9\x2A\x2A\x2A\x2A\xA2"
}
"Offsets"
@ -154,7 +154,7 @@
/* Offset into IVEngineServer::CreateFakeClient */
"sv"
{
"windows" "8"
"windows" "11"
}
}