blob: 1191307fb985aacaf2ab5ae6b6e9b0d6b4cb82e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#include "logging/logging.h"
#include "logging/crashhandler.h"
#include "core/memalloc.h"
#include "core/vanilla.h"
#include "config/profile.h"
#include "plugins/plugins.h"
#include "plugins/pluginmanager.h"
#include "util/version.h"
#include "util/wininfo.h"
#include "squirrel/squirrel.h"
#include "server/serverpresence.h"
#include "rapidjson/document.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/writer.h"
#include "rapidjson/error/en.h"
#include <string.h>
#include <filesystem>
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
NOTE_UNUSED(hModule);
NOTE_UNUSED(lpReserved);
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
g_NorthstarModule = hModule;
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
bool InitialiseNorthstar()
{
static bool bInitialised = false;
if (bInitialised)
return false;
bInitialised = true;
InitialiseNorthstarPrefix();
// initialise the console if needed (-northstar needs this)
InitialiseConsole();
// initialise logging before most other things so that they can use spdlog and it have the proper formatting
InitialiseLogging();
InitialiseVersion();
CreateLogFiles();
g_pCrashHandler = new CCrashHandler();
bool bAllFatal = strstr(GetCommandLineA(), "-crash_handle_all") != NULL;
g_pCrashHandler->SetAllFatal(bAllFatal);
// determine if we are in vanilla-compatibility mode
g_pVanillaCompatibility = new VanillaCompatibility();
g_pVanillaCompatibility->SetVanillaCompatibility(strstr(GetCommandLineA(), "-vanilla") != NULL);
// Write launcher version to log
StartupLog();
InstallInitialHooks();
g_pServerPresence = new ServerPresenceManager();
g_pPluginManager = new PluginManager();
g_pPluginManager->LoadPlugins();
InitialiseSquirrelManagers();
// Fix some users' failure to connect to respawn datacenters
SetEnvironmentVariableA("OPENSSL_ia32cap", "~0x200000200000000");
curl_global_init_mem(CURL_GLOBAL_DEFAULT, _malloc_base, _free_base, _realloc_base, _strdup_base, _calloc_base);
// run callbacks for any libraries that are already loaded by now
CallAllPendingDLLLoadCallbacks();
return true;
}
|