From db353e683777e698fb8445354d17becd50e5c379 Mon Sep 17 00:00:00 2001 From: Jack <66967891+ASpoonPlaysGames@users.noreply.github.com> Date: Fri, 30 Aug 2024 08:00:55 +0100 Subject: client: Remove uses of Autohook from `rejectconnectionfixes.cpp` (#793) Removes AUTOHOOK macro from `rejectconnectionfixes.cpp`. --- primedev/client/rejectconnectionfixes.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/primedev/client/rejectconnectionfixes.cpp b/primedev/client/rejectconnectionfixes.cpp index 1b326a3c..adfd772c 100644 --- a/primedev/client/rejectconnectionfixes.cpp +++ b/primedev/client/rejectconnectionfixes.cpp @@ -1,12 +1,8 @@ #include "engine/r2engine.h" -AUTOHOOK_INIT() - // this is called from when our connection is rejected, this is the only case we're hooking this for -// clang-format off -AUTOHOOK(COM_ExplainDisconnection, engine.dll + 0x1342F0, -void,, (bool a1, const char* fmt, ...)) -// clang-format on +static void (*o_pCOM_ExplainDisconnection)(bool a1, const char* fmt, ...) = nullptr; +static void h_COM_ExplainDisconnection(bool a1, const char* fmt, ...) { va_list va; va_start(va, fmt); @@ -25,10 +21,11 @@ void,, (bool a1, const char* fmt, ...)) Cbuf_AddText(Cbuf_GetCurrentPlayer(), "disconnect", cmd_source_t::kCommandSrcCode); } - return COM_ExplainDisconnection(a1, "%s", buf); + return o_pCOM_ExplainDisconnection(a1, "%s", buf); } ON_DLL_LOAD_CLIENT("engine.dll", RejectConnectionFixes, (CModule module)) { - AUTOHOOK_DISPATCH() + o_pCOM_ExplainDisconnection = module.Offset(0x1342F0).RCast(); + HookAttach(&(PVOID&)o_pCOM_ExplainDisconnection, (PVOID)h_COM_ExplainDisconnection); } -- cgit v1.2.3