From 153880c286b657479980c180e283689fda8edc9a Mon Sep 17 00:00:00 2001 From: ConfiG <cgytrus@cgyt.ru> Date: Sat, 13 Jan 2024 03:11:04 +0300 Subject: [PATCH] show message box on first forward compat startup --- loader/src/load.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/loader/src/load.cpp b/loader/src/load.cpp index 8f682d5d..0ae9462b 100644 --- a/loader/src/load.cpp +++ b/loader/src/load.cpp @@ -60,6 +60,7 @@ $execute { void tryLogForwardCompat() { if (!LoaderImpl::get()->isForwardCompatMode()) return; + // TODO: change text later log::warn("+-----------------------------------------------------------------------------------------------+"); log::warn("| Geode is running in a newer version of GD than Geode targets. |"); log::warn("| UI is going to be disabled, platform console is forced on and crashes can be more common. |"); @@ -67,6 +68,28 @@ void tryLogForwardCompat() { log::warn("+-----------------------------------------------------------------------------------------------+"); } +void tryShowForwardCompat() { + if (!LoaderImpl::get()->isForwardCompatMode()) return; + + if (Mod::get()->getSavedValue<std::string>("last-forward-compat-warn-popup-ver", "_") == + LoaderImpl::get()->getGameVersion()) + return; + + // TODO: change text later + LoaderImpl::get()->platformMessageBox( + "Forward Compatibility Warning", + "Geode is running in a newer version of GD than Geode targets.\n" + "UI is going to be disabled, platform console is forced on and crashes can be more common.\n" + "However, if your game crashes, it is probably caused by an outdated mod and not Geode itself.", + Severity::Warning + ); + + Mod::get()->setSavedValue<std::string>( + "last-forward-compat-warn-popup-ver", + LoaderImpl::get()->getGameVersion() + ); +} + int geodeEntry(void* platformData) { log::Logger::get()->setup(); @@ -102,6 +125,8 @@ int geodeEntry(void* platformData) { return 1; } + tryShowForwardCompat(); + // open console if (LoaderImpl::get()->isForwardCompatMode() || Mod::get()->getSettingValue<bool>("show-platform-console")) {