demo d_file_error OK, fmap/fmap2 work, misc (#1208)

* d_file_error OK, use J2DPane inlines everywhere

* d_menu_fmap demo work

* fmap and fmap2 work

* fix demo regression with ternary fakematch

* inline cleanup, f_pc_profile OK for demo

* fix min/max bss order

* lstair almost for demo
This commit is contained in:
LagoLunatic
2026-09-17 10:05:55 -04:00
committed by GitHub
parent 78f9557306
commit f38b962a58
33 changed files with 486 additions and 429 deletions
+2 -1
View File
@@ -1245,6 +1245,7 @@ inline s32 dComIfGs_getCollectMapNum() {
inline void dComIfGs_onSaveArriveGrid(int i_no) {
g_dComIfG_gameInfo.save.getPlayer().getMap().onSaveArriveGrid(i_no);
}
inline BOOL dComIfGs_isSaveArriveGrid(int i_no) {
return g_dComIfG_gameInfo.save.getPlayer().getMap().isSaveArriveGrid(i_no);
}
@@ -3519,7 +3520,7 @@ inline s32 dComIfGp_event_order(u16 eventType, u16 priority, u16 flag, u16 hind,
return g_dComIfG_gameInfo.play.getEvent()->order(eventType, priority, flag, hind, pActor1, pActor2, eventID, infoIdx);
}
inline s32 dComIfGp_event_orderOld(u16 eventType, u16 priority, u16 flag, u16 hind, void* pActor1, void* pActor2, const char *pEventName) {
inline s32 dComIfGp_event_orderOld(u16 eventType, u16 priority, u16 flag, u16 hind, void* pActor1, void* pActor2, void* pEventName) {
return g_dComIfG_gameInfo.play.getEvent()->orderOld(eventType, priority, flag, hind, pActor1, pActor2, pEventName);
}
+19 -15
View File
@@ -144,8 +144,12 @@ public:
JUT_ASSERT(VERSION_SELECT(558, 558, 569, 569), fmapSv != NULL);
fmapSv->setCurHY(val);
}
void lineInter0to1(f32, f32, f32) {}
void lineInter0to1ForU8(u8, u8, f32) {}
f32 lineInter0to1(f32 a, f32 b, f32 c) {
return a + (b - a) * c;
}
u8 lineInter0to1ForU8(u8 a, u8 b, f32 c) {
return a + (b - a) * c;
}
void setFont(JUTFont* font, JUTFont* rfont) {
mFont = font;
mRFont = rfont;
@@ -306,7 +310,7 @@ public:
bool _open_wallPaper();
int getButtonIconMode();
public:
private:
/* 0x0004 */ u8 padding_0x4[0x18 - 0x4];
/* 0x0018 */ ResTIMG * mChkPntTxt_p;
/* 0x001C */ dDlst_FMAP_c fmapDl;
@@ -347,7 +351,7 @@ public:
/* 0x34CC */ fopMsgM_pane_class mFmnPanes[15];
/* 0x3814 */ fopMsgM_pane_class mClgPane;
/* 0x384C */ fopMsgM_pane_class mSc2xPanes[7];
/* 0x39D4 */ fopMsgM_pane_class mR0xPanes[11];
/* 0x39D4 */ fopMsgM_pane_class mR0xPanes[DEMO_SELECT(10, 11)];
/* 0x3C3C */ fopMsgM_pane_class mStxxPanes[49];
/* 0x46F4 */ fopMsgM_pane_class mCk1xPanes[3];
/* 0x479C */ fopMsgM_pane_class mCk2xPanes[3];
@@ -377,7 +381,7 @@ public:
/* 0x4F44 */ fopMsgM_pane_class mGsPanes[7];
#endif
#if VERSION == VERSION_DEMO
u8 pad [0x340 + 8];
u8 pad [0x340 + 8 + 0x38];
#endif
/* 0x50CC */ STControl* stick;
/* 0x50D0 */ JUTFont* mFont;
@@ -435,8 +439,8 @@ public:
/* 0x517A */ u8 mFishmanTimer3;
/* 0x517B */ u8 mCheckMarkTimer;
/* 0x517C */ u8 mCheckMarkToggle;
/* 0x517D */ u8 field_0x517D;
/* 0x517E */ u8 field_0x517E;
/* 0x517D */ u8 mKorokMarkTimer;
/* 0x517E */ u8 mKorokMarkToggle;
/* 0x517F */ bool mFishmanActive;
/* 0x5180 */ u8 mSalvagePntIdx;
/* 0x5181 */ u8 mButtonIconMode;
@@ -448,11 +452,11 @@ public:
/* 0x5187 */ u8 padding_0x5187[0x518C-0x5187];
/* 0x518C */ char* mpKtx1String;
/* 0x5190 */ char* mpKtx2String;
/* 0x5194 */ JUtility::TColor mCk1Color;
/* 0x5194 */ JUtility::TColor mCk1Color1;
/* 0x5198 */ JUtility::TColor mCk1Color2;
/* 0x519C */ JUtility::TColor mKr0Color;
/* 0x519C */ JUtility::TColor mKr0Color1;
/* 0x51A0 */ JUtility::TColor mKr0Color2;
/* 0x51A4 */ JUtility::TColor mYs01Color;
/* 0x51A4 */ JUtility::TColor mYs01Color1;
/* 0x51A8 */ JUtility::TColor mYs01Color2;
#if VERSION > VERSION_JPN
/* 0x51AC */ bool mMoonAlphaActive;
@@ -543,12 +547,12 @@ public:
/* 0x0E0 */ u8 mCheckMarkAnimFrame;
/* 0x0E1 */ GXColor mCheckMarkWhite;
/* 0x0E5 */ GXColor mCheckMarkBlack;
/* 0x0E9 */ u8 field_0xE9;
/* 0x0EA */ GXColor field_0xEA;
/* 0x0EE */ GXColor field_0xEE;
/* 0x0E9 */ u8 mKorokMarkAnimFrame;
/* 0x0EA */ GXColor mKorokMarkAnimWhite;
/* 0x0EE */ GXColor mKorokMarkAnimBlack;
/* 0x0F2 */ u8 field_0xF2;
/* 0x0F3 */ GXColor mKorokWhite;
/* 0x0F7 */ GXColor mKorokBlack;
/* 0x0F3 */ GXColor mKorokMarkWhite;
/* 0x0F7 */ GXColor mKorokMarkBlack;
/* 0x0FB */ u8 field_0xFB;
/* 0x0FC */ GXColor mAreaTxtColor;
/* 0x100 */ GXColor mAreaTxtColorMain;
+14 -12
View File
@@ -1,8 +1,11 @@
#ifndef D_MENU_FMAP2_H
#define D_MENU_FMAP2_H
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "d/d_drawlist.h"
#include "d/d_menu_fmapSv.h"
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_hostIO.h"
struct fopMsgM_pane_class;
class J2DScreen;
@@ -10,6 +13,7 @@ class JUTFont;
struct ResTIMG;
class STControl;
class dDlst_2DOutFont_c;
class mDoDvdThd_mountArchive_c;
class dDlst_FMAP2GS_c : public dDlst_base_c {
public:
@@ -35,7 +39,7 @@ public:
void getCmapDatValue() {}
void lineInter0to1ForU8(u8, u8, f32) {}
void setAramCmapDat(aramCmapDat_c* i_ptr) { mpFmapDatPnt = i_ptr; }
void setSvPtr(dMenu_FmapSv_c*) {}
void setSvPtr(dMenu_FmapSv_c* i_ptr) { fmapSv = i_ptr; }
void _create();
void screenSet();
@@ -203,9 +207,9 @@ public:
fmapSv->setCmapSelNo(no);
}
public:
/* 0x0004 */ void* mChkPntTxt_p;
/* 0x0008 */ void* mCmapTxtMain_p[2];
private:
/* 0x0004 */ ResTIMG* mChkPntTxt_p;
/* 0x0008 */ ResTIMG* mCmapTxtMain_p[2];
/* 0x0010 */ dMenu_FmapSv_c* fmapSv;
/* 0x0014 */ u8 padding_0x14[0x18 - 0x14];
/* 0x0018 */ mDoDvdThd_mountArchive_c* field_0x18;
@@ -218,10 +222,8 @@ public:
/* 0x003C */ dDlst_2DOutFont_c* outFont[2];
/* 0x0044 */ dDlst_2DOutFont_c* outFontS[2];
/* 0x004C */ fopMsgM_pane_class mClPane;
/* 0x0084 */ fopMsgM_pane_class mFc0xPanes[4];
/* 0x0164 */ fopMsgM_pane_class mFc1xPanes[4];
/* 0x0244 */ fopMsgM_pane_class mCc0xPanes[4];
/* 0x0324 */ fopMsgM_pane_class mCc1xPanes[4];
/* 0x0084 */ fopMsgM_pane_class mFcxxPanes[8];
/* 0x0244 */ fopMsgM_pane_class mCcxxPanes[8];
/* 0x0404 */ fopMsgM_pane_class mKdmPane;
/* 0x043c */ fopMsgM_pane_class field_0x43c[5];
/* 0x0554 */ fopMsgM_pane_class field_0x554[17];
@@ -437,10 +439,8 @@ public:
/* 0x2824 */ JUtility::TColor color_0x2824;
/* 0x2828 */ JUtility::TColor color_0x2828;
/* 0x282C */ JUtility::TColor color_0x282C;
/* 0x2830 */ f32 field_0x2830;
/* 0x2834 */ f32 field_0x2834;
/* 0x2838 */ f32 field_0x2838;
/* 0x283C */ f32 field_0x283c;
/* 0x2830 */ J2DTextBox::TFontSize field_0x2830;
/* 0x2838 */ J2DTextBox::TFontSize field_0x2838;
/* 0x2840 */ f32 field_0x2840;
/* 0x2844 */ f32 field_0x2844;
/* 0x2848 */ u16 field_0x2848[2];
@@ -460,6 +460,8 @@ public:
dMf2_HIO_c();
virtual ~dMf2_HIO_c() {}
void genMessage(JORMContext* ctx) { UNUSED(ctx); }
/* 0x04 */ s8 mNo;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u8 field_0x6;
+12 -6
View File
@@ -39,7 +39,7 @@ public:
mNum = a_pat->num;
mpPnt = a_pat->pnt;
} else {
JUT_ASSERT(252, FALSE);
JUT_ASSERT(DEMO_SELECT(246, 252), FALSE);
}
}
void getAramCmapDatValue() {}
@@ -53,10 +53,14 @@ public:
}
pnt++;
}
if (i < mNum) {
return pnt;
}
return NULL;
// if (i < mNum) {
// return pnt;
// } else {
// pnt = NULL;
// }
// return pnt;
// Fakematch: Ternary is needed to match getGridNumToCmapDatPnt for demo, but doesn't match debug map size
return i < mNum ? pnt : NULL;
}
aramCmapDatPnt_t* getCmapDatPnt4(int i_cmapIdx) {
aramCmapDatPnt_t* pnt = mpPnt;
@@ -69,8 +73,10 @@ public:
}
if (i < mNum) {
return pnt;
} else {
pnt = NULL;
}
return NULL;
return pnt;
}
private: