/** * d_meter2.cpp * Main UI handler */ #include "d/d_meter2.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "d/d_demo.h" #include "d/d_scope.h" #include "d/d_timer.h" #include "d/d_menu_window_HIO.h" #include "d/d_meter2_draw.h" #include "d/d_meter2_info.h" #include "d/d_meter_HIO.h" #include "d/d_meter_button.h" #include "d/d_meter_haihai.h" #include "d/d_meter_hakusha.h" #include "d/d_meter_map.h" #include "d/d_meter_string.h" #include "dol2asm.h" #include "f_op/f_op_msg_mng.h" #include "d/actor/d_a_horse.h" /* 8021EA14-8021F128 219354 0714+00 1/1 0/0 0/0 .text _create__9dMeter2_cFv */ 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; mStatus = 0; mSubContentType = 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; mLifeCountType = 0; mNowLifeGauge = dComIfGs_getLife(); dComIfGp_setItemNowLife((u8)mNowLifeGauge); mMaxLife = dComIfGs_getMaxLife(); mNowMagic = dComIfGs_getMagic(); dComIfGp_setItemNowMagic(mNowMagic); mMaxMagic = dComIfGs_getMaxMagic(); mNowOil = (s16)dComIfGs_getOil(); dComIfGp_setItemNowOil(mNowOil); mMaxOil = (s16)dComIfGs_getMaxOil(); mNowOxygen = dComIfGp_getOxygen(); dComIfGp_setNowOxygen(mNowOxygen); mMaxOxygen = dComIfGp_getMaxOxygen(); field_0x130 = 0.0f; u8 dark_area = dComIfGp_getStartStageDarkArea(); mLightDropNum = dComIfGs_getLightDropNum(dark_area); mNeedLightDropNum = dComIfGp_getNeedLightDropNum(); mRupeeNum = dComIfGs_getRupee(); mKeyNum = dComIfGs_getKeyNum(); mDoStatus = dComIfGp_getDoStatus(); mDoSetFlag = dComIfGp_isDoSetFlag(2); for (int i = 0; i < 2; i++) { mButtonATalkPosX[i] = 0.0f; mButtonATalkPosY[i] = 0.0f; } field_0x144 = 1.0f; mAStatus = dComIfGp_getAStatus(); field_0x1c6 = 0; mASetFlag = dComIfGp_isASetFlag(2); for (int i = 0; i < 2; i++) { field_0x148[i] = 0.0f; field_0x150[i] = 0.0f; } field_0x158 = 1.0f; 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 = 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(); field_0x188 = 0.0f; field_0x18c = 0.0f; 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; field_0x15c = 0.0f; for (int i = 0; i < 4; i++) { field_0x160[i] = 0.0f; field_0x174[i] = 0.0f; } 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] == fpcNm_ITEM_BOMB_BAG_LV1 || mItemStatus[i * 2] == fpcNm_ITEM_NORMAL_BOMB || mItemStatus[i * 2] == fpcNm_ITEM_WATER_BOMB || mItemStatus[i * 2] == fpcNm_ITEM_POKE_BOMB) { mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), dComIfGp_getSelectItemMaxNum(i)); } else if (mItemStatus[i * 2] == fpcNm_ITEM_BEE_CHILD) { mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), dComIfGp_getSelectItemMaxNum(i)); } else if (mItemStatus[i * 2] == fpcNm_ITEM_BOW || mItemStatus[i * 2] == fpcNm_ITEM_LIGHT_ARROW || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV1 || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV2 || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV3 || mItemStatus[i * 2] == fpcNm_ITEM_HAWK_ARROW) { mpMeterDraw->setItemNum(i, mArrowNum, dComIfGs_getArrowMax()); } else if (mItemStatus[i * 2] == fpcNm_ITEM_PACHINKO) { mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax()); } else if (mItemStatus[i * 2] == fpcNm_ITEM_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; mpSubContents = NULL; mpSubSubContents = NULL; mpEmpButton = 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) && dComIfGs_isEventBit(dSv_event_flag_c::F_0685)) { dComIfGs_onCollectMirror(0); } if (!dComIfGs_isCollectCrystal(3) && dComIfGs_isEventBit(dSv_event_flag_c::F_0686)) { dComIfGs_onCollectCrystal(3); } checkStatus(); mpMeterDraw->exec(mStatus); 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(mStatus); } else { dMeterMap_c::meter_map_move(mStatus); } moveSubContents(); move2DContents(); if (!dComIfGp_isPauseFlag() && !dComIfGp_event_runCheck()) { dMeter2Info_decHotSpringTimer(); } dMeter2Info_allUseButton(); dMeter2Info_offUseButton(0x800); dMeter2Info_resetGameStatus(); dComIfGp_setNunStatus(0, 0, 0); dComIfGp_setRemoConStatus(0, 0, 0); dComIfGp_setNunZStatus(0, 0); dComIfGp_setNunCStatus(0, 0); 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 (mpSubContents != NULL) { dComIfGd_set2DOpaTop(mpSubContents); } if (mpSubSubContents != NULL) { if (mSubContentType == 5) { if (mSubContentsStringType != 0) { dComIfGd_set2DOpaTop(mpSubSubContents); } } else { dComIfGd_set2DOpaTop(mpSubSubContents); } } if (dMeter2Info_getWindowStatus() == 2) { dComIfGd_set2DOpa(mpMeterDraw); } else { dComIfGd_set2DOpaTop(mpMeterDraw); } if (mpEmpButton != NULL) { dComIfGd_set2DOpaTop(mpEmpButton); } return 1; } /* 8021F49C-8021F6EC 219DDC 0250+00 1/1 0/0 0/0 .text _delete__9dMeter2_cFv */ 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 (mpSubContents != NULL) { delete mpSubContents; mpSubContents = NULL; } if (mpSubSubContents != NULL) { delete mpSubSubContents; mpSubSubContents = 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; } /* 8021F6EC-8021F780 21A02C 0094+00 1/1 5/5 0/0 .text emphasisButtonDelete__9dMeter2_cFv */ int dMeter2_c::emphasisButtonDelete() { if (mpEmpButton != NULL) { JKRExpHeap* heap = dComIfGp_getSubHeap2D(8); mpEmpButton->hideAll(); if (heap != NULL) { delete mpEmpButton; mpEmpButton = 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); dComIfGp_setItemLifeCount(-1.0f, 0); } /* 8021F7B0-8021FD60 21A0F0 05B0+00 2/1 0/0 0/0 .text checkStatus__9dMeter2_cFv */ void dMeter2_c::checkStatus() { mStatus = 0; field_0x12c = field_0x128; // supposed to be daPy_py_c::checkNowWolf, but it messes with reg alloc? field_0x128 = ((daPy_py_c*)g_dComIfG_gameInfo.play.getPlayerPtr(LINK_PTR))->checkWolf(); if (!dComIfGp_2dShowCheck() || dMsgObject_getMsgObjectClass()->isPlaceMessage()) { mStatus |= 0x4000; } else if (dComIfGp_checkPlayerStatus1(0, 1) && dComIfGp_getAStatus() == 0x12) { mStatus |= 0x200000; } else if (dComIfGp_event_runCheck()) { mStatus |= 0x40; if (dDemo_c::getMode() != 1 && dComIfGp_isHeapLockFlag() != 6 && dMsgObject_isTalkNowCheck() && !dMeter2Info_isFloatingMessageVisible()) { mStatus |= 0x100; dComIfGp_setAStatus(0, 0); dComIfGp_setRStatus(0, 0); } } if (dComIfGp_isHeapLockFlag() != 6 && !(mStatus & 0x100) && dMsgObject_isTalkNowCheck() && !dMeter2Info_isFloatingMessageVisible()) { mStatus |= 0x100; dComIfGp_setAStatus(0, 0); dComIfGp_setRStatus(0, 0); } if (!dComIfGp_isPauseFlag()) { if (mpMeterDraw->getCameraSubject()) { mStatus |= 0x40000000; } else if (mpMeterDraw->getItemSubject()) { mStatus |= 0x1000; } if (mpMeterDraw->getPlayerSubject()) { mStatus |= 0x100000; } if (dComIfGp_getCameraAttentionStatus(0) & 0x40000) { mStatus |= 0x80000000; dComIfGp_setDoStatusForce(0x12, 2); } s16 sp8; s16 spA; if (dComIfGp_checkCameraAttentionStatus(0, 8)) { mStatus |= 0x80; } else if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 0x10) && dCam_getBody()->CalcSubjectAngle(&sp8, &spA)) { mStatus |= 0x20000000; } else if (daPy_getPlayerActorClass()->checkCanoeRide()) { mStatus |= 0x400; } else if (dComIfGp_checkPlayerStatus0(0, 0x8000000) || daPy_getPlayerActorClass()->checkSpinnerRide()) { mStatus |= 0x200; } else if (dComIfGp_checkPlayerStatus0(0, 0x800000)) { mStatus |= 0x800; } else if (dComIfGp_checkPlayerStatus0(0, 0x100000)) { mStatus |= 0x2000; } else if (dComIfGp_checkPlayerStatus0(0, 0x2000108)) { mStatus |= 0x8000; } else if (dComIfGp_checkPlayerStatus0(0, 0x4000000)) { mStatus |= 0x10000; } else if (daPy_getPlayerActorClass()->checkHorseRideNotReady() && dComIfGp_getHorseActor() != NULL && !dComIfGp_getHorseActor()->checkRodeoMode()) { mStatus |= 0x2000000; } } switch (dMeter2Info_getWindowStatus()) { case 1: mStatus |= 0x8; break; case 3: case 10: mStatus |= 0x10; break; case 2: mStatus |= 0x1000000; dComIfGp_setAStatus(0x12, 0); dComIfGp_setDoStatus(0, 0); dComIfGp_setRStatus(0, 0); break; case 4: case 6: mStatus |= 0x20; dComIfGp_setAStatus(0x12, 0); dComIfGp_setDoStatus(0, 0); dComIfGp_setRStatus(0, 0); break; case 5: mStatus |= 0x4000000; dComIfGp_setAStatus(0x12, 0); dComIfGp_setDoStatus(0, 0); dComIfGp_setRStatus(0, 0); break; case 7: mStatus |= 0x8000000; dComIfGp_setAStatus(0x12, 0); dComIfGp_setDoStatus(0x22, 0); dComIfGp_setRStatus(0, 0); break; case 8: mStatus |= 0x10000000; dComIfGp_setAStatus(0, 0); dComIfGp_setDoStatus(0, 0); dComIfGp_setRStatus(0, 0); break; } switch (dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo())) { case ST_DUNGEON: mStatus |= 0x4; break; case ST_ROOM: mStatus |= 0x2; break; case ST_FIELD: default: mStatus |= 0x1; break; } } /* 8021FD60-80220180 21A6A0 0420+00 1/1 0/0 0/0 .text moveLife__9dMeter2_cFv */ void dMeter2_c::moveLife() { s16 life_count = 0; bool draw_life = false; if (dComIfGp_getItemMaxLifeCount() != 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 - dComIfGs_getLife(); dComIfGp_setItemLifeCount(current_life, 0); dComIfGp_clearItemMaxLifeCount(); draw_life = true; } f32 item_life_count = dComIfGp_getItemLifeCount(); f32 tmp = 0.0f; if (item_life_count != tmp) { mLifeCountType = dComIfGp_getItemLifeCountType(); if (!draw_life) { life_count = (dComIfGs_getMaxLife() / 5) * 4; } s16 new_life = dComIfGs_getLife() + dComIfGp_getItemLifeCount(); if (new_life > life_count) { new_life = life_count; } else if (new_life < 0) { new_life = 0; } dComIfGs_setLife((u8)new_life); dComIfGp_clearItemLifeCount(); if (mNowLifeGauge == dComIfGs_getLife() && mLifeCountType != 0) { mLifeCountType = 0; } draw_life = true; } u16 max_life = dComIfGs_getMaxLife(); if (mMaxLife != max_life) { if (mMaxLife < max_life) { mMaxLife++; dMeter2Info_onLifeGaugeSE(); draw_life = true; } else if (mMaxLife > max_life) { mMaxLife--; draw_life = true; } } u16 current_life = dComIfGs_getLife(); if (mNowLifeGauge != current_life) { if (mNowLifeGauge < current_life) { mNowLifeGauge++; if (dComIfGp_checkPlayerStatus1(0, 0x2000) || dComIfGp_checkPlayerStatus0(0, 0x20000000) || dMeter2Info_getLifeGaugeSE()) { if (mNowLifeGauge % 4 == 0) { mDoAud_seStart(Z2SE_HP_GAUGE_INC, 0, 0, 0); } } else if (mLifeCountType == 1) { mDoAud_seStart(Z2SE_HP_GAUGE_INC, 0, 0, 0); } u16 life = dComIfGs_getLife(); if (mNowLifeGauge == life && mLifeCountType != 0) { mLifeCountType = 0; } draw_life = true; } else if (mNowLifeGauge > current_life) { mNowLifeGauge--; if (mLifeCountType != 0) { mLifeCountType = 0; } draw_life = true; } } else if (dMeter2Info_getLifeGaugeSE()) { dMeter2Info_offLifeGaugeSE(); } f32 life_gauge_x = g_drawHIO.mLifeGaugePosX; f32 life_gauge_y = g_drawHIO.mLifeGaugePosY; if (mLifeGaugePosX != g_drawHIO.mLifeGaugePosX) { mLifeGaugePosX = g_drawHIO.mLifeGaugePosX; draw_life = true; } if (mLifeGaugePosY != g_drawHIO.mLifeGaugePosY) { mLifeGaugePosY = g_drawHIO.mLifeGaugePosY; draw_life = true; } if (mLifeGaugeScale != g_drawHIO.mLifeParentScale) { mLifeGaugeScale = g_drawHIO.mLifeParentScale; draw_life = true; } if (mHeartScale != g_drawHIO.mHeartMarkScale) { mHeartScale = g_drawHIO.mHeartMarkScale; draw_life = true; } if (mLargeHeartScale != g_drawHIO.mBigHeartScale) { mLargeHeartScale = g_drawHIO.mBigHeartScale; draw_life = true; } if (draw_life == true) { mpMeterDraw->drawLife(mMaxLife, mNowLifeGauge, life_gauge_x, life_gauge_y); } alphaAnimeLife(); dComIfGp_setItemNowLife((u8)mNowLifeGauge); } /* 80220180-8022051C 21AAC0 039C+00 1/1 0/0 0/0 .text moveKantera__9dMeter2_cFv */ void dMeter2_c::moveKantera() { s32 var_r0; s32 var_r7; bool draw_kantera; s32 max_oil = dComIfGs_getMaxOil(); var_r7 = 0; draw_kantera = false; if (dComIfGp_getItemMaxOilCount() != 0) { var_r7 = dComIfGs_getMaxOil() + dComIfGp_getItemMaxOilCount(); if (var_r7 > max_oil) { var_r7 = max_oil; } else if (var_r7 < 0) { var_r7 = 0; } dComIfGs_setMaxOil(var_r7); dComIfGp_setItemOilCount(var_r7 - dComIfGs_getOil()); dComIfGp_clearItemMaxOilCount(); draw_kantera = true; } if (dComIfGp_getItemOilCount() != 0) { if (draw_kantera == 0) { var_r7 = dComIfGs_getMaxOil(); } var_r0 = dComIfGs_getOil() + dComIfGp_getItemOilCount(); if (var_r0 > var_r7) { var_r0 = var_r7; } else if (var_r0 < 0) { var_r0 = 0; } dComIfGs_setOil(var_r0); dComIfGp_clearItemOilCount(); draw_kantera = true; } if (mMaxOil != dComIfGs_getMaxOil()) { if (mMaxOil < dComIfGs_getMaxOil()) { mMaxOil += 200; if (mMaxOil > dComIfGs_getMaxOil()) { mMaxOil = dComIfGs_getMaxOil(); } draw_kantera = true; } else if (mMaxOil > dComIfGs_getMaxOil()) { mMaxOil -= 200; if (mMaxOil < dComIfGs_getMaxOil()) { mMaxOil = dComIfGs_getMaxOil(); } draw_kantera = true; } } if (mNowOil != dComIfGs_getOil()) { if (mNowOil < dComIfGs_getOil()) { mNowOil += 200; if (mNowOil > dComIfGs_getOil()) { mNowOil = dComIfGs_getOil(); } if (!dComIfGp_getOxygenShowFlag() && mpMeterDraw->getMeterGaugeAlphaRate(1) > 0.0f) { Z2GetAudioMgr()->seStartLevel(Z2SE_OIL_METER_RECOVER, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } draw_kantera = true; } else if (mNowOil > dComIfGs_getOil()) { mNowOil -= 200; if (mNowOil < dComIfGs_getOil()) { mNowOil = dComIfGs_getOil(); } if (mNowOil == 0) { if (mpMeterDraw->getMeterGaugeAlphaRate(1) > 0.0f) { Z2GetAudioMgr()->seStart(Z2SE_OIL_METER_FINISH, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } else if (((f32)dComIfGs_getOil() / (f32)dComIfGs_getMaxOil()) <= 0.1f && mpMeterDraw->getMeterGaugeAlphaRate(1) > 0.0f) { Z2GetAudioMgr()->seStartLevel(Z2SE_OIL_METER_LESS, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } draw_kantera = true; } } f32 x_pos = g_drawHIO.mLanternMeterPosX; f32 y_pos = g_drawHIO.mLanternMeterPosY; if (field_0x246 != mMaxLife) { field_0x246 = mMaxLife; draw_kantera = true; } if (mLanternMeterScale != g_drawHIO.mLanternMeterScale) { mLanternMeterScale = g_drawHIO.mLanternMeterScale; draw_kantera = true; } if (mLanternMeterPosX != g_drawHIO.mLanternMeterPosX) { mLanternMeterPosX = g_drawHIO.mLanternMeterPosX; draw_kantera = true; } if (mLanternMeterPosY != g_drawHIO.mLanternMeterPosY) { mLanternMeterPosY = g_drawHIO.mLanternMeterPosY; draw_kantera = true; } if (draw_kantera == true) { mpMeterDraw->drawKantera(mMaxOil, mNowOil, x_pos, y_pos); } alphaAnimeKantera(); dComIfGp_setItemNowOil(mNowOil); } /* 8022051C-80220888 21AE5C 036C+00 1/1 0/0 0/0 .text moveOxygen__9dMeter2_cFv */ void dMeter2_c::moveOxygen() { s32 var_r0; s32 var_r7; bool draw_oxygen; s32 var_r4 = dComIfGp_getMaxOxygen(); var_r7 = 0; draw_oxygen = false; if (dComIfGp_getMaxOxygenCount() != 0) { var_r7 = dComIfGp_getMaxOxygen() + dComIfGp_getMaxOxygenCount(); if (var_r7 > var_r4) { var_r7 = var_r4; } else if (var_r7 < 0) { var_r7 = 0; } dComIfGp_setMaxOxygen((u16)var_r7); dComIfGp_setOxygenCount(var_r7 - dComIfGp_getOxygen()); dComIfGp_clearMaxOxygenCount(); draw_oxygen = true; } if (dComIfGp_getOxygenCount() != 0) { if (draw_oxygen == 0) { var_r7 = dComIfGp_getMaxOxygen(); } var_r0 = dComIfGp_getOxygen() + dComIfGp_getOxygenCount(); if (var_r0 > var_r7) { var_r0 = var_r7; } else if (var_r0 < 0) { var_r0 = 0; } if (dComIfGp_getOxygenShowFlag() && var_r0 == dComIfGp_getMaxOxygen()) { if (dComIfGp_getOxygen() < dComIfGp_getMaxOxygen() && mpMeterDraw->getMeterGaugeAlphaRate(2) > 0.0f) { Z2GetAudioMgr()->seStart(Z2SE_SWIM_TIMER_RECOVER, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } dComIfGp_setOxygen((u16)var_r0); dComIfGp_clearOxygenCount(); draw_oxygen = true; } if (mMaxOxygen != dComIfGp_getMaxOxygen()) { if (mMaxOxygen < dComIfGp_getMaxOxygen()) { mMaxOxygen += 50; if (mMaxOxygen > dComIfGp_getMaxOxygen()) { mMaxOxygen = dComIfGp_getMaxOxygen(); } draw_oxygen = true; } else if (mMaxOxygen > dComIfGp_getMaxOxygen()) { mMaxOxygen -= 50; if (mMaxOxygen < dComIfGp_getMaxOxygen()) { mMaxOxygen = dComIfGp_getMaxOxygen(); } draw_oxygen = true; } } if (mNowOxygen != dComIfGp_getOxygen()) { if (mNowOxygen < dComIfGp_getOxygen()) { mNowOxygen += 50; if (mNowOxygen > dComIfGp_getOxygen()) { mNowOxygen = dComIfGp_getOxygen(); } draw_oxygen = true; } else if (mNowOxygen > dComIfGp_getOxygen()) { mNowOxygen -= 50; if (mNowOxygen < dComIfGp_getOxygen()) { mNowOxygen = dComIfGp_getOxygen(); } if ((f32)dComIfGp_getOxygen() / (f32)dComIfGp_getMaxOxygen() > 0.5f && mpMeterDraw->getMeterGaugeAlphaRate(2) > 0.0f) { Z2GetAudioMgr()->seStartLevel(Z2SE_SWIM_TIMER_DEC, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } draw_oxygen = true; } } f32 x_pos = g_drawHIO.mOxygenMeterPosX; f32 y_pos = g_drawHIO.mOxygenMeterPosY; if (field_0x248 != mMaxLife) { field_0x248 = mMaxLife; draw_oxygen = true; } if (mOxygenMeterScale != g_drawHIO.mOxygenMeterScale) { mOxygenMeterScale = g_drawHIO.mOxygenMeterScale; draw_oxygen = true; } if (mOxygenMeterPosX != g_drawHIO.mOxygenMeterPosX) { mOxygenMeterPosX = g_drawHIO.mOxygenMeterPosX; draw_oxygen = true; } if (mOxygenMeterPosY != g_drawHIO.mOxygenMeterPosY) { mOxygenMeterPosY = g_drawHIO.mOxygenMeterPosY; draw_oxygen = true; } if (draw_oxygen == true) { mpMeterDraw->drawOxygen(mMaxOxygen, mNowOxygen, x_pos, y_pos); } alphaAnimeOxygen(); dComIfGp_setNowOxygen(mNowOxygen); } /* 80220888-80220C30 21B1C8 03A8+00 1/1 0/0 0/0 .text moveLightDrop__9dMeter2_cFv */ void dMeter2_c::moveLightDrop() { f32 scale; f32 alpha; f32 pos_x; f32 pos_y; bool draw_lightdrop; u8 var_r28; draw_lightdrop = false; var_r28 = 0; if (g_drawHIO.mLightDrop.mAnimDebug) { u8 dark_level = dComIfGp_getStartStageDarkArea(); if (dComIfGp_getNeedLightDropNum() == dComIfGs_getLightDropNum(dark_level)) { var_r28 = 2; } } if (mLightDropNum != dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea())) { if (dComIfGp_getNeedLightDropNum() == dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea())) { var_r28 = 2; Z2GetAudioMgr()->seStart(Z2SE_SY_LIGHT_DROP_COMPLETE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } else if (mLightDropNum < dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea())) { var_r28 = 1; Z2GetAudioMgr()->seStart(Z2SE_SY_LIGHT_DROP_GET, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } mLightDropNum = dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()); draw_lightdrop = true; } if (mNeedLightDropNum != dComIfGp_getNeedLightDropNum()) { mNeedLightDropNum = dComIfGp_getNeedLightDropNum(); draw_lightdrop = true; } if ((mStatus & 0x100) || daPy_getPlayerActorClass()->checkHawkWait() || daPy_getPlayerActorClass()->checkGrassWhistle() || g_meter2_info.mItemExplainWindowStatus != 0) { pos_x = g_drawHIO.mLightDrop.mVesselTalkPosX; pos_y = g_drawHIO.mLightDrop.mVesselTalkPosY; scale = g_drawHIO.mLightDrop.mVesselTalkScale; alpha = g_drawHIO.mLightDrop.mVesselAlpha[1]; } else { pos_x = g_drawHIO.mLightDrop.mVesselPosX; pos_y = g_drawHIO.mLightDrop.mVesselPosY; scale = g_drawHIO.mLightDrop.mVesselScale; alpha = g_drawHIO.mLightDrop.mVesselAlpha[0]; } if (mVesselPosX != pos_x) { cLib_addCalc2(&mVesselPosX, pos_x, 1.0f, 10.0f); draw_lightdrop = true; if ((f32)fabs(mVesselPosX - pos_x) < 0.1f) { mVesselPosX = pos_x; } } if (mVesselPosY != pos_y) { cLib_addCalc2(&mVesselPosY, pos_y, 1.0f, 10.0f); draw_lightdrop = true; if ((f32)fabs(mVesselPosY - pos_y) < 0.1f) { mVesselPosY = pos_y; } } if (mVesselScale != scale) { cLib_addCalc2(&mVesselScale, scale, 0.2f, 1.0f); draw_lightdrop = true; if ((f32)fabs(mVesselScale - scale) < 0.1f) { mVesselScale = scale; } } if (mVesselAlpha != alpha) { cLib_addCalc2(&mVesselAlpha, alpha, 0.2f, 1.0f); draw_lightdrop = true; if ((f32)fabs(mVesselAlpha - alpha) < 0.1f) { mVesselAlpha = alpha; } } if (draw_lightdrop == true) { mpMeterDraw->drawLightDrop(mLightDropNum, mNeedLightDropNum, mVesselPosX, mVesselPosY, mVesselScale, mVesselAlpha, var_r28); } alphaAnimeLightDrop(); } /* 80220C30-802210AC 21B570 047C+00 1/1 0/0 0/0 .text moveRupee__9dMeter2_cFv */ void dMeter2_c::moveRupee() { s16 temp_r5; s16 var_r6; s32 temp_r0; bool draw_rupee; temp_r5 = dComIfGs_getRupeeMax(); draw_rupee = false; // using dComIfGp_getItemRupeeCount() here swaps r3/r4 reg alloc? if (g_dComIfG_gameInfo.play.mItemInfo.mItemRupeeCount != 0) { var_r6 = dComIfGs_getRupee() + dComIfGp_getItemRupeeCount(); if (var_r6 > temp_r5) { var_r6 = temp_r5; } else if (var_r6 < 0) { var_r6 = 0; } dComIfGs_setRupee(var_r6); dComIfGp_clearItemRupeeCount(); temp_r0 = (u16)var_r6 - mRupeeNum; if (temp_r0 >= 5) { onRupeeSoundBit(2); if (isRupeeSoundBit(3)) { offRupeeSoundBit(3); offRupeeSoundBit(1); } } else if (temp_r0 <= -5) { onRupeeSoundBit(3); if (isRupeeSoundBit(2)) { offRupeeSoundBit(2); offRupeeSoundBit(0); } } } if (mRupeeNum != dComIfGs_getRupee()) { if (mRupeeNum < dComIfGs_getRupee()) { mRupeeNum++; draw_rupee = true; if (isRupeeSoundBit(2) & 1) { if (mRupeeNum != dComIfGs_getRupee()) { if (!isRupeeSoundBit(0)) { onRupeeSoundBit(0); mDoAud_seStart(Z2SE_LUPY_INC_CNT_1, NULL, 0, 0); } else { offRupeeSoundBit(0); } } else { mDoAud_seStart(Z2SE_LUPY_INC_CNT_2, NULL, 0, 0); offRupeeSoundBit(2); offRupeeSoundBit(0); } } } else if (mRupeeNum > dComIfGs_getRupee()) { mRupeeNum--; draw_rupee = true; if (isRupeeSoundBit(3) & 1) { if (mRupeeNum != dComIfGs_getRupee()) { if (!isRupeeSoundBit(1)) { onRupeeSoundBit(1); mDoAud_seStart(Z2SE_LUPY_DEC_CNT_1, NULL, 0, 0); } else { offRupeeSoundBit(1); } } else { mDoAud_seStart(Z2SE_LUPY_DEC_CNT_2, NULL, 0, 0); offRupeeSoundBit(3); offRupeeSoundBit(1); } } } } if (mRupeeKeyScale != g_drawHIO.mRupeeKeyScale) { mRupeeKeyScale = g_drawHIO.mRupeeKeyScale; draw_rupee = true; } if (mRupeeKeyPosX != g_drawHIO.mRupeeKeyPosX) { mRupeeKeyPosX = g_drawHIO.mRupeeKeyPosX; draw_rupee = true; } if (mRupeeKeyPosY != g_drawHIO.mRupeeKeyPosY) { mRupeeKeyPosY = g_drawHIO.mRupeeKeyPosY; draw_rupee = true; } if (mRupeeScale != g_drawHIO.mRupeeScale) { mRupeeScale = g_drawHIO.mRupeeScale; draw_rupee = true; } if (mRupeePosX != g_drawHIO.mRupeePosX) { mRupeePosX = g_drawHIO.mRupeePosX; draw_rupee = true; } if (mRupeePosY != g_drawHIO.mRupeePosY) { mRupeePosY = g_drawHIO.mRupeePosY; draw_rupee = true; } if (mRupeeFramePosY != g_drawHIO.mRupeeFramePosY) { mRupeeFramePosY = g_drawHIO.mRupeeFramePosY; draw_rupee = true; } if (mRupeeFrameScale != g_drawHIO.mRupeeFrameScale) { mRupeeFrameScale = g_drawHIO.mRupeeFrameScale; draw_rupee = true; } if (mRupeeFramePosX != g_drawHIO.mRupeeFramePosX) { mRupeeFramePosX = g_drawHIO.mRupeeFramePosX; draw_rupee = true; } if (mRupeeCountScale != g_drawHIO.mRupeeCountScale) { mRupeeCountScale = g_drawHIO.mRupeeCountScale; draw_rupee = true; } if (mRupeeCountPosX != g_drawHIO.mRupeeCountPosX) { mRupeeCountPosX = g_drawHIO.mRupeeCountPosX; draw_rupee = true; } if (mRupeeCountPosY != g_drawHIO.mRupeeCountPosY) { mRupeeCountPosY = g_drawHIO.mRupeeCountPosY; draw_rupee = true; } if (mWalletSize != dComIfGs_getWalletSize()) { mWalletSize = dComIfGs_getWalletSize(); draw_rupee = true; } if (draw_rupee == true) { mpMeterDraw->drawRupee(mRupeeNum); } alphaAnimeRupee(); } /* 802210AC-80221244 21B9EC 0198+00 1/1 0/0 0/0 .text moveKey__9dMeter2_cFv */ void dMeter2_c::moveKey() { s16 var_r5; bool draw_key; draw_key = false; if (dComIfGp_getItemKeyNumCount() != 0) { var_r5 = dComIfGs_getKeyNum() + dComIfGp_getItemKeyNumCount(); if (var_r5 > 99) { var_r5 = 99; } else if (var_r5 < 0) { var_r5 = 0; } dComIfGs_setKeyNum(var_r5); dComIfGp_clearItemKeyNumCount(); } if (mKeyNum != dComIfGs_getKeyNum()) { if (mKeyNum < dComIfGs_getKeyNum()) { mKeyNum++; draw_key = true; } else if (mKeyNum > dComIfGs_getKeyNum()) { mKeyNum--; draw_key = true; } } if (mKeyScale != g_drawHIO.mKeyScale) { mKeyScale = g_drawHIO.mKeyScale; draw_key = true; } if (mKeyPosX != g_drawHIO.mKeyPosX) { mKeyPosX = g_drawHIO.mKeyPosX; draw_key = true; } if (mKeyPosY != g_drawHIO.mKeyPosY) { mKeyPosY = g_drawHIO.mKeyPosY; draw_key = true; } if (mKeyNumScale != g_drawHIO.mKeyNumScale) { mKeyNumScale = g_drawHIO.mKeyNumScale; draw_key = true; } if (mKeyNumPosX != g_drawHIO.mKeyNumPosX) { mKeyNumPosX = g_drawHIO.mKeyNumPosX; draw_key = true; } if (mKeyNumPosY != g_drawHIO.mKeyNumPosY) { mKeyNumPosY = g_drawHIO.mKeyNumPosY; draw_key = true; } if (draw_key == true) { mpMeterDraw->drawKey(mKeyNum); } alphaAnimeKey(); } /* 80221244-802217F4 21BB84 05B0+00 1/1 0/0 0/0 .text moveButtonA__9dMeter2_cFv */ void dMeter2_c::moveButtonA() { f32 var_f31; f32 pos_x[2]; f32 pos_y[2]; bool draw_buttonA; bool var_r29; bool emphasis_a; u8 temp_r0; draw_buttonA = false; var_r29 = 0; emphasis_a = false; if (dComIfGp_getDoStatusForce() != 0) { dComIfGp_setDoStatus(dComIfGp_getDoStatusForce(), dComIfGp_getDoSetFlagForce()); dComIfGp_setDoStatusForce(0, 0); } if (daPy_getPlayerActorClass()->getSumouMode()) { if (dComIfGp_getDoStatus() == 0) { dComIfGp_setDoStatus(0x15, 0); emphasis_a = true; } else if (dComIfGp_getDoStatus() == 0x15 && !mpMeterDraw->isEmphasisA()) { var_r29 = 1; draw_buttonA = true; } } if (mDoStatus != dComIfGp_getDoStatus()) { mDoStatus = dComIfGp_getDoStatus(); if (mDoStatus == 0x2D || mDoStatus == 0x2E) { dComIfGp_setDoStatus(mDoStatus, 1); } var_r29 = 1; draw_buttonA = true; } if (mDoSetFlag != dComIfGp_isDoSetFlag(2)) { mDoSetFlag = dComIfGp_isDoSetFlag(2); var_r29 = 1; draw_buttonA = true; } if (emphasis_a && mpMeterDraw->isEmphasisA()) { if (field_0x1fd == 0) { var_r29 = 1; draw_buttonA = true; field_0x1fd = 1; } } else if (!emphasis_a && !mpMeterDraw->isEmphasisA() && field_0x1fd == 1) { var_r29 = 1; draw_buttonA = true; field_0x1fd = 0; } if (mButtonAScale != g_drawHIO.mButtonAScale) { mButtonAScale = g_drawHIO.mButtonAScale; draw_buttonA = true; } for (int i = 0; i < 2; i++) { if (mButtonATalkScale[i] != g_drawHIO.mButtonATalkScale[i]) { mButtonATalkScale[i] = g_drawHIO.mButtonATalkScale[i]; draw_buttonA = true; } } if (mButtonAPosX != g_drawHIO.mButtonAPosX) { mButtonAPosX = g_drawHIO.mButtonAPosX; draw_buttonA = true; } if (mButtonAPosY != g_drawHIO.mButtonAPosY) { mButtonAPosY = g_drawHIO.mButtonAPosY; draw_buttonA = true; } if (mButtonATextScale != g_drawHIO.mButtonATextScale) { mButtonATextScale = g_drawHIO.mButtonATextScale; draw_buttonA = true; } if (mButtonATextPosX != g_drawHIO.mButtonATextPosX) { mButtonATextPosX = g_drawHIO.mButtonATextPosX; draw_buttonA = true; } if (mButtonATextPosY != g_drawHIO.mButtonATextPosY) { mButtonATextPosY = g_drawHIO.mButtonATextPosY; draw_buttonA = true; } if (isShowLightDrop()) { pos_x[0] = g_drawHIO.mButtonAVesselPosX; pos_y[0] = g_drawHIO.mButtonAVesselPosY; pos_x[1] = 0.0f; pos_y[1] = 0.0f; var_f31 = 1.0f; } else if (isShowFlag(0)) { if (isShowFlag(1)) { for (int i = 0; i < 2; i++) { pos_x[i] = g_drawHIO.mButtonATalkPosX[i]; pos_y[i] = g_drawHIO.mButtonATalkPosY[i]; } } else { for (int i = 0; i < 2; i++) { pos_x[i] = g_drawHIO.mButtonATalkAPosX[i]; pos_y[i] = g_drawHIO.mButtonATalkAPosY[i]; } } var_f31 = 1.0f; } else { pos_x[0] = g_drawHIO.mButtonAPosX; pos_y[0] = g_drawHIO.mButtonAPosY; pos_x[1] = 0.0f; pos_y[1] = 0.0f; var_f31 = 1.0f; } for (int i = 0; i < 2; i++) { if (mButtonATalkPosX[i] != pos_x[i]) { cLib_addCalc2(&mButtonATalkPosX[i], pos_x[i], 1.0f, 10.0f); draw_buttonA = true; if ((f32)fabs(mButtonATalkPosX[i] - pos_x[i]) < 0.1f) { mButtonATalkPosX[i] = pos_x[i]; } } if (mButtonATalkPosY[i] != pos_y[i]) { cLib_addCalc2(&mButtonATalkPosY[i], pos_y[i], 1.0f, 10.0f); draw_buttonA = true; if ((f32)fabs(mButtonATalkPosY[i] - pos_y[i]) < 0.1f) { mButtonATalkPosY[i] = pos_y[i]; } } } if (field_0x144 != var_f31) { cLib_addCalc2(&field_0x144, var_f31, 1.0f, 10.0f); draw_buttonA = true; if ((f32)fabs(field_0x144 - var_f31) < 0.01f) { field_0x144 = var_f31; } } if (field_0x200 != dMsgObject_isTalkNowCheck()) { field_0x200 = dMsgObject_isTalkNowCheck(); draw_buttonA = true; } if (draw_buttonA) { mpMeterDraw->drawButtonA(mDoStatus, mButtonATalkPosX[0], mButtonATalkPosY[0], mButtonATalkPosX[1], mButtonATalkPosY[1], field_0x144, var_r29, ((mStatus & 0x100) || daPy_getPlayerActorClass()->checkHawkWait() || daPy_getPlayerActorClass()->checkGrassWhistle()) != false); if (emphasis_a) { mpMeterDraw->setEmphasisA(0); } } } /* 802217F4-80221EC8 21C134 06D4+00 1/1 0/0 0/0 .text moveButtonB__9dMeter2_cFv */ void dMeter2_c::moveButtonB() { f32 var_f31; f32 pos_x[2]; f32 pos_y[2]; bool draw_buttonB; bool var_r29; bool emphasis_b; u8 temp_r0; draw_buttonB = false; var_r29 = 0; emphasis_b = false; if (dComIfGp_getAStatusForce() != 0) { dComIfGp_setAStatus(dComIfGp_getAStatusForce(), dComIfGp_getASetFlagForce()); dComIfGp_setAStatusForce(0, 0); } if (daPy_getPlayerActorClass()->getSumouMode()) { if (dComIfGp_getAStatus() == 0 || dComIfGp_getAStatus() == 0x26) { dComIfGp_setAStatus(0x44, 0); emphasis_b = true; } else if (dComIfGp_getAStatus() == 0x44 && !mpMeterDraw->isEmphasisB()) { var_r29 = 1; draw_buttonB = true; } } else if (daPy_getPlayerActorClass()->checkGoatStopGame() || ((mStatus & 2) && dComIfGp_getAStatus() == 0x26)) { dComIfGp_setAStatus(0, 0); } if (mAStatus != dComIfGp_getAStatus()) { mAStatus = dComIfGp_getAStatus(); if (mAStatus == 0x2D || mAStatus == 0x2E) { dComIfGp_setAStatus(mAStatus, 1); } var_r29 = 1; draw_buttonB = true; } if (mASetFlag != dComIfGp_isASetFlag(2)) { mASetFlag = dComIfGp_isASetFlag(2); var_r29 = 1; draw_buttonB = true; } if (mEquipSword != dComIfGs_getSelectEquipSword()) { mEquipSword = dComIfGs_getSelectEquipSword(); var_r29 = 1; draw_buttonB = true; } if (emphasis_b && mpMeterDraw->isEmphasisB()) { if (field_0x1fe == 0) { var_r29 = 1; draw_buttonB = true; field_0x1fe = 1; } } else if (!emphasis_b && !mpMeterDraw->isEmphasisB() && field_0x1fe == 1) { var_r29 = 1; draw_buttonB = true; field_0x1fe = 0; } if (field_0x2cc != g_drawHIO.mButtonBScale) { field_0x2cc = g_drawHIO.mButtonBScale; draw_buttonB = true; } for (int i = 0; i < 2; i++) { if (field_0x2ec[i] != g_drawHIO.mButtonBTalkScale[i]) { field_0x2ec[i] = g_drawHIO.mButtonBTalkScale[i]; draw_buttonB = true; } } if (mButtonBPosX != g_drawHIO.mButtonBPosX) { mButtonBPosX = g_drawHIO.mButtonBPosX; draw_buttonB = true; } if (mButtonBPosY != g_drawHIO.mButtonBPosY) { mButtonBPosY = g_drawHIO.mButtonBPosY; draw_buttonB = true; } if (g_drawHIO.mButtonDebug[3]) { draw_buttonB = true; } for (int i = 0; i < 2; i++) { if (mItemBBaseScale[i] != g_drawHIO.mItemBBaseScale[i]) { mItemBBaseScale[i] = g_drawHIO.mItemBBaseScale[i]; draw_buttonB = true; } if (mItemBBasePosX[i] != g_drawHIO.mItemBBasePosX[i]) { mItemBBasePosX[i] = g_drawHIO.mItemBBasePosX[i]; draw_buttonB = true; } if (mItemBBasePosY[i] != g_drawHIO.mItemBBasePosY[i]) { mItemBBasePosY[i] = g_drawHIO.mItemBBasePosY[i]; draw_buttonB = true; } } if (mButtonBFontScale != g_drawHIO.mButtonBFontScale) { mButtonBFontScale = g_drawHIO.mButtonBFontScale; draw_buttonB = true; } if (mButtonBFontPosX != g_drawHIO.mButtonBFontPosX) { mButtonBFontPosX = g_drawHIO.mButtonBFontPosX; draw_buttonB = true; } if (mButtonBFontPosY != g_drawHIO.mButtonBFontPosY) { mButtonBFontPosY = g_drawHIO.mButtonBFontPosY; draw_buttonB = true; } if (isShowLightDrop()) { pos_x[0] = g_drawHIO.mButtonBVesselPosX; pos_y[0] = g_drawHIO.mButtonBVesselPosY; pos_x[1] = 0.0f; pos_y[1] = 0.0f; var_f31 = 1.0f; } else if (isShowFlag(1)) { for (int i = 0; i < 2; i++) { pos_x[i] = g_drawHIO.mButtonBTalkPosX[i]; pos_y[i] = g_drawHIO.mButtonBTalkPosY[i]; } var_f31 = 1.0f; } else { for (int i = 0; i < 2; i++) { if (field_0x128 != 0 && i == 0) { pos_x[i] = g_drawHIO.mButtonBWolfPosX; pos_y[i] = g_drawHIO.mButtonBWolfPosY; } else { pos_x[i] = 0.0f; pos_y[i] = 0.0f; } } var_f31 = 1.0f; } if (mpMeterDraw->isBButtonShow(false)) { if (field_0x1ff == 0) { field_0x1ff = 1; draw_buttonB = true; } } else if (field_0x1ff == 1) { field_0x1ff = 0; draw_buttonB = true; } for (int i = 0; i < 2; i++) { if (field_0x148[i] != pos_x[i]) { cLib_addCalc2(&field_0x148[i], pos_x[i], 1.0f, 10.0f); draw_buttonB = true; if ((f32)fabs(field_0x148[i] - pos_x[i]) < 0.1f) { field_0x148[i] = pos_x[i]; } } if (field_0x150[i] != pos_y[i]) { cLib_addCalc2(&field_0x150[i], pos_y[i], 1.0f, 10.0f); draw_buttonB = true; if ((f32)fabs(field_0x150[i] - pos_y[i]) < 0.1f) { field_0x150[i] = pos_y[i]; } } } if (field_0x158 != var_f31) { cLib_addCalc2(&field_0x158, var_f31, 1.0f, 10.0f); draw_buttonB = true; if ((f32)fabs(field_0x158 - var_f31) < 0.01f) { field_0x158 = var_f31; } } if (g_drawHIO.mItemScaleAdjustON && field_0x4bc != g_drawHIO.mItemScalePercent) { field_0x4bc = g_drawHIO.mItemScalePercent; draw_buttonB = true; } if (field_0x1c6 != daPy_getPlayerActorClass()->checkGrassWhistle()) { field_0x1c6 = daPy_getPlayerActorClass()->checkGrassWhistle(); draw_buttonB = true; } if (draw_buttonB) { mpMeterDraw->drawButtonB(mAStatus, field_0x128 == 0, field_0x148[0], field_0x150[0], field_0x148[1], field_0x150[1], field_0x158, var_r29); if (emphasis_b) { mpMeterDraw->setEmphasisB(0); } } } /* 80221EC8-80222000 21C808 0138+00 1/1 0/0 0/0 .text moveButtonR__9dMeter2_cFv */ void dMeter2_c::moveButtonR() { bool var_r7; bool draw_buttonR; draw_buttonR = false; var_r7 = 0; if (field_0x128 != 0 && (mCollectSmell != dComIfGs_getCollectSmell() || field_0x128 != field_0x12c)) { mCollectSmell = dComIfGs_getCollectSmell(); var_r7 = 1; draw_buttonR = true; } if (dComIfGp_getRStatusForce() != 0) { dComIfGp_setRStatus(dComIfGp_getRStatusForce(), dComIfGp_getRSetFlagForce()); dComIfGp_setRStatusForce(0, 0); } if (mRStatus != dComIfGp_getRStatus()) { mRStatus = dComIfGp_getRStatus(); if (mRStatus == 0x2D || mRStatus == 0x2E) { dComIfGp_setRStatus(mRStatus, 1); } var_r7 = 1; draw_buttonR = true; } if (mRSetFlag != dComIfGp_isRSetFlag(2)) { mRSetFlag = dComIfGp_isRSetFlag(2); var_r7 = 1; draw_buttonR = true; } if (draw_buttonR) { mpMeterDraw->drawButtonR(mCollectSmell, mRStatus, field_0x128 == 0, var_r7); } } /* 80222000-802222A0 21C940 02A0+00 1/1 0/0 0/0 .text moveButtonZ__9dMeter2_cFv */ void dMeter2_c::moveButtonZ() { bool draw_buttonZ = false; if (field_0x324 != g_drawHIO.mButtonZScale) { field_0x324 = g_drawHIO.mButtonZScale; draw_buttonZ = true; } if (field_0x328 != g_drawHIO.mButtonZPosX) { field_0x328 = g_drawHIO.mButtonZPosX; draw_buttonZ = true; } if (field_0x32c != g_drawHIO.mButtonZPosY) { field_0x32c = g_drawHIO.mButtonZPosY; draw_buttonZ = true; } if (field_0x384 != g_drawHIO.mButtonZItemScale) { field_0x384 = g_drawHIO.mButtonZItemScale; draw_buttonZ = true; } if (field_0x388 != g_drawHIO.mButtonZItemPosX) { field_0x388 = g_drawHIO.mButtonZItemPosX; draw_buttonZ = true; } if (field_0x38c != g_drawHIO.mButtonZItemPosY) { field_0x38c = g_drawHIO.mButtonZItemPosY; draw_buttonZ = true; } if (field_0x3e4 != g_drawHIO.mButtonZItemBaseScale) { field_0x3e4 = g_drawHIO.mButtonZItemBaseScale; draw_buttonZ = true; } if (field_0x3e8 != g_drawHIO.mButtonZItemBasePosX) { field_0x3e8 = g_drawHIO.mButtonZItemBasePosX; draw_buttonZ = true; } if (field_0x3ec != g_drawHIO.mButtonZItemBasePosY) { field_0x3ec = g_drawHIO.mButtonZItemBasePosY; draw_buttonZ = true; } if (field_0x330 != g_drawHIO.mButtonZFontScale) { field_0x330 = g_drawHIO.mButtonZFontScale; draw_buttonZ = true; } if (field_0x334 != g_drawHIO.mButtonZFontPosX) { field_0x334 = g_drawHIO.mButtonZFontPosX; draw_buttonZ = true; } if (field_0x338 != g_drawHIO.mButtonZFontPosY) { field_0x338 = g_drawHIO.mButtonZFontPosY; draw_buttonZ = true; } if (dComIfGp_getZStatusForce() != 0) { dComIfGp_setZStatus(dComIfGp_getZStatusForce(), dComIfGp_getZSetFlagForce()); dComIfGp_setZStatusForce(0, 0); } if (mZStatus != dComIfGp_getZStatus() || draw_buttonZ) { mZStatus = dComIfGp_getZStatus(); if (mZStatus == 0x2D || mZStatus == 0x2E) { dComIfGp_setZStatus(mZStatus, 1); } mpMeterDraw->drawButtonZ(mZStatus); } mpMeterDraw->setButtonIconMidonaAlpha(mStatus); dComIfGp_setZStatus(0, 0); if (dComIfGp_getBottleStatusForce() != 0) { dComIfGp_setBottleStatus(dComIfGp_getBottleStatusForce(), dComIfGp_getBottleSetFlagForce()); dComIfGp_setBottleStatusForce(0, 0); } if (mBottleStatus != dComIfGp_getBottleStatus()) { mBottleStatus = dComIfGp_getBottleStatus(); mpMeterDraw->drawButtonBin(mBottleStatus); } } /* 802222A0-80222364 21CBE0 00C4+00 1/1 0/0 0/0 .text moveButton3D__9dMeter2_cFv */ void dMeter2_c::moveButton3D() { u8 var_r6; if (dComIfGp_get3DStatusForce() != 0) { var_r6 = dComIfGp_get3DSetFlagForce(); if (dComIfGp_get3DStatusForce() == 0x6A) { var_r6 = 1; } dComIfGp_set3DStatus(dComIfGp_get3DStatusForce(), dComIfGp_get3DDirectionForce(), var_r6); dComIfGp_set3DStatusForce(0, 0, 0); } if (m3DStatus != dComIfGp_get3DStatus()) { m3DStatus = dComIfGp_get3DStatus(); if (m3DStatus == 0x2D || m3DStatus == 0x2E) { dComIfGp_set3DStatus(m3DStatus, 5, 1); } mpMeterDraw->drawButton3D(m3DStatus); } } /* 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 */ void dMeter2_c::moveButtonXY() { bool sp8[2]; bool spC[2]; for (int i = 0; i < 2; i++) { sp8[i] = 0; spC[i] = 0; } if (field_0x33c != g_drawHIO.mButtonXScale) { field_0x33c = g_drawHIO.mButtonXScale; sp8[0] = 1; } if (field_0x340 != g_drawHIO.mButtonXPosX) { field_0x340 = g_drawHIO.mButtonXPosX; sp8[0] = 1; } if (field_0x344 != g_drawHIO.mButtonXPosY) { field_0x344 = g_drawHIO.mButtonXPosY; sp8[0] = 1; } if (field_0x348 != g_drawHIO.mButtonYScale) { field_0x348 = g_drawHIO.mButtonYScale; sp8[1] = 1; } if (field_0x34c != g_drawHIO.mButtonYPosX) { field_0x34c = g_drawHIO.mButtonYPosX; sp8[1] = 1; } if (field_0x350 != g_drawHIO.mButtonYPosY) { field_0x350 = g_drawHIO.mButtonYPosY; sp8[1] = 1; } if (field_0x360 != g_drawHIO.mButtonXItemScale) { field_0x360 = g_drawHIO.mButtonXItemScale; sp8[0] = 1; } if (field_0x364 != g_drawHIO.mButtonXItemPosX) { field_0x364 = g_drawHIO.mButtonXItemPosX; sp8[0] = 1; } if (field_0x368 != g_drawHIO.mButtonXItemPosY) { field_0x368 = g_drawHIO.mButtonXItemPosY; sp8[0] = 1; } if (field_0x36c != g_drawHIO.mButtonYItemScale) { field_0x36c = g_drawHIO.mButtonYItemScale; sp8[1] = 1; } if (field_0x370 != g_drawHIO.mButtonYItemPosX) { field_0x370 = g_drawHIO.mButtonYItemPosX; sp8[1] = 1; } if (field_0x374 != g_drawHIO.mButtonYItemPosY) { field_0x374 = g_drawHIO.mButtonYItemPosY; sp8[1] = 1; } for (int i = 0; i < 2; i++) { if (field_0x39c[i] != g_drawHIO.mButtonXItemBaseScale[i]) { field_0x39c[i] = g_drawHIO.mButtonXItemBaseScale[i]; sp8[0] = 1; } if (field_0x3a4[i] != g_drawHIO.mButtonXItemBasePosX[i]) { field_0x3a4[i] = g_drawHIO.mButtonXItemBasePosX[i]; sp8[0] = 1; } if (field_0x3ac[i] != g_drawHIO.mButtonXItemBasePosY[i]) { field_0x3ac[i] = g_drawHIO.mButtonXItemBasePosY[i]; sp8[0] = 1; } if (field_0x3b4[i] != g_drawHIO.mButtonYItemBaseScale[i]) { field_0x3b4[i] = g_drawHIO.mButtonYItemBaseScale[i]; sp8[1] = 1; } if (field_0x3bc[i] != g_drawHIO.mButtonYItemBasePosX[i]) { field_0x3bc[i] = g_drawHIO.mButtonYItemBasePosX[i]; sp8[1] = 1; } if (field_0x3c4[i] != g_drawHIO.mButtonYItemBasePosY[i]) { field_0x3c4[i] = g_drawHIO.mButtonYItemBasePosY[i]; sp8[1] = 1; } } if (g_drawHIO.mItemScaleAdjustON && field_0x4bd != g_drawHIO.mItemScalePercent) { field_0x4bd = g_drawHIO.mItemScalePercent; for (int i = 0; i < 2; i++) { sp8[i] = 1; } } if (field_0x3f0 != g_drawHIO.mButtonXYTextScale) { field_0x3f0 = g_drawHIO.mButtonXYTextScale; for (int i = 0; i < 2; i++) { sp8[i] = 1; } } if (field_0x3f4 != g_drawHIO.mButtonXYTextPosX) { field_0x3f4 = g_drawHIO.mButtonXYTextPosX; for (int i = 0; i < 2; i++) { sp8[i] = 1; } } if (field_0x3f8 != g_drawHIO.mButtonXYTextPosY) { field_0x3f8 = g_drawHIO.mButtonXYTextPosY; for (int i = 0; i < 2; i++) { sp8[i] = 1; } } for (int i = 0; i < 3; i++) { if (field_0x390[i] != g_drawHIO.mButtonItemRotation[i]) { field_0x390[i] = g_drawHIO.mButtonItemRotation[i]; sp8[i] = 1; } if (g_drawHIO.mButtonDebug[i]) { sp8[i] = 1; } if (field_0x430 != g_drawHIO.field_0x54c) { field_0x430 = g_drawHIO.field_0x54c; sp8[i] = 1; } } for (int i = 0; i < 2; i++) { if (field_0x128 != 0) { if (field_0x128 != field_0x12c) { spC[i] = 1; sp8[i] = 1; } if (i == 0) { if (dComIfGp_getXStatusForce() != 0) { dComIfGp_setXStatus(dComIfGp_getXStatusForce(), dComIfGp_getXSetFlagForce()); dComIfGp_setXStatusForce(0, 0); } if (mItemStatus[i * 2 + 1] != dComIfGp_getXStatus()) { mItemStatus[i * 2 + 1] = dComIfGp_getXStatus(); if (mItemStatus[i * 2 + 1] == 0x2D || mItemStatus[i * 2 + 1] == 0x2E) { dComIfGp_setXStatus(mItemStatus[i * 2 + 1], 1); } spC[i] = 1; sp8[i] = 1; } if ((&mXSetFlag)[i] != dComIfGp_isXSetFlag(2)) { (&mXSetFlag)[i] = dComIfGp_isXSetFlag(2); spC[i] = 1; sp8[i] = 1; } } else if (i == 1) { if (dComIfGp_getYStatusForce() != 0) { dComIfGp_setYStatus(dComIfGp_getYStatusForce(), dComIfGp_getYSetFlagForce()); dComIfGp_setYStatusForce(0, 0); } if (mItemStatus[i * 2 + 1] != dComIfGp_getYStatus()) { mItemStatus[i * 2 + 1] = dComIfGp_getYStatus(); if (mItemStatus[i * 2 + 1] == 0x2D || mItemStatus[i * 2 + 1] == 0x2E) { dComIfGp_setYStatus(mItemStatus[i * 2 + 1], 1); } spC[i] = 1; sp8[i] = 1; } if ((&mXSetFlag)[i] != dComIfGp_isYSetFlag(2)) { (&mXSetFlag)[i] = dComIfGp_isYSetFlag(2); spC[i] = 1; sp8[i] = 1; } } } else { if (mItemStatus[2 * i] != dComIfGp_getSelectItem(i) || field_0x128 != field_0x12c) { mItemStatus[2 * i] = dComIfGp_getSelectItem(i); spC[i] = 1; sp8[i] = 1; } if (field_0x1d6[i] != dMeter2Info_isDirectUseItem(i)) { field_0x1d6[i] = dMeter2Info_isDirectUseItem(i); spC[i] = 1; sp8[i] = 1; } if (mItemStatus[2 * i] == 0x48) { if (field_0x1ec == 0) { if (dComIfGs_getOil() != 0) { field_0x1ec = 1; sp8[i] = 1; } } else { if (dComIfGs_getOil() == 0) { field_0x1ec = 0; sp8[i] = 1; } } } else if (mItemStatus[2 * i] == 0x46) { if (field_0x1ed == 0) { if (daPy_getPlayerActorClass()->checkCopyRodTopUse()) { field_0x1ed = 1; sp8[i] = 1; } } else { if (!daPy_getPlayerActorClass()->checkCopyRodTopUse()) { field_0x1ed = 0; sp8[i] = 1; } } } else if (mItemStatus[2 * i] == 0x50 || mItemStatus[2 * i] == 0x70 || mItemStatus[2 * i] == 0x71 || mItemStatus[2 * i] == 0x72) { if (sp8[i] != 0) { mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), dComIfGp_getSelectItemMaxNum(i)); } } else if (mItemStatus[2 * i] == 0x76) { if (field_0x1d8[i] != dComIfGp_getSelectItemNum(i)) { field_0x1d8[i] = dComIfGp_getSelectItemNum(i); sp8[i] = 1; } if (sp8[i] != 0) { mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), dComIfGp_getSelectItemMaxNum(i)); } } else if (mItemStatus[2 * i] == 0x43 || mItemStatus[2 * i] == 0x53 || mItemStatus[2 * i] == 0x54 || mItemStatus[2 * i] == 0x55 || mItemStatus[2 * i] == 0x56 || mItemStatus[2 * i] == 0x5A) { if (sp8[i] != 0) { mpMeterDraw->setItemNum(i, mArrowNum, dComIfGs_getArrowMax()); } } else if (mItemStatus[2 * i] == 0x4B) { if (sp8[i] != 0) { mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax()); } } else if (mItemStatus[2 * i] == 0x59) { u8 var_r25 = dComIfGp_getSelectItemNum(i); u8 var_r6_2 = dComIfGp_getSelectItemMaxNum(i); if (var_r25 > mArrowNum) { var_r25 = mArrowNum; } if (var_r6_2 < dComIfGs_getArrowMax()) { var_r6_2 = dComIfGs_getArrowMax(); } mpMeterDraw->setItemNum(i, var_r25, var_r6_2); } } if (sp8[i] != 0) { mpMeterDraw->drawButtonXY(i, mItemStatus[2 * i], mItemStatus[i * 2 + 1], field_0x128 == 0 ? true : false, spC[i]); } } alphaAnimeButton(); dMeter2Info_resetDirectUseItem(); } /* 80222E88-802230F8 21D7C8 0270+00 1/1 0/0 0/0 .text moveButtonCross__9dMeter2_cFv */ void dMeter2_c::moveButtonCross() { f32 temp_f1; f32 temp_f30; f32 temp_f31; f32 var_f31; bool draw_cross; draw_cross = false; var_f31 = 0.0f; if (mButtonCrossOFFPosX != g_drawHIO.mButtonCrossOFFPosX) { mButtonCrossOFFPosX = g_drawHIO.mButtonCrossOFFPosX; draw_cross = true; } if (mButtonCrossOFFPosY != g_drawHIO.mButtonCrossOFFPosY) { mButtonCrossOFFPosY = g_drawHIO.mButtonCrossOFFPosY; draw_cross = true; } if (mButtonCrossONPosX != g_drawHIO.mButtonCrossONPosX) { mButtonCrossONPosX = g_drawHIO.mButtonCrossONPosX; draw_cross = true; } if (mButtonCrossONPosY != g_drawHIO.mButtonCrossONPosY) { mButtonCrossONPosY = g_drawHIO.mButtonCrossONPosY; draw_cross = true; } if (mButtonCrossScale != g_drawHIO.mButtonCrossScale) { mButtonCrossScale = g_drawHIO.mButtonCrossScale; draw_cross = true; } if (mButtonCrossTextScale != g_drawHIO.mButtonCrossTextScale) { mButtonCrossTextScale = g_drawHIO.mButtonCrossTextScale; draw_cross = true; } if (mpMap != NULL) { temp_f31 = mpMap->getMapDispEdgeTop(); temp_f1 = (temp_f31 - mpMeterDraw->getButtonCrossParentInitTransY()) - 15.0f; if (mpMap->isDispPosInsideFlg()) { if (field_0x1b4 < g_drawHIO.mButtonCrossMoveFrame) { field_0x1b4++; draw_cross = true; } else { field_0x1b4 = g_drawHIO.mButtonCrossMoveFrame; } var_f31 = mButtonCrossONPosY + temp_f1; } else { if (field_0x1b4 > 0) { field_0x1b4--; draw_cross = true; } else { field_0x1b4 = 0; } var_f31 = mButtonCrossOFFPosY; } } temp_f30 = mButtonCrossOFFPosX + (((f32)field_0x1b4 / (f32)g_drawHIO.mButtonCrossMoveFrame) * (mButtonCrossONPosX - mButtonCrossOFFPosX)); if (field_0x15c != var_f31) { cLib_addCalc2(&field_0x15c, var_f31, 0.5f, 50.0f); if ((f32)fabs(field_0x15c - var_f31) < 0.5f) { field_0x15c = var_f31; } draw_cross = true; } if (draw_cross == true) { mpMeterDraw->drawButtonCross(temp_f30, field_0x15c); } alphaAnimeButtonCross(); } /* 802230F8-802230FC 21DA38 0004+00 1/1 0/0 0/0 .text moveTouchSubMenu__9dMeter2_cFv */ void dMeter2_c::moveTouchSubMenu() {} /* 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 (mpSubContents != NULL) { mpSubContents->_execute(mStatus); } if (mpSubSubContents != NULL) { if (mSubContentType == 5 && mSubContentsStringType != dMeter2Info_getMeterStringType()) { mSubContentsStringType = dMeter2Info_getMeterStringType(); if (mSubContentsStringType != 0) { mpSubSubContents->createString(mSubContentsStringType); } } mpSubSubContents->_execute(mStatus); } mDoExt_setCurrentHeap(heap); } /* 802231C8-802237D4 21DB08 060C+00 1/1 0/0 0/0 .text move2DContents__9dMeter2_cFv */ void dMeter2_c::move2DContents() { bool var_r19; bool var_r27; bool var_r20; bool var_r28; bool var_r21; bool var_r22; bool var_r23; bool var_r24; bool var_r25; bool var_r29; bool var_r26; u8 var_r30; field_0x201 = 0; field_0x108 = NULL; JKRHeap* temp_r3 = dComIfGp_getSubHeap2D(8); if (temp_r3 != NULL) { field_0x108 = mDoExt_setCurrentHeap(temp_r3); } check2DContents(); if (mpEmpButton != NULL) { var_r19 = 0; var_r27 = 0; var_r20 = 0; var_r28 = 0; var_r21 = 0; var_r22 = 0; var_r23 = 0; var_r24 = 0; var_r25 = 0; var_r29 = 0; var_r26 = 0; var_r30 = 2; if (mpMeterDraw->isEmphasisS() && mpEmpButton->isSetButton(6)) { mpEmpButton->setString(mpMeterDraw->getActionString(mSButtonStatus, 0, NULL), 6, 0, 0); var_r23 = 1; var_r30 = 0; } if (mpMeterDraw->isEmphasisB() && mpMeterDraw->isEmphasis3D() && var_r30 != 0) { if (mAStatus == m3DStatus) { mpEmpButton->setString(mpMeterDraw->getActionString(mAStatus, 0, NULL), 13, 2 - var_r30, 0); var_r29 = 1; var_r30 -= 2; } } if (var_r29 == 0) { if (mpMeterDraw->isEmphasis3D() && var_r30 != 0 && mpEmpButton->isSetButton(4)) { mpEmpButton->setString(mpMeterDraw->getActionString(m3DStatus, 0, NULL), 4, 2 - var_r30, 0); var_r21 = 1; var_r30 -= 1; } } if (mpMeterDraw->isEmphasisC() && var_r30 != 0 && mpEmpButton->isSetButton(5)) { mpEmpButton->setString(mpMeterDraw->getActionString(mCStickStatus, 0, NULL), 5, 2 - var_r30, 0); var_r22 = 1; var_r30 -= 1; } if (var_r29 == 0) { if (mpMeterDraw->isEmphasisB() && var_r30 != 0 && mpEmpButton->isSetButton(1)) { mpEmpButton->setString(mpMeterDraw->getActionString(mAStatus, 0, NULL), 1, 2 - var_r30, mAStatus == 0x4F ? true : false); var_r27 = 1; var_r30 -= 1; } } if (mpMeterDraw->isEmphasisY() && var_r30 != 0 && mpEmpButton->isSetButton(8)) { mpEmpButton->setString(mpMeterDraw->getActionString(mItemStatus[3], 0, NULL), 8, 2 - var_r30, 0); var_r25 = 1; var_r30 -= 1; } if (mpMeterDraw->isEmphasisA() && var_r30 != 0 && mpEmpButton->isSetButton(0)) { mpEmpButton->setString(mpMeterDraw->getActionString(mDoStatus, 0, NULL), 0, 2 - var_r30, 0); var_r19 = 1; var_r30 -= 1; } if (mpMeterDraw->isEmphasisZ() && var_r30 != 0 && mpEmpButton->isSetButton(3)) { if (mZStatus == 8) { mpEmpButton->setString(mpMeterDraw->getActionString(100, 0, NULL), 3, 2 - var_r30, 0); } else { mpEmpButton->setString(mpMeterDraw->getActionString(mZStatus, 0, NULL), 3, 2 - var_r30, 0); } var_r28 = 1; var_r30 -= 1; } if (mpMeterDraw->isEmphasisR() && var_r30 != 0 && mpEmpButton->isSetButton(2)) { mpEmpButton->setString(mpMeterDraw->getActionString(mRStatus, 0, NULL), 2, 2 - var_r30, 0); var_r20 = 1; var_r30 -= 1; } if (mpMeterDraw->isEmphasisX() && var_r30 != 0 && mpEmpButton->isSetButton(7)) { mpEmpButton->setString(mpMeterDraw->getActionString(mItemStatus[1], 0, NULL), 7, 2 - var_r30, 0); var_r24 = 1; var_r30 -= 1; } if (mpMeterDraw->isEmphasisBin() && var_r30 != 0 && mpEmpButton->isSetButton(21) && !dMeter2Info_is2DActiveTouchArea()) { mpEmpButton->setString(mpMeterDraw->getActionString(mBottleStatus, 0, NULL), 21, 2 - var_r30, 0); var_r26 = 1; } mpEmpButton->_execute(mStatus, var_r19, var_r27, var_r20, var_r28, var_r21, var_r22, var_r23, var_r24, var_r25, false, false, false, false, var_r29, false, false, false, false, false, false, false, var_r26); if ((var_r19 != 0) || (var_r27 != 0) || (var_r20 != 0) || (var_r28 != 0) || (var_r21 != 0) || (var_r22 != 0) || (var_r23 != 0) || (var_r24 != 0) || (var_r25 != 0) || (var_r29 != 0) || (var_r26 != 0)) { field_0x201 = 1; } } if (field_0x108 != NULL) { mDoExt_setCurrentHeap(field_0x108); } } /* 802237D4-80223BC4 21E114 03F0+00 1/1 0/0 0/0 .text checkSubContents__9dMeter2_cFv */ void dMeter2_c::checkSubContents() { if (mStatus & 0x80) { killSubContents(4); if (mSubContentType == 0) { mpSubContents = new dScope_c(0); mSubContentType = 4; } return; } else if (mStatus & 0x2000000) { if (strcmp(dComIfGp_getStartStageName(), "F_SP103") && (strcmp(dComIfGp_getStartStageName(), "F_SP00") || dComIfG_play_c::getLayerNo(0) != 5)) { killSubContents(1); if (mSubContentType == 0) { mpSubHeap->getTotalFreeSize(); mpSubContents = new dMeterHakusha_c(mpMeterDraw->getMainScreenPtr()); mSubContentType = 1; } return; } } if (daPy_getPlayerActorClass()->getSumouMode() != 0) { killSubContents(5); if (mSubContentType == 0) { mpSubContents = new dMeterHaihai_c(0); mpSubSubContents = new dMeterString_c(dMeter2Info_getMeterStringType()); mSubContentType = 5; mSubContentsStringType = dMeter2Info_getMeterStringType(); } } else if (mStatus & 0x200) { killSubContents(2); if (mSubContentType == 0) { mpSubContents = new dMeterHaihai_c(0); mSubContentType = 2; } } else if (dMeter2Info_getMeterStringType() != 0) { killSubContents(3); if (mSubContentType == 0) { mpSubContents = new dMeterString_c(dMeter2Info_getMeterStringType()); mSubContentType = 3; } } else if (mSubContentType == 4) { if (mpSubContents != NULL || mpSubSubContents != NULL) { bool free_heap = false; if (mpSubContents != NULL && mpSubContents->isDead()) { delete mpSubContents; mpSubContents = NULL; free_heap = true; } if (mpSubSubContents != NULL && mpSubSubContents->isDead()) { delete mpSubSubContents; mpSubSubContents = NULL; free_heap = true; } if (free_heap) { mpSubHeap->freeAll(); mSubContentType = 0; mSubContentsStringType = 0; } } else { mSubContentType = 0; } } else if (mSubContentType != 0) { bool free_heap = false; if (mpSubContents != NULL) { delete mpSubContents; mpSubContents = NULL; free_heap = true; } if (mpSubSubContents != NULL) { delete mpSubSubContents; mpSubSubContents = NULL; free_heap = true; } if (free_heap) { mpSubHeap->freeAll(); } mSubContentType = 0; mSubContentsStringType = 0; } } /* 80223BC4-80223E00 21E504 023C+00 1/1 0/0 0/0 .text check2DContents__9dMeter2_cFv */ void dMeter2_c::check2DContents() { if (mpEmpButton == NULL) { if ((dComIfGp_isHeapLockFlag() == 0 || dComIfGp_isHeapLockFlag() == 5) && (dMeter2Info_isFloatingMessageVisible() || mpMeterDraw->isEmphasisA() || mpMeterDraw->isEmphasisB() || mpMeterDraw->isEmphasisR() || mpMeterDraw->isEmphasisZ() || mpMeterDraw->isEmphasis3D() || mpMeterDraw->isEmphasisC() || mpMeterDraw->isEmphasisS() || mpMeterDraw->isEmphasisX() || mpMeterDraw->isEmphasisY() || mpMeterDraw->isEmphasisBin())) { dComIfGp_setHeapLockFlag(8); if (field_0x108 == NULL) { field_0x108 = mDoExt_setCurrentHeap(dComIfGp_getSubHeap2D(8)); } mpEmpButton = new dMeterButton_c(); } } else if (dComIfGp_isHeapLockFlag() == 5 && !dMeter2Info_isFloatingMessageVisible()) { if (!mpMeterDraw->isEmphasisA() && !mpMeterDraw->isEmphasisB() && !mpMeterDraw->isEmphasisR() && !mpMeterDraw->isEmphasisZ() && !mpMeterDraw->isEmphasis3D() && !mpMeterDraw->isEmphasisC() && !mpMeterDraw->isEmphasisS() && !mpMeterDraw->isEmphasisX() && !mpMeterDraw->isEmphasisY() && !mpMeterDraw->isEmphasisBin() && mpEmpButton->isClose()) { delete mpEmpButton; mpEmpButton = NULL; dComIfGp_getSubHeap2D(8)->freeAll(); if (field_0x108 != NULL) { mDoExt_setCurrentHeap(field_0x108); field_0x108 = NULL; } dComIfGp_offHeapLockFlag(8); } } } /* 80223E00-80224258 21E740 0458+00 1/1 0/0 0/0 .text moveBombNum__9dMeter2_cFv */ void dMeter2_c::moveBombNum() { u8 temp_r28; u8 temp_r31; for (int i = 0; i < 3; i++) { s16 var_r22; temp_r31 = dComIfGs_getItem((u8)(i + SLOT_15), true); temp_r28 = dComIfGs_getItem((u8)(i + SLOT_15), false); if (temp_r31 != fpcNm_ITEM_NONE && temp_r31 != fpcNm_ITEM_BOMB_BAG_LV1) { if (g_mwHIO.getBombFlag() || (dMeter2Info_getMiniGameItemSetFlag() == 1 && i == dMeter2Info_getRentalBombBag())) { if (dComIfGs_getBombMax(temp_r28) != dComIfGs_getBombNum(i)) { dComIfGp_setItemBombNumCount(i, dComIfGs_getBombMax(temp_r28)); } if (dComIfGp_getItemBombNumCount(i) < 0) { dComIfGp_clearItemBombNumCount(i); } } if (dComIfGp_getItemBombNumCount(i) != 0 || mBombNum[i] != dComIfGs_getBombNum(i) || mBombMax[i] != dComIfGs_getBombMax(temp_r28)) { var_r22 = dComIfGs_getBombNum(i) + dComIfGp_getItemBombNumCount(i); dComIfGp_clearItemBombNumCount(i); if (var_r22 < 0) { var_r22 = 0; } if (var_r22 > dComIfGs_getBombMax(temp_r28)) { var_r22 = dComIfGs_getBombMax(temp_r28); } if (var_r22 == 0) { if (temp_r31 == fpcNm_ITEM_BOMB_ARROW) { for (int j = 0; j < 2; j++) { if (i + SLOT_15 == dComIfGs_getSelectItemIndex(j) || i + SLOT_15 == dComIfGs_getMixItemIndex(j)) { dComIfGs_setMixItemIndex(j, 0xFF); dComIfGs_setSelectItemIndex(j, 4); dComIfGp_setSelectItem(j); } } } dComIfGs_setItem(i + SLOT_15, fpcNm_ITEM_BOMB_BAG_LV1); dComIfGp_setItem(i + SLOT_15, fpcNm_ITEM_BOMB_BAG_LV1); for (int j = 0; j < 2; j++) { if (i + SLOT_15 == dComIfGs_getSelectMixItemNoArrowIndex(j)) { dComIfGp_setSelectItem(j); } } } dComIfGs_setBombNum(i, var_r22); mBombMax[i] = dComIfGs_getBombMax(temp_r28); if (temp_r31 != fpcNm_ITEM_BOMB_ARROW) { for (int j = 0; j < 2; j++) { if (i + SLOT_15 == dComIfGs_getSelectMixItemNoArrowIndex(j)) { mpMeterDraw->setItemNum(j, dComIfGp_getSelectItemNum(j), dComIfGp_getSelectItemMaxNum(j)); } } } } } else { if (temp_r31 != fpcNm_ITEM_BOMB_BAG_LV1) { dComIfGs_setBombNum(i, 0); } if (dComIfGp_getItemBombNumCount(i) != 0) { dComIfGp_clearItemBombNumCount(i); } } if (mBombNum[i] != dComIfGs_getBombNum(i)) { mBombNum[i] = dComIfGs_getBombNum(i); } } for (int i = 0; i < 2; i++) { if (mItemMaxNum[i] != dComIfGs_getSelectItemIndex(i)) { for (int j = 0; j < 3; j++) { if (j + SLOT_15 == dComIfGs_getSelectItemIndex(i)) { mpMeterDraw->setItemNum(i, dComIfGp_getSelectItemNum(i), dComIfGp_getSelectItemMaxNum(i)); } } mItemMaxNum[i] = dComIfGs_getSelectItemIndex(i); } } } /* 80224258-80224354 21EB98 00FC+00 1/1 0/0 0/0 .text moveBottleNum__9dMeter2_cFv */ void dMeter2_c::moveBottleNum() { for (int i = 0; i < 4; i++) { if (dComIfGs_getItem((u8)(i + SLOT_11), true) == fpcNm_ITEM_BEE_CHILD) { if (mBottleNum[i] != dComIfGs_getBottleNum(i)) { for (int j = 0; j < 2; j++) { if (i + SLOT_11 == dComIfGs_getSelectItemIndex(j)) { mpMeterDraw->setItemNum(j, dComIfGp_getSelectItemNum(j), dComIfGp_getSelectItemMaxNum(j)); mBottleNum[i] = dComIfGs_getBottleNum(i); } } } } } } /* 80224354-80224680 21EC94 032C+00 1/1 0/0 0/0 .text moveArrowNum__9dMeter2_cFv */ void dMeter2_c::moveArrowNum() { s16 var_r6; int var_r28; int i; u8 var_r27; u8 var_r6_2; if (g_mwHIO.getArrowFlag() || dMeter2Info_getMiniGameItemSetFlag() == 1) { if (dComIfGs_getArrowMax() != dComIfGs_getArrowNum()) { dComIfGp_setItemArrowNumCount(dComIfGs_getArrowMax()); } if (dComIfGp_getItemArrowNumCount() < 0) { dComIfGp_clearItemArrowNumCount(); } } if (dComIfGp_getItemArrowNumCount() != 0 || mItemMaxNum[2] != dComIfGs_getArrowMax() || mArrowNum != dComIfGs_getArrowNum()) { var_r6 = dComIfGs_getArrowNum() + dComIfGp_getItemArrowNumCount(); dComIfGp_clearItemArrowNumCount(); if (var_r6 < 0) { var_r6 = 0; } if (var_r6 > dComIfGs_getArrowMax()) { var_r6 = dComIfGs_getArrowMax(); } dComIfGs_setArrowNum(var_r6); mItemMaxNum[2] = dComIfGs_getArrowMax(); if (mArrowNum < dComIfGs_getArrowNum()) { mArrowNum++; onArrowSoundBit(2); if (isArrowSoundBit(2)) { if (mArrowNum != dComIfGs_getArrowNum()) { if (!isArrowSoundBit(0) && isArrowEquip() && mpMeterDraw->isButtonVisible()) { onArrowSoundBit(0); mDoAud_seStart(Z2SE_CONSUM_INC_CNT_1, NULL, 0, 0); } else { offArrowSoundBit(0); } } else { if (isArrowEquip() && mpMeterDraw->isButtonVisible()) { mDoAud_seStart(Z2SE_CONSUM_INC_CNT_2, NULL, 0, 0); } offArrowSoundBit(2); offArrowSoundBit(0); } } } else if (mArrowNum > dComIfGs_getArrowNum()) { mArrowNum--; } i = 0; var_r28 = 0; for (; i < 2; i++, var_r28 += 2) { if (mItemStatus[var_r28] == fpcNm_ITEM_BOW || mItemStatus[var_r28] == fpcNm_ITEM_LIGHT_ARROW || mItemStatus[var_r28] == fpcNm_ITEM_ARROW_LV1 || mItemStatus[var_r28] == fpcNm_ITEM_ARROW_LV2 || mItemStatus[var_r28] == fpcNm_ITEM_ARROW_LV3 || mItemStatus[var_r28] == fpcNm_ITEM_HAWK_ARROW) { mpMeterDraw->setItemNum(i, mArrowNum, dComIfGs_getArrowMax()); } else if (mItemStatus[var_r28] == fpcNm_ITEM_PACHINKO) { mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax()); } else if (mItemStatus[var_r28] == fpcNm_ITEM_BOMB_ARROW) { var_r27 = dComIfGp_getSelectItemNum(i); var_r6_2 = dComIfGp_getSelectItemMaxNum(i); if (var_r27 > mArrowNum) { var_r27 = mArrowNum; } if (var_r6_2 < dComIfGs_getArrowMax()) { var_r6_2 = dComIfGs_getArrowMax(); } mpMeterDraw->setItemNum(i, var_r27, var_r6_2); } } } } /* 80224680-802248E4 21EFC0 0264+00 1/1 0/0 0/0 .text movePachinkoNum__9dMeter2_cFv */ 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] == fpcNm_ITEM_PACHINKO) { mpMeterDraw->setItemNum(i, mPachinkoNum, dComIfGs_getPachinkoMax()); } } } /* 802248E4-80224A04 21F224 0120+00 1/1 0/0 0/0 .text alphaAnimeLife__9dMeter2_cFv */ void dMeter2_c::alphaAnimeLife() { if ((mStatus & 0x4000) || ((mStatus & 0x40) && dComIfGp_event_checkHind(0x10) && !dComIfGp_checkPlayerStatus1(0, 0x2000)) || ((daPy_getPlayerActorClass()->getSumouMode() != 0) || (mStatus & 0x100000) || (mStatus & 0x80000000) || (mStatus & 8) || (mStatus & 0x10) || (mStatus & 0x01000000) || (mStatus & 0x20) || (mStatus & 0x04000000) || (mStatus & 0x08000000) || (mStatus & 0x10000000))) { mpMeterDraw->setAlphaLifeAnimeMin(); } else { mpMeterDraw->setAlphaLifeAnimeMax(); mDoAud_heartGaugeOn(); } mpMeterDraw->setAlphaLifeChange(false); } /* 80224A04-80224BAC 21F344 01A8+00 1/1 0/0 0/0 .text alphaAnimeKantera__9dMeter2_cFv */ void dMeter2_c::alphaAnimeKantera() { if (dComIfGs_getMaxOil() == 0 || dComIfGs_getItem(SLOT_1, true) != fpcNm_ITEM_KANTERA || !daPy_getPlayerActorClass()->checkUseKandelaar(0) || (mStatus & 0x4000) || ((mStatus & 0x40) && dComIfGp_event_checkHind(0x400)) || dComIfGp_getOxygenShowFlag() || ((daPy_getPlayerActorClass()->getSumouMode() != 0) || (daPy_getPlayerActorClass()->checkCanoeSlider() && (dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4)) || (mStatus & 0x100000) || (mStatus & 0x80000000) || (mStatus & 8) || (mStatus & 0x10) || (mStatus & 0x01000000) || (mStatus & 0x20) || (mStatus & 0x04000000) || (mStatus & 0x08000000) || (mStatus & 0x10000000))) { mpMeterDraw->setAlphaKanteraAnimeMin(); } else { mpMeterDraw->setAlphaKanteraAnimeMax(); } mpMeterDraw->setAlphaKanteraChange(true); } /* 80224BAC-80224D6C 21F4EC 01C0+00 1/1 0/0 0/0 .text alphaAnimeOxygen__9dMeter2_cFv */ void dMeter2_c::alphaAnimeOxygen() { if (!dComIfGp_getOxygenShowFlag() || (mStatus & 0x4000) || ((mStatus & 0x40) && dComIfGp_event_checkHind(0x800)) || ((daPy_getPlayerActorClass()->getSumouMode() != 0) || (daPy_getPlayerActorClass()->checkCanoeSlider() && (dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4)) || (mStatus & 0x100000) || (mStatus & 0x80000000) || (mStatus & 8) || (mStatus & 0x10) || (mStatus & 0x01000000) || (mStatus & 0x20) || (mStatus & 0x04000000) || (mStatus & 0x08000000) || (mStatus & 0x10000000))) { mpMeterDraw->setAlphaOxygenAnimeMin(); if (!dComIfGp_getOxygenShowFlag()) { field_0x1e1 = 0; } } else { mpMeterDraw->setAlphaOxygenAnimeMax(); if (field_0x1e1 == 0) { field_0x1e1 = 1; if (mpMeterDraw->getMeterGaugeAlphaRate(2) > 0.0f) { Z2GetAudioMgr()->seStart(Z2SE_SWIM_TIMER_ON, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } } mpMeterDraw->setAlphaOxygenChange(false); } /* 80224D6C-80224DC0 21F6AC 0054+00 1/1 0/0 0/0 .text alphaAnimeLightDrop__9dMeter2_cFv */ void dMeter2_c::alphaAnimeLightDrop() { if (!isShowLightDrop()) { mpMeterDraw->setAlphaLightDropAnimeMin(); } else { mpMeterDraw->setAlphaLightDropAnimeMax(); } mpMeterDraw->setAlphaLightDropChange(false); } /* 80224DC0-80224F70 21F700 01B0+00 1/1 0/0 0/0 .text alphaAnimeRupee__9dMeter2_cFv */ void dMeter2_c::alphaAnimeRupee() { if ((mStatus & 0x4000) || ((mStatus & 0x40) && dComIfGp_event_checkHind(0x80)) || daPy_getPlayerActorClass()->getSumouMode() || (daPy_getPlayerActorClass()->checkCanoeSlider() && dComIfG_getTimerMode() == 4) || ((strcmp(dComIfGp_getStartStageName(), "R_SP127") != 0 || dComIfGp_event_checkHind(0x80)) && (((mStatus & 0x40000000) && !(mStatus & 0x100)) || (mStatus & 0x1000) || (mStatus & 0x100000))) || (mStatus & 0x80000000) || (mStatus & 8) || (mStatus & 0x10) || (mStatus & 0x01000000) || ((mStatus & 0x20) != 0) || (mStatus & 0x04000000) || (mStatus & 0x08000000) || (mStatus & 0x10000000) || dMeter2Info_isSub2DStatus(1)) { mpMeterDraw->setAlphaRupeeAnimeMin(); } else { mpMeterDraw->setAlphaRupeeAnimeMax(); } mpMeterDraw->setAlphaRupeeChange(false); } /* 80224F70-802250F4 21F8B0 0184+00 1/1 0/0 0/0 .text alphaAnimeKey__9dMeter2_cFv */ void dMeter2_c::alphaAnimeKey() { if ((mStatus & 0x4000) || ((mStatus & 0x40) && dComIfGp_event_checkHind(0x40)) || !isKeyVisible() || (mStatus & 0x40000000) || (mStatus & 0x1000) || (mStatus & 0x100000) || (mStatus & 0x80000000) || daPy_getPlayerActorClass()->getSumouMode() || (daPy_getPlayerActorClass()->checkCanoeSlider() && (dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4)) || (mStatus & 0x100) || (mStatus & 8) || (mStatus & 0x10) || (mStatus & 0x1000000) || (mStatus & 0x20) || (mStatus & 0x4000000) || (mStatus & 0x8000000) || (mStatus & 0x10000000) || dMeter2Info_isSub2DStatus(1)) { mpMeterDraw->setAlphaKeyAnimeMin(); } else { mpMeterDraw->setAlphaKeyAnimeMax(); } mpMeterDraw->setAlphaKeyChange(false); } /* 802250F4-802254C0 21FA34 03CC+00 1/1 0/0 0/0 .text alphaAnimeButton__9dMeter2_cFv */ void dMeter2_c::alphaAnimeButton() { u8 var_31; var_31 = 0; if ((mStatus & 0x4000) || ((mStatus & 0x100) && dMsgObject_getMsgObjectClass()->isAutoMessageFlag()) || ((mStatus & 0x40000000) && !(mStatus & 0x100)) || (mStatus & 0x80000000) || (mStatus & 8) || (mStatus & 0x10) || (mStatus & 0x20) || (mStatus & 0x04000000) || (mStatus & 0x10000000)) { mpMeterDraw->setAlphaButtonAnimeMin(); mpMeterDraw->setAlphaButtonAAnimeMin(); mpMeterDraw->setAlphaButtonBAnimeMin(); } else if (!(mStatus & 0x1000000) && ((mStatus & 0x100) || daPy_getPlayerActorClass()->checkHawkWait() || (mStatus & 0x40) && dComIfGp_event_checkHind(1))) { mpMeterDraw->setAlphaButtonAnimeMin(); var_31 = 1; } else if (dMeter2Info_getItemExplainWindowStatus()) { mpMeterDraw->setAlphaButtonAnimeMin(); var_31 = 1; } else { mpMeterDraw->setAlphaButtonAnimeMax(); } field_0x1e6 = 0; if (var_31 == 1) { if (dMeter2Info_getItemExplainWindowStatus()) { mpMeterDraw->setAlphaButtonAAnimeMin(); } else if ((mStatus & 0x100) || daPy_getPlayerActorClass()->checkHawkWait() || !dComIfGp_event_checkHind(2)) { mpMeterDraw->setAlphaButtonAAnimeMax(); onShowFlag(0); } else { mpMeterDraw->setAlphaButtonAAnimeMin(); } if (mpMeterDraw->isBButtonShow(false)) { mpMeterDraw->setAlphaButtonBAnimeMax(); onShowFlag(1); } else { mpMeterDraw->setAlphaButtonBAnimeMin(); } } if (!isShowFlag(0)) { mpMeterDraw->setButtonIconAAlpha(mDoStatus, mStatus, field_0x128 == 0); } if (!isShowFlag(1)) { mpMeterDraw->setButtonIconBAlpha(mAStatus, mStatus, field_0x128 == 0); } for (int i = 0; i < 2; i++) { mpMeterDraw->setButtonIconAlpha(i, mItemStatus[i * 2], mStatus, field_0x128 == 0 ? true : false); if (field_0x128 == 0 && dMeter2Info_getMiniGameItemSetFlag() != 1 && (mItemStatus[i * 2] == fpcNm_ITEM_BOW || mItemStatus[i * 2] == fpcNm_ITEM_LIGHT_ARROW || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV1 || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV2 || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV3 || mItemStatus[i * 2] == fpcNm_ITEM_BOMB_BAG_LV1 || mItemStatus[i * 2] == fpcNm_ITEM_NORMAL_BOMB || mItemStatus[i * 2] == fpcNm_ITEM_WATER_BOMB || mItemStatus[i * 2] == fpcNm_ITEM_POKE_BOMB || mItemStatus[i * 2] == fpcNm_ITEM_HAWK_ARROW || mItemStatus[i * 2] == fpcNm_ITEM_BOMB_ARROW || mItemStatus[i * 2] == fpcNm_ITEM_PACHINKO || mItemStatus[i * 2] == fpcNm_ITEM_BEE_CHILD)) { mpMeterDraw->drawItemNum(i, 1.0f); } else { mpMeterDraw->drawItemNum(i, 0.0f); } if (field_0x128 == 0 && mItemStatus[i * 2] == fpcNm_ITEM_KANTERA) { mpMeterDraw->drawKanteraMeter(i, 1.0f); } else { mpMeterDraw->drawKanteraMeter(i, 0.0f); } } mpMeterDraw->setAlphaButtonChange(false); } /* 802254C0-802256DC 21FE00 021C+00 1/1 0/0 0/0 .text alphaAnimeButtonCross__9dMeter2_cFv */ void dMeter2_c::alphaAnimeButtonCross() { if ((mStatus & 0x4000) || ((mStatus & 0x40) && dComIfGp_event_checkHind(0x100)) || ((daPy_getPlayerActorClass()->getSumouMode() != 0) || (mStatus & 0x100) || (mStatus & 0x80) || (mStatus & 0x40000000) || (mStatus & 0x1000) || (mStatus & 0x100000) || (mStatus & 0x80000000) || (mStatus & 8) || (mStatus & 0x10) || (mStatus & 0x01000000) || (mStatus & 0x20) || (mStatus & 0x04000000) || (mStatus & 0x08000000) || (mStatus & 0x10000000) || (mStatus & 0x20000000)) || daPy_getPlayerActorClass()->checkEnemyAttentionLock() || dMeter2Info_isGameStatus(1)) { mpMeterDraw->setAlphaButtonCrossAnimeMin(); if ((!dComIfGp_event_chkEventFlag(0x40) || dMeter2Info_isGameStatus(2) || (mStatus & 0x100)) && field_0x190 > 0) { field_0x190--; } } else if (dMeter2Info_isSub2DStatus(1) || dMeter2Info_isFloatingMessageVisible()) { mpMeterDraw->setAlphaButtonCrossAnimeMin(); if (field_0x190 < 5) { field_0x190++; } } else { mpMeterDraw->setAlphaButtonCrossAnimeMax(); if (field_0x190 < 5) { field_0x190++; } } if (mpMap != NULL) { mpMap->setMapAlpha((field_0x190 * 255.0f) / 5.0f); } } /* 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 ((mStatus & 0x4000) || !dComIfGs_isLightDropGetFlag(dComIfGp_getStartStageDarkArea()) || dMeter2Info_getLightDropGetFlag(dComIfGp_getStartStageDarkArea()) <= 1 || !dKy_darkworld_check() || ((mStatus & 0x40) && dComIfGp_event_checkHind(0x200)) || daPy_getPlayerActorClass()->getSumouMode() || (daPy_getPlayerActorClass()->checkCanoeSlider() && (dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4)) || (mStatus & 0x40000000) || (mStatus & 0x00001000) || (mStatus & 0x00100000) || (mStatus & 0x80000000) || (mStatus & 0x00000100) || (mStatus & 0x00000080) || (mStatus & 0x00000008) || (mStatus & 0x00000010) || (mStatus & 0x01000000) || (mStatus & 0x00000020) || (mStatus & 0x04000000) || (mStatus & 0x08000000) || (mStatus & 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 (mSubContentType != param_0 && mSubContentType != 0) { bool free = false; if (mpSubContents != NULL) { delete mpSubContents; mpSubContents = NULL; free = true; } if (mpSubSubContents != NULL) { delete mpSubSubContents; mpSubSubContents = NULL; free = true; } if (free) { mpSubHeap->freeAll(); } mSubContentType = 0; mSubContentsStringType = 0; } } /* 80225960-802259F8 2202A0 0098+00 1/1 0/0 0/0 .text isKeyVisible__9dMeter2_cFv */ u8 dMeter2_c::isKeyVisible() { if (dStage_stagInfo_ChkKeyDisp(dComIfGp_getStage()->getStagInfo())) { if (dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()) == ST_FIELD) { return dComIfGs_getKeyNum() != 0; } else { return true; } } return false; } /* 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] == fpcNm_ITEM_BOW || mItemStatus[i * 2] == fpcNm_ITEM_LIGHT_ARROW || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV1 || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV2 || mItemStatus[i * 2] == fpcNm_ITEM_ARROW_LV3 || mItemStatus[i * 2] == fpcNm_ITEM_HAWK_ARROW || mItemStatus[i * 2] == fpcNm_ITEM_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] == fpcNm_ITEM_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* i_this) { return i_this->_draw(); } /* 80225AC0-80225AE0 220400 0020+00 1/0 0/0 0/0 .text dMeter2_Execute__FP9dMeter2_c */ static int dMeter2_Execute(dMeter2_c* i_this) { return i_this->_execute(); } /* 80225AE0-80225AE8 220420 0008+00 1/0 0/0 0/0 .text dMeter2_IsDelete__FP9dMeter2_c */ static int dMeter2_IsDelete(dMeter2_c* i_this) { return 1; } /* 80225AE8-80225B08 220428 0020+00 1/0 0/0 0/0 .text dMeter2_Delete__FP9dMeter2_c */ static int dMeter2_Delete(dMeter2_c* i_this) { return i_this->_delete(); } /* 80225B08-80225BB8 220448 00B0+00 1/0 0/0 0/0 .text dMeter2_Create__FP9msg_class */ static int dMeter2_Create(msg_class* i_this) { dMeter2Info_setMeterClass(static_cast(i_this)); dComIfGp_2dShowOn(); fopMsgM_Create(PROC_MENUWINDOW, 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(PROC_MSG_OBJECT, NULL, NULL); fopMsgM_setMessageID(id); dTimer_createStockTimer(); fopMsgM_setStageLayer(i_this); return static_cast(i_this)->_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 msg_process_profile_definition g_profile_METER2 = { -3, 12, -3, PROC_METER2, (process_method_class*)&g_fpcLf_Method, sizeof(dMeter2_c), 0, 0, &g_fopMsg_Method, 0x0301, &l_dMeter2_Method, };