mirror of
https://github.com/geode-sdk/geode.git
synced 2025-03-24 03:39:56 -04:00
move forward compat hook toggling to macros
This commit is contained in:
parent
56cedaac32
commit
21caf514c2
7 changed files with 35 additions and 67 deletions
loader
include/Geode
src
|
@ -200,6 +200,33 @@ namespace geode {
|
|||
template <class> \
|
||||
void GEODE_CONCAT(geodeExecFunction, __LINE__)()
|
||||
|
||||
#define GEODE_FORWARD_COMPAT_DISABLE_HOOKS_INNER(message) \
|
||||
if (Loader::get()->isForwardCompatMode()) { \
|
||||
if (strlen(message)) { \
|
||||
log::warn("[Forward Compat] " message); \
|
||||
} \
|
||||
for (const auto& [_, hook] : self.m_hooks) { \
|
||||
hook->setAutoEnable(false); \
|
||||
} \
|
||||
}
|
||||
#define GEODE_FORWARD_COMPAT_ENABLE_HOOKS_INNER(message) \
|
||||
if (!Loader::get()->isForwardCompatMode()) { \
|
||||
if (strlen(message)) { \
|
||||
log::warn("[Forward Compat] " message); \
|
||||
} \
|
||||
for (const auto& [_, hook] : self.m_hooks) { \
|
||||
hook->setAutoEnable(false); \
|
||||
} \
|
||||
}
|
||||
#define GEODE_FORWARD_COMPAT_DISABLE_HOOKS(message) \
|
||||
static void onModify(const auto& self) { \
|
||||
GEODE_FORWARD_COMPAT_DISABLE_HOOKS_INNER(message) \
|
||||
}
|
||||
#define GEODE_FORWARD_COMPAT_ENABLE_HOOKS(message) \
|
||||
static void onModify(const auto& self) { \
|
||||
GEODE_FORWARD_COMPAT_ENABLE_HOOKS_INNER(message) \
|
||||
}
|
||||
|
||||
// #define GEODE_NEST1(macro, begin) \
|
||||
// macro(GEODE_CONCAT(begin, 0)), \
|
||||
// macro(GEODE_CONCAT(begin, 1)), \
|
||||
|
|
|
@ -3,15 +3,7 @@
|
|||
using namespace geode::prelude;
|
||||
|
||||
struct MyGameToolbox : Modify<MyGameToolbox, GameToolbox> {
|
||||
static void onModify(const auto& self) {
|
||||
if (!Loader::get()->isForwardCompatMode())
|
||||
return;
|
||||
log::warn("FixClippingRect disabled in forward compat");
|
||||
for (const auto& [_, hook] : self.m_hooks) {
|
||||
hook->setAutoEnable(false);
|
||||
}
|
||||
}
|
||||
|
||||
GEODE_FORWARD_COMPAT_DISABLE_HOOKS("FixClippingRect disabled")
|
||||
static void preVisitWithClippingRect(CCNode* node, CCRect rect) {
|
||||
if (node->isVisible()) {
|
||||
glEnable(0xc11);
|
||||
|
|
|
@ -14,14 +14,7 @@ struct CustomLoadingLayer : Modify<CustomLoadingLayer, LoadingLayer> {
|
|||
int m_geodeLoadStep = 0;
|
||||
int m_totalMods = 0;
|
||||
|
||||
static void onModify(const auto& self) {
|
||||
if (!Loader::get()->isForwardCompatMode())
|
||||
return;
|
||||
log::warn("Switching to fallback custom loading layer in forward compat");
|
||||
for (const auto& [_, hook] : self.m_hooks) {
|
||||
hook->setAutoEnable(false);
|
||||
}
|
||||
}
|
||||
GEODE_FORWARD_COMPAT_DISABLE_HOOKS("Switching to fallback custom loading layer")
|
||||
|
||||
void updateLoadedModsLabel() {
|
||||
auto allMods = Loader::get()->getAllMods();
|
||||
|
@ -192,14 +185,7 @@ struct CustomLoadingLayer : Modify<CustomLoadingLayer, LoadingLayer> {
|
|||
};
|
||||
|
||||
struct FallbackCustomLoadingLayer : Modify<FallbackCustomLoadingLayer, CCLayer> {
|
||||
static void onModify(const auto& self) {
|
||||
if (Loader::get()->isForwardCompatMode())
|
||||
return;
|
||||
for (const auto& [_, hook] : self.m_hooks) {
|
||||
hook->setAutoEnable(false);
|
||||
}
|
||||
}
|
||||
|
||||
GEODE_FORWARD_COMPAT_ENABLE_HOOKS("")
|
||||
bool init() {
|
||||
if (!CCLayer::init())
|
||||
return false;
|
||||
|
|
|
@ -49,13 +49,7 @@ struct CustomMenuLayer : Modify<CustomMenuLayer, MenuLayer> {
|
|||
if (!self.setHookPriority("MenuLayer::init", geode::node_ids::GEODE_ID_PRIORITY)) {
|
||||
log::warn("Failed to set MenuLayer::init hook priority, node IDs may not work properly");
|
||||
}
|
||||
|
||||
if (!Loader::get()->isForwardCompatMode())
|
||||
return;
|
||||
log::warn("MenuLayer stuff disabled in forward compat");
|
||||
for (const auto& [_, hook] : self.m_hooks) {
|
||||
hook->setAutoEnable(false);
|
||||
}
|
||||
GEODE_FORWARD_COMPAT_DISABLE_HOOKS_INNER("MenuLayer stuff disabled")
|
||||
}
|
||||
|
||||
CCSprite* m_geodeButton;
|
||||
|
|
|
@ -5,15 +5,7 @@ using namespace geode::prelude;
|
|||
#include <Geode/modify/AchievementNotifier.hpp>
|
||||
|
||||
struct SceneSwitch : Modify<SceneSwitch, AchievementNotifier> {
|
||||
static void onModify(const auto& self) {
|
||||
if (!Loader::get()->isForwardCompatMode())
|
||||
return;
|
||||
log::warn("persist disabled in forward compat");
|
||||
for (const auto& [_, hook] : self.m_hooks) {
|
||||
hook->setAutoEnable(false);
|
||||
}
|
||||
}
|
||||
|
||||
GEODE_FORWARD_COMPAT_DISABLE_HOOKS("persist disabled")
|
||||
void willSwitchToScene(CCScene* scene) {
|
||||
AchievementNotifier::willSwitchToScene(scene);
|
||||
SceneManager::get()->willSwitchToScene(scene);
|
||||
|
|
|
@ -23,15 +23,7 @@ namespace {
|
|||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
GEODE_FORWARD_COMPAT_DISABLE_HOOKS("save moved to CCApplication::gameDidSave()")
|
||||
void trySaveGame(bool p0) {
|
||||
saveModData();
|
||||
return AppDelegate::trySaveGame(p0);
|
||||
|
@ -39,14 +31,7 @@ struct SaveLoader : Modify<SaveLoader, AppDelegate> {
|
|||
};
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
GEODE_FORWARD_COMPAT_ENABLE_HOOKS("")
|
||||
void gameDidSave() {
|
||||
saveModData();
|
||||
return CCApplication::gameDidSave();
|
||||
|
|
|
@ -388,15 +388,7 @@ void geode::cocos::reloadTextures(CreateLayerFunc returnTo) {
|
|||
}
|
||||
|
||||
struct LoadingFinished : Modify<LoadingFinished, LoadingLayer> {
|
||||
static void onModify(const auto& self) {
|
||||
if (!Loader::get()->isForwardCompatMode())
|
||||
return;
|
||||
log::warn("geode::cocos::reloadTextures disabled in forward compat");
|
||||
for (const auto& [_, hook] : self.m_hooks) {
|
||||
hook->setAutoEnable(false);
|
||||
}
|
||||
}
|
||||
|
||||
GEODE_FORWARD_COMPAT_DISABLE_HOOKS("geode::cocos::reloadTextures disabled")
|
||||
void loadAssets() {
|
||||
// loadFinished is inlined on Macchew OS :sob:
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue