From 929abfe5f2ce44178526ec291831b8b67113eef4 Mon Sep 17 00:00:00 2001 From: Peter Repukat Date: Wed, 12 Oct 2022 13:06:26 +0200 Subject: [PATCH] GlosSITarget: Parse and impl "killEGS" --- GlosSITarget/AppLauncher.cpp | 4 ++-- GlosSITarget/Settings.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/GlosSITarget/AppLauncher.cpp b/GlosSITarget/AppLauncher.cpp index 7cf9179..71dae27 100644 --- a/GlosSITarget/AppLauncher.cpp +++ b/GlosSITarget/AppLauncher.cpp @@ -122,7 +122,7 @@ void AppLauncher::update() egs_has_launched_game_ = true; } if (Settings::launch.closeOnExit && Settings::launch.launch) { - if (was_egs_launch_ && Settings::common.ignoreEGS) { + if (was_egs_launch_ && (Settings::common.ignoreEGS || Settings::common.killEGS)) { if (egs_has_launched_game_ && filtered_pids.empty()) { spdlog::info("Configured to close on all children exit. Shutting down after game launched via EGS quit..."); shutdown_(); @@ -158,7 +158,7 @@ std::vector AppLauncher::launchedPids() pid_mutex_.lock(); std::vector res; res.reserve(pids_.size()); - if (Settings::common.ignoreEGS) { + if (!Settings::common.killEGS && Settings::common.ignoreEGS) { for (const auto& pid : pids_ | std::ranges::views::filter( [](DWORD pid) { return std::ranges::find( diff --git a/GlosSITarget/Settings.h b/GlosSITarget/Settings.h index 9227b1f..32b505b 100644 --- a/GlosSITarget/Settings.h +++ b/GlosSITarget/Settings.h @@ -64,6 +64,7 @@ inline struct Common { bool disable_watchdog = false; bool extendedLogging = false; bool ignoreEGS = true; + bool killEGS = false; std::wstring name; std::wstring icon; int version; @@ -196,6 +197,7 @@ inline void Parse(const nlohmann::basic_json<>& json) safeWStringParse(json, "icon", common.icon); safeParseValue(json, "version", common.version); safeParseValue(json, "ignoreEGS", common.ignoreEGS); + safeParseValue(json, "killEGS", common.killEGS); if (launch.launch) { launch.isUWP = checkIsUwp(launch.launchPath);