diff options
Diffstat (limited to 'src/koopatlas/core.cpp')
-rw-r--r-- | src/koopatlas/core.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/koopatlas/core.cpp b/src/koopatlas/core.cpp index e9ae989..f0a57af 100644 --- a/src/koopatlas/core.cpp +++ b/src/koopatlas/core.cpp @@ -109,14 +109,6 @@ dScKoopatlas_c::dScKoopatlas_c() : state(this) { #define NPCHG_CCI(npc,idx) (((void**)(((u32)(npc))+0xA4))[(idx)]) #define NPCHG_2DPLAYER(npc,idx) (((void**)(((u32)(npc))+0x64C))[(idx)]) -#define STKI_SETUP_DONE(si) (*((bool*)(((u32)(si))+0x310))) -#define STKI_SHADOW(si) (*((void**)(((u32)(si))+0x310))) -#define STKI_2DPLAYER(si,idx) (((void**)(((u32)(si))+0x2E4))[(idx)]) -#define STKI_ITEM(si,idx) (((void**)(((u32)(si))+0x2F4))[(idx)]) -#define STKI_SHOW(si) (*((bool*)(((u32)(si))+0x8DD))) - -#define SIS_SETUP_DONE(sis) (*((bool*)(((u32)(sis))+0x260))) - #define CCSB_ACTIVE(ccsb) (*((bool*)(((u32)(ccsb))+0x29C))) #define CCSC_ACTIVE(ccsc) (*((bool*)(((u32)(ccsc))+0x2A1))) @@ -218,8 +210,8 @@ bool WMInit_SetupWait(void *ptr) { success &= NPCHG_SETUP_DONE(wm->numPeopleChange); success &= YESNO_SETUP_DONE(wm->yesNoWindow); success &= CONT_SETUP_DONE(wm->continueObj); - success &= STKI_SETUP_DONE(wm->stockItem); - success &= SIS_SETUP_DONE(wm->stockItemShadow); + success &= wm->stockItem->layoutLoaded; + success &= wm->stockItemShadow->layoutLoaded; success &= EASYP_SETUP_DONE(wm->easyPairing); return success; @@ -243,14 +235,14 @@ bool WMInit_SetupExtra(void *ptr) { // first up: player models for Stocked Items for (int i = 0; i < 4; i++) { void *obj = CreateChildObject(WM_2D_PLAYER, wm, i, 0, 0); - STKI_2DPLAYER(wm->stockItem,i) = obj; + wm->stockItem->player2d[i] = obj; NPCHG_2DPLAYER(wm->numPeopleChange,i) = obj; } // next: items for the Powerup screen - for (int i = 0; i < 7; i++) { - void *obj = CreateChildObject(WM_ITEM, wm, i, 0, 0); - STKI_ITEM(wm->stockItem,i) = obj; + for (int i = 0; i < 8; i++) { + void *obj = CreateChildObject(WM_ITEM, wm, i==7?6:i, 0, 0); + wm->stockItem->newItemPtr[i] = obj; } // need Player before we can set up paths @@ -398,10 +390,10 @@ int dScKoopatlas_c::onCreate() { this->continueObj = CreateParentedObject(CONTINUE, this, 0, 0); SpammyReport("stock item\n"); - this->stockItem = CreateParentedObject(STOCK_ITEM, this, 0, 0); + this->stockItem = (dStockItem_c*)CreateParentedObject(STOCK_ITEM, this, 0, 0); SpammyReport("stock item shadow\n"); - this->stockItemShadow = CreateParentedObject(STOCK_ITEM_SHADOW, this, 0, 0); - STKI_SHADOW(this->stockItem) = this->stockItemShadow; + this->stockItemShadow = (dStockItemShadow_c*)CreateParentedObject(STOCK_ITEM_SHADOW, this, 0, 0); + stockItem->shadow = stockItemShadow; SpammyReport("easy pairing\n"); this->easyPairing = CreateParentedObject(EASY_PAIRING, this, 0, 0); @@ -516,11 +508,13 @@ void dScKoopatlas_c::executeState_Normal() { // Nothing related to the menu is going on if (nowPressed & WPAD_ONE) { - STKI_SHOW(this->stockItem) = true; + stockItem->show = true; state.setState(&StateID_PowerupsWait); + hud->hideAll(); } else if (nowPressed & WPAD_PLUS) { CSMENU_ACTIVE(this->csMenu) = true; state.setState(&StateID_CSMenu); + hud->hideAll(); } else if (nowPressed & WPAD_MINUS) { pathManager.unlockAllPaths(2); } else if (nowPressed & WPAD_A) { @@ -582,6 +576,7 @@ void dScKoopatlas_c::executeState_CSMenu() { } else { // Ok, change back to STATE_Normal + hud->unhideAll(); state.setState(&StateID_Normal); } } @@ -637,6 +632,7 @@ void dScKoopatlas_c::executeState_TitleConfirmHitWait() { if (!YESNO_OPENING(this->yesNoWindow)) { if (YESNO_CURRENT(this->yesNoWindow) == 1) { state.setState(&StateID_Normal); + hud->unhideAll(); } else { state.setState(&StateID_Limbo); StartTitleScreenStage(false, 0); @@ -680,6 +676,7 @@ void dScKoopatlas_c::executeState_PlayerChangeWait() { } state.setState(&StateID_Normal); + hud->unhideAll(); } } @@ -712,10 +709,11 @@ void dScKoopatlas_c::executeState_EasyPairingWait() { // STATE_PowerupsWait : Wait for the user to exit the Powerups screen. void dScKoopatlas_c::executeState_PowerupsWait() { - if (!STKI_SHOW(this->stockItem)) { + if (!stockItem->show) { player->modelHandler->mdlClass->setPowerup(Player_Powerup[0]); state.setState(&StateID_Normal); + hud->unhideAll(); } } @@ -727,6 +725,7 @@ void dScKoopatlas_c::executeState_ShopWait() { if (!shop->visible) { state.setState(&StateID_Normal); + hud->unhideAll(); } } @@ -738,6 +737,7 @@ void dScKoopatlas_c::executeState_CoinsWait() { if (!coins->visible) { state.setState(&StateID_Normal); + hud->unhideAll(); } } @@ -793,6 +793,7 @@ void dScKoopatlas_c::executeState_SaveWindowClose() { if (!YESNO_VISIBLE(this->yesNoWindow)) { if (YESNO_CURRENT(this->yesNoWindow) == 1) { state.setState(&StateID_Normal); + hud->unhideAll(); } else { state.setState(&StateID_SaveDo); SaveGame(0, false); @@ -836,6 +837,7 @@ void dScKoopatlas_c::executeState_SaveEndCloseWait() { if (!YESNO_OPENING(this->yesNoWindow)) { state.setState(&StateID_Normal); + hud->unhideAll(); } } @@ -891,6 +893,7 @@ void dScKoopatlas_c::executeState_QuickSaveWindowClose() { if (!YESNO_VISIBLE(this->yesNoWindow)) { if (YESNO_CURRENT(this->yesNoWindow) == 1) { state.setState(&StateID_Normal); + hud->unhideAll(); } else { state.setState(&StateID_QuickSaveDo); SaveGame(0, true); @@ -934,6 +937,7 @@ void dScKoopatlas_c::executeState_QuickSaveEndCloseWait() { if (!YESNO_OPENING(this->yesNoWindow)) { if (YESNO_CURRENT(this->yesNoWindow) == 1) { state.setState(&StateID_Normal); + hud->unhideAll(); } else { state.setState(&StateID_Limbo); StartTitleScreenStage(false, 0); |