#include #include #include #include #include std::unique_ptr g_appInstance{nullptr}; extern HICON g_SharedWindowIcon; static void ShowAddressLibraryError(const wchar_t* apGamePath) { auto errorDetail = fmt::format(L"Looking for it here: {}\\Data\\SKSE\\Plugins", apGamePath); Base::TaskDialog dia(g_SharedWindowIcon, L"Error", L"Failed to load Skyrim Address Library", L"Make sure to use \"All in one (1.6.X)\"", errorDetail.c_str()); dia.AppendButton(0xBEED, L"Visit troubleshooting page on wiki.tiltedphoques.com"); dia.AppendButton(0xBEEF, L"Visit Address Library modpage on nexusmods.com"); const int result = dia.Show(); if (result == 0xBEEF) { ShellExecuteW(nullptr, L"open", LR"(https://www.nexusmods.com/skyrimspecialedition/mods/32444?tab=files)", nullptr, nullptr, SW_SHOWNORMAL); } else if (result == 0xBEED) { ShellExecuteW(nullptr, L"open", LR"(https://wiki.tiltedphoques.com/tilted-online/guides/troubleshooting/address-library-error)", nullptr, nullptr, SW_SHOWNORMAL); } exit(4); } void RunTiltedInit(const std::filesystem::path& acGamePath, const String& aExeVersion) { if (!VersionDb::Get().Load(acGamePath, aExeVersion)) { ShowAddressLibraryError(acGamePath.c_str()); } // VersionDb::Get().DumpToTextFile(R"(S:\Work\Tilted\fallout\_addresslib.txt)"); g_appInstance = std::make_unique(); TiltedOnlineApp::InstallHooks2(); TP_HOOK_COMMIT; } void RunTiltedApp() { g_appInstance->BeginMain(); }