diff options
author | Treeki <treeki@gmail.com> | 2012-09-27 23:29:46 +0200 |
---|---|---|
committer | Treeki <treeki@gmail.com> | 2012-09-27 23:29:46 +0200 |
commit | 81ef1a8b7f7d63c72b92f779d73a8b2b0f8158c1 (patch) | |
tree | eb3567c82f79dd6290f95cfb6a6e600cea1e870f /src/koopatlas | |
parent | 624a89dc12d88973486b39937871c5facf6b9bb6 (diff) | |
download | kamek-81ef1a8b7f7d63c72b92f779d73a8b2b0f8158c1.tar.gz kamek-81ef1a8b7f7d63c72b92f779d73a8b2b0f8158c1.zip |
new levelinfo format and a couple of fixes
Diffstat (limited to 'src/koopatlas')
-rw-r--r-- | src/koopatlas/core.cpp | 10 | ||||
-rw-r--r-- | src/koopatlas/hud.cpp | 16 | ||||
-rw-r--r-- | src/koopatlas/hud.h | 4 | ||||
-rw-r--r-- | src/koopatlas/pathmanager.cpp | 9 | ||||
-rw-r--r-- | src/koopatlas/pathmanager.h | 1 | ||||
-rw-r--r-- | src/koopatlas/starcoin.cpp | 2 |
6 files changed, 30 insertions, 12 deletions
diff --git a/src/koopatlas/core.cpp b/src/koopatlas/core.cpp index c20d715..cb13119 100644 --- a/src/koopatlas/core.cpp +++ b/src/koopatlas/core.cpp @@ -970,13 +970,13 @@ void dScKoopatlas_c::startLevel(dLevelInfo_c::entry_s *entry) { sl.unk4 = 0; sl.purpose = 0; - sl.world1 = entry->world; - sl.world2 = entry->world; - sl.level1 = entry->level; - sl.level2 = entry->level; + sl.world1 = entry->worldSlot; + sl.world2 = entry->worldSlot; + sl.level1 = entry->levelSlot; + sl.level2 = entry->levelSlot; // hopefully this will fix the Star Coin issues - SetSomeConditionShit(entry->world, entry->level, 2); + SetSomeConditionShit(entry->worldSlot, entry->levelSlot, 2); ActivateWipe(WIPE_MARIO); diff --git a/src/koopatlas/hud.cpp b/src/koopatlas/hud.cpp index 90e769e..667feb2 100644 --- a/src/koopatlas/hud.cpp +++ b/src/koopatlas/hud.cpp @@ -156,6 +156,7 @@ dWMHud_c *dWMHud_c::build() { dWMHud_c::dWMHud_c() { layoutLoaded = false; displayedControllerType = -1; + isFooterVisible = false; } enum WMHudAnimation { @@ -267,6 +268,7 @@ int dWMHud_c::onExecute() { if (willShowFooter && (!(layout.isAnimOn(SHOW_FOOTER)))) { willShowFooter = false; + isFooterVisible = true; loadFooterInfo(); playShowAnim(SHOW_FOOTER); } @@ -310,13 +312,15 @@ void dWMHud_c::playHideAnim(int id) { layout.enableNonLoopAnim(id, true); } layout.grpHandlers[id].frameCtrl.flags = 3; // NO_LOOP | REVERSE + if (id == SHOW_FOOTER) + isFooterVisible = false; } void dWMHud_c::loadHeaderInfo() { dLevelInfo_c *levelInfo = &dScKoopatlas_c::instance->levelInfo; - dLevelInfo_c::entry_s *infEntry = levelInfo->search( + dLevelInfo_c::entry_s *infEntry = levelInfo->searchBySlot( nodeForHeader->levelNumber[0]-1, nodeForHeader->levelNumber[1]-1); if (infEntry == 0) { @@ -434,9 +438,15 @@ void dWMHud_c::leftNode() { } -void dWMHud_c::hideAndShowFooter() { +void dWMHud_c::hideFooter() { + if (isFooterVisible) + playHideAnim(SHOW_FOOTER); +} + +void dWMHud_c::showFooter() { willShowFooter = true; - playHideAnim(SHOW_FOOTER); + if (isFooterVisible) + playHideAnim(SHOW_FOOTER); } diff --git a/src/koopatlas/hud.h b/src/koopatlas/hud.h index c0079af..05ad07c 100644 --- a/src/koopatlas/hud.h +++ b/src/koopatlas/hud.h @@ -38,7 +38,8 @@ class dWMHud_c : public dBase_c { void enteredNode(dKPNode_s *node = 0); void leftNode(); - void hideAndShowFooter(); + void hideFooter(); + void showFooter(); void setupLives(); @@ -55,6 +56,7 @@ class dWMHud_c : public dBase_c { void loadFooterInfo(); bool willShowFooter; + bool isFooterVisible; dTexMapColouriser_c headerCol, footerCol; diff --git a/src/koopatlas/pathmanager.cpp b/src/koopatlas/pathmanager.cpp index 8a05ea4..c691a89 100644 --- a/src/koopatlas/pathmanager.cpp +++ b/src/koopatlas/pathmanager.cpp @@ -628,8 +628,13 @@ void dWMPathManager_c::moveThroughPath() { save->hudHintL = world->hudHintL; if (dWMHud_c::instance) - dWMHud_c::instance->hideAndShowFooter(); + dWMHud_c::instance->showFooter(); } + } else if (to->worldID == 0) { + OSReport("No world\n"); + save->newerWorldName[0] = 0; + if (dWMHud_c::instance) + dWMHud_c::instance->hideFooter(); } else { OSReport("Not found!\n"); } @@ -710,7 +715,7 @@ void dWMPathManager_c::activatePoint() { isEnteringLevel = true; levelStartWait = 40; - enteredLevel = dScKoopatlas_c::instance->levelInfo.search(w, l); + enteredLevel = dScKoopatlas_c::instance->levelInfo.searchBySlot(w, l); } } diff --git a/src/koopatlas/pathmanager.h b/src/koopatlas/pathmanager.h index 5579f66..a1d916d 100644 --- a/src/koopatlas/pathmanager.h +++ b/src/koopatlas/pathmanager.h @@ -9,6 +9,7 @@ #endif #include "koopatlas/mapdata.h" +#include "levelinfo.h" extern "C" void *SoundRelatedClass; extern "C" void *MapSoundPlayer(void *SoundClass, int soundID, int unk); diff --git a/src/koopatlas/starcoin.cpp b/src/koopatlas/starcoin.cpp index 3842f87..4366895 100644 --- a/src/koopatlas/starcoin.cpp +++ b/src/koopatlas/starcoin.cpp @@ -238,7 +238,7 @@ void dWMStarCoin::LoadCoinsForWorld(int world) { if (levelArray[world][l][i]) { levelNum--; dLevelInfo_c *li = &dScKoopatlas_c::instance->levelInfo; - dLevelInfo_c::entry_s *entry = li->search(world, levelNum); + dLevelInfo_c::entry_s *entry = li->searchBySlot(world, levelNum); setText(li->getNameForLevel(entry), levelPane); totalCoins += 3; |