Skip to content

Commit

Permalink
v1.2.9
Browse files Browse the repository at this point in the history
  • Loading branch information
hiimjasmine00 committed Jul 6, 2024
1 parent d3046ed commit d1720aa
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 16 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64")
set(CMAKE_CXX_VISIBILITY_PRESET hidden)

project(FakeRate VERSION 1.2.8)
project(FakeRate VERSION 1.2.9)

add_library(${PROJECT_NAME} SHARED
src/FakeRate.cpp
Expand Down
4 changes: 4 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Fake Rate Changelog
## v1.2.9 (2024-07-05)
- Fixed a bug that caused two difficulty faces to be toggled in the difficulty selection popup with More Difficulties enabled
- Fixed incompatibility with the mod "GodlikeFaces" by adyagmd

## v1.2.8 (2024-07-04)
- Fixed a bug that caused the game to crash when a difficulty face in the difficulty selection popup was clicked with More Difficulties uninstalled or disabled (Somehow this bug keeps coming back)

Expand Down
2 changes: 1 addition & 1 deletion mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"win": "2.206",
"mac": "2.206"
},
"version": "v1.2.8",
"version": "v1.2.9",
"id": "hiimjustin000.fake_rate",
"name": "Fake Rate",
"developer": "hiimjustin000",
Expand Down
13 changes: 6 additions & 7 deletions src/FREditPopup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ bool FREditPopup::setup(GJGameLevel* level, int stars, int feature, int difficul

auto addButton = CCMenuItemExt::createSpriteExtra(ButtonSprite::create("Add", "goldFont.fnt", "GJ_button_01.png", 0.8f), [this, callback](auto) {
auto vec = Mod::get()->getSavedValue<std::vector<FakeRateSaveData>>("fake-rate", {});
auto it = std::find_if(vec.begin(), vec.end(), [this](auto const& item) {
auto it = std::find_if(vec.begin(), vec.end(), [this](FakeRateSaveData const& item) {
return item.id == m_level->m_levelID;
});
if (it != vec.end()) {
Expand Down Expand Up @@ -119,7 +119,7 @@ bool FREditPopup::setup(GJGameLevel* level, int stars, int feature, int difficul
auto removeButton = CCMenuItemExt::createSpriteExtra(ButtonSprite::create("Remove", "goldFont.fnt", "GJ_button_06.png", 0.8f), [this, callback](auto) {
auto vec = Mod::get()->getSavedValue<std::vector<FakeRateSaveData>>("fake-rate", {});
if (vec.empty()) return;
vec.erase(std::remove_if(vec.begin(), vec.end(), [this](auto const& item) {
vec.erase(std::remove_if(vec.begin(), vec.end(), [this](FakeRateSaveData const& item) {
return item.id == m_level->m_levelID;
}), vec.end());
Mod::get()->setSavedValue("fake-rate", vec);
Expand All @@ -142,8 +142,8 @@ void FREditPopup::setIDPopupClosed(SetIDPopup*, int stars) {
}

void FREditPopup::updateLabels() {
m_difficultySprite->updateDifficultyFrame(m_difficulty, GJDifficultyName::Long);
m_difficultySprite->updateFeatureState((GJFeatureState)m_feature);
m_difficultySprite->updateDifficultyFrame(m_difficulty, GJDifficultyName::Long);
m_difficultySprite->setPositionY(100.0f + (m_difficulty > 5 ? 5.0f : 0.0f) + (m_stars > 0 ? 10.0f : 0.0f));
m_starSprite->setPosition({ m_difficultySprite->getPositionX() + 8.0f, m_difficultySprite->getPositionY() - 30.0f - (m_difficulty > 5 ? 9.0f : 0.0f) });
m_starSprite->setVisible(m_stars > 0);
Expand Down Expand Up @@ -242,15 +242,14 @@ void FRSetDifficultyPopup::createDifficultyToggle(CCMenu* menu, int difficulty,
frameName = m_legacy ? fmt::format("uproxide.more_difficulties/MD_Difficulty{:02d}_Legacy.png", moreDifficultiesOverride)
: fmt::format("uproxide.more_difficulties/MD_Difficulty{:02d}.png", moreDifficultiesOverride);
else if (moreDifficultiesOverride > 0) return;
auto toggle = CCMenuItemExt::createSpriteExtraWithFrameName(frameName.c_str(), 1.0f, [this, difficulty, moreDifficultiesOverride](auto sender) {
auto toggle = CCMenuItemExt::createSpriteExtraWithFrameName(frameName.c_str(), 1.0f, [this, difficulty, moreDifficultiesOverride](CCMenuItemSpriteExtra* sender) {
m_difficulty = difficulty;
m_moreDifficultiesOverride = moreDifficultiesOverride;
FakeRate::toggle(m_selected->getNormalImage(), false);
FakeRate::toggle(sender->getNormalImage(), true);
m_selected = sender;
});
auto isToggled = (moreDifficultiesOverride > 0 && moreDifficultiesOverride == m_moreDifficultiesOverride) ||
(m_moreDifficultiesOverride <= 0 && m_difficulty == difficulty);
auto isToggled = moreDifficultiesOverride == m_moreDifficultiesOverride && (m_moreDifficultiesOverride <= 0 ? difficulty == m_difficulty : true);
FakeRate::toggle(toggle->getNormalImage(), isToggled);
m_selected = isToggled ? toggle : m_selected;
menu->addChild(toggle);
Expand Down Expand Up @@ -306,7 +305,7 @@ void FRSetFeaturePopup::createFeatureToggle(CCMenu* menu, GJFeatureState feature
mdSprite->setPosition(difficultySprite->getContentSize() / 2 + (m_legacy ? CCPoint { 0.0f, 0.0f } : CCPoint { 0.25f, -0.1f }));
difficultySprite->setOpacity(0);
}
auto toggle = CCMenuItemExt::createSpriteExtra(difficultySprite, [this, feature](auto sender) {
auto toggle = CCMenuItemExt::createSpriteExtra(difficultySprite, [this, feature](CCMenuItemSpriteExtra* sender) {
m_feature = feature;
FakeRate::toggle(m_selected->getNormalImage(), false);
if (auto particleSystem = getChildOfType<CCParticleSystemQuad>(m_selected->getNormalImage(), 0)) particleSystem->setVisible(false);
Expand Down
7 changes: 4 additions & 3 deletions src/FakeRate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,13 @@ std::string FakeRate::getSpriteName(CCSprite* sprite) {

void FakeRate::toggle(CCNode* node, bool enabled) {
if (auto sprite = typeinfo_cast<CCSprite*>(node)) {
sprite->setColor(enabled ? ccColor3B { 255, 255, 255 } : ccColor3B { 125, 125, 125 });
auto color = enabled ? ccColor3B { 255, 255, 255 } : ccColor3B { 125, 125, 125 };
sprite->setColor(color);

if (sprite->getChildren()) {
auto children = sprite->getChildren();
for (auto i = 0; i < children->count(); i++) {
if (auto child = typeinfo_cast<CCSprite*>(children->objectAtIndex(i))) child->setColor(enabled ? ccColor3B { 255, 255, 255 } : ccColor3B { 125, 125, 125 });
for (int i = 0; i < children->count(); i++) {
if (auto child = typeinfo_cast<CCSprite*>(children->objectAtIndex(i))) child->setColor(color);
}
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class $modify(FRLevelInfoLayer, LevelInfoLayer) {

void checkFakeRate() {
auto vec = Mod::get()->getSavedValue<std::vector<FakeRateSaveData>>("fake-rate", {});
auto it = std::find_if(vec.begin(), vec.end(), [this](auto const& item) { return item.id == m_level->m_levelID; });
auto it = std::find_if(vec.begin(), vec.end(), [this](FakeRateSaveData const& item) { return item.id == m_level->m_levelID; });
auto stars = m_level->m_stars.value();
auto starsRequested = m_level->m_starsRequested;
if (it != vec.end()) updateFakeRate(it->stars, it->feature, it->difficulty, it->moreDifficultiesOverride, false, true);
Expand Down Expand Up @@ -99,8 +99,8 @@ class $modify(FRLevelInfoLayer, LevelInfoLayer) {
auto winSize = CCDirector::sharedDirector()->getWinSize();
auto gsm = GameStatsManager::sharedState();
auto showStars = stars > 0 || m_level->m_dailyID > 0 || m_level->m_gauntletLevel;
m_difficultySprite->updateDifficultyFrame(difficulty, GJDifficultyName::Long);
m_difficultySprite->updateFeatureState((GJFeatureState)feature);
m_difficultySprite->updateDifficultyFrame(difficulty, GJDifficultyName::Long);
CCNode* nodeToSetPosition = m_difficultySprite;
CCNode* difficultySpriteParent = m_difficultySprite->getParent();
if (Loader::get()->isModLoaded("acaruso.horn")) {
Expand Down Expand Up @@ -230,7 +230,7 @@ class $modify(FRLevelCell, LevelCell) {
if (!difficultyContainer) difficultyContainer = m_mainLayer->getChildByID("grd-demon-icon-layer");
if (difficultyContainer) {
auto vec = Mod::get()->getSavedValue<std::vector<FakeRateSaveData>>("fake-rate", {});
auto it = std::find_if(vec.begin(), vec.end(), [level](auto const& item) { return item.id == level->m_levelID; });
auto it = std::find_if(vec.begin(), vec.end(), [level](FakeRateSaveData const& item) { return item.id == level->m_levelID; });
if (it != vec.end()) {
auto difficultySprite = static_cast<GJDifficultySprite*>(difficultyContainer->getChildByID("difficulty-sprite"));
if (auto betweenDifficultySprite = static_cast<CCSprite*>(difficultyContainer->getChildByID("hiimjustin000.demons_in_between/between-difficulty-sprite"))) {
Expand All @@ -256,8 +256,8 @@ class $modify(FRLevelCell, LevelCell) {
}

auto& fakeRateData = *it;
difficultySprite->updateDifficultyFrame(fakeRateData.difficulty, GJDifficultyName::Short);
difficultySprite->updateFeatureState((GJFeatureState)fakeRateData.feature);
difficultySprite->updateDifficultyFrame(fakeRateData.difficulty, GJDifficultyName::Short);
auto addCoins = level->m_coins > 0 && !m_compactView;
auto showStars = fakeRateData.stars > 0 || level->m_dailyID > 0;
difficultySprite->setPositionY((showStars || addCoins ? 5.0f : 0.0f) + (showStars && addCoins ? 9.0f : 0.0f) + (level->m_dailyID > 0 ? 10.0f : 0.0f));
Expand Down

0 comments on commit d1720aa

Please sign in to comment.