summaryrefslogtreecommitdiff
path: root/src/koopatlas/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/koopatlas/core.cpp')
-rw-r--r--src/koopatlas/core.cpp31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/koopatlas/core.cpp b/src/koopatlas/core.cpp
index 4709d8e..6378a27 100644
--- a/src/koopatlas/core.cpp
+++ b/src/koopatlas/core.cpp
@@ -470,9 +470,34 @@ void dScKoopatlas_c::executeState_Normal() {
CSMENU_ACTIVE(this->csMenu) = true;
state.setState(&StateID_CSMenu);
} else if (nowPressed & WPAD_A) {
- SaveBlock *save = GetSaveFile()->GetBlock(-1);
- coins->LoadCoinsForWorld(save->current_world);
- state.setState(&StateID_CoinsWait);
+
+ if (pathManager.currentNode->type == dKPNode_s::LEVEL) {
+ int w = pathManager.currentNode->levelNumber[0];
+ if (w == 9) {
+ int l = pathManager.currentNode->levelNumber[1];
+
+ if ((l < 6) || (l == 33) || (l == 34))
+ coins->LoadCoinsForWorld(9);
+ else if ((l < 11) || (l == 35) || (l == 36))
+ coins->LoadCoinsForWorld(10);
+ else if ((l < 16) || (l == 37) || (l == 38) || (l == 31) )
+ coins->LoadCoinsForWorld(11);
+ else if ((l < 19) || (l == 39) || (l == 40))
+ coins->LoadCoinsForWorld(12);
+ else
+ coins->LoadCoinsForWorld(13);
+
+ state.setState(&StateID_CoinsWait);
+ }
+ else {
+ coins->LoadCoinsForWorld(w-1);
+ state.setState(&StateID_CoinsWait);
+ }
+ }
+ else {
+ MapSoundPlayer(SoundRelatedClass, SE_SYS_INVALID, 1);
+ }
+
} else if (nowPressed & WPAD_B) {
pathManager.unlockAllPaths(2);
}