diff options
Diffstat (limited to '')
-rw-r--r-- | src/koopatlas/core.cpp | 31 |
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); } |