summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2026-08-23 22:47:08 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2026-08-23 22:47:08 -0400
commita4e1d2bd4bdf431027367d6067bf4e52bb09f5b9 (patch)
tree88d45d0b1e3fb9b3f0e2995794d5076123f4a458
parent19bf9bdc7723790812a3493c340a8a3325a5e5b5 (diff)
fmap and fmap_sv: Fix several mixups
Add missing aramCmapDat_c class (runtime version of the separate aramCmapDatPat_t struct) to fix inline signature. Fix inlines and fields for dMenu_FmapSv_c being mixed up.
-rw-r--r--include/d/d_menu_fmap.h110
-rw-r--r--include/d/d_menu_fmap2.h9
-rw-r--r--include/d/d_menu_fmap_sv.h137
-rw-r--r--src/d/d_menu_fmap.cpp94
-rw-r--r--src/d/d_menu_fmap2.cpp5
-rw-r--r--src/d/d_menu_window.cpp25
6 files changed, 206 insertions, 174 deletions
diff --git a/include/d/d_menu_fmap.h b/include/d/d_menu_fmap.h
index a89a17f6..0dc70e89 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;
+ fmapSv->fmapZoom = val;
}
- s8 getCtCurWX() {
+ s8 getCtCurX() {
JUT_ASSERT(489, fmapSv != NULL);
- return fmapSv->curWX;
+ return fmapSv->curX;
}
- void setCtCurWX(s8 val) {
+ void setCtCurX(s8 val) {
JUT_ASSERT(494, fmapSv != NULL);
- fmapSv->curWX = val;
+ fmapSv->curX = val;
}
- s8 getCtCurWY() {
+ s8 getCtCurY() {
JUT_ASSERT(500, fmapSv != NULL);
- return fmapSv->curWY;
+ return fmapSv->curY;
}
- void setCtCurWY(s8 val) {
+ void setCtCurY(s8 val) {
JUT_ASSERT(505, fmapSv != NULL);
- fmapSv->curWY = val;
+ fmapSv->curY = val;
}
- s8 getCtCurHX() {
+ s8 getCtCurWX() {
JUT_ASSERT(511, fmapSv != NULL);
- return fmapSv->curHX;
+ return fmapSv->curWX;
}
- void setCtCurHX(s8 val) {
+ void setCtCurWX(s8 val) {
JUT_ASSERT(516, fmapSv != NULL);
- fmapSv->curHX = val;
+ fmapSv->curWX = val;
}
- s8 getCtCurHY() {
+ s8 getCtCurWY() {
JUT_ASSERT(522, fmapSv != NULL);
- return fmapSv->curHY;
+ return fmapSv->curWY;
}
- void setCtCurHY(s8 val) {
+ void setCtCurWY(s8 val) {
JUT_ASSERT(527, fmapSv != NULL);
- fmapSv->curHY = val;
- }
- s8 getCtCurX() {
- JUT_ASSERT(533, fmapSv != NULL);
- return fmapSv->curX;
- }
- void setCtCurX(s8 val) {
- JUT_ASSERT(538, fmapSv != NULL);
- fmapSv->curX = val;
- }
- s8 getCtCurY() {
- JUT_ASSERT(543, fmapSv != NULL);
- return fmapSv->curY;
- }
- void setCtCurY(s8 val) {
- JUT_ASSERT(548, fmapSv != NULL);
- fmapSv->curY = val;
+ 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 b351bf06..27eeed46 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 dfffba20..3e51b1ea 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 8870a832..dd2f97db 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(mGridX);
+ setCtCurY(mGridY);
}
- if (getCtCurX() < -3 || getCtCurY() < -3) {
- setCtCurX(getCtCurWX());
- setCtCurY(getCtCurWY());
+ if (getCtZoomGridX() < -3 || getCtZoomGridY() < -3) {
+ setCtZoomGridX(getCtCurX());
+ setCtZoomGridY(getCtCurY());
}
- switch (getCtActive()) {
+ 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 aaa1b041..89bc8634 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 694db302..3036a7bc 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);