Skip to content

Commit 1895ca8

Browse files
authored
Merge pull request #8 from OmgRod/copilot/fix-6
Fix islands progression issue - levels now unlock immediately after completion
2 parents 15be67b + 1d341ae commit 1895ca8

File tree

3 files changed

+64
-4
lines changed

3 files changed

+64
-4
lines changed

changelog.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
# 1.0.0-prerelease.1
2-
3-
- Initial Release
1+
# 1.0.0-prerelease.1
2+
3+
- Initial Release
4+
- Fixed islands progression issue where players had to leave and return to layer to progress to next level

include/Surge/layers/GDSIslandSelectLayer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,5 @@ class GDSIslandSelectLayer : public CCLayer, public BoomScrollLayerDelegate, pub
139139
void updatePageWithObject(CCObject* page, CCObject* object) override;
140140
void onEnterTransitionDidFinish() override;
141141
void updatePageButtons();
142+
void updateProgressionStatus();
142143
};

src/layers/GDSIslandSelectLayer.cpp

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1515,7 +1515,8 @@ void GDSIslandSelectLayer::onEnterTransitionDidFinish() {
15151515
m_scaleWithBounce2 = CCEaseBounceOut::create(CCScaleTo::create(0.5,1));
15161516
}
15171517

1518-
// gonna look into it later
1518+
// Update progression status when layer becomes active again
1519+
updateProgressionStatus();
15191520
}
15201521

15211522
void GDSIslandSelectLayer::updatePageButtons() {
@@ -1534,4 +1535,61 @@ void GDSIslandSelectLayer::updatePageButtons() {
15341535
m_prevPageBtn->setVisible(true);
15351536
}
15361537
}
1538+
}
1539+
1540+
void GDSIslandSelectLayer::updateProgressionStatus() {
1541+
auto GLM = GameLevelManager::sharedState();
1542+
1543+
// Reload level data to ensure we have the latest completion percentages
1544+
m_iLevels.iLevel1 = GLM->getMainLevel(2001, false);
1545+
m_iLevels.iLevel2 = GLM->getMainLevel(2002, false);
1546+
m_iLevels.iLevel3 = GLM->getMainLevel(2003, false);
1547+
m_iLevels.iLevel4 = GLM->getMainLevel(2004, false);
1548+
m_iLevels.iLevel5 = GLM->getMainLevel(2005, false);
1549+
m_iLevels.iLevel6 = GLM->getMainLevel(2006, false);
1550+
m_iLevels.iLevel7 = GLM->getMainLevel(2007, false);
1551+
m_iLevels.iLevel8 = GLM->getMainLevel(2008, false);
1552+
m_iLevels.iLevel9 = GLM->getMainLevel(2009, false);
1553+
m_iLevels.iLevel10 = GLM->getMainLevel(2010, false);
1554+
1555+
// Reload completion status from saved values
1556+
m_iLevels.level1complete = Mod::get()->getSavedValue<int>("islandlevel1complete");
1557+
m_iLevels.level2complete = Mod::get()->getSavedValue<int>("islandlevel2complete");
1558+
m_iLevels.level3complete = Mod::get()->getSavedValue<int>("islandlevel3complete");
1559+
m_iLevels.level4complete = Mod::get()->getSavedValue<int>("islandlevel4complete");
1560+
m_iLevels.level5complete = Mod::get()->getSavedValue<int>("islandlevel5complete");
1561+
m_iLevels.level6complete = Mod::get()->getSavedValue<int>("islandlevel6complete");
1562+
m_iLevels.level7complete = Mod::get()->getSavedValue<int>("islandlevel7complete");
1563+
m_iLevels.level8complete = Mod::get()->getSavedValue<int>("islandlevel8complete");
1564+
m_iLevels.level9complete = Mod::get()->getSavedValue<int>("islandlevel9complete");
1565+
m_iLevels.level10complete = Mod::get()->getSavedValue<int>("islandlevel10complete");
1566+
1567+
// Simple progression check - make levels visible if they should be unlocked
1568+
if (m_iLevels.iLevel1->m_normalPercent == 100) {
1569+
m_iLevels.level2Btn->setVisible(true);
1570+
}
1571+
if (m_iLevels.iLevel2->m_normalPercent == 100) {
1572+
m_iLevels.level3Btn->setVisible(true);
1573+
}
1574+
if (m_iLevels.iLevel3->m_normalPercent == 100) {
1575+
m_iLevels.level4Btn->setVisible(true);
1576+
}
1577+
if (m_iLevels.iLevel4->m_normalPercent == 100) {
1578+
m_iLevels.level5Btn->setVisible(true);
1579+
}
1580+
if (m_iLevels.iLevel5->m_normalPercent == 100) {
1581+
m_iLevels.level6Btn->setVisible(true);
1582+
}
1583+
if (m_iLevels.iLevel6->m_normalPercent == 100) {
1584+
m_iLevels.level7Btn->setVisible(true);
1585+
}
1586+
if (m_iLevels.iLevel7->m_normalPercent == 100) {
1587+
m_iLevels.level8Btn->setVisible(true);
1588+
}
1589+
if (m_iLevels.iLevel8->m_normalPercent == 100) {
1590+
m_iLevels.level9Btn->setVisible(true);
1591+
}
1592+
if (m_iLevels.iLevel9->m_normalPercent == 100) {
1593+
m_iLevels.level10Btn->setVisible(true);
1594+
}
15371595
}

0 commit comments

Comments
 (0)