aboutsummaryrefslogtreecommitdiff
path: root/enc_temp_folder/9532ad42f9bf304d9fb7388cf83b5966/dllmain.cpp
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-10-25 00:45:40 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-10-25 00:45:40 +0100
commit7e1f1d8270dbdfbe2374e9da664cea2e00dfd465 (patch)
tree3d5fe484721c570d12bee33aa55b1b91f7b7df40 /enc_temp_folder/9532ad42f9bf304d9fb7388cf83b5966/dllmain.cpp
parent48acde84bd58c82eaa3a9838757dfcd05ab4ebf5 (diff)
downloadNorthstarLauncher-7e1f1d8270dbdfbe2374e9da664cea2e00dfd465.tar.gz
NorthstarLauncher-7e1f1d8270dbdfbe2374e9da664cea2e00dfd465.zip
fixing some dedi crashes
Diffstat (limited to 'enc_temp_folder/9532ad42f9bf304d9fb7388cf83b5966/dllmain.cpp')
-rw-r--r--enc_temp_folder/9532ad42f9bf304d9fb7388cf83b5966/dllmain.cpp106
1 files changed, 106 insertions, 0 deletions
diff --git a/enc_temp_folder/9532ad42f9bf304d9fb7388cf83b5966/dllmain.cpp b/enc_temp_folder/9532ad42f9bf304d9fb7388cf83b5966/dllmain.cpp
new file mode 100644
index 00000000..7d347097
--- /dev/null
+++ b/enc_temp_folder/9532ad42f9bf304d9fb7388cf83b5966/dllmain.cpp
@@ -0,0 +1,106 @@
+#include "pch.h"
+#include "hooks.h"
+#include "main.h"
+#include "squirrel.h"
+#include "tier0.h"
+#include "dedicated.h"
+#include "dedicatedmaterialsystem.h"
+#include "sourceconsole.h"
+#include "logging.h"
+#include "concommand.h"
+#include "modmanager.h"
+#include "filesystem.h"
+#include "serverauthentication.h"
+#include "scriptmodmenu.h"
+#include "scriptserverbrowser.h"
+#include "keyvalues.h"
+#include "masterserver.h"
+#include "gameutils.h"
+#include "chatcommand.h"
+#include "modlocalisation.h"
+#include "playlist.h"
+#include "securitypatches.h"
+#include "miscserverscript.h"
+
+bool initialised = false;
+
+BOOL APIENTRY DllMain( HMODULE hModule,
+ DWORD ul_reason_for_call,
+ LPVOID lpReserved
+ )
+{
+ switch (ul_reason_for_call)
+ {
+ case DLL_PROCESS_ATTACH:
+ case DLL_THREAD_ATTACH:
+ case DLL_THREAD_DETACH:
+ case DLL_PROCESS_DETACH:
+ break;
+ }
+
+ if (!initialised)
+ InitialiseNorthstar();
+ initialised = true;
+
+ return TRUE;
+}
+
+void WaitForDebugger(HMODULE baseAddress)
+{
+ // earlier waitfordebugger call than is in vanilla, just so we can debug stuff a little easier
+ if (CommandLine()->CheckParm("-waitfordebugger"))
+ {
+ while (!IsDebuggerPresent())
+ Sleep(100);
+ }
+}
+
+// in the future this will be called from launcher instead of dllmain
+void InitialiseNorthstar()
+{
+ InitialiseLogging();
+
+ // apply initial hooks
+ InstallInitialHooks();
+ InitialiseInterfaceCreationHooks();
+
+ AddDllLoadCallback("engine.dll", WaitForDebugger);
+ AddDllLoadCallback("engine.dll", InitialiseEngineGameUtilFunctions);
+ AddDllLoadCallback("server.dll", InitialiseServerGameUtilFunctions);
+ AddDllLoadCallback("engine.dll", InitialiseEngineSpewFuncHooks);
+
+ // dedi patches
+ {
+ AddDllLoadCallback("engine.dll", InitialiseDedicated);
+ AddDllLoadCallback("launcher.dll", InitialiseDedicatedOrigin);
+ AddDllLoadCallback("materialsystem_dx11.dll", InitialiseDedicatedMaterialSystem);
+ AddDllLoadCallback("engine.dll", InitialiseDedicatedRtechGame);
+ }
+
+ AddDllLoadCallback("engine.dll", InitialiseConVars);
+ AddDllLoadCallback("engine.dll", InitialiseConCommands);
+
+ // client-exclusive patches
+ {
+ AddDllLoadCallback("engine.dll", InitialiseClientEngineSecurityPatches);
+ AddDllLoadCallback("client.dll", InitialiseClientSquirrel);
+ AddDllLoadCallback("client.dll", InitialiseSourceConsole);
+ AddDllLoadCallback("engine.dll", InitialiseChatCommands);
+ AddDllLoadCallback("client.dll", InitialiseScriptModMenu);
+ AddDllLoadCallback("client.dll", InitialiseScriptServerBrowser);
+ AddDllLoadCallback("localize.dll", InitialiseModLocalisation);
+ }
+
+ AddDllLoadCallback("server.dll", InitialiseServerSquirrel);
+ AddDllLoadCallback("engine.dll", InitialiseServerAuthentication);
+ AddDllLoadCallback("engine.dll", InitialiseSharedMasterServer);
+ AddDllLoadCallback("server.dll", InitialiseMiscServerScriptCommand);
+
+ AddDllLoadCallback("engine.dll", InitialisePlaylistHooks);
+
+ AddDllLoadCallback("filesystem_stdio.dll", InitialiseFilesystem);
+ AddDllLoadCallback("engine.dll", InitialiseKeyValues);
+
+ // mod manager after everything else
+ AddDllLoadCallback("engine.dll", InitialiseModManager);
+} \ No newline at end of file