diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-07-08 15:33:31 +0100 |
---|---|---|
committer | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-07-08 15:33:31 +0100 |
commit | 4c4d605d10109e02708984755405bbe0947ef5c4 (patch) | |
tree | 1d5ffe7909b24b6c79fd444b420741e85f6c2b57 /NorthstarDedicatedTest/dllmain.cpp | |
parent | 8dfb8e866119f653802609b24165b0458149c4cc (diff) | |
download | NorthstarLauncher-4c4d605d10109e02708984755405bbe0947ef5c4.tar.gz NorthstarLauncher-4c4d605d10109e02708984755405bbe0947ef5c4.zip |
initial commit
Diffstat (limited to 'NorthstarDedicatedTest/dllmain.cpp')
-rw-r--r-- | NorthstarDedicatedTest/dllmain.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/NorthstarDedicatedTest/dllmain.cpp b/NorthstarDedicatedTest/dllmain.cpp new file mode 100644 index 00000000..f71a39a8 --- /dev/null +++ b/NorthstarDedicatedTest/dllmain.cpp @@ -0,0 +1,49 @@ +#include "pch.h" +#include "hooks.h" +#include "main.h" +#include "squirrel.h" +#include "dedicated.h" +#include "sourceconsole.h" +#include <iostream> + +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: + DisableThreadLibraryCalls(hModule); + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + + InitialiseNorthstar(); + + return TRUE; +} + +// this is called from the injector and initialises stuff, dllmain is called multiple times while this should only be called once +void InitialiseNorthstar() +{ + AllocConsole(); + freopen("CONOUT$", "w", stdout); + AddLoggingSink(DefaultLoggingSink); + + // apply hooks + InstallInitialHooks(); + + if (IsDedicated()) + AddDllLoadCallback("engine.dll", InitialiseDedicated); + + if (!IsDedicated()) + { + AddDllLoadCallback("client.dll", InitialiseClientSquirrel); + AddDllLoadCallback("client.dll", InitialiseSourceConsole); + } + + AddDllLoadCallback("server.dll", InitialiseServerSquirrel); +}
\ No newline at end of file |