Dalamud/Dalamud.Boot/DalamudStartInfo.h

51 lines
1.6 KiB
C++

#pragma once
struct DalamudStartInfo {
enum class WaitMessageboxFlags : int {
None = 0,
BeforeInitialize = 1 << 0,
BeforeDalamudEntrypoint = 1 << 1,
BeforeDalamudConstruct = 1 << 2,
};
friend void from_json(const nlohmann::json&, WaitMessageboxFlags&);
enum class DotNetOpenProcessHookMode : int {
ImportHooks = 0,
DirectHook = 1,
};
friend void from_json(const nlohmann::json&, DotNetOpenProcessHookMode&);
enum class ClientLanguage : int {
Japanese,
English,
German,
French,
};
friend void from_json(const nlohmann::json&, ClientLanguage&);
std::string WorkingDirectory;
std::string ConfigurationPath;
std::string PluginDirectory;
std::string DefaultPluginDirectory;
std::string AssetDirectory;
ClientLanguage Language = ClientLanguage::English;
std::string GameVersion;
int DelayInitializeMs = 0;
std::string BootLogPath;
bool BootShowConsole = false;
bool BootDisableFallbackConsole = false;
WaitMessageboxFlags BootWaitMessageBox = WaitMessageboxFlags::None;
bool BootWaitDebugger = false;
bool BootVehEnabled = false;
bool BootVehFull = false;
bool BootEnableEtw = false;
DotNetOpenProcessHookMode BootDotnetOpenProcessHookMode = DotNetOpenProcessHookMode::ImportHooks;
std::set<std::string> BootEnabledGameFixes{};
std::set<std::string> BootUnhookDlls{};
friend void from_json(const nlohmann::json&, DalamudStartInfo&);
void from_envvars();
};
extern DalamudStartInfo g_startInfo;