From 670c7c5b02b5f903ff021a2da9803f70637ab597 Mon Sep 17 00:00:00 2001 From: rtldg <55846624+rtldg@users.noreply.github.com> Date: Fri, 23 May 2025 23:07:06 +0000 Subject: [PATCH] fix offset usage for BeginAuthSession from #45 (resolves #49) (#52) --- extension/extension.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/extension/extension.cpp b/extension/extension.cpp index 70bd423..60a2c9e 100644 --- a/extension/extension.cpp +++ b/extension/extension.cpp @@ -327,7 +327,6 @@ bool Connect::SDK_OnLoad(char *error, size_t maxlen, bool late) /* META_CONPRINTF("ISteamGameServer: %p\n", g_pSteam3Server->m_pSteamGameServer); META_CONPRINTF("ISteamUtils: %p\n", g_pSteam3Server->m_pSteamGameServerUtils); - META_CONPRINTF("ISteamMasterServerUpdater: %p\n", g_pSteam3Server->m_pSteamMasterServerUpdater); META_CONPRINTF("ISteamNetworking: %p\n", g_pSteam3Server->m_pSteamGameServerNetworking); META_CONPRINTF("ISteamGameServerStats: %p\n", g_pSteam3Server->m_pSteamGameServerStats); */ @@ -341,6 +340,13 @@ bool Connect::SDK_OnLoad(char *error, size_t maxlen, bool late) } g_pBeginAuthSession.SetAddress(vtable[offset]); + SH_MANUALHOOK_RECONFIGURE(MHook_BeginAuthSession, offset, 0, 0); + if (SH_ADD_MANUALHOOK(MHook_BeginAuthSession, g_pSteam3Server->m_pSteamGameServer, SH_STATIC(Hook_BeginAuthSession), true) == 0) + { + snprintf(error, maxlen, "Failed to setup ISteamGameServer__BeginAuthSession hook.\n"); + return false; + } + offset = 0; if (!g_pGameConf->GetOffset("ISteamGameServer__EndAuthSession", &offset) || offset == 0) { @@ -349,13 +355,6 @@ bool Connect::SDK_OnLoad(char *error, size_t maxlen, bool late) } g_pEndAuthSession.SetAddress(vtable[offset]); - SH_MANUALHOOK_RECONFIGURE(MHook_BeginAuthSession, offset, 0, 0); - if (SH_ADD_MANUALHOOK(MHook_BeginAuthSession, g_pSteam3Server->m_pSteamGameServer, SH_STATIC(Hook_BeginAuthSession), true) == 0) - { - snprintf(error, maxlen, "Failed to setup ISteamGameServer__BeginAuthSession hook.\n"); - return false; - } - CDetourManager::Init(g_pSM->GetScriptingEngine(), g_pGameConf); detourCBaseServer__ConnectClient = DETOUR_CREATE_MEMBER(CBaseServer__ConnectClient, "CBaseServer__ConnectClient");