show message box on first forward compat startup

This commit is contained in:
ConfiG 2024-01-13 03:11:04 +03:00
parent d81e1ba072
commit 153880c286
No known key found for this signature in database
GPG key ID: 44DA1983F524C11B

View file

@ -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")) {