68 lines
1.7 KiB
C++
68 lines
1.7 KiB
C++
#include "pch.h"
|
|
#include "hooks.h"
|
|
#include "main.h"
|
|
#include "squirrel.h"
|
|
#include "dedicated.h"
|
|
#include "sourceconsole.h"
|
|
#include "logging.h"
|
|
#include "concommand.h"
|
|
#include "modmanager.h"
|
|
#include "filesystem.h"
|
|
#include "serverauthentication.h"
|
|
#include "scriptmodmenu.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:
|
|
DisableThreadLibraryCalls(hModule);
|
|
case DLL_THREAD_DETACH:
|
|
case DLL_PROCESS_DETACH:
|
|
break;
|
|
}
|
|
|
|
if (!initialised)
|
|
InitialiseNorthstar();
|
|
initialised = true;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
// in the future this will be called from launcher instead of dllmain
|
|
void InitialiseNorthstar()
|
|
{
|
|
InitialiseLogging();
|
|
|
|
// apply initial hooks
|
|
InstallInitialHooks();
|
|
InitialiseInterfaceCreationHooks();
|
|
|
|
if (IsDedicated())
|
|
AddDllLoadCallback("engine.dll", InitialiseDedicated);
|
|
|
|
AddDllLoadCallback("engine.dll", InitialiseConVars);
|
|
AddDllLoadCallback("engine.dll", InitialiseConCommands);
|
|
|
|
if (!IsDedicated())
|
|
{
|
|
AddDllLoadCallback("client.dll", InitialiseClientSquirrel);
|
|
|
|
AddDllLoadCallback("client.dll", InitialiseSourceConsole);
|
|
AddDllLoadCallback("client.dll", InitialiseScriptModMenu);
|
|
}
|
|
|
|
AddDllLoadCallback("server.dll", InitialiseServerSquirrel);
|
|
AddDllLoadCallback("engine.dll", InitialiseServerAuthentication);
|
|
|
|
AddDllLoadCallback("filesystem_stdio.dll", InitialiseFilesystem);
|
|
|
|
// mod manager after everything else
|
|
AddDllLoadCallback("engine.dll", InitialiseModManager);
|
|
} |