d_menu_save mostly done (#1103)

This commit is contained in:
TakaRikka
2026-07-05 10:34:40 -07:00
committed by GitHub
parent a7a5b5d636
commit d3c642c5d3
12 changed files with 3136 additions and 1739 deletions
+3 -2
View File
@@ -904,6 +904,7 @@ void dComIfGs_setGameStartStage();
void dComIfGs_gameStart();
void dComIfGs_copyPlayerRecollectionData();
u8 dComIfGs_checkGetItem(u8);
void dComIfGs_exchangePlayerRecollectionData();
inline void dComIfGs_init() {
g_dComIfG_gameInfo.save.init();
@@ -1471,8 +1472,8 @@ inline void dComIfGs_setTurnRestart(const cXyz& i_pos, s16 i_angle, s8 i_roomNo,
}
#endif
inline void dComIfGs_setMemoryToCard(u8* i_cardPtr, int i_dataNum) {
g_dComIfG_gameInfo.save.memory_to_card((char*)i_cardPtr, i_dataNum);
inline int dComIfGs_setMemoryToCard(u8* i_cardPtr, int i_dataNum) {
return g_dComIfG_gameInfo.save.memory_to_card((char*)i_cardPtr, i_dataNum);
}
inline void dComIfGs_setInitDataToCard(u8* i_cardPtr, int i_dataNum) {
+6 -6
View File
@@ -69,10 +69,10 @@ public:
class dFile_error_c {
public:
void getStatus() {}
void getYesNo() {}
u8 getStatus() { return mStatus; }
u8 getYesNo() { return mYesNo ^ 1; }
void setDbgErrMessage(char*, int) {}
void setTimeCountDownMode() {}
void setTimeCountDownMode() { mTimeCountDownMode = 1; }
virtual ~dFile_error_c() {}
void _create();
@@ -117,14 +117,14 @@ public:
/* 0x2ec */ char* mMessage;
/* 0x2f0 */ STControl* stick;
/* 0x2f4 */ u8 mState;
/* 0x2f5 */ u8 m2f5;
/* 0x2f6 */ u8 mSelectedOption;
/* 0x2f5 */ u8 mStatus;
/* 0x2f6 */ u8 mYesNo;
/* 0x2f7 */ u8 m2f7;
/* 0x2f8 */ u8 m2f8;
/* 0x2f9 */ u8 m2f9;
/* 0x2fa */ u8 m2fa;
/* 0x2fb */ u8 m2fb;
/* 0x2fc */ u8 m2fc;
/* 0x2fc */ u8 mTimeCountDownMode;
/* 0x2fd */ u8 m2fd;
/* 0x2fe */ s16 m2fe;
/* 0x300 */ f32 m300;
+159 -51
View File
@@ -2,7 +2,8 @@
#define D_MENU_SAVE_H
#include "d/d_drawlist.h"
#include "dolphin/types.h"
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_hostIO.h"
struct fopMsgM_pane_class;
@@ -10,16 +11,66 @@ class dDlst_MenuSave_c : public dDlst_base_c {
public:
~dDlst_MenuSave_c() {}
void draw();
/* 0x4 */ J2DScreen* Scr;
/* 0x8 */ JUTFont* font;
};
class dFile_error_c;
class STControl;
class dMenu_save_c {
public:
u8* getDataBufPtr() { return mDataBuf; }
u8 getEndStatus() { return mEndStatus; }
u8 getSaveStatus() { return mSaveStatus; }
enum {
PROC_SAVE_QUESTION,
PROC_MEMCARD_CHECK,
PROC_OPEN_SAVE_MENU,
PROC_CLOSE_SAVE_MENU,
PROC_MEMCARD_ERR_MSG_WAIT_KEY,
PROC_MEMCARD_ERR_MSG_WAIT_KEY2,
PROC_MEMCARD_ERR_MSG_WAIT_KEY3,
PROC_MEMCARD_ERR_GO_IPL_SEL,
PROC_MEMCARD_ERR_GO_IPL_SEL2,
PROC_MEMCARD_FORMAT,
PROC_MEMCARD_ERR_MSG_WAIT_FORMAT_SEL,
PROC_MEMCARD_ERR_MSG_WAIT_FORMAT_SEL2,
PROC_MEMCARD_FORMAT_CHECK,
PROC_MEMCARD_MAKE_GAME_FILE_SEL,
PROC_MEMCARD_MAKE_GAME_FILE,
PROC_MEMCARD_MAKE_GAME_FILE_CHECK,
PROC_MEMCARD_DATA_LOAD_WAIT,
PROC_MEMCARD_DATA_LOAT_WAIT2,
PROC_MEMCARD_DATA_SAVE,
PROC_MEMCARD_DATA_SAVE_UP_MENU,
PROC_MEMCARD_DATA_SAVE_SEL,
PROC_MEMCARD_DATA_SAVE_DOWN_MENU,
PROC_MEMCARD_DATA_SAVE_WAIT,
PROC_MSG_WAIT,
PROC_MSG_WAIT2,
PROC_SAVE_END_WAIT,
PROC_SAVE_WAIT,
PROC_CAN_NOT_SAVE,
PROC_CAN_NOT_SAVE2,
PROC_GAME_CONTINUE,
PROC_GAME_CONTINUE2,
PROC_GAME_CONTINUE3,
#if VERSION >= VERSION_JPN
PROC_GAME_CONTINUE4,
#endif
PROC_ENDING_NO_SAVE,
PROC_ENDING_NO_SAVE2,
PROC_ENDING_NO_SAVE3,
PROC_ENDING_DATA_CHECK,
PROC_NO_SAVE,
PROC_NO_SAVE2,
};
u8* getDataBufPtr() { return dataBuf; }
u8 getEndStatus() { return endStatus; }
u8 getSaveStatus() { return saveStatus; }
void setErrorFlag(u8) {}
void setErrorType(u8) {}
void setUseType(u8 useType) { mUseType = useType; }
void setUseType(u8 i_useType) { useType = i_useType; }
virtual ~dMenu_save_c() {}
void _create();
@@ -31,19 +82,19 @@ public:
void _delete();
void initialize();
void openNormal();
void closeNormal();
void openForCollect();
void openForItem();
void closeForCollect();
void closeForItem();
void openForGameover();
void closeForGameover();
void closeForGameover_1();
void closeForGameover_2();
void openForEnding();
void openForEnding2();
void closeForEnding();
BOOL openNormal();
BOOL closeNormal();
BOOL openForCollect();
BOOL openForItem();
BOOL closeForCollect();
BOOL closeForItem();
BOOL openForGameover();
BOOL closeForGameover();
BOOL closeForGameover_1();
BOOL closeForGameover_2();
BOOL openForEnding();
BOOL openForEnding2();
BOOL closeForEnding();
void noSave();
void noSave2();
void saveQuestion();
@@ -84,54 +135,111 @@ public:
void endingNoSave3();
void endingDataCheck();
void saveWait();
void YesNoSelect(int);
void YesNoSelect2(int);
BOOL YesNoSelect(int);
BOOL YesNoSelect2(int);
void CursorAlphaInit();
void CursorMove();
void CursorAnime();
void openSave();
void closeSave();
BOOL openSave();
BOOL closeSave();
void screenSet();
void paneTransInit();
void displayInit();
void initializeEx();
void menuUp();
void menuDown();
void PaneAlphaMsgTxt(s16, u8);
void PaneTranceBase(s16, u8, f32, f32, u8, int);
void PaneScaleAlphaWipe(s16, u8, f32, u8, int);
void PaneAlphaMask(s16, u8, u8, int);
void PaneTranceTitle(s16, u8, f32, f32, u8, int);
void PaneRotate(s16, u8, fopMsgM_pane_class*, f32, f32, f32, u8);
void PaneTranceMenu(s16, u8, fopMsgM_pane_class*, f32, f32, u8, int);
BOOL menuUp();
BOOL menuDown();
BOOL PaneAlphaMsgTxt(s16, u8);
BOOL PaneTranceBase(s16, u8, f32, f32, u8, int);
BOOL PaneScaleAlphaWipe(s16, u8, f32, u8, int);
BOOL PaneAlphaMask(s16, u8, u8, int);
BOOL PaneTranceTitle(s16, u8, f32, f32, u8, int);
BOOL PaneRotate(s16, u8, fopMsgM_pane_class*, f32, f32, f32, u8);
BOOL PaneTranceMenu(s16, u8, fopMsgM_pane_class*, f32, f32, u8, int);
public:
/* 0x0004 */ u8 field_0x0004;
/* 0x0008 */ dDlst_MenuSave_c mDlst;
/* 0x0004 */ JKRArchive* archive;
/* 0x0008 */ dDlst_MenuSave_c MenuSave;
/* 0x0014 */ fopMsgM_pane_class field_0x14[8];
/* 0x01D4 */ fopMsgM_pane_class field_0x1d4;
/* 0x020C */ fopMsgM_pane_class field_0x20c[5];
/* 0x0324 */ fopMsgM_pane_class field_0x324;
/* 0x035C */ fopMsgM_pane_class field_0x35c;
/* 0x0394 */ fopMsgM_pane_class field_0x394;
/* 0x03CC */ fopMsgM_pane_class field_0x3cc;
/* 0x0404 */ fopMsgM_pane_class field_0x404;
/* 0x043C */ fopMsgM_pane_class field_0x43c;
/* 0x0474 */ fopMsgM_pane_class field_0x474;
/* 0x04AC */ fopMsgM_pane_class field_0x4ac;
/* 0x04E4 */ fopMsgM_pane_class field_0x4e4;
#if VERSION == VERSION_PAL
// Not 100% sure where these extra bytes go, but it has to be before field_0x0537.
/* 0x000C */ u8 field_0x000c_pal[0x0038];
/* 0x051C */ fopMsgM_pane_class field_0x51c_pal;
#endif
/* 0x000C */ u8 field_0x000c[0x0524];
/* 0x0530 */ u8 field_0x0530;
/* 0x0531 */ u8 mSaveStatus;
/* 0x0532 */ u8 field_0x0532;
/* 0x0533 */ u8 field_0x0533;
/* 0x0534 */ u8 field_0x0534;
/* 0x0535 */ u8 field_0x0535;
/* 0x0536 */ u8 field_0x0536;
/* 0x0537 */ u8 mUseType;
/* 0x0538 */ u8 mEndStatus;
/* 0x0539 */ u8 field_0x0539[0x053C - 0x0539];
/* 0x053C */ u8 field_0x053c;
/* 0x053D */ u8 field_0x053d;
/* 0x053E */ u8 field_0x053e[0x0554 - 0x053E];
/* 0x0554 */ u8 mDataBuf[0x1650];
/* 0x051C */ char* field_0x51c[2];
/* 0x0524 */ dFile_error_c* dFe_c;
/* 0x0528 */ STControl* stick;
/* 0x052C */ u8 proc;
/* 0x052D */ u8 field_0x52d;
/* 0x052E */ u8 field_0x52e;
/* 0x052F */ u8 field_0x52f;
/* 0x0530 */ u8 field_0x530;
/* 0x0531 */ u8 saveStatus;
/* 0x0532 */ u8 field_0x532;
/* 0x0533 */ u8 field_0x533;
/* 0x0534 */ u8 field_0x534;
/* 0x0535 */ u8 field_0x535;
/* 0x0536 */ u8 field_0x536;
/* 0x0537 */ u8 useType;
/* 0x0538 */ u8 endStatus;
/* 0x0539 */ u8 field_0x539;
/* 0x053A */ u8 field_0x53a;
/* 0x053B */ u8 field_0x53b;
/* 0x053C */ u8 field_0x53c;
/* 0x053D */ u8 field_0x53d;
/* 0x0540 */ int field_0x540;
/* 0x0544 */ s16 field_0x544;
/* 0x0546 */ u8 field_0x546[0x0554 - 0x0546];
/* 0x0554 */ u8 dataBuf[5712];
}; // Size: 0x1BA4
class dMs_HIO_c {
class dMs_HIO_c : public JORReflexible {
public:
dMs_HIO_c();
virtual ~dMs_HIO_c() {}
/* 0x04 */ s8 id;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u8 field_0x6;
/* 0x07 */ u8 field_0x7;
/* 0x08 */ u8 field_0x8;
/* 0x09 */ u8 field_0x9;
/* 0x0A */ u8 field_0xa;
/* 0x0B */ u8 field_0xb;
/* 0x0C */ s16 field_0xc;
/* 0x0E */ s16 field_0xe;
/* 0x10 */ u8 field_0x10;
/* 0x11 */ u8 field_0x11;
/* 0x12 */ u8 field_0x12;
/* 0x13 */ u8 field_0x13;
/* 0x14 */ s16 field_0x14;
/* 0x16 */ s16 field_0x16;
/* 0x18 */ u8 field_0x18;
/* 0x19 */ u8 field_0x19;
/* 0x1A */ u8 field_0x1a;
/* 0x1B */ u8 field_0x1b;
/* 0x1C */ u8 field_0x1c;
/* 0x1E */ s16 field_0x1e;
/* 0x20 */ u8 field_0x20;
/* 0x21 */ u8 field_0x21;
/* 0x22 */ u8 field_0x22;
/* 0x23 */ u8 field_0x23;
/* 0x24 */ u8 field_0x24;
/* 0x25 */ u8 field_0x25;
/* 0x26 */ s16 field_0x26;
/* 0x28 */ u8 field_0x28;
/* 0x29 */ u8 field_0x29;
/* 0x2A */ u8 field_0x2a;
/* 0x2C */ s16 field_0x2c;
/* 0x2E */ u8 field_0x2e;
};
+2 -2
View File
@@ -977,8 +977,8 @@ public:
/* 0x1158 */ dSv_event_c mTmp;
/* 0x1258 */ dSv_turnRestart_c mTurnRestart;
/* 0x1290 */ u8 mDataNum;
/* 0x1291 */ u8 mNoFile;
/* 0x1292 */ u8 mNewFile;
/* 0x1291 */ u8 mNewFile;
/* 0x1292 */ u8 mNoFile;
/* 0x1298 */ u64 mMemCardCheckID;
}; // Size: 0x12A0