#pragma once #include #include class LaunchSettings { public: // winmain static bool HandleCommandline(const wchar_t* lpCmdLine); // wmain static bool HandleCommandline(int argc, wchar_t* argv[]); // main (unix) static bool HandleCommandline(int argc, char* argv[]); static bool HandleCommandline(const std::vector& args); static std::optional GetLoadFile() { return s_load_game_file; } static std::optional GetMLCPath() { return s_mlc_path; } static std::optional RenderUpsideDownEnabled() { return s_render_upside_down; } static std::optional FullscreenEnabled() { return s_fullscreen; } static bool NSightModeEnabled() { return s_nsight_mode; } static bool ForceIntelLegacyEnabled() { return s_force_intel_legacy; } static bool ForceInterpreter() { return s_force_interpreter; }; static std::optional GetPersistentId() { return s_persistent_id; } static std::string GetActURLPrefix() { return serviceURL_ACT; } static std::string GetServiceURL_ecs() { return serviceURL_ECS; } private: inline static std::optional s_load_game_file{}; inline static std::optional s_mlc_path{}; inline static std::optional s_render_upside_down{}; inline static std::optional s_fullscreen{}; inline static bool s_nsight_mode = false; inline static bool s_force_intel_legacy = false; inline static bool s_force_interpreter = false; inline static std::optional s_persistent_id{}; // service URLS inline static std::string serviceURL_ACT = "https://account.nintendo.net"; inline static std::string serviceURL_ECS = "https://ecs.wup.shop.nintendo.net/ecs/services/ECommerceSOAP"; // todo - npts and other boss urls static bool ExtractorTool(std::wstring_view wud_path, std::string_view output_path, std::wstring_view log_path); };