diff --git a/include/d/d_menu_fmap.h b/include/d/d_menu_fmap.h index a89a17f6e..0dc70e890 100644 --- a/include/d/d_menu_fmap.h +++ b/include/d/d_menu_fmap.h @@ -5,6 +5,7 @@ #include "d/d_drawlist.h" #include "d/d_lib.h" #include "d/d_menu_fmap_sv.h" +// #include "d/d_menu_fmapSv.h" #include "dolphin/types.h" #include "JSystem/JParticle/JPAEmitter.h" #include "SSystem/SComponent/c_xyz.h" @@ -25,27 +26,6 @@ struct cursorTable_t { /* 0x6 */ s8 down; }; -struct aramCmapSalvagePnt_t { - /* 0x0 */ s16 field_0x0; - /* 0x2 */ s16 field_0x2; - /* 0x4 */ s16 x; - /* 0x6 */ s16 y; -}; // Size: 0x8 - -struct aramCmapDatPnt_t { - /* 0x00 */ s8 gridNo; - /* 0x01 */ s8 collectMapNo; - /* 0x02 */ s8 cmapIdx; - /* 0x03 */ s8 field_0x3; - /* 0x04 */ s16 field_0x4; - /* 0x06 */ aramCmapSalvagePnt_t salvagePnt[4]; -}; // Size: 0x26 - -struct aramCmapDatPat_t { - /* 0x00 */ u32 m_0x0; - /* 0x04 */ aramCmapDatPnt_t* m_0x4; -}; - enum FmapMode { FMAP_MODE_NORMAL = 0, FMAP_MODE_WARP = 1, @@ -77,90 +57,78 @@ public: virtual ~dMenu_Fmap_c() {} void draw() { _draw(); } - u8 getCtActive() { + u8 getCtDispMode() { JUT_ASSERT(467, fmapSv != NULL); - return fmapSv->active; + return fmapSv->dispMode; } - void setCtActive(u8 val) { + void setCtDispMode(u8 val) { JUT_ASSERT(472, fmapSv != NULL); - fmapSv->active = val; + fmapSv->dispMode = val; } - s8 getCtCmapSelNo() { + s8 getCtFmapZoom() { JUT_ASSERT(478, fmapSv != NULL); - return fmapSv->cmapSelNo; + return fmapSv->fmapZoom; } - void setCtCmapSelNo(s8 val) { + void setCtFmapZoom(u8 val) { JUT_ASSERT(483, fmapSv != NULL); - fmapSv->cmapSelNo = val; - } - s8 getCtCurWX() { - JUT_ASSERT(489, fmapSv != NULL); - return fmapSv->curWX; - } - void setCtCurWX(s8 val) { - JUT_ASSERT(494, fmapSv != NULL); - fmapSv->curWX = val; - } - s8 getCtCurWY() { - JUT_ASSERT(500, fmapSv != NULL); - return fmapSv->curWY; - } - void setCtCurWY(s8 val) { - JUT_ASSERT(505, fmapSv != NULL); - fmapSv->curWY = val; - } - s8 getCtCurHX() { - JUT_ASSERT(511, fmapSv != NULL); - return fmapSv->curHX; - } - void setCtCurHX(s8 val) { - JUT_ASSERT(516, fmapSv != NULL); - fmapSv->curHX = val; - } - s8 getCtCurHY() { - JUT_ASSERT(522, fmapSv != NULL); - return fmapSv->curHY; - } - void setCtCurHY(s8 val) { - JUT_ASSERT(527, fmapSv != NULL); - fmapSv->curHY = val; + fmapSv->fmapZoom = val; } s8 getCtCurX() { - JUT_ASSERT(533, fmapSv != NULL); + JUT_ASSERT(489, fmapSv != NULL); return fmapSv->curX; } void setCtCurX(s8 val) { - JUT_ASSERT(538, fmapSv != NULL); + JUT_ASSERT(494, fmapSv != NULL); fmapSv->curX = val; } s8 getCtCurY() { - JUT_ASSERT(543, fmapSv != NULL); + JUT_ASSERT(500, fmapSv != NULL); return fmapSv->curY; } void setCtCurY(s8 val) { - JUT_ASSERT(548, fmapSv != NULL); + JUT_ASSERT(505, fmapSv != NULL); fmapSv->curY = val; } + s8 getCtCurWX() { + JUT_ASSERT(511, fmapSv != NULL); + return fmapSv->curWX; + } + void setCtCurWX(s8 val) { + JUT_ASSERT(516, fmapSv != NULL); + fmapSv->curWX = val; + } + s8 getCtCurWY() { + JUT_ASSERT(522, fmapSv != NULL); + return fmapSv->curWY; + } + void setCtCurWY(s8 val) { + JUT_ASSERT(527, fmapSv != NULL); + fmapSv->curWY = val; + } s8 getCtZoomGridX() { - JUT_ASSERT(553, fmapSv != NULL); + JUT_ASSERT(533, fmapSv != NULL); return fmapSv->zoomGridX; } void setCtZoomGridX(s8 val) { - JUT_ASSERT(559, fmapSv != NULL); + JUT_ASSERT(538, fmapSv != NULL); fmapSv->zoomGridX = val; } s8 getCtZoomGridY() { - JUT_ASSERT(563, fmapSv != NULL); + JUT_ASSERT(543, fmapSv != NULL); return fmapSv->zoomGridY; } void setCtZoomGridY(s8 val) { - JUT_ASSERT(569, fmapSv != NULL); + JUT_ASSERT(548, fmapSv != NULL); fmapSv->zoomGridY = val; } - void getCtDispMode() {} - void setCtDispMode(u8) {} - void getCtFmapZoom() {} - void setCtFmapZoom(u8) {} + void setCtCurHX(s8 val) { + JUT_ASSERT(559, fmapSv != NULL); + fmapSv->curHX = val; + } + void setCtCurHY(s8 val) { + JUT_ASSERT(569, fmapSv != NULL); + fmapSv->curHY = val; + } void lineInter0to1(f32, f32, f32) {} void lineInter0to1ForU8(u8, u8, f32) {} void setFont(JUTFont* font, JUTFont* rfont) { @@ -324,7 +292,7 @@ public: /* 0x0024 */ dMenu_Fmap2_c mFmap2; /* 0x2874 */ u8 padding_0x2874[0x2878 - 0x2874]; /* 0x2878 */ dMenu_FmapSv_c* fmapSv; - /* 0x287C */ aramCmapDatPat_t mCmapDatPnt; + /* 0x287C */ aramCmapDat_c mCmapDatPnt; /* 0x2884 */ dDlst_2DOutFont_c* outFont; /* 0x2888 */ dDlst_2DOutFont_c* outFont2; /* 0x288C */ fopMsgM_pane_class mFddmPane; @@ -488,6 +456,8 @@ public: dMf_HIO_c(); virtual ~dMf_HIO_c() {} + void genMessage(JORMContext* ctx) { UNUSED(ctx); } + public: /* 0x004 */ s8 mNo; /* 0x005 */ u8 field_0x05; diff --git a/include/d/d_menu_fmap2.h b/include/d/d_menu_fmap2.h index b351bf067..27eeed469 100644 --- a/include/d/d_menu_fmap2.h +++ b/include/d/d_menu_fmap2.h @@ -9,10 +9,9 @@ struct fopMsgM_pane_class; class J2DScreen; struct ResTIMG; class aramCmapDat_c; +class aramCmapDatPnt_t; class dMenu_FmapSv_c; -struct aramCmapDatPat_t; - class dDlst_FMAP2GS_c : public dDlst_base_c { public: virtual ~dDlst_FMAP2GS_c() {} @@ -39,7 +38,7 @@ public: void getCtCurY() {} void getCtDispMode() {} void lineInter0to1ForU8(unsigned char, unsigned char, float) {} - void setAramCmapDat(aramCmapDatPat_t* i_ptr) { mpFmapDatPnt = i_ptr; } + void setAramCmapDat(aramCmapDat_c* i_ptr) { mpFmapDatPnt = i_ptr; } void setCtActive(unsigned char) {} void setCtCmapSelNo(signed char) {} void setCtCurHX(signed char) {} @@ -146,7 +145,7 @@ public: void calcFinCollectMap(); void getNowCmapFirstNum(); void getNowCmapNextNum(signed char, int); - aramCmapDatPat_t* getCmapDatPnt4(int); + aramCmapDatPnt_t* getCmapDatPnt4(int); void readPaneCmapTexture(const ResTIMG*, int); void readFmapTexture(const char*); int getButtonIconMode(); @@ -161,7 +160,7 @@ public: /* 0x0004 */ u8 padding_0x4[0x10 - 0x4]; /* 0x0010 */ dMenu_FmapSv_c* fmapSv; /* 0x0014 */ u8 padding_0x14[0x1C - 0x14]; - /* 0x001C */ aramCmapDatPat_t* mpFmapDatPnt; + /* 0x001C */ aramCmapDat_c* mpFmapDatPnt; /* 0x0020 */ dDlst_FMAP2_c mDlst; /* 0x0024 */ u8 padding_0x24[0x28 - 0x24]; /* 0x0028 */ dDlst_FMAP2GS_c mDlstGs; diff --git a/include/d/d_menu_fmap_sv.h b/include/d/d_menu_fmap_sv.h index dfffba206..3e51b1ea1 100644 --- a/include/d/d_menu_fmap_sv.h +++ b/include/d/d_menu_fmap_sv.h @@ -1,31 +1,104 @@ -#ifndef D_MENU_FMAP_SV_H -#define D_MENU_FMAP_SV_H +#ifndef D_MENU_FMAPSV_H +#define D_MENU_FMAPSV_H -#include "dolphin/types.h" +#include "JSystem/JUtility/JUTAssert.h" +#include "global.h" + +struct aramCmapSalvagePnt_t { + /* 0x0 */ s16 field_0x0; + /* 0x2 */ s16 field_0x2; + /* 0x4 */ s16 x; + /* 0x6 */ s16 y; +}; // Size: 0x8 + +struct aramCmapDatPnt_t { + /* 0x00 */ s8 gridNo; + /* 0x01 */ s8 collectMapNo; + /* 0x02 */ s8 cmapNo; + /* 0x03 */ s8 mapType; + /* 0x04 */ s16 field_0x4; + /* 0x06 */ aramCmapSalvagePnt_t salvagePnt[4]; +}; // Size: 0x26 +STATIC_ASSERT(sizeof(aramCmapDatPnt_t) == 0x26); + +struct aramCmapDatPat_t { + /* 0x00 */ int num; + /* 0x04 */ aramCmapDatPnt_t pnt[]; +}; // Size: 0x4+ + +class aramCmapDat_c { +public: + void init(aramCmapDatPat_t* a_pat) { + if (a_pat != NULL) { + mNum = a_pat->num; + mpPnt = a_pat->pnt; + } else { + JUT_ASSERT(252, FALSE); + } + } + void getAramCmapDatValue() {} + void getCmapDatPnt(int) {} + aramCmapDatPnt_t* getCmapDatPnt3(int i_gridIdx) { + aramCmapDatPnt_t* pnt = mpPnt; + int i; + for (i = 0; i < mNum; i++) { + if (pnt->gridNo == i_gridIdx + 1) { + break; + } + pnt++; + } + if (i < mNum) { + return pnt; + } + return NULL; + } + aramCmapDatPnt_t* getCmapDatPnt4(int i_cmapIdx) { + aramCmapDatPnt_t* pnt = mpPnt; + int i; + for (i = 0; i < mNum; i++) { + if (pnt->cmapNo == i_cmapIdx + 1) { + break; + } + pnt++; + } + if (i < mNum) { + return pnt; + } + return NULL; + } + +private: + /* 0x00 */ int mNum; + /* 0x04 */ aramCmapDatPnt_t* mpPnt; +}; // Size: 0x8 class dMenu_FmapSv_c { public: dMenu_FmapSv_c() { - active = 0; - cmapSelNo = 0; + dispMode = 0; + fmapZoom = 0; + zoomGridX = -10; + zoomGridY = -10; curX = -10; curY = -10; curWX = -10; curWY = -10; + active = 0; + cmapSelNo = -1; curHX = -10; curHY = -10; - dispMode = 0; - fmapZoom = -1; - zoomGridX = -10; - zoomGridY = -10; } ~dMenu_FmapSv_c() {} - s8 getActive() { return active; } - void setActive(s8 val) { active = val; } - s8 getCmapSelNo() { return cmapSelNo; } - void setCmapSelNo(s8 val) { cmapSelNo = val; } + u8 getDispMode() { return dispMode; } + void setDispMode(u8 val) { dispMode = val; } + u8 getFmapZoom() { return fmapZoom; } + void setFmapZoom(u8 val) { fmapZoom = val; } + s8 getZoomGridX() { return zoomGridX; } + void setZoomGridX(s8 val) { zoomGridX = val; } + s8 getZoomGridY() { return zoomGridY; } + void setZoomGridY(s8 val) { zoomGridY = val; } s8 getCurX() { return curX; } void setCurX(s8 val) { curX = val; } s8 getCurY() { return curY; } @@ -34,32 +107,28 @@ public: void setCurWX(s8 val) { curWX = val; } s8 getCurWY() { return curWY; } void setCurWY(s8 val) { curWY = val; } + u8 getActive() { return active; } + void setActive(u8 val) { active = val; } + u8 getCmapSelNo() { return cmapSelNo; } + void setCmapSelNo(s8 val) { cmapSelNo = val; } s8 getCurHX() { return curHX; } void setCurHX(s8 val) { curHX = val; } s8 getCurHY() { return curHY; } void setCurHY(s8 val) { curHY = val; } - s8 getDispMode() { return dispMode; } - void setDispMode(s8 val) { dispMode = val; } - s8 getFmapZoom() { return fmapZoom; } - void setFmapZoom(s8 val) { fmapZoom = val; } - s8 getZoomGridX() { return zoomGridX; } - void setZoomGridX(s8 val) { zoomGridX = val; } - s8 getZoomGridY() { return zoomGridY; } - void setZoomGridY(s8 val) { zoomGridY = val; } public: - /* 0x0 */ s8 active; - /* 0x1 */ s8 cmapSelNo; - /* 0x2 */ s8 curX; - /* 0x3 */ s8 curY; - /* 0x4 */ s8 curWX; - /* 0x5 */ s8 curWY; - /* 0x6 */ s8 curHX; - /* 0x7 */ s8 curHY; - /* 0x8 */ s8 dispMode; - /* 0x9 */ s8 fmapZoom; - /* 0xA */ s8 zoomGridX; - /* 0xB */ s8 zoomGridY; + /* 0x0 */ u8 dispMode; + /* 0x1 */ u8 fmapZoom; + /* 0x2 */ s8 zoomGridX; + /* 0x3 */ s8 zoomGridY; + /* 0x4 */ s8 curX; + /* 0x5 */ s8 curY; + /* 0x6 */ s8 curWX; + /* 0x7 */ s8 curWY; + /* 0x8 */ u8 active; + /* 0x9 */ s8 cmapSelNo; + /* 0xA */ s8 curHX; + /* 0xB */ s8 curHY; }; -#endif //D_MENU_FMAP_SV_H +#endif /* D_MENU_FMAPSV_H */ diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp index 8870a8322..dd2f97db4 100644 --- a/src/d/d_menu_fmap.cpp +++ b/src/d/d_menu_fmap.cpp @@ -628,20 +628,20 @@ void dMenu_Fmap_c::initialize() { mSalvItmTimer = 0; mSalvItmChanging = false; - if (getCtCurWX() < -3 || getCtCurWY() < -3) { - setCtCurWX(mGridX); - setCtCurWY(mGridY); - } - if (getCtCurX() < -3 || getCtCurY() < -3) { - setCtCurX(getCtCurWX()); - setCtCurY(getCtCurWY()); + setCtCurX(mGridX); + setCtCurY(mGridY); } - switch (getCtActive()) { + if (getCtZoomGridX() < -3 || getCtZoomGridY() < -3) { + setCtZoomGridX(getCtCurX()); + setCtZoomGridY(getCtCurY()); + } + + switch (getCtDispMode()) { case 0: - setCtZoomGridX(getCtCurWX()); - setCtZoomGridY(getCtCurWY()); + setCtCurHX(getCtCurX()); + setCtCurHY(getCtCurY()); mMainProcIdx = 0; mZoomLocked = false; break; @@ -655,7 +655,7 @@ void dMenu_Fmap_c::initialize() { paneTransBase(0, g_mfHIO.field_0x34, g_mfHIO.field_0x36, 0.0f, 0, 0); mWarpScrollGuard = false; mWarpAnimActive = false; - setCtCmapSelNo(0); + setCtFmapZoom(0); selGridMaskAlphaCtrl(0, g_mfHIO.field_0x2E, 0, 0); fmapMaskAlphaCtrl(0, g_mfHIO.field_0x2E, 0, 0); paneTranceZoomMap(0, g_mfHIO.field_0x2E, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0, 0); @@ -750,15 +750,15 @@ void dMenu_Fmap_c::calcGetMapCount() { /* 801B1374-801B14C4 .text dispEndSalvageMark__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::dispEndSalvageMark() { for (int i = 0; i < 49; i++) { - aramCmapDatPnt_t* dat = getGridNumToCmapDatPnt(i); - if (!dComIfGs_isCompleteCollectMap(dat->collectMapNo)) { + aramCmapDatPnt_t* pnt = getGridNumToCmapDatPnt(i); + if (!dComIfGs_isCompleteCollectMap(pnt->collectMapNo)) { mStxxPanes[i].pane->hide(); } else { fopMsgM_pane_class pane; fopMsgM_setPaneData(&pane, fmapDl.scrn, hist[i]); - f32 y = dat->salvagePnt[field_0x5180].y; - f32 x = dat->salvagePnt[field_0x5180].x; + f32 y = pnt->salvagePnt[field_0x5180].y; + f32 x = pnt->salvagePnt[field_0x5180].x; mStxxPanes[i].mPosCenterOrig.x = pane.mPosCenterOrig.x + x * 56.0f / 100000.0f; mStxxPanes[i].mPosCenterOrig.y = pane.mPosCenterOrig.y + y * 56.0f / 100000.0f; mStxxPanes[i].mPosCenter.x = mStxxPanes[i].mPosCenterOrig.x; @@ -940,8 +940,8 @@ void dMenu_Fmap_c::selCursorHide() { /* 801B1B80-801B1CF0 .text selCursorMove__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::selCursorMove() { - f32 x = getCtCurWX() * 56.0f; - f32 y = getCtCurWY() * 56.0f; + f32 x = getCtCurX() * 56.0f; + f32 y = getCtCurY() * 56.0f; for (int i = 0; i < 8; i++) { fopMsgM_paneTrans(&mKk1xPanes[i], x, y); } @@ -960,8 +960,8 @@ void dMenu_Fmap_c::islandNameChange() { /* 801B1D48-801B1FCC .text changeIslandName__12dMenu_Fmap_cFUc */ void dMenu_Fmap_c::changeIslandName(u8 i_no) { - s8 wy = getCtCurWY(); - s8 wx = getCtCurWX(); + s8 wy = getCtCurY(); + s8 wx = getCtCurX(); int grid = wx + (wy + 3) * 7 + 3; if (!dComIfGs_isSaveArriveGrid(grid)) { @@ -1048,13 +1048,13 @@ void dMenu_Fmap_c::SalvItmDispChgFast() { /* 801B2274-801B23EC .text changeSalvageGetItem__12dMenu_Fmap_cFUc */ void dMenu_Fmap_c::changeSalvageGetItem(u8 i_no) { - s8 wy = getCtCurWY(); - s8 wx = getCtCurWX(); - aramCmapDatPnt_t* grid = getGridNumToCmapDatPnt(wx + (wy + 3) * 7 + 3); + s8 wy = getCtCurY(); + s8 wx = getCtCurX(); + aramCmapDatPnt_t* pnt = getGridNumToCmapDatPnt(wx + (wy + 3) * 7 + 3); - if (dComIfGs_isCompleteCollectMap(grid->collectMapNo)) { + if (dComIfGs_isCompleteCollectMap(pnt->collectMapNo)) { mFullMapMode = true; - ((J2DPicture*)mGtixPanes[i_no].pane)->changeTexture(salvItemex[grid->field_0x3], 0); + ((J2DPicture*)mGtixPanes[i_no].pane)->changeTexture(salvItemex[pnt->mapType], 0); } else { mFullMapMode = false; fopMsgM_setNowAlpha(&mGtixPanes[i_no], 0.0f); @@ -1267,29 +1267,12 @@ void dMenu_Fmap_c::aramCmapDatRead() { /* 801B36F0-801B3760 .text initCmapDatPnt__12dMenu_Fmap_cFP16aramCmapDatPat_t */ void dMenu_Fmap_c::initCmapDatPnt(aramCmapDatPat_t* a_pat) { - if (a_pat != NULL) { - mCmapDatPnt.m_0x0 = a_pat->m_0x0; - mCmapDatPnt.m_0x4 = (aramCmapDatPnt_t*)&a_pat->m_0x4; - } else { - JUT_ASSERT(252, FALSE); - } + mCmapDatPnt.init(a_pat); } /* 801B3760-801B37B0 .text getGridNumToCmapDatPnt__12dMenu_Fmap_cFi */ -aramCmapDatPnt_t* dMenu_Fmap_c::getGridNumToCmapDatPnt(int i_param) { - int i; - aramCmapDatPnt_t* pat = mCmapDatPnt.m_0x4; - int num; - for (i = 0, num = mCmapDatPnt.m_0x0; i < num; i++) { - if (pat->gridNo == i_param + 1) { - break; - } - pat++; - } - if (i < num) { - return pat; - } - return NULL; +aramCmapDatPnt_t* dMenu_Fmap_c::getGridNumToCmapDatPnt(int i_gridIdx) { + return mCmapDatPnt.getCmapDatPnt3(i_gridIdx); } /* 801B37B0-801B392C .text setDispIslandPos__12dMenu_Fmap_cFScSc */ @@ -1526,7 +1509,8 @@ void dMenu_Fmap_c::FmapProcMain() { /* 801B5034-801B5878 .text SelectGrid__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::SelectGrid() { - if (dComIfGs_isSaveArriveGrid(fmapSv->curWX + (fmapSv->curWY + 3) * 7 + 3)) { + /* Nonmatching */ + if (dComIfGs_isSaveArriveGrid(fmapSv->curX + (fmapSv->curY + 3) * 7 + 3)) { mButtonIconMode = FMAP_BTN_ICON_LOCKED; } else { mButtonIconMode = FMAP_BTN_ICON_SECTOR; @@ -1561,7 +1545,7 @@ void dMenu_Fmap_c::ZoomGridLv1Proc() { if (mButtonIconMode == 1) { mDoAud_seStart(JA_SE_CHART_ZOOM_IN); mButtonIconMode = FMAP_BTN_ICON_DETAIL; - setCtCmapSelNo(0x2); + setCtFmapZoom(0x2); zoom200x200Init(); f32 clgOrigX = mClgPane.mSizeOrig.x; paneTranceZoom2Map(0, g_mfHIO.field_0x2F, field_0x5134 * (clgOrigX / 100000.0f), @@ -1594,7 +1578,7 @@ void dMenu_Fmap_c::ZoomGridLv1Proc() { /* 801B5F80-801B6084 .text zoom200x200Init__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::zoom200x200Init() { - zoomMapAlphaSet(getCtCurWX(), getCtCurWY(), &mR01gPane, 0x1E); + zoomMapAlphaSet(getCtCurX(), getCtCurY(), &mR01gPane, 0x1E); zoomCursorInit(); setDspHugeMapLink(); checkDspHugeMapLink(); @@ -1619,7 +1603,7 @@ void dMenu_Fmap_c::ZoomGridLv1Out() { mSmskPane.pane->hide(); mClbPane.pane->hide(); mButtonIconMode = FMAP_BTN_ICON_WORLD; - setCtCmapSelNo(0x0); + setCtFmapZoom(0x0); mFmapProcIdx = 0; } } @@ -1671,7 +1655,7 @@ void dMenu_Fmap_c::move_normal() { void dMenu_Fmap_c::FmapProc() { if (CPad_CHECK_TRIG_Y(0)) { mDoAud_seStart(JA_SE_CHART_TO_COMPARE); - setCtActive(1); + setCtDispMode(1); mMainProcIdx = 1; mHikakuProcIdx = 0; } else { @@ -1820,11 +1804,19 @@ bool dMenu_Fmap_c::_open_warpMode() { /* 801B79E8-801B7CD0 .text init_warpMode__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::init_warpMode() { + /* Nonmatching */ mDoAud_seStart(JA_SE_SHIPPU_CHART_OPEN); mFmapMode = FMAP_MODE_WARP; mButtonIconMode = FMAP_BTN_ICON_WARP; areaTextChangeAnimeInit(); + fopMsgM_cposMove(&mWt0Pane); + + if (getCtCurWX() < -3 || getCtCurWY() < -3) { + setCtCurWX(-2); + setCtCurWY(-2); + } + mFrameCounter = 0; setDspWarpBackCornerColor(0.0); warpAreaAnime0(); @@ -1832,8 +1824,8 @@ void dMenu_Fmap_c::init_warpMode() { /* 801B7CD0-801B7E30 .text selCursorMoveWarp__12dMenu_Fmap_cFv */ void dMenu_Fmap_c::selCursorMoveWarp() { - f32 transX = getCtCurHX() * 56.0f; - f32 transY = getCtCurHY() * 56.0f; + f32 transX = getCtCurWX() * 56.0f; + f32 transY = getCtCurWY() * 56.0f; for (int i = 0; i < 8; i++) { fopMsgM_paneTrans(&mKk1xPanes[i], transX, transY); } @@ -1955,7 +1947,7 @@ void dMenu_Fmap_c::wrapSelWarp() { if (yskWarp == TRUE && nokWarp == TRUE) { mFrameTimer = 0; - const cursorTable_t* table = getWarpAreaTablePtr(getCtCurHX(), getCtCurHY()); + const cursorTable_t* table = getWarpAreaTablePtr(getCtCurWX(), getCtCurWY()); int warpAreaNo = getWarpAreaNo(table); if (dComIfGp_getShipActor() != NULL) { diff --git a/src/d/d_menu_fmap2.cpp b/src/d/d_menu_fmap2.cpp index aaa1b041c..89bc86346 100644 --- a/src/d/d_menu_fmap2.cpp +++ b/src/d/d_menu_fmap2.cpp @@ -5,6 +5,7 @@ #include "d/dolzel.h" // IWYU pragma: keep #include "d/d_menu_fmap2.h" +#include "d/d_menu_fmap.h" /* 801BB3E4-801BB5B8 .text __ct__10dMf2_HIO_cFv */ dMf2_HIO_c::dMf2_HIO_c() { @@ -512,8 +513,8 @@ void dMenu_Fmap2_c::getNowCmapNextNum(signed char, int) { } /* 801C7364-801C73B0 .text getCmapDatPnt4__13dMenu_Fmap2_cFi */ -aramCmapDatPat_t* dMenu_Fmap2_c::getCmapDatPnt4(int) { - /* Nonmatching */ +aramCmapDatPnt_t* dMenu_Fmap2_c::getCmapDatPnt4(int i_cmapIdx) { + return mpFmapDatPnt->getCmapDatPnt4(i_cmapIdx); } /* 801C73B0-801C7474 .text readPaneCmapTexture__13dMenu_Fmap2_cFPC7ResTIMGi */ diff --git a/src/d/d_menu_window.cpp b/src/d/d_menu_window.cpp index 694db302f..3036a7bce 100644 --- a/src/d/d_menu_window.cpp +++ b/src/d/d_menu_window.cpp @@ -14,6 +14,7 @@ #include "d/d_menu_dmap.h" #include "d/d_menu_fmap.h" #include "d/d_menu_fmap_sv.h" +// #include "d/d_menu_fmapSv.h" #include "d/d_menu_item.h" #include "d/d_menu_save.h" #include "d/d_meter.h" @@ -1539,18 +1540,18 @@ static cPhs_State dMs_Create(msg_class* i_this) { dMenu_setMenuStatus(MENU_STATUS_ITEM); - dMv_CIO_c.active = 0; - dMv_CIO_c.cmapSelNo = 0; - dMv_CIO_c.curX = -10; - dMv_CIO_c.curY = -10; - dMv_CIO_c.curWX = -10; - dMv_CIO_c.curWY = -10; - dMv_CIO_c.curHX = -10; - dMv_CIO_c.curHY = -10; - dMv_CIO_c.dispMode = 0; - dMv_CIO_c.fmapZoom = -1; - dMv_CIO_c.zoomGridX = -10; - dMv_CIO_c.zoomGridY = -10; + dMv_CIO_c.setDispMode(0); + dMv_CIO_c.setFmapZoom(0); + dMv_CIO_c.setZoomGridX(-10); + dMv_CIO_c.setZoomGridY(-10); + dMv_CIO_c.setCurX(-10); + dMv_CIO_c.setCurY(-10); + dMv_CIO_c.setCurWX(-10); + dMv_CIO_c.setCurWY(-10); + dMv_CIO_c.setActive(0); + dMv_CIO_c.setCmapSelNo(-1); + dMv_CIO_c.setCurHX(-10); + dMv_CIO_c.setCurHY(-10); fopMsgM_setStageLayer(i_Ms);