From 1939ffb844139241e9484297891ffcebe7826899 Mon Sep 17 00:00:00 2001 From: Justin Pridgen Date: Mon, 18 Nov 2024 22:16:21 -0500 Subject: [PATCH] firemario211 --- CMakeLists.txt | 2 +- changelog.md | 3 +++ mod.json | 2 +- src/DemonsInBetween.hpp | 4 ++-- src/hooks/LevelPage.cpp | 13 ++++++++++--- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 976fbac..4136340 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64") set(CMAKE_CXX_VISIBILITY_PRESET hidden) -project(DemonsInBetween VERSION 1.3.0) +project(DemonsInBetween VERSION 1.3.1) add_library(${PROJECT_NAME} SHARED src/classes/DIBSearchPopup.cpp diff --git a/changelog.md b/changelog.md index 285b752..949f06a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,7 @@ # Demons In Between Changelog +## v1.3.1 (2024-11-18) +- Fixed an incompatibility with the mod "Overcharged Main Levels" by Firee + ## v1.3.0 (2024-11-15) - Ported to Geode v4.0.0-beta.1 diff --git a/mod.json b/mod.json index adbb686..b0eb94d 100644 --- a/mod.json +++ b/mod.json @@ -5,7 +5,7 @@ "win": "2.2074", "mac": "2.2074" }, - "version": "v1.3.0", + "version": "v1.3.1", "id": "hiimjustin000.demons_in_between", "name": "Demons In Between", "developer": "hiimjustin000", diff --git a/src/DemonsInBetween.hpp b/src/DemonsInBetween.hpp index 707ebb4..127d741 100644 --- a/src/DemonsInBetween.hpp +++ b/src/DemonsInBetween.hpp @@ -8,7 +8,7 @@ struct LadderDemon { }; class DemonsInBetween { -private: +public: inline static std::vector LONG_OFFSETS = { { 0.0f, -5.0f }, { 0.125f, -5.0f }, { 0.0f, -5.0f }, { 0.0f, -5.125f }, { 0.25f, -5.0f }, { 0.125f, -4.75f }, { 0.0f, -5.0f }, { 0.0f, -4.125f }, { -0.125f, -4.125f }, { 0.0f, -4.0f }, @@ -25,7 +25,7 @@ class DemonsInBetween { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 17, 18, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; -public: + inline static std::vector GDDL = {}; inline static std::vector GDDL_MAIN = {}; inline static matjson::Value GDDL_CACHE = {}; diff --git a/src/hooks/LevelPage.cpp b/src/hooks/LevelPage.cpp index ed406fc..2201a64 100644 --- a/src/hooks/LevelPage.cpp +++ b/src/hooks/LevelPage.cpp @@ -4,6 +4,10 @@ using namespace geode::prelude; #include class $modify(DIBLevelPage, LevelPage) { + static void onModify(auto& self) { + (void)self.setHookPriority("LevelPage::updateDynamicPage", -1); // overcharged main levels is 0 D: + } + void updateDynamicPage(GJGameLevel* level) { LevelPage::updateDynamicPage(level); @@ -17,9 +21,12 @@ class $modify(DIBLevelPage, LevelPage) { auto demon = DemonsInBetween::demonForLevel(level, true); if (demon.id == 0 || demon.difficulty == 0) return; - auto demonSprite = CCSprite::createWithSpriteFrameName(fmt::format("DIB_{:02d}_001.png"_spr, demon.difficulty).c_str()); - demonSprite->setPosition(m_difficultySprite->getPosition()); - demonSprite->setScale(1.1f); + auto overcharged = Loader::get()->getLoadedMod("firee.overchargedlevels"); + auto overchargedEnabled = overcharged && overcharged->getSettingValue("enabled"); + auto demonSprite = CCSprite::createWithSpriteFrameName(fmt::format("DIB_{:02d}{}_001.png"_spr, demon.difficulty, overchargedEnabled ? "_btn" : "").c_str()); + demonSprite->setPosition(m_difficultySprite->getPosition() + + (overchargedEnabled ? DemonsInBetween::SHORT_OFFSETS[(size_t)demon.difficulty - 1] * 0.9f : CCPoint { 0.0f, 0.0f })); + demonSprite->setScale(overchargedEnabled ? 0.9f : 1.1f); demonSprite->setID("between-difficulty-sprite"_spr); m_levelDisplay->addChild(demonSprite); m_difficultySprite->setVisible(false);