// // Generated By: dol2asm // Translation Unit: d/meter/d_meter2 // #include "d/meter/d_meter2.h" #include "d/d_timer.h" #include "d/menu/d_menu_window_HIO.h" #include "d/meter/d_meter_HIO.h" #include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_msg.h" #include "f_op/f_op_msg_mng.h" #include "m_Do/m_Do_audio.h" // // Types: // struct dScope_c { /* 80193690 */ dScope_c(u8); }; struct dMeterHakusha_c { /* 8020C320 */ dMeterHakusha_c(void*); }; struct dDemo_c { static u8 m_mode[4]; }; // // Forward References: // extern "C" void _create__9dMeter2_cFv(); extern "C" void _execute__9dMeter2_cFv(); extern "C" void _draw__9dMeter2_cFv(); extern "C" void _delete__9dMeter2_cFv(); extern "C" void emphasisButtonDelete__9dMeter2_cFv(); extern "C" void setLifeZero__9dMeter2_cFv(); extern "C" void checkStatus__9dMeter2_cFv(); extern "C" void moveLife__9dMeter2_cFv(); extern "C" void moveKantera__9dMeter2_cFv(); extern "C" void moveOxygen__9dMeter2_cFv(); extern "C" void moveLightDrop__9dMeter2_cFv(); extern "C" void moveRupee__9dMeter2_cFv(); extern "C" void moveKey__9dMeter2_cFv(); extern "C" void moveButtonA__9dMeter2_cFv(); extern "C" void moveButtonB__9dMeter2_cFv(); extern "C" void moveButtonR__9dMeter2_cFv(); extern "C" void moveButtonZ__9dMeter2_cFv(); extern "C" void moveButton3D__9dMeter2_cFv(); extern "C" void moveButtonC__9dMeter2_cFv(); extern "C" void moveButtonS__9dMeter2_cFv(); extern "C" void moveButtonXY__9dMeter2_cFv(); extern "C" void moveButtonCross__9dMeter2_cFv(); extern "C" void moveTouchSubMenu__9dMeter2_cFv(); extern "C" void moveSubContents__9dMeter2_cFv(); extern "C" void move2DContents__9dMeter2_cFv(); extern "C" void checkSubContents__9dMeter2_cFv(); extern "C" void check2DContents__9dMeter2_cFv(); extern "C" void moveBombNum__9dMeter2_cFv(); extern "C" void moveBottleNum__9dMeter2_cFv(); extern "C" void moveArrowNum__9dMeter2_cFv(); extern "C" void movePachinkoNum__9dMeter2_cFv(); extern "C" void alphaAnimeLife__9dMeter2_cFv(); extern "C" void alphaAnimeKantera__9dMeter2_cFv(); extern "C" void alphaAnimeOxygen__9dMeter2_cFv(); extern "C" void alphaAnimeLightDrop__9dMeter2_cFv(); extern "C" void alphaAnimeRupee__9dMeter2_cFv(); extern "C" void alphaAnimeKey__9dMeter2_cFv(); extern "C" void alphaAnimeButton__9dMeter2_cFv(); extern "C" void alphaAnimeButtonCross__9dMeter2_cFv(); extern "C" void isShowLightDrop__9dMeter2_cFv(); extern "C" void killSubContents__9dMeter2_cFUc(); extern "C" void isKeyVisible__9dMeter2_cFv(); extern "C" void isArrowEquip__9dMeter2_cFv(); extern "C" void isPachinkoEquip__9dMeter2_cFv(); extern "C" static void dMeter2_Draw__FP9dMeter2_c(); extern "C" static void dMeter2_Execute__FP9dMeter2_c(); extern "C" static bool dMeter2_IsDelete__FP9dMeter2_c(); extern "C" static void dMeter2_Delete__FP9dMeter2_c(); extern "C" static void dMeter2_Create__FP9msg_class(); extern "C" extern char const* const d_meter_d_meter2__stringBase0; // extern "C" extern void* g_profile_METER2[10]; // // External References: // extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); extern "C" void fopMsgM_setStageLayer__FPv(); extern "C" void fopMsgM_setMessageID__FUi(); extern "C" void fopMsgM_Create__FsPFPv_iPv(); extern "C" void fopMsgM_createExpHeap__FUlP7JKRHeap(); extern "C" void fopMsgM_destroyExpHeap__FP10JKRExpHeap(); extern "C" void setItemBombNumCount__14dComIfG_play_cFUcs(); extern "C" void getItemBombNumCount__14dComIfG_play_cFUc(); extern "C" void clearItemBombNumCount__14dComIfG_play_cFUc(); extern "C" void getLayerNo__14dComIfG_play_cFi(); extern "C" void getTimerMode__14dComIfG_play_cFv(); extern "C" void dComIfGs_setSelectItemIndex__FiUc(); extern "C" void dComIfGs_setMixItemIndex__FiUc(); extern "C" void dComIfGs_getSelectMixItemNoArrowIndex__Fi(); extern "C" void dComIfGs_getMixItemIndex__Fi(); extern "C" void dComIfGp_setSelectItem__Fi(); extern "C" void dComIfGp_getSelectItem__Fi(); extern "C" void dComIfGp_setHeapLockFlag__FUc(); extern "C" void dComIfGp_offHeapLockFlag__Fi(); extern "C" void dComIfGp_getSubHeap2D__Fi(); extern "C" void dComIfGp_getSelectItemNum__Fi(); extern "C" void dComIfGp_getSelectItemMaxNum__Fi(); extern "C" void getSelectItemIndex__21dSv_player_status_a_cCFi(); extern "C" void getRupeeMax__21dSv_player_status_a_cCFv(); extern "C" void setItem__17dSv_player_item_cFiUc(); extern "C" void getItem__17dSv_player_item_cCFib(); extern "C" void setBombNum__24dSv_player_item_record_cFUcUc(); extern "C" void getBombNum__24dSv_player_item_record_cCFUc(); extern "C" void getBottleNum__24dSv_player_item_record_cCFUc(); extern "C" void getBombNum__21dSv_player_item_max_cCFUc(); extern "C" void onCollectCrystal__20dSv_player_collect_cFUc(); extern "C" void isCollectCrystal__20dSv_player_collect_cCFUc(); extern "C" void onCollectMirror__20dSv_player_collect_cFUc(); extern "C" void isCollectMirror__20dSv_player_collect_cCFUc(); extern "C" void getLightDropNum__16dSv_light_drop_cCFUc(); extern "C" void isLightDropGetFlag__16dSv_light_drop_cCFUc(); extern "C" void isEventBit__11dSv_event_cCFUs(); extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c(); extern "C" bool CalcSubjectAngle__9dCamera_cFPsPs(); extern "C" void dCam_getBody__Fv(); extern "C" void __ct__8dScope_cFUc(); extern "C" void dKy_darkworld_check__Fv(); extern "C" bool getBombFlag__9dMw_HIO_cFv(); extern "C" bool getArrowFlag__9dMw_HIO_cFv(); extern "C" bool getPachinkoFlag__9dMw_HIO_cFv(); extern "C" void __ct__14dMeterButton_cFv(); extern "C" void _execute__14dMeterButton_cFUlbbbbbbbbbbbbbbbbbbbbbb(); extern "C" void isClose__14dMeterButton_cFv(); extern "C" void setString__14dMeterButton_cFPcUcUcUc(); extern "C" void hideAll__14dMeterButton_cFv(); extern "C" void __ct__14dMeterHaihai_cFUc(); extern "C" void __ct__15dMeterHakusha_cFPv(); extern "C" void isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv(); extern "C" void getMapDispEdgeTop__11dMeterMap_cFv(); extern "C" void setMapAlpha__11dMeterMap_cFUc(); extern "C" void __ct__11dMeterMap_cFP9J2DScreen(); extern "C" void _move__11dMeterMap_cFUl(); extern "C" void _draw__11dMeterMap_cFv(); extern "C" void meter_map_move__11dMeterMap_cFUl(); extern "C" void __ct__14dMeterString_cFi(); extern "C" void createString__14dMeterString_cFi(); extern "C" void __ct__13dMeter2Draw_cFP10JKRExpHeap(); extern "C" void exec__13dMeter2Draw_cFUl(); extern "C" void drawLife__13dMeter2Draw_cFssff(); extern "C" void setAlphaLifeChange__13dMeter2Draw_cFb(); extern "C" void setAlphaLifeAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaLifeAnimeMax__13dMeter2Draw_cFv(); extern "C" void drawKantera__13dMeter2Draw_cFllff(); extern "C" void setAlphaKanteraChange__13dMeter2Draw_cFb(); extern "C" void setAlphaKanteraAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaKanteraAnimeMax__13dMeter2Draw_cFv(); extern "C" void drawOxygen__13dMeter2Draw_cFllff(); extern "C" void setAlphaOxygenChange__13dMeter2Draw_cFb(); extern "C" void setAlphaOxygenAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaOxygenAnimeMax__13dMeter2Draw_cFv(); extern "C" void drawLightDrop__13dMeter2Draw_cFUcUcffffUc(); extern "C" void setAlphaLightDropChange__13dMeter2Draw_cFb(); extern "C" void getNowLightDropRateCalc__13dMeter2Draw_cFv(); extern "C" void setAlphaLightDropAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaLightDropAnimeMax__13dMeter2Draw_cFv(); extern "C" void drawRupee__13dMeter2Draw_cFs(); extern "C" void setAlphaRupeeChange__13dMeter2Draw_cFb(); extern "C" void setAlphaRupeeAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaRupeeAnimeMax__13dMeter2Draw_cFv(); extern "C" void drawKey__13dMeter2Draw_cFs(); extern "C" void setAlphaKeyChange__13dMeter2Draw_cFb(); extern "C" void setAlphaKeyAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaKeyAnimeMax__13dMeter2Draw_cFv(); extern "C" void drawButtonA__13dMeter2Draw_cFUcfffffbb(); extern "C" void drawButtonB__13dMeter2Draw_cFUcbfffffb(); extern "C" void drawButtonR__13dMeter2Draw_cFUcUcbb(); extern "C" void drawButtonZ__13dMeter2Draw_cFUc(); extern "C" void drawButton3D__13dMeter2Draw_cFUc(); extern "C" void drawButtonC__13dMeter2Draw_cFUcb(); extern "C" void drawButtonS__13dMeter2Draw_cFUc(); extern "C" void drawButtonBin__13dMeter2Draw_cFUc(); extern "C" void drawButtonXY__13dMeter2Draw_cFiUcUcbb(); extern "C" void getButtonCrossParentInitTransY__13dMeter2Draw_cFv(); extern "C" void drawButtonCross__13dMeter2Draw_cFff(); extern "C" void setAlphaButtonCrossAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaButtonCrossAnimeMax__13dMeter2Draw_cFv(); extern "C" void setAlphaButtonChange__13dMeter2Draw_cFb(); extern "C" void setAlphaButtonAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaButtonAnimeMax__13dMeter2Draw_cFv(); extern "C" void setAlphaButtonAAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaButtonAAnimeMax__13dMeter2Draw_cFv(); extern "C" void setAlphaButtonBAnimeMin__13dMeter2Draw_cFv(); extern "C" void setAlphaButtonBAnimeMax__13dMeter2Draw_cFv(); extern "C" void setButtonIconAAlpha__13dMeter2Draw_cFUcUlb(); extern "C" void setButtonIconBAlpha__13dMeter2Draw_cFUcUlb(); extern "C" void setButtonIconMidonaAlpha__13dMeter2Draw_cFUl(); extern "C" void setButtonIconAlpha__13dMeter2Draw_cFiUcUlb(); extern "C" void getActionString__13dMeter2Draw_cFUcUcPUc(); extern "C" void setItemNum__13dMeter2Draw_cFUcUcUc(); extern "C" void drawItemNum__13dMeter2Draw_cFUcf(); extern "C" void drawKanteraMeter__13dMeter2Draw_cFUcf(); extern "C" void isButtonVisible__13dMeter2Draw_cFv(); extern "C" void getCameraSubject__13dMeter2Draw_cFv(); extern "C" void getItemSubject__13dMeter2Draw_cFv(); extern "C" void getPlayerSubject__13dMeter2Draw_cFv(); extern "C" void isBButtonShow__13dMeter2Draw_cFb(); extern "C" void getButtonTimer__13dMeter2Draw_cFv(); extern "C" void isFloatingMessageVisible__13dMeter2Info_cFv(); extern "C" void isDirectUseItem__13dMeter2Info_cFi(); extern "C" void decHotSpringTimer__13dMeter2Info_cFv(); extern "C" bool dMeter2Info_is2DActiveTouchArea__Fv(); extern "C" void isPlaceMessage__12dMsgObject_cFv(); extern "C" void getStatus__12dMsgObject_cFv(); extern "C" void dTimer_createStockTimer__Fv(); extern "C" void cLib_addCalc2__FPffff(); extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void heartGaugeOn__11Z2StatusMgrFv(); extern "C" void freeAll__7JKRHeapFv(); extern "C" void getTotalFreeSize__7JKRHeapFv(); extern "C" void* __nw__FUl(); extern "C" void _savegpr_18(); extern "C" void _savegpr_19(); extern "C" void _savegpr_21(); extern "C" void _savegpr_23(); extern "C" void _savegpr_25(); extern "C" void _savegpr_27(); extern "C" void _savegpr_29(); extern "C" void _restgpr_18(); extern "C" void _restgpr_19(); extern "C" void _restgpr_21(); extern "C" void _restgpr_23(); extern "C" void _restgpr_25(); extern "C" void _restgpr_27(); extern "C" void _restgpr_29(); extern "C" u8 m_mode__7dDemo_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // // Declarations: // /* 804549C8-804549CC 002FC8 0004+00 9/9 0/0 0/0 .sdata2 @4662 */ SECTION_SDATA2 static u8 lit_4662[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 804549CC-804549D0 002FCC 0004+00 13/13 0/0 0/0 .sdata2 @4663 */ SECTION_SDATA2 static f32 lit_4663 = 1.0f; /* 8021EA14-8021F128 219354 0714+00 1/1 0/0 0/0 .text _create__9dMeter2_cFv */ // this can be cleaned up with float literals when everything else is decompiled int dMeter2_c::_create() { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (dStage_stagInfo_GetUpButton(stag_info) == 1) { mpHeap = fopMsgM_createExpHeap(0x5A400, NULL); } else { mpHeap = fopMsgM_createExpHeap(0x60800, NULL); } JKRHeap* heap = mDoExt_setCurrentHeap(mpHeap); mpHeap->getTotalFreeSize(); if (!strcmp(dComIfGp_getStartStageName(), "F_SP00")) { dMeter2Info_setNowCount(0); dMeter2Info_setMaxCount(0); } field_0x128 = 0; field_0x12c = field_0x128; field_0x124 = 0; mSubContents = 0; mSubContentsStringType = 0; field_0x1e6 = 0; field_0x1e7 = 0; mItemMaxNum[ARROW_MAX] = dComIfGs_getArrowMax(); mArrowNum = dComIfGs_getArrowNum(); mItemMaxNum[PACHINKO_MAX] = dComIfGs_getPachinkoMax(); mPachinkoNum = dComIfGs_getPachinkoNum(); for (int i = 0; i < 3; i++) { mBombMax[i] = dComIfGs_getBombMax(dComIfGs_getItem((u8)(i + SLOT_15), 1)); mBombNum[i] = dComIfGs_getBombNum(i); } for (int i = 0; i < 2; i++) { mItemMaxNum[i] = dComIfGs_getSelectItemIndex(i); } for (int i = 0; i < 4; i++) { mBottleNum[i] = dComIfGs_getBottleNum(i); } field_0x1e8 = 0; field_0x1e9 = 0; mRupeeSound = 0; mArrowSound = 0; for (int i = 0; i < 5; i++) { field_0x1b8[i] = 0; } field_0x1ec = 0; field_0x1ed = 0; field_0x1ee = 0; mNowLifeGauge = i_dComIfGs_getLife(); dComIfGp_setItemNowLife((u8)mNowLifeGauge); mMaxLife = dComIfGs_getMaxLife(); mNowMagic = dComIfGs_getMagic(); dComIfGp_setItemNowMagic(mNowMagic); mMaxMagic = dComIfGs_getMaxMagic(); mNowOil = dComIfGs_getOil(); dComIfGp_setItemNowOil(mNowOil); mMaxOil = dComIfGs_getMaxOil(); mNowOxygen = dComIfGp_getOxygen(); dComIfGp_setNowOxygen(mNowOxygen); mMaxOxygen = dComIfGp_getMaxOxygen(); field_0x130 = FLOAT_LABEL(lit_4662); u8 dark_area = dComIfGp_getStartStageDarkArea(); mLightDropNum = dComIfGs_getLightDropNum(dark_area); mNeedLightDropNum = dComIfGp_getNeedLightDropNum(); mRupeeNum = i_dComIfGs_getRupee(); mKeyNum = dComIfGs_getKeyNum(); mDoStatus = i_dComIfGp_getDoStatus(); mDoSetFlag = dComIfGp_isDoSetFlag(2); int i = 0; f32 temp0 = FLOAT_LABEL(lit_4662); for (; i < 2; i++) { field_0x134[i] = temp0; field_0x13c[i] = temp0; } field_0x144 = lit_4663; mAStatus = dComIfGp_getAStatus(); field_0x1c6 = 0; mASetFlag = dComIfGp_isASetFlag(2); i = 0; f32 temp1 = FLOAT_LABEL(lit_4662); for (; i < 2; i++) { field_0x148[i] = temp1; field_0x150[i] = temp1; } field_0x158 = lit_4663; field_0x1e4 = 0; mEquipSword = dComIfGs_getSelectEquipSword(); field_0x1e3 = 0; field_0x1fe = 0; field_0x1fd = 0; field_0x1ff = 0; field_0x200 = 0; field_0x201 = 0; mCollectSmell = dComIfGs_getCollectSmell(); mRStatus = i_dComIfGp_getRStatus(); mRSetFlag = dComIfGp_isRSetFlag(2); mXSetFlag = dComIfGp_isXSetFlag(2); mYSetFlag = dComIfGp_isYSetFlag(2); for (int i = 0; i < 2; i++) { dComIfGp_setSelectItem(i); } mItemStatus[X_ITEM] = dComIfGp_getSelectItem(0); mItemStatus[Y_ITEM] = dComIfGp_getSelectItem(1); mItemStatus[X_STATUS] = dComIfGp_getXStatus(); mItemStatus[Y_STATUS] = dComIfGp_getYStatus(); f32 temp2 = FLOAT_LABEL(lit_4662); field_0x188 = temp2; field_0x18c = temp2; for (int i = 0; i < 2; i++) { field_0x1d6[i] = dMeter2Info_isDirectUseItem(i); field_0x1d8[i] = dComIfGp_getSelectItemNum(i); } field_0x1e1 = 0; field_0x1b4 = 0; f32 temp3 = FLOAT_LABEL(lit_4662); field_0x15c = temp3; for (int i = 0; i < 4; i++) { field_0x160[i] = temp3; field_0x174[i] = temp3; } field_0x190 = 0; mZStatus = dComIfGp_getZStatus(); m3DStatus = dComIfGp_get3DStatus(); mCStickStatus = dComIfGp_getCStickStatus(); mSButtonStatus = dComIfGp_getSButtonStatus(); mNunStatus = dComIfGp_getNunStatus(); mRemoConStatus = dComIfGp_getRemoConStatus(); mNunZStatus = dComIfGp_getNunZStatus(); mNunCStatus = dComIfGp_getNunCStatus(); mBottleStatus = dComIfGp_getBottleStatus(); field_0x1ac = dMeter2Info_isUseButton(16); field_0x19a = 0; mpMeterDraw = new dMeter2Draw_c(mpHeap); field_0x130 = mpMeterDraw->getNowLightDropRateCalc(); mpHeap->getTotalFreeSize(); for (int i = 0; i < 2; i++) { if (field_0x128 == 0) { if (mItemStatus[i * 2] == BOMB_BAG_LV1 || mItemStatus[i * 2] == NORMAL_BOMB || mItemStatus[i * 2] == WATER_BOMB || mItemStatus[i * 2] == POKE_BOMB) { mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), dComIfGp_getSelectItemMaxNum(i)); } else if (mItemStatus[i * 2] == BEE_CHILD) { mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), dComIfGp_getSelectItemMaxNum(i)); } else if (mItemStatus[i * 2] == BOW || mItemStatus[i * 2] == LIGHT_ARROW || mItemStatus[i * 2] == ARROW_LV1 || mItemStatus[i * 2] == ARROW_LV2 || mItemStatus[i * 2] == ARROW_LV3 || mItemStatus[i * 2] == HAWK_ARROW) { mpMeterDraw->setItemNum(i, mArrowNum, dComIfGs_getArrowMax()); } else if (mItemStatus[i * 2] == PACHINKO) { mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax()); } else if (mItemStatus[i * 2] == BOMB_ARROW) { u8 item_num = dComIfGp_getSelectItemNum(i); u8 item_max = dComIfGp_getSelectItemMaxNum(i); if (item_num > mArrowNum) { item_num = mArrowNum; } u8 temp = dComIfGs_getArrowMax() & 0xFF; if (item_max < temp) { item_max = temp; } mpMeterDraw->setItemNum(i, item_num, item_max); } } } mpMap = NULL; if (dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo()) { mpMap = new dMeterMap_c(mpMeterDraw->getMainScreenPtr()); } else { if (g_meter2_info.mMapStatus == 2) { g_meter2_info.mMapStatus = 0; } } dMeter2Info_setMeterMapClass(mpMap); mpHeap->getTotalFreeSize(); mpSubHeap = fopMsgM_createExpHeap(0x5000, mpHeap); field_0x108 = NULL; mpMeterSub = NULL; mpMeterString = NULL; mpMeterButton = NULL; mpHeap->getTotalFreeSize(); field_0x11c = NULL; mDoExt_setCurrentHeap(heap); return cPhs_COMPLEATE_e; } /* 8021F128-8021F370 219A68 0248+00 1/1 0/0 0/0 .text _execute__9dMeter2_cFv */ int dMeter2_c::_execute() { JKRHeap* heap = mDoExt_setCurrentHeap(mpHeap); if (!dComIfGs_isCollectMirror(0) && i_dComIfGs_isEventBit(0x5420)) { dComIfGs_onCollectMirror(0); } if (!dComIfGs_isCollectCrystal(3) && i_dComIfGs_isEventBit(0x5410)) { dComIfGs_onCollectCrystal(3); } checkStatus(); mpMeterDraw->exec(field_0x124); moveLife(); moveKantera(); moveOxygen(); moveLightDrop(); moveRupee(); moveKey(); moveButtonXY(); moveButtonA(); moveButtonB(); moveButtonR(); moveButtonZ(); moveButton3D(); moveButtonC(); moveButtonS(); moveButtonCross(); moveTouchSubMenu(); moveBombNum(); moveArrowNum(); movePachinkoNum(); moveBottleNum(); if (mpMap != NULL) { mpMap->_move(field_0x124); } else { dMeterMap_c::meter_map_move(field_0x124); } moveSubContents(); move2DContents(); if (!dComIfGp_isPauseFlag() && !i_dComIfGp_event_runCheck()) { dMeter2Info_decHotSpringTimer(); } dMeter2Info_allUseButton(); i_dMeter2Info_offUseButton(0x800); dMeter2Info_resetGameStatus(); dComIfGp_setNunStatus(0, 0, 0); dComIfGp_setRemoConStatus(0, 0, 0); dComIfGp_setNunZStatus(0, 0); dComIfGp_setNunCStatus(0, 0); i_dComIfGp_setBottleStatus(0, 0); dComIfGp_setCStickStatus(0, 0, 0); mDoExt_setCurrentHeap(heap); return 1; } /* 8021F370-8021F49C 219CB0 012C+00 1/1 0/0 0/0 .text _draw__9dMeter2_cFv */ int dMeter2_c::_draw() { if (mpMap != NULL) { mpMap->_draw(); } if (mpMeterSub != NULL) { dComIfGd_set2DOpaTop(mpMeterSub); } if (mpMeterString != NULL) { if (mSubContents == 5) { if (mSubContentsStringType != 0) { dComIfGd_set2DOpaTop(mpMeterString); } } else { dComIfGd_set2DOpaTop(mpMeterString); } } if (dMeter2Info_getWindowStatus() == 2) { dComIfGd_set2DOpa(mpMeterDraw); } else { dComIfGd_set2DOpaTop(mpMeterDraw); } if (mpMeterButton != NULL) { dComIfGd_set2DOpaTop(mpMeterButton); } return 1; } /* ############################################################################################## */ /* 804549D0-804549D8 002FD0 0004+04 10/10 0/0 0/0 .sdata2 @4837 */ SECTION_SDATA2 static f32 lit_4837[1 + 1 /* padding */] = { -1.0f, /* padding */ 0.0f, }; /* 8021F49C-8021F6EC 219DDC 0250+00 1/1 0/0 0/0 .text _delete__9dMeter2_cFv */ #ifdef NONMATCHING int dMeter2_c::_delete() { mpHeap->getTotalFreeSize(); JKRHeap* heap = mDoExt_setCurrentHeap(mpHeap); if (isRupeeSoundBit(2)) { mDoAud_seStart(Z2SE_LUPY_INC_CNT_2, 0, 0, 0); } if (isRupeeSoundBit(3)) { mDoAud_seStart(Z2SE_LUPY_DEC_CNT_2, 0, 0, 0); } if (isArrowSoundBit(2) && (isArrowEquip() || isPachinkoEquip()) && mpMeterDraw->isButtonVisible()) { mDoAud_seStart(Z2SE_CONSUM_INC_CNT_2, 0, 0, 0); } mpHeap->getTotalFreeSize(); if (mpMap != NULL) { delete mpMap; mpMap = NULL; } mpHeap->getTotalFreeSize(); mDoExt_setCurrentHeap(mpSubHeap); if (mpMeterSub != NULL) { delete mpMeterSub; mpMeterSub = NULL; } if (mpMeterString != NULL) { delete mpMeterString; mpMeterString = NULL; } mpHeap->getTotalFreeSize(); if (field_0x11c != NULL) { delete field_0x11c; field_0x11c = NULL; } mDoExt_setCurrentHeap(heap); delete mpMeterDraw; mpMeterDraw = NULL; fopMsgM_destroyExpHeap(mpSubHeap); fopMsgM_destroyExpHeap(mpHeap); emphasisButtonDelete(); return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int dMeter2_c::_delete() { nofralloc #include "asm/d/meter/d_meter2/_delete__9dMeter2_cFv.s" } #pragma pop #endif /* 8021F6EC-8021F780 21A02C 0094+00 1/1 5/5 0/0 .text emphasisButtonDelete__9dMeter2_cFv */ int dMeter2_c::emphasisButtonDelete() { if (mpMeterButton != NULL) { JKRExpHeap* heap = dComIfGp_getSubHeap2D(8); mpMeterButton->hideAll(); if (heap != NULL) { delete mpMeterButton; mpMeterButton = NULL; heap->freeAll(); dComIfGp_offHeapLockFlag(8); } } return 1; } /* 8021F780-8021F7B0 21A0C0 0030+00 0/0 0/0 1/1 .text setLifeZero__9dMeter2_cFv */ void dMeter2_c::setLifeZero() { dComIfGs_setLife(1); setNowLifeGauge(1); i_dComIfGp_setItemLifeCount(lit_4837[0], 0); } /* ############################################################################################## */ /* 803BFA28-803BFA54 -00001 002C+00 1/1 0/0 0/0 .data @5038 */ SECTION_DATA static void* lit_5038[11] = { (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x530), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x3FC), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x41C), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x40C), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x454), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x48C), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x454), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x4C4), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x500), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x530), (void*)(((char*)checkStatus__9dMeter2_cFv) + 0x40C), }; /* 8021F7B0-8021FD60 21A0F0 05B0+00 2/1 0/0 0/0 .text checkStatus__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::checkStatus() { nofralloc #include "asm/d/meter/d_meter2/checkStatus__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 804549D8-804549E0 002FD8 0008+00 4/4 0/0 0/0 .sdata2 @5267 */ SECTION_SDATA2 static f64 lit_5267 = 4503601774854144.0 /* cast s32 to float */; /* 804549E0-804549E8 002FE0 0008+00 2/2 0/0 0/0 .sdata2 @5268 */ SECTION_SDATA2 static f64 lit_5268 = 4503599627370496.0 /* cast u32 to float */; /* 8021FD60-80220180 21A6A0 0420+00 1/1 0/0 0/0 .text moveLife__9dMeter2_cFv */ // small type issue #ifdef NONMATCHING void dMeter2_c::moveLife() { s16 life_count = 0; bool setDraw = false; s16 temp_r5 = dComIfGp_getItemMaxLifeCount(); if (temp_r5 != 0) { s16 max_count = dComIfGs_getMaxLife() + dComIfGp_getItemMaxLifeCount(); if (max_count > 100) { max_count = 100; } else { if (max_count < 15) { max_count = 15; } } life_count = (max_count / 5) * 4; dComIfGs_setMaxLife(max_count); s16 current_life = life_count - i_dComIfGs_getLife(); i_dComIfGp_setItemLifeCount(current_life, 0); dComIfGp_clearItemMaxLifeCount(); setDraw = true; } f32 item_life_count = dComIfGp_getItemLifeCount(); if (item_life_count != FLOAT_LABEL(lit_4662)) { field_0x1ee = dComIfGp_getItemLifeCountType(); if (!setDraw) { life_count = (dComIfGs_getMaxLife() / 5) * 4; } s16 tmp = i_dComIfGs_getLife() + dComIfGp_getItemLifeCount(); if (tmp > life_count) { tmp = life_count; } else if (tmp < 0) { tmp = 0; } dComIfGs_setLife((u8)tmp); dComIfGp_clearItemLifeCount(); // extsh instead of mr if (mNowLifeGauge == tmp && field_0x1ee != 0) { field_0x1ee = 0; } setDraw = true; } u16 max_life = dComIfGs_getMaxLife(); if (mMaxLife != max_life) { if (mMaxLife < max_life) { mMaxLife++; dMeter2Info_onLifeGaugeSE(); setDraw = true; } else if (mMaxLife > max_life) { mMaxLife--; setDraw = true; } } u16 current_life = i_dComIfGs_getLife(); if (mNowLifeGauge != current_life) { if (mNowLifeGauge < current_life) { mNowLifeGauge++; if (i_dComIfGp_checkPlayerStatus1(0, 0x2000) || i_dComIfGp_checkPlayerStatus0(0, 0x20000000) || dMeter2Info_getLifeGaugeSE()) { if (mNowLifeGauge % 4 == 0) { mDoAud_seStart(Z2SE_HP_GAUGE_INC, 0, 0, 0); } } else { if (field_0x1ee == 1) { mDoAud_seStart(Z2SE_HP_GAUGE_INC, 0, 0, 0); } } u16 life = i_dComIfGs_getLife(); if (mNowLifeGauge == life && field_0x1ee != 0) { field_0x1ee = 0; } setDraw = true; } else if (mNowLifeGauge > current_life) { mNowLifeGauge--; if (field_0x1ee != 0) { field_0x1ee = 0; } setDraw = true; } } else { if (dMeter2Info_getLifeGaugeSE()) { dMeter2Info_offLifeGaugeSE(); } } f32 life_gauge_x = g_drawHIO.mLifeGaugePosX; f32 life_gauge_y = g_drawHIO.mLifeGaugePosY; if (field_0x204 != g_drawHIO.mLifeGaugePosX) { field_0x204 = g_drawHIO.mLifeGaugePosX; setDraw = true; } if (field_0x208 != g_drawHIO.mLifeGaugePosY) { field_0x208 = g_drawHIO.mLifeGaugePosY; setDraw = true; } if (field_0x20c != g_drawHIO.mLifeGaugeScale) { field_0x20c = g_drawHIO.mLifeGaugeScale; setDraw = true; } if (field_0x210 != g_drawHIO.mHeartScale) { field_0x210 = g_drawHIO.mHeartScale; setDraw = true; } if (field_0x214 != g_drawHIO.mLargeHeartScale) { field_0x214 = g_drawHIO.mLargeHeartScale; setDraw = true; } if (setDraw == true) { mpMeterDraw->drawLife(mMaxLife, mNowLifeGauge, life_gauge_x, life_gauge_y); } alphaAnimeLife(); dComIfGp_setItemNowLife((u8)mNowLifeGauge); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveLife() { nofralloc #include "asm/d/meter/d_meter2/moveLife__9dMeter2_cFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 804549E8-804549EC 002FE8 0004+00 4/4 0/0 0/0 .sdata2 @5791 */ SECTION_SDATA2 static f32 lit_5791 = 1.0f / 10.0f; /* 80220180-8022051C 21AAC0 039C+00 1/1 0/0 0/0 .text moveKantera__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveKantera() { nofralloc #include "asm/d/meter/d_meter2/moveKantera__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 804549EC-804549F0 002FEC 0004+00 2/2 0/0 0/0 .sdata2 @5933 */ SECTION_SDATA2 static f32 lit_5933 = 0.5f; /* 8022051C-80220888 21AE5C 036C+00 1/1 0/0 0/0 .text moveOxygen__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveOxygen() { nofralloc #include "asm/d/meter/d_meter2/moveOxygen__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 804549F0-804549F4 002FF0 0004+00 3/3 0/0 0/0 .sdata2 @6051 */ SECTION_SDATA2 static f32 lit_6051 = 10.0f; /* 804549F4-804549F8 002FF4 0004+00 1/1 0/0 0/0 .sdata2 @6052 */ SECTION_SDATA2 static f32 lit_6052 = 1.0f / 5.0f; /* 80220888-80220C30 21B1C8 03A8+00 1/1 0/0 0/0 .text moveLightDrop__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveLightDrop() { nofralloc #include "asm/d/meter/d_meter2/moveLightDrop__9dMeter2_cFv.s" } #pragma pop /* 80220C30-802210AC 21B570 047C+00 1/1 0/0 0/0 .text moveRupee__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveRupee() { nofralloc #include "asm/d/meter/d_meter2/moveRupee__9dMeter2_cFv.s" } #pragma pop /* 802210AC-80221244 21B9EC 0198+00 1/1 0/0 0/0 .text moveKey__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveKey() { nofralloc #include "asm/d/meter/d_meter2/moveKey__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 804549F8-804549FC 002FF8 0004+00 2/2 0/0 0/0 .sdata2 @6564 */ SECTION_SDATA2 static f32 lit_6564 = 1.0f / 100.0f; /* 80221244-802217F4 21BB84 05B0+00 1/1 0/0 0/0 .text moveButtonA__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveButtonA() { nofralloc #include "asm/d/meter/d_meter2/moveButtonA__9dMeter2_cFv.s" } #pragma pop /* 802217F4-80221EC8 21C134 06D4+00 1/1 0/0 0/0 .text moveButtonB__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveButtonB() { nofralloc #include "asm/d/meter/d_meter2/moveButtonB__9dMeter2_cFv.s" } #pragma pop /* 80221EC8-80222000 21C808 0138+00 1/1 0/0 0/0 .text moveButtonR__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveButtonR() { nofralloc #include "asm/d/meter/d_meter2/moveButtonR__9dMeter2_cFv.s" } #pragma pop /* 80222000-802222A0 21C940 02A0+00 1/1 0/0 0/0 .text moveButtonZ__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveButtonZ() { nofralloc #include "asm/d/meter/d_meter2/moveButtonZ__9dMeter2_cFv.s" } #pragma pop /* 802222A0-80222364 21CBE0 00C4+00 1/1 0/0 0/0 .text moveButton3D__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveButton3D() { nofralloc #include "asm/d/meter/d_meter2/moveButton3D__9dMeter2_cFv.s" } #pragma pop /* 80222364-80222494 21CCA4 0130+00 1/1 0/0 0/0 .text moveButtonC__9dMeter2_cFv */ void dMeter2_c::moveButtonC() { if (dComIfGp_getCStickStatusForce()) { u8 setFlag = dComIfGp_getCStickSetFlagForce(); u8 dirForce = dComIfGp_getCStickDirectionForce(); u8 statusForce = dComIfGp_getCStickStatusForce(); dComIfGp_setCStickStatus(statusForce, dirForce, setFlag); dComIfGp_setCStickStatusForce(0, 0, 0); } if (mCStickStatus == dComIfGp_getCStickStatus() && field_0x1ac == dMeter2Info_isUseButton(0x10)) { if ((!mpMeterDraw->isEmphasisC() || dComIfGp_isCStickSetFlag(2)) && (mpMeterDraw->isEmphasisC() || !dComIfGp_isCStickSetFlag(2)) && field_0x19a == mpMeterDraw->getButtonTimer()) { return; } } field_0x19a = mpMeterDraw->getButtonTimer(); mCStickStatus = dComIfGp_getCStickStatus(); field_0x1ac = dMeter2Info_isUseButton(0x10); mpMeterDraw->drawButtonC(mCStickStatus, field_0x128 == 0); } /* 80222494-80222518 21CDD4 0084+00 1/1 0/0 0/0 .text moveButtonS__9dMeter2_cFv */ void dMeter2_c::moveButtonS() { if (dComIfGp_getSButtonStatusForce()) { u8 setFlag = dComIfGp_getSButtonSetFlagForce(); u8 statusForce = dComIfGp_getSButtonStatusForce(); dComIfGp_setSButtonStatus(statusForce, setFlag); dComIfGp_setSButtonStatusForce(0, 0); } else { dComIfGp_setSButtonStatus(0, 0); } if (mSButtonStatus != dComIfGp_getSButtonStatus()) { mSButtonStatus = dComIfGp_getSButtonStatus(); mpMeterDraw->drawButtonS(mSButtonStatus); } } /* 80222518-80222E88 21CE58 0970+00 1/1 0/0 0/0 .text moveButtonXY__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveButtonXY() { nofralloc #include "asm/d/meter/d_meter2/moveButtonXY__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 804549FC-80454A00 002FFC 0004+00 1/1 0/0 0/0 .sdata2 @7509 */ SECTION_SDATA2 static f32 lit_7509 = 15.0f; /* 80454A00-80454A04 003000 0004+00 1/1 0/0 0/0 .sdata2 @7510 */ SECTION_SDATA2 static f32 lit_7510 = 50.0f; /* 80222E88-802230F8 21D7C8 0270+00 1/1 0/0 0/0 .text moveButtonCross__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveButtonCross() { nofralloc #include "asm/d/meter/d_meter2/moveButtonCross__9dMeter2_cFv.s" } #pragma pop /* 802230F8-802230FC 21DA38 0004+00 1/1 0/0 0/0 .text moveTouchSubMenu__9dMeter2_cFv */ void dMeter2_c::moveTouchSubMenu() { /* empty function */ } /* 802230FC-802231C8 21DA3C 00CC+00 1/1 0/0 0/0 .text moveSubContents__9dMeter2_cFv */ void dMeter2_c::moveSubContents() { JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); checkSubContents(); if (mpMeterSub != NULL) { mpMeterSub->_execute(field_0x124); } if (mpMeterString != NULL) { if (mSubContents == 5 && mSubContentsStringType != dMeter2Info_getMeterStringType()) { mSubContentsStringType = dMeter2Info_getMeterStringType(); if (mSubContentsStringType != 0) { mpMeterString->createString(mSubContentsStringType); } } mpMeterString->_execute(field_0x124); } mDoExt_setCurrentHeap(heap); } /* 802231C8-802237D4 21DB08 060C+00 1/1 0/0 0/0 .text move2DContents__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::move2DContents() { nofralloc #include "asm/d/meter/d_meter2/move2DContents__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 80399338-80399338 025998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039933F = "F_SP103"; #pragma pop /* 802237D4-80223BC4 21E114 03F0+00 1/1 0/0 0/0 .text checkSubContents__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::checkSubContents() { nofralloc #include "asm/d/meter/d_meter2/checkSubContents__9dMeter2_cFv.s" } #pragma pop /* 80223BC4-80223E00 21E504 023C+00 1/1 0/0 0/0 .text check2DContents__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::check2DContents() { nofralloc #include "asm/d/meter/d_meter2/check2DContents__9dMeter2_cFv.s" } #pragma pop /* 80223E00-80224258 21E740 0458+00 1/1 0/0 0/0 .text moveBombNum__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveBombNum() { nofralloc #include "asm/d/meter/d_meter2/moveBombNum__9dMeter2_cFv.s" } #pragma pop /* 80224258-80224354 21EB98 00FC+00 1/1 0/0 0/0 .text moveBottleNum__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveBottleNum() { nofralloc #include "asm/d/meter/d_meter2/moveBottleNum__9dMeter2_cFv.s" } #pragma pop /* 80224354-80224680 21EC94 032C+00 1/1 0/0 0/0 .text moveArrowNum__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::moveArrowNum() { nofralloc #include "asm/d/meter/d_meter2/moveArrowNum__9dMeter2_cFv.s" } #pragma pop /* 80224680-802248E4 21EFC0 0264+00 1/1 0/0 0/0 .text movePachinkoNum__9dMeter2_cFv */ // matches with literals #ifdef NONMATCHING void dMeter2_c::movePachinkoNum() { if (g_mwHIO.getPachinkoFlag()) { if (dComIfGs_getPachinkoNum() != dComIfGs_getPachinkoMax()) { u8 max = dComIfGs_getPachinkoMax(); dComIfGp_setItemPachinkoNumCount(max); } if (dComIfGp_getItemPachinkoNumCount() < 0) { dComIfGp_clearItemPachinkoNumCount(); } } if (dComIfGp_getItemPachinkoNumCount() == 0 && mItemMaxNum[3] == dComIfGs_getPachinkoMax() && mPachinkoNum == dComIfGs_getPachinkoNum()) { return; } s16 pachinko_num = dComIfGs_getPachinkoNum() + dComIfGp_getItemPachinkoNumCount(); dComIfGp_clearItemPachinkoNumCount(); if (pachinko_num < 0) { pachinko_num = 0; } if (dComIfGs_getPachinkoMax() < pachinko_num) { pachinko_num = dComIfGs_getPachinkoMax(); } dComIfGs_setPachinkoNum(pachinko_num); mItemMaxNum[3] = dComIfGs_getPachinkoMax(); if (mPachinkoNum < dComIfGs_getPachinkoNum()) { mPachinkoNum++; onArrowSoundBit(2); if (isArrowSoundBit(2)) { if (mPachinkoNum != dComIfGs_getPachinkoNum()) { if (!isArrowSoundBit(0) && isPachinkoEquip() && mpMeterDraw->isButtonVisible()) { onArrowSoundBit(0); mDoAud_seStart(Z2SE_CONSUM_INC_CNT_1, 0, 0, 0); } else { offArrowSoundBit(0); } } else { if (isPachinkoEquip() && mpMeterDraw->isButtonVisible()) { mDoAud_seStart(Z2SE_CONSUM_INC_CNT_2, 0, 0, 0); } offArrowSoundBit(2); offArrowSoundBit(0); } } } else if (mPachinkoNum > dComIfGs_getPachinkoNum()) { mPachinkoNum--; } for (int i = 0; i < 2; i++) { if (mItemStatus[i * 2] == PACHINKO) { mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax()); } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::movePachinkoNum() { nofralloc #include "asm/d/meter/d_meter2/movePachinkoNum__9dMeter2_cFv.s" } #pragma pop #endif /* 802248E4-80224A04 21F224 0120+00 1/1 0/0 0/0 .text alphaAnimeLife__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeLife() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeLife__9dMeter2_cFv.s" } #pragma pop /* 80224A04-80224BAC 21F344 01A8+00 1/1 0/0 0/0 .text alphaAnimeKantera__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeKantera() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeKantera__9dMeter2_cFv.s" } #pragma pop /* 80224BAC-80224D6C 21F4EC 01C0+00 1/1 0/0 0/0 .text alphaAnimeOxygen__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeOxygen() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeOxygen__9dMeter2_cFv.s" } #pragma pop /* 80224D6C-80224DC0 21F6AC 0054+00 1/1 0/0 0/0 .text alphaAnimeLightDrop__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeLightDrop() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeLightDrop__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 80399338-80399338 025998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80399347 = "R_SP127"; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_8039934F = ""; #pragma pop /* 80224DC0-80224F70 21F700 01B0+00 1/1 0/0 0/0 .text alphaAnimeRupee__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeRupee() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeRupee__9dMeter2_cFv.s" } #pragma pop /* 80224F70-802250F4 21F8B0 0184+00 1/1 0/0 0/0 .text alphaAnimeKey__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeKey() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeKey__9dMeter2_cFv.s" } #pragma pop /* 802250F4-802254C0 21FA34 03CC+00 1/1 0/0 0/0 .text alphaAnimeButton__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeButton() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeButton__9dMeter2_cFv.s" } #pragma pop /* ############################################################################################## */ /* 80454A04-80454A08 003004 0004+00 1/1 0/0 0/0 .sdata2 @9090 */ SECTION_SDATA2 static f32 lit_9090 = 255.0f; /* 80454A08-80454A10 003008 0004+04 1/1 0/0 0/0 .sdata2 @9091 */ SECTION_SDATA2 static f32 lit_9091[1 + 1 /* padding */] = { 5.0f, /* padding */ 0.0f, }; /* 802254C0-802256DC 21FE00 021C+00 1/1 0/0 0/0 .text alphaAnimeButtonCross__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::alphaAnimeButtonCross() { nofralloc #include "asm/d/meter/d_meter2/alphaAnimeButtonCross__9dMeter2_cFv.s" } #pragma pop /* 802256DC-802258A0 22001C 01C4+00 3/3 0/0 0/0 .text isShowLightDrop__9dMeter2_cFv */ bool dMeter2_c::isShowLightDrop() { if (!g_drawHIO.mLightDrop.mAnimDebug) { if ((field_0x124 & 0x4000) || !dComIfGs_isLightDropGetFlag(dComIfGp_getStartStageDarkArea()) || dMeter2Info_getLightDropGetFlag(dComIfGp_getStartStageDarkArea()) <= 1 || !dKy_darkworld_check() || ((field_0x124 & 0x40) && dComIfGp_event_checkHind(0x200)) || daPy_getPlayerActorClass()->i_getSumouMode() || (daPy_getPlayerActorClass()->checkCanoeSlider() && (dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4)) || (field_0x124 & 0x40000000) || (field_0x124 & 0x00001000) || (field_0x124 & 0x00100000) || (field_0x124 & 0x80000000) || (field_0x124 & 0x00000100) || (field_0x124 & 0x00000080) || (field_0x124 & 0x00000008) || (field_0x124 & 0x00000010) || (field_0x124 & 0x01000000) || (field_0x124 & 0x00000020) || (field_0x124 & 0x04000000) || (field_0x124 & 0x08000000) || (field_0x124 & 0x10000000) || dMeter2Info_isSub2DStatus(1)) { return false; } } return true; } /* 802258A0-80225960 2201E0 00C0+00 1/1 0/0 0/0 .text killSubContents__9dMeter2_cFUc */ void dMeter2_c::killSubContents(u8 param_0) { if (mSubContents != param_0 && mSubContents != 0) { bool free = false; if (mpMeterSub != NULL) { delete mpMeterSub; mpMeterSub = NULL; free = true; } if (mpMeterString != NULL) { delete mpMeterString; mpMeterString = NULL; free = true; } if (free) { mpSubHeap->freeAll(); } mSubContents = 0; mSubContentsStringType = 0; } } /* 80225960-802259F8 2202A0 0098+00 1/1 0/0 0/0 .text isKeyVisible__9dMeter2_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeter2_c::isKeyVisible() { nofralloc #include "asm/d/meter/d_meter2/isKeyVisible__9dMeter2_cFv.s" } #pragma pop /* 802259F8-80225A64 220338 006C+00 2/2 0/0 0/0 .text isArrowEquip__9dMeter2_cFv */ int dMeter2_c::isArrowEquip() { for (int i = 0; i < 2; i++) { if (mItemStatus[i * 2] == BOW || mItemStatus[i * 2] == LIGHT_ARROW || mItemStatus[i * 2] == ARROW_LV1 || mItemStatus[i * 2] == ARROW_LV2 || mItemStatus[i * 2] == ARROW_LV3 || mItemStatus[i * 2] == HAWK_ARROW || mItemStatus[i * 2] == BOMB_ARROW) { return i + 1; } } return 0; } /* 80225A64-80225AA0 2203A4 003C+00 2/2 0/0 0/0 .text isPachinkoEquip__9dMeter2_cFv */ int dMeter2_c::isPachinkoEquip() { for (int i = 0; i < 2; i++) { if (mItemStatus[i * 2] == PACHINKO) { return i + 1; } } return 0; } /* 80225AA0-80225AC0 2203E0 0020+00 1/0 0/0 0/0 .text dMeter2_Draw__FP9dMeter2_c */ static int dMeter2_Draw(dMeter2_c* p_meter) { return p_meter->_draw(); } /* 80225AC0-80225AE0 220400 0020+00 1/0 0/0 0/0 .text dMeter2_Execute__FP9dMeter2_c */ static int dMeter2_Execute(dMeter2_c* p_meter) { return p_meter->_execute(); } /* 80225AE0-80225AE8 220420 0008+00 1/0 0/0 0/0 .text dMeter2_IsDelete__FP9dMeter2_c */ static int dMeter2_IsDelete(dMeter2_c* p_meter) { return 1; } /* 80225AE8-80225B08 220428 0020+00 1/0 0/0 0/0 .text dMeter2_Delete__FP9dMeter2_c */ static int dMeter2_Delete(dMeter2_c* p_meter) { return p_meter->_delete(); } /* 80225B08-80225BB8 220448 00B0+00 1/0 0/0 0/0 .text dMeter2_Create__FP9msg_class */ static int dMeter2_Create(msg_class* meter) { dMeter2Info_setMeterClass(static_cast(meter)); dComIfGp_2dShowOn(); fopMsgM_Create(0x314, NULL, NULL); g_drawHIO.field_0x4 = -1; g_ringHIO.field_0x4 = -1; g_fmapHIO.field_0x4 = -1; g_cursorHIO.field_0x4 = -1; u32 id = fopMsgM_Create(0x313, NULL, NULL); fopMsgM_setMessageID(id); dTimer_createStockTimer(); fopMsgM_setStageLayer(meter); return static_cast(meter)->_create(); } /* ############################################################################################## */ /* 803BFA54-803BFA68 -00001 0014+00 1/0 0/0 0/0 .data l_dMeter2_Method */ SECTION_DATA static leafdraw_method_class l_dMeter2_Method = { (process_method_func)dMeter2_Create, (process_method_func)dMeter2_Delete, (process_method_func)dMeter2_Execute, (process_method_func)dMeter2_IsDelete, (process_method_func)dMeter2_Draw, }; /* 803BFA68-803BFA90 -00001 0028+00 0/0 0/0 1/0 .data g_profile_METER2 */ SECTION_DATA extern process_profile_definition g_profile_METER2 = { -3, 12, -3, 0x0316, 0, (process_method_class*)&g_fpcLf_Method, 0x4C0, 0, 0, &g_fopMsg_Method, 0x0301, 0, 0, &l_dMeter2_Method}; /* 80399338-80399338 025998 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */