fallback save mod data for forward compat

This commit is contained in:
ConfiG 2024-01-13 02:40:14 +03:00
parent 83f7a0b18c
commit f6cde6a62f
No known key found for this signature in database
GPG key ID: 44DA1983F524C11B

View file

@ -3,18 +3,10 @@
using namespace geode::prelude;
#include <Geode/modify/AppDelegate.hpp>
#include <Geode/modify/CCApplication.hpp>
struct SaveLoader : Modify<SaveLoader, AppDelegate> {
static void onModify(const auto& self) {
if (!Loader::get()->isForwardCompatMode())
return;
log::warn("save disabled in forward compat");
for (const auto& [_, hook] : self.m_hooks) {
hook->setAutoEnable(false);
}
}
void trySaveGame(bool p0) {
namespace {
void saveModData() {
log::info("Saving mod data...");
log::pushNest();
@ -27,7 +19,36 @@ struct SaveLoader : Modify<SaveLoader, AppDelegate> {
log::info("Took {}s", static_cast<float>(time) / 1000.f);
log::popNest();
}
}
struct SaveLoader : Modify<SaveLoader, AppDelegate> {
static void onModify(const auto& self) {
if (!Loader::get()->isForwardCompatMode())
return;
log::warn("save moved in forward compat");
for (const auto& [_, hook] : self.m_hooks) {
hook->setAutoEnable(false);
}
}
void trySaveGame(bool p0) {
saveModData();
return AppDelegate::trySaveGame(p0);
}
};
struct FallbackSaveLoader : Modify<FallbackSaveLoader, CCApplication> {
static void onModify(const auto& self) {
if (Loader::get()->isForwardCompatMode())
return;
for (const auto& [_, hook] : self.m_hooks) {
hook->setAutoEnable(false);
}
}
void gameDidSave() {
saveModData();
return CCApplication::gameDidSave();
}
};