From 9ed73b5b989ce079a7349f7bdda88689fd5ac1c4 Mon Sep 17 00:00:00 2001 From: Emma Miler Date: Sun, 27 Nov 2022 21:27:42 +0100 Subject: Pre-init squirrel managers (#348) * init * Format --- NorthstarDLL/dllmain.cpp | 2 ++ NorthstarDLL/squirrel.cpp | 12 +++++++----- NorthstarDLL/squirrel.h | 2 ++ 3 files changed, 11 insertions(+), 5 deletions(-) (limited to 'NorthstarDLL') diff --git a/NorthstarDLL/dllmain.cpp b/NorthstarDLL/dllmain.cpp index 2251d41d..44d973f2 100644 --- a/NorthstarDLL/dllmain.cpp +++ b/NorthstarDLL/dllmain.cpp @@ -153,6 +153,8 @@ bool InitialiseNorthstar() InitialiseNorthstarPrefix(); InitialiseVersion(); + InitialiseSquirrelManagers(); + // Fix some users' failure to connect to respawn datacenters SetEnvironmentVariableA("OPENSSL_ia32cap", "~0x200000200000000"); diff --git a/NorthstarDLL/squirrel.cpp b/NorthstarDLL/squirrel.cpp index 673e2098..cd8b437c 100644 --- a/NorthstarDLL/squirrel.cpp +++ b/NorthstarDLL/squirrel.cpp @@ -550,9 +550,6 @@ ON_DLL_LOAD_RELIESON("client.dll", ClientSquirrel, ConCommand, (CModule module)) { AUTOHOOK_DISPATCH_MODULE(client.dll) - g_pSquirrel = new SquirrelManager; - g_pSquirrel = new SquirrelManager; - g_pSquirrel->__sq_defconst = module.Offset(0x12120).As(); g_pSquirrel->__sq_defconst = g_pSquirrel->__sq_defconst; @@ -663,8 +660,6 @@ ON_DLL_LOAD_RELIESON("server.dll", ServerSquirrel, ConCommand, (CModule module)) { AUTOHOOK_DISPATCH_MODULE(server.dll) - g_pSquirrel = new SquirrelManager; - g_pSquirrel->__sq_defconst = module.Offset(0x1F550).As(); g_pSquirrel->__sq_compilebuffer = module.Offset(0x3110).As(); @@ -732,3 +727,10 @@ ON_DLL_LOAD_RELIESON("server.dll", ServerSquirrel, ConCommand, (CModule module)) StubUnsafeSQFuncs(); } + +void InitialiseSquirrelManagers() +{ + g_pSquirrel = new SquirrelManager; + g_pSquirrel = new SquirrelManager; + g_pSquirrel = new SquirrelManager; +} diff --git a/NorthstarDLL/squirrel.h b/NorthstarDLL/squirrel.h index 626d4f12..65dd66c5 100644 --- a/NorthstarDLL/squirrel.h +++ b/NorthstarDLL/squirrel.h @@ -355,6 +355,8 @@ template class SquirrelManager : public virtual Squirrel template SquirrelManager* g_pSquirrel; +void InitialiseSquirrelManagers(); + /* Beware all ye who enter below. This place is not a place of honor... no highly esteemed deed is commemorated here... nothing valued is here. -- cgit v1.2.3