// // Generated By: dol2asm // Translation Unit: d/meter/d_meter_map // #include "d/meter/d_meter_map.h" #include "Z2AudioLib/Z2AudioMgr.h" #include "d/com/d_com_inf_game.h" #include "d/menu/d_menu_window.h" #include "d/msg/d_msg_object.h" #include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_overlap_mng.h" // // Forward References: // extern "C" void isEnableDispMap__11dMeterMap_cFv(); extern "C" void getMapDispSizeTypeNo__11dMeterMap_cFv(); extern "C" void isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv(); extern "C" void getMapDispEdgeBottomY_Layout__11dMeterMap_cFv(); extern "C" void isEventRunCheck__11dMeterMap_cFv(); extern "C" void getMapDispEdgeLeftX_Layout__11dMeterMap_cFv(); extern "C" void getMapDispEdgeTop__11dMeterMap_cFv(); extern "C" bool getDispPosInside_OffsetX__11dMeterMap_cFv(); extern "C" void getDispPosOutSide_OffsetX__11dMeterMap_cFv(); extern "C" void setDispPosInsideFlg_SE_On__11dMeterMap_cFv(); extern "C" void setDispPosOutsideFlg_SE_On__11dMeterMap_cFv(); extern "C" void setMapAlpha__11dMeterMap_cFUc(); extern "C" void isMapOpenCheck__11dMeterMap_cFv(); extern "C" void __ct__11dMeterMap_cFP9J2DScreen(); extern "C" void __dt__11dMeterMap_cFv(); extern "C" void _create__11dMeterMap_cFP9J2DScreen(); extern "C" void _delete__11dMeterMap_cFv(); extern "C" void _move__11dMeterMap_cFUl(); extern "C" void _draw__11dMeterMap_cFv(); extern "C" void draw__11dMeterMap_cFv(); extern "C" void ctrlShowMap__11dMeterMap_cFv(); extern "C" void checkMoveStatus__11dMeterMap_cFv(); extern "C" void isShow__11dMeterMap_cFUl(); extern "C" void isFmapScreen__11dMeterMap_cFv(); extern "C" void isDmapScreen__11dMeterMap_cFv(); extern "C" void meter_map_move__11dMeterMap_cFUl(); extern "C" void keyCheck__11dMeterMap_cFv(); extern "C" extern char const* const d_meter_d_meter_map__stringBase0; // // External References: // extern "C" void fopOvlpM_IsDoingReq__Fv(); extern "C" void getStatusRoomDt__20dStage_roomControl_cFi(); extern "C" void __ct__6dMap_cFiiii(); extern "C" void _move__6dMap_cFffif(); extern "C" void _draw__6dMap_cFv(); extern "C" void dComIfGp_mapShow__Fv(); extern "C" void dComIfGp_mapHide__Fv(); extern "C" void dComIfGp_checkMapShow__Fv(); extern "C" void isDungeonItem__12dSv_memBit_cCFi(); extern "C" void onEventBit__11dSv_event_cFUs(); extern "C" void isEventBit__11dSv_event_cCFUs(); extern "C" void getMapPlayerPos__10dMapInfo_nFv(); extern "C" void isExistMapPathData__8dMpath_cFv(); extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c(); extern "C" void dMw_LEFT_TRIGGER__Fv(); extern "C" void dMw_RIGHT_TRIGGER__Fv(); extern "C" void dMeter2Info_set2DVibration__Fv(); extern "C" void getStatus__12dMsgObject_cFv(); extern "C" void cLib_addCalcAngleS__FPsssss(); extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void __ct__10J2DPictureFPC7ResTIMG(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // // Declarations: // inline BOOL dComIfGp_event_runCheck() { return g_dComIfG_gameInfo.play.getEvent().runCheck(); } inline u16 dComIfGp_event_checkHind(u16 flag) { if (!dComIfGp_event_runCheck()) { return false; } return g_dComIfG_gameInfo.play.getEvent().checkHind(flag); } inline u16 dComIfGp_event_chkEventFlag(u16 flag) { return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag); } inline dStage_stageDt_c* dComIfGp_getStage() { return &g_dComIfG_gameInfo.play.getStage(); } inline BOOL dComIfGs_isEventBit(u16 id) { return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); } /* 8020D49C-8020D528 207DDC 008C+00 1/1 0/0 0/0 .text isEnableDispMap__11dMeterMap_cFv */ bool dMeterMap_c::isEnableDispMap() { bool minimapEnable = false; stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo(); if (pstag != NULL && getMapDispSizeTypeNo() != 0) { minimapEnable = dStage_stagInfo_GetMiniMap(pstag) != 0; } bool enableMap = false; if (minimapEnable && dMpath_c::isExistMapPathData()) { enableMap = true; } return enableMap; } /* 8020D528-8020D650 207E68 0128+00 3/3 0/0 0/0 .text getMapDispSizeTypeNo__11dMeterMap_cFv */ // stayNo load block in wrong order #ifdef NONMATCHING int dMeterMap_c::getMapDispSizeTypeNo() { int uvar6 = 7; int stayNo = dComIfGp_roomControl_getStayNo(); dStage_FileList_dt_c* fList = dComIfGp_roomControl_getStatusRoomDt(stayNo)->mRoomDt.getFileListInfo(); if (fList != NULL) { uvar6 = dStage_FileList_dt_getMiniMap(fList); } u32 stageMapSizeTypeNo = dStage_stagInfo_GetMiniMap(dComIfGp_getStage()->getStagInfo()); s32 mapDispType = dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()); if (mapDispType == 1) { uvar6 = 1; } else if (uvar6 == 7) { uvar6 = stageMapSizeTypeNo; } int mapDispSizeType = 0; switch (uvar6) { case 0: break; case 1: if (mapDispType == 1) { mapDispSizeType = 4; } else { mapDispSizeType = 1; } break; case 2: if (mapDispType != 1) { mapDispSizeType = 2; } break; case 3: if (mapDispType == 1) { mapDispSizeType = 5; } else { mapDispSizeType = 3; } break; } return mapDispSizeType; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int dMeterMap_c::getMapDispSizeTypeNo() { nofralloc #include "asm/d/meter/d_meter_map/getMapDispSizeTypeNo__11dMeterMap_cFv.s" } #pragma pop #endif /* 8020D650-8020D690 207F90 0040+00 5/5 3/3 0/0 .text * isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv */ bool dMeterMap_c::isEnableDispMapAndMapDispSizeTypeNo() { if (isEnableDispMap() && getMapDispSizeTypeNo()) { return true; } return false; } /* 8020D690-8020D698 207FD0 0008+00 2/2 0/0 0/0 .text * getMapDispEdgeBottomY_Layout__11dMeterMap_cFv */ f32 dMeterMap_c::getMapDispEdgeBottomY_Layout() { return 421.0f; } /* 8020D698-8020D72C 207FD8 0094+00 2/2 0/0 0/0 .text isEventRunCheck__11dMeterMap_cFv */ // missing gameinfo load #ifdef NONMATCHING bool dMeterMap_c::isEventRunCheck() { if (dComIfGp_event_runCheck()) { return true; } else if (dMsgObject_isTalkNowCheck()) { return true; } return dComIfGp_event_runCheck() != field_0x30 ? 1 : 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool dMeterMap_c::isEventRunCheck() { nofralloc #include "asm/d/meter/d_meter_map/isEventRunCheck__11dMeterMap_cFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80454828-80454830 002E28 0008+00 3/3 0/0 0/0 .sdata2 @4100 */ SECTION_SDATA2 static f64 lit_4100 = 4503601774854144.0 /* cast s32 to float */; /* 8020D72C-8020D75C 20806C 0030+00 2/2 0/0 0/0 .text getMapDispEdgeLeftX_Layout__11dMeterMap_cFv */ #ifdef NONMATCHING // matches with literal f32 dMeterMap_c::getMapDispEdgeLeftX_Layout() { return field_0x28 + 35; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 dMeterMap_c::getMapDispEdgeLeftX_Layout() { nofralloc #include "asm/d/meter/d_meter_map/getMapDispEdgeLeftX_Layout__11dMeterMap_cFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80454830-80454834 002E30 0004+00 2/2 0/0 0/0 .sdata2 @4128 */ SECTION_SDATA2 static u8 lit_4128[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 80454834-80454838 002E34 0004+00 5/5 0/0 0/0 .sdata2 @4129 */ SECTION_SDATA2 static f32 lit_4129 = 1.0f; /* 80454838-80454840 002E38 0008+00 1/1 0/0 0/0 .sdata2 @4131 */ SECTION_SDATA2 static f64 lit_4131 = 4503599627370496.0 /* cast u32 to float */; /* 8020D75C-8020D7E4 20809C 0088+00 0/0 1/1 0/0 .text getMapDispEdgeTop__11dMeterMap_cFv */ // matches with literals #ifdef NONMATCHING f32 dMeterMap_c::getMapDispEdgeTop() { f32 tmp = 0.0f; if (mMap != NULL) { tmp = mMap->getTexSizeY() - mMap->getTexelPerCm() * (mMap->getPackZ() - mMap->getPackPlusZ()) - mMap->getTopEdgePlus(); } return getMapDispEdgeBottomY_Layout() - tmp; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 dMeterMap_c::getMapDispEdgeTop() { nofralloc #include "asm/d/meter/d_meter_map/getMapDispEdgeTop__11dMeterMap_cFv.s" } #pragma pop #endif /* 8020D7E4-8020D7EC 208124 0008+00 2/2 0/0 0/0 .text getDispPosInside_OffsetX__11dMeterMap_cFv */ s16 dMeterMap_c::getDispPosInside_OffsetX() { return 0; } /* ############################################################################################## */ /* 80454840-80454844 002E40 0004+00 1/1 0/0 0/0 .sdata2 @4159 */ SECTION_SDATA2 static f32 lit_4159 = -36.0f; /* 8020D7EC-8020D874 20812C 0088+00 2/2 0/0 0/0 .text getDispPosOutSide_OffsetX__11dMeterMap_cFv */ // calculation order is wrong #ifdef NONMATCHING s16 dMeterMap_c::getDispPosOutSide_OffsetX() { f32 dvar3 = -36.0f - mSizeW; f32 tmp = 0.0f; if (mMap != NULL) { tmp = (mMap->getTexelPerCm() * mMap->getPackX()) + (mMap->getRightEdgePlus() + (mMap->getTexelPerCm() * mMap->getPackPlusZ())); tmp += dvar3; } return tmp - getMapDispEdgeLeftX_Layout(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm s16 dMeterMap_c::getDispPosOutSide_OffsetX() { nofralloc #include "asm/d/meter/d_meter_map/getDispPosOutSide_OffsetX__11dMeterMap_cFv.s" } #pragma pop #endif /* 8020D874-8020D8BC 2081B4 0048+00 2/2 2/2 0/0 .text setDispPosInsideFlg_SE_On__11dMeterMap_cFv */ void dMeterMap_c::setDispPosInsideFlg_SE_On() { if (isEnableDispMapAndMapDispSizeTypeNo()) { dComIfGp_mapShow(); field_0x2d = 1; field_0x2e = 7; } } /* 8020D8BC-8020D8F8 2081FC 003C+00 1/1 2/2 0/0 .text setDispPosOutsideFlg_SE_On__11dMeterMap_cFv */ void dMeterMap_c::setDispPosOutsideFlg_SE_On() { dComIfGp_mapHide(); field_0x2d = 0; field_0x2e = 7; } /* 8020D8F8-8020D900 -00001 0008+00 0/0 0/0 0/0 .text setMapAlpha__11dMeterMap_cFUc */ void dMeterMap_c::setMapAlpha(u8 alpha) { mMapAlpha = alpha; } /* 8020D900-8020D948 208240 0048+00 3/3 1/1 0/0 .text isMapOpenCheck__11dMeterMap_cFv */ bool dMeterMap_c::isMapOpenCheck() { return dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 7 ? false : true; } /* ############################################################################################## */ /* 803BF2D8-803BF2F8 -00001 0020+00 1/1 0/0 0/0 .data @4516 */ SECTION_DATA static void* lit_4516[8] = { (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x1C8), (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x184), (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x1B4), (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x19C), (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x1C8), (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x1A8), (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x1C0), (void*)(((char*)ctrlShowMap__11dMeterMap_cFv) + 0x190), }; /* 8020D948-8020D990 208288 0048+00 0/0 1/1 0/0 .text __ct__11dMeterMap_cFP9J2DScreen */ dMeterMap_c::dMeterMap_c(J2DScreen* p_scrn) { _create(p_scrn); } /* 8020D990-8020D9EC 2082D0 005C+00 1/0 0/0 0/0 .text __dt__11dMeterMap_cFv */ dMeterMap_c::~dMeterMap_c() { _delete(); } /* 8020D9EC-8020DC50 20832C 0264+00 1/1 0/0 0/0 .text _create__11dMeterMap_cFP9J2DScreen */ // matches with auto gen literals #ifdef NONMATCHING void dMeterMap_c::_create(J2DScreen* param_0) { s32 sizeX; s32 sizeY; s32 dispSizeW; s32 dispSizeH; getMapDispSizeTypeNo(); switch (getMapDispSizeTypeNo()) { case 1: dispSizeW = 216; dispSizeH = 216; sizeX = 144; sizeY = 144; break; case 2: dispSizeW = 216; dispSizeH = 216; sizeX = 216; sizeY = 216; break; case 3: dispSizeW = 216; dispSizeH = 216; sizeX = 96; sizeY = 96; break; case 0: case 4: dispSizeW = 144; dispSizeH = 144; sizeX = 144; sizeY = 144; break; case 5: dispSizeW = 144; dispSizeH = 144; sizeX = 96; sizeY = 96; break; } mSizeW = (s16)sizeX; mSizeH = (s16)sizeY; mMap = new dMap_c(sizeX, sizeY, dispSizeW, dispSizeH); mMapJ2DPicture = new J2DPicture(mMap->getResTIMGPointer()); mIsCompass = dComIfGs_isDungeonItemCompass(); mIsMap = dComIfGs_isDungeonItemMap(); field_0x14 = 0; field_0x2a = 0; if (dComIfGp_checkMapShow()) { field_0x2d = 1; if (!isEnableDispMapAndMapDispSizeTypeNo()) { field_0x2d = 0; } if (!isMapOpenCheck()) { field_0x2d = 0; } } else { field_0x2d = 0; } if (field_0x2d != 0) { field_0x2d = 1; field_0x28 = getDispPosInside_OffsetX(); dMeter2Info_setMapStatus(1); } else { field_0x2d = 0; field_0x28 = getDispPosOutSide_OffsetX(); dMeter2Info_setMapStatus(0); } field_0x2e = 0; field_0x28 = 0; field_0x30 = 0; field_0x2b = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118]); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeterMap_c::_create(J2DScreen* param_0) { nofralloc #include "asm/d/meter/d_meter_map/_create__11dMeterMap_cFP9J2DScreen.s" } #pragma pop #endif /* 8020DC50-8020DCE4 208590 0094+00 1/1 0/0 0/0 .text _delete__11dMeterMap_cFv */ void dMeterMap_c::_delete() { if (mMapJ2DPicture != NULL) { delete mMapJ2DPicture; } if (mMap != NULL) { delete mMap; } if (isEnableDispMapAndMapDispSizeTypeNo()) { if (field_0x2d != 0) { dComIfGp_mapShow(); } else { dComIfGp_mapHide(); } } } /* ############################################################################################## */ /* 80398208-80398208 024868 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80398208 = "F_SP115"; #pragma pop /* 8020DCE4-8020DF1C 208624 0238+00 0/0 1/1 0/0 .text _move__11dMeterMap_cFUl */ // just regalloc #ifdef NONMATCHING void dMeterMap_c::_move(u32 param_0) { if (!field_0x2b && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118])) { if (strcmp(dComIfGp_getStartStageName(), "F_SP115") == 0) { dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[119]); } else { field_0x2b = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118]); dMeter2Info_setPauseStatus(2); } } int stayNo = dComIfGp_roomControl_getStayNo(); field_0x14 = param_0; field_0x2a = checkMoveStatus(); if (field_0x2a == 1 || field_0x2a == 2 || field_0x2a == 3 || dMeter2Info_getPauseStatus() == 7 || dMeter2Info_getPauseStatus() == 2 || dMeter2Info_getPauseStatus() == 6 || dMeter2Info_getPauseStatus() == 4 || dMeter2Info_getPauseStatus() == 3 || dMeter2Info_getPauseStatus() == 5) { ctrlShowMap(); } if (field_0x2d != 0) { if (field_0x28 != getDispPosInside_OffsetX()) { cLib_addCalcAngleS(&field_0x28, getDispPosInside_OffsetX(), 2, 60, 10); } } else { cLib_addCalcAngleS(&field_0x28, getDispPosOutSide_OffsetX(), 2, 60, 10); } Vec map_pos = dMapInfo_n::getMapPlayerPos(); field_0x18 = field_0x28 + getMapDispEdgeLeftX_Layout(); field_0x1c = getMapDispEdgeBottomY_Layout() - mSizeH; mMap->_move(map_pos.x, map_pos.z, stayNo, map_pos.y); field_0x30 = dComIfGp_event_runCheck(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeterMap_c::_move(u32 param_0) { nofralloc #include "asm/d/meter/d_meter_map/_move__11dMeterMap_cFUl.s" } #pragma pop #endif /* 8020DF1C-8020DF68 20885C 004C+00 0/0 1/1 0/0 .text _draw__11dMeterMap_cFv */ void dMeterMap_c::_draw() { mMap->_draw(); dComIfGd_set2DOpa(this); } /* 8020DF68-8020E070 2088A8 0108+00 1/0 0/0 0/0 .text draw__11dMeterMap_cFv */ void dMeterMap_c::draw() { if (mMap != NULL && mMap->isDraw()) { dComIfGp_getCurrentGrafPort()->setup2D(); f32 sizeX = mSizeW; f32 sizeY = mSizeH; f32 tmp2 = field_0x18; f32 tmp3 = field_0x1c; mMapJ2DPicture->setAlpha(mMapAlpha); mMapJ2DPicture->draw(tmp2, tmp3, sizeX, sizeY, false, false, false); mMapJ2DPicture->calcMtx(); } } /* ############################################################################################## */ /* 80454844-80454848 002E44 0004+00 3/3 0/0 0/0 .sdata2 @4515 */ SECTION_SDATA2 static f32 lit_4515 = -1.0f; /* 8020E070-8020E45C 2089B0 03EC+00 2/1 0/0 0/0 .text ctrlShowMap__11dMeterMap_cFv */ // matches with literals #ifdef NONMATCHING void dMeterMap_c::ctrlShowMap() { if (!dMeter2Info_isGameStatus(1)) { if (!isMapOpenCheck() && !isEventRunCheck()) { if (dMw_LEFT_TRIGGER() || dMw_RIGHT_TRIGGER()) { Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SYS_ERROR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); } } else { if (dMeter2Info_getPauseStatus() == 1 || dMeter2Info_getPauseStatus() == 7 || dMeter2Info_getPauseStatus() == 3 || dMeter2Info_getPauseStatus() == 5 || dMeter2Info_getPauseStatus() == 2 || dMeter2Info_getPauseStatus() == 6) { if (dMeter2Info_getMapStatus() == 0 && field_0x2d == 0) { setDispPosInsideFlg_SE_On(); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); dMeter2Info_setMapStatus(1); } if (dMeter2Info_getMapStatus() == 1 && field_0x2d != 0 && isFmapScreen()) { switch (dMeter2Info_getPauseStatus()) { case 1: dMeter2Info_setMapStatus(4); break; case 2: dMeter2Info_setMapStatus(7); break; case 3: dMeter2Info_setMapStatus(8); break; case 5: dMeter2Info_setMapStatus(9); break; case 6: dMeter2Info_setMapStatus(5); break; case 7: dMeter2Info_setMapStatus(3); break; } dMeter2Info_setMapKeyDirection(0x400); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } dMeter2Info_resetPauseStatus(); } else { if (dMeter2Info_getPauseStatus() == 4) { dMeter2Info_resetPauseStatus(); if (isDmapScreen()) { if (dMeter2Info_getMapStatus() == 0 && field_0x2d == 0) { setDispPosInsideFlg_SE_On(); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); dMeter2Info_setMapStatus(1); } if (dMeter2Info_getMapStatus() == 1 && field_0x2d != 0) { dMeter2Info_setMapStatus(6); dMeter2Info_setMapKeyDirection(0x400); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } } } else if (!mDoCPd_c::getTrigUp(0) && !mDoCPd_c::getTrigDown(0)) { keyCheck(); } } if (mIsCompass != dComIfGs_isDungeonItemCompass()) { if (!isDispPosInsideFlg()) { setDispPosInsideFlg_SE_On(); dMeter2Info_setMapStatus(1); } mIsCompass = dComIfGs_isDungeonItemCompass(); } if (mIsMap != dComIfGs_isDungeonItemMap()) { if (!isDispPosInsideFlg()) { setDispPosInsideFlg_SE_On(); dMeter2Info_setMapStatus(1); } mIsMap = dComIfGs_isDungeonItemMap(); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeterMap_c::ctrlShowMap() { nofralloc #include "asm/d/meter/d_meter_map/ctrlShowMap__11dMeterMap_cFv.s" } #pragma pop #endif /* 8020E45C-8020E4C8 208D9C 006C+00 1/1 0/0 0/0 .text checkMoveStatus__11dMeterMap_cFv */ // field_0x2d compare is weird #ifdef NONMATCHING u8 dMeterMap_c::checkMoveStatus() { if (isShow(field_0x14)) { if (isEnableDispMapAndMapDispSizeTypeNo()) { if (isDispPosInsideFlg()) { return 1; } return 2; } return 3; } return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u8 dMeterMap_c::checkMoveStatus() { nofralloc #include "asm/d/meter/d_meter_map/checkMoveStatus__11dMeterMap_cFv.s" } #pragma pop #endif /* 8020E4C8-8020E620 208E08 0158+00 2/2 0/0 0/0 .text isShow__11dMeterMap_cFUl */ // extra gameinfo label load for dComIfGp_event_checkHind #ifdef NONMATCHING bool dMeterMap_c::isShow(u32 param_0) { if ((param_0 & 0x4000) || fopOvlpM_IsDoingReq() || ((param_0 & 0x40) && dComIfGp_event_checkHind(0x100) && !dComIfGp_event_chkEventFlag(0x40)) || daPy_getPlayerActorClass()->i_getSumouMode() || (param_0 & 0x200000) || (param_0 & 0x100) || (param_0 & 0x80) || (param_0 & 0x40000000) || (param_0 & 0x1000) || (param_0 & 0x100000) || (param_0 & 0x20000) || (param_0 & 8) || (param_0 & 0x10) || (param_0 & 0x1000000) || (param_0 & 0x800000) || (param_0 & 0x20) || (param_0 & 0x4000000) || (param_0 & 0x10000000) || (param_0 & 0x800) || (param_0 & 0x20000000) || daPy_getPlayerActorClass()->checkEnemyAttentionLock() || dMeter2Info_isGameStatus(2)) { return false; } return true; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool dMeterMap_c::isShow(u32 param_0) { nofralloc #include "asm/d/meter/d_meter_map/isShow__11dMeterMap_cFUl.s" } #pragma pop #endif /* 8020E620-8020E70C 208F60 00EC+00 3/3 0/0 0/0 .text isFmapScreen__11dMeterMap_cFv */ bool dMeterMap_c::isFmapScreen() { if (dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 0 || dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 5 || dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 3 || dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 4 || dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 6) { return true; } return false; } /* 8020E70C-8020E754 20904C 0048+00 3/3 0/0 0/0 .text isDmapScreen__11dMeterMap_cFv */ bool dMeterMap_c::isDmapScreen() { return dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 1 ? 1 : 0; } /* 8020E754-8020E9CC 209094 0278+00 0/0 1/1 0/0 .text meter_map_move__11dMeterMap_cFUl */ // matches with literals #ifdef NONMATCHING void dMeterMap_c::meter_map_move(u32 param_0) { if (isShow(param_0) && isMapOpenCheck()) { if (dMeter2Info_getPauseStatus() == 6) { if (!dMeter2Info_isSub2DStatus(1) && isFmapScreen()) { dMeter2Info_setMapStatus(3); dMeter2Info_setMapKeyDirection(0x400); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } dMeter2Info_resetPauseStatus(); } else { if (dMw_LEFT_TRIGGER() && !dComIfGp_event_runCheck() && !dMsgObject_isTalkNowCheck() && (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { if (dMeter2Info_getMapStatus() == 0 && !dMeter2Info_isSub2DStatus(1)) { if (isFmapScreen() || isDmapScreen()) { dMeter2Info_setMapStatus(2); dMeter2Info_setMapKeyDirection(0x200); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } } } else if (dMw_RIGHT_TRIGGER() && !dComIfGp_event_runCheck() && !dMsgObject_isTalkNowCheck() && (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { if (!dMeter2Info_isSub2DStatus(1)) { if (isFmapScreen() || isDmapScreen()) { dMeter2Info_setMapStatus(2); dMeter2Info_setMapKeyDirection(0x400); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } } } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeterMap_c::meter_map_move(u32 param_0) { nofralloc #include "asm/d/meter/d_meter_map/meter_map_move__11dMeterMap_cFUl.s" } #pragma pop #endif /* 8020E9CC-8020ED60 20930C 0394+00 1/1 0/0 0/0 .text keyCheck__11dMeterMap_cFv */ // matches with literals #ifdef NONMATCHING void dMeterMap_c::keyCheck() { if (dMw_LEFT_TRIGGER() && !isEventRunCheck() && (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { if (dMeter2Info_getMapStatus() == 1) { if (isDispPosInsideFlg()) { setDispPosOutsideFlg_SE_On(); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_setMapStatus(0); } } else if (dMeter2Info_getMapStatus() == 0) { if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) { dMeter2Info_setMapStatus(2); dMeter2Info_setMapKeyDirection(0x200); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } else { setDispPosInsideFlg_SE_On(); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); dMeter2Info_setMapStatus(1); } } } else if (dMw_RIGHT_TRIGGER() && !isEventRunCheck() && (dMeter2Info_getMapStatus() == 0 || dMeter2Info_getMapStatus() == 1)) { if (dMeter2Info_getMapStatus() == 0) { if (isEnableDispMapAndMapDispSizeTypeNo()) { if (!isDispPosInsideFlg()) { setDispPosInsideFlg_SE_On(); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); dMeter2Info_setMapStatus(1); } } else if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) { dMeter2Info_setMapStatus(2); dMeter2Info_setMapKeyDirection(0x400); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } } else if (dMeter2Info_getMapStatus() == 1 && isDispPosInsideFlg()) { if (!dMeter2Info_isSub2DStatus(1) && (isFmapScreen() || isDmapScreen())) { dMeter2Info_setMapStatus(2); dMeter2Info_setMapKeyDirection(0x400); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_OPEN_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_set2DVibration(); } else { setDispPosOutsideFlg_SE_On(); Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_MAP_CLOSE_S, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); dMeter2Info_setMapStatus(0); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dMeterMap_c::keyCheck() { nofralloc #include "asm/d/meter/d_meter_map/keyCheck__11dMeterMap_cFv.s" } #pragma pop #endif /* 80398208-80398208 024868 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */