mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 13:23:27 -04:00
More inlines, use sizeof for memcard structs
This commit is contained in:
@@ -22,16 +22,17 @@ public:
|
||||
|
||||
class dFile_select_c {
|
||||
public:
|
||||
u8 getIconMode() { return mIconMode;}
|
||||
void setIconMode(u8 mode) { mIconMode = mode; }
|
||||
void setSaveDataPtr(u8* dataPtr) { mSaveDataPtr = dataPtr; }
|
||||
void setSavePicDataPtr(u8* dataPtr) { mSavePicDataPtr = dataPtr; }
|
||||
void setUseType(u8 useType) { mUseType = useType; }
|
||||
|
||||
void getErrType() {}
|
||||
void getIconMode() {}
|
||||
void getSelectNum() {}
|
||||
void isDataExtra(u8) {}
|
||||
void isDataNew(u8) {}
|
||||
void isSelectEnd() {}
|
||||
void setIconMode(u8) {}
|
||||
void setSaveDataPtr(u8* dataPtr) { mSaveDataPtr = dataPtr; }
|
||||
void setSavePicDataPtr(u8* dataPtr) { mSavePicDataPtr = dataPtr; }
|
||||
void setUseType(u8 useType) { mUseType = useType; }
|
||||
|
||||
dFile_select_c() {}
|
||||
void _create();
|
||||
@@ -242,7 +243,7 @@ public:
|
||||
/* 0x3930 */ s16 field_0x3930;
|
||||
/* 0x3932 */ s16 field_0x3932;
|
||||
/* 0x3934 */ u8 field_0x3934[0x3936 - 0x3934];
|
||||
/* 0x3936 */ u8 field_0x3936;
|
||||
/* 0x3936 */ u8 mIconMode;
|
||||
/* 0x3938 */ u8* mSaveDataPtr;
|
||||
/* 0x393C */ u8* mSavePicDataPtr;
|
||||
/* 0x3940 */ u8 mUseType;
|
||||
|
||||
+7
-7
@@ -14,10 +14,10 @@ class dDlst_NameIN_c : public dDlst_base_c {
|
||||
|
||||
class dName_c {
|
||||
public:
|
||||
void draw() {}
|
||||
void getInputStrPtr() {}
|
||||
void isInputEnd() {}
|
||||
void setNextNameStr(char*) {}
|
||||
void draw() { _draw(); }
|
||||
int isInputEnd() { return mIsInputEnd; }
|
||||
char* getInputStrPtr() { return mInputStr; }
|
||||
void setNextNameStr(char* i_name) { strcpy(mNextNameStr, i_name); }
|
||||
|
||||
virtual ~dName_c() {}
|
||||
void _create();
|
||||
@@ -68,11 +68,11 @@ public:
|
||||
/* 0x0004 */ u8 field_0x4[0x0008 - 0x0004];
|
||||
/* 0x0008 */ dDlst_NameIN_c field_0x8;
|
||||
/* 0x000C */ u8 field_0xc[0x290B - 0x000C];
|
||||
/* 0x290B */ u8 field_0x290b;
|
||||
/* 0x290B */ u8 mIsInputEnd;
|
||||
/* 0x290C */ u8 field_0x290c[0x2A5C - 0x290C];
|
||||
/* 0x2A5C */ char field_0x2a5c[8];
|
||||
/* 0x2A5C */ char mInputStr[8];
|
||||
/* 0x2A64 */ u8 field_0x2964[0x2AD0 - 0x2A64];
|
||||
/* 0x2AD0 */ char field_0x2ad0[0x2AE8 - 0x2AD0];
|
||||
/* 0x2AD0 */ char mNextNameStr[0x2AE8 - 0x2AD0];
|
||||
};
|
||||
|
||||
#endif /* D_NAME_H */
|
||||
|
||||
+48
-47
@@ -4,6 +4,7 @@
|
||||
#include "d/d_drawlist.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "f_op/f_op_scene.h"
|
||||
#include "m_Do/m_Do_MemCardRWmng.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
class J2DScreen;
|
||||
@@ -122,53 +123,53 @@ public:
|
||||
void NoneDraw();
|
||||
void changeGameScene();
|
||||
|
||||
/* 0x1C4 */ request_of_phase_process_class mPhs;
|
||||
/* 0x1CC */ JKRHeap* heap;
|
||||
/* 0x1D0 */ JKRHeap* oldHeap;
|
||||
/* 0x1D4 */ u8 field_0x1d4[0x29C - 0x1D4];
|
||||
/* 0x29C */ f32 field_0x29c;
|
||||
/* 0x2A0 */ f32 field_0x2a0;
|
||||
/* 0x2A4 */ f32 field_0x2a4;
|
||||
/* 0x2A8 */ f32 field_0x2a8;
|
||||
/* 0x2AC */ Vec field_0x2ac;
|
||||
/* 0x2B8 */ Vec field_0x2b8;
|
||||
/* 0x2C4 */ u8 field_0x2c4[0x2D0 - 0x2C4];
|
||||
/* 0x2D0 */ s16 field_0x2d0;
|
||||
/* 0x2D4 */ Mtx44 field_0x2d4;
|
||||
/* 0x314 */ Mtx field_0x314;
|
||||
/* 0x344 */ Mtx field_0x344;
|
||||
/* 0x374 */ Mtx field_0x374;
|
||||
/* 0x3A4 */ u8 field_0x3a4[0x3B4 - 0x3A4];
|
||||
/* 0x3B4 */ Mtx field_0x3b4;
|
||||
/* 0x3E4 */ u8 field_0x3e4[0x40C - 0x3E4];
|
||||
/* 0x40C */ JKRMemArchive* mArchive;
|
||||
/* 0x410 */ mDoDvdThd_toMainRam_c* field_0x410;
|
||||
/* 0x414 */ dDlst_BTICN_c btnIcon;
|
||||
/* 0x41C */ dDlst_FLSEL_CLOTH_c cloth;
|
||||
/* 0x424 */ dName_c* dNm_c;
|
||||
/* 0x428 */ dFile_select_c* dFs_c;
|
||||
/* 0x42C */ dFile_error_c* dFe_c;
|
||||
/* 0x430 */ dMenu_save_c* dMs_c;
|
||||
/* 0x434 */ u8 field_0x434[0x43C - 0x434];
|
||||
/* 0x43C */ fopMsgM_pane_class field_0x43c;
|
||||
/* 0x474 */ fopMsgM_pane_class field_0x474;
|
||||
/* 0x4AC */ fopMsgM_pane_class field_0x4ac;
|
||||
/* 0x4E4 */ fopMsgM_pane_class field_0x4e4;
|
||||
/* 0x51C */ fopMsgM_pane_class field_0x51c;
|
||||
/* 0x554 */ u8 mMainProc;
|
||||
/* 0x555 */ u8 field_0x555;
|
||||
/* 0x556 */ u8 field_0x556;
|
||||
/* 0x557 */ u8 mDrawProc;
|
||||
/* 0x558 */ u8 field_0x558;
|
||||
/* 0x559 */ u8 field_0x559;
|
||||
/* 0x55A */ u8 field_0x55a;
|
||||
/* 0x55B */ u8 field_0x55b;
|
||||
/* 0x55C */ u8 field_0x55c;
|
||||
/* 0x55D */ u8 field_0x55d;
|
||||
/* 0x55E */ u8 field_0x55e;
|
||||
/* 0x55F */ u8 field_0x55f;
|
||||
/* 0x560 */ u8 saveMemory[0x1650];
|
||||
/* 0x1BB0 */ u8* savePicDatabuf;
|
||||
/* 0x01C4 */ request_of_phase_process_class mPhs;
|
||||
/* 0x01CC */ JKRHeap* heap;
|
||||
/* 0x01D0 */ JKRHeap* oldHeap;
|
||||
/* 0x01D4 */ u8 field_0x1d4[0x29C - 0x1D4];
|
||||
/* 0x029C */ f32 field_0x29c;
|
||||
/* 0x02A0 */ f32 field_0x2a0;
|
||||
/* 0x02A4 */ f32 field_0x2a4;
|
||||
/* 0x02A8 */ f32 field_0x2a8;
|
||||
/* 0x02AC */ Vec field_0x2ac;
|
||||
/* 0x02B8 */ Vec field_0x2b8;
|
||||
/* 0x02C4 */ u8 field_0x2c4[0x2D0 - 0x2C4];
|
||||
/* 0x02D0 */ s16 field_0x2d0;
|
||||
/* 0x02D4 */ Mtx44 field_0x2d4;
|
||||
/* 0x0314 */ Mtx field_0x314;
|
||||
/* 0x0344 */ Mtx field_0x344;
|
||||
/* 0x0374 */ Mtx field_0x374;
|
||||
/* 0x03A4 */ u8 field_0x3a4[0x3B4 - 0x3A4];
|
||||
/* 0x03B4 */ Mtx field_0x3b4;
|
||||
/* 0x03E4 */ u8 field_0x3e4[0x40C - 0x3E4];
|
||||
/* 0x040C */ JKRMemArchive* mArchive;
|
||||
/* 0x0410 */ mDoDvdThd_toMainRam_c* field_0x410;
|
||||
/* 0x0414 */ dDlst_BTICN_c btnIcon;
|
||||
/* 0x041C */ dDlst_FLSEL_CLOTH_c cloth;
|
||||
/* 0x0424 */ dName_c* dNm_c;
|
||||
/* 0x0428 */ dFile_select_c* dFs_c;
|
||||
/* 0x042C */ dFile_error_c* dFe_c;
|
||||
/* 0x0430 */ dMenu_save_c* dMs_c;
|
||||
/* 0x0434 */ u8 field_0x434[0x43C - 0x434];
|
||||
/* 0x043C */ fopMsgM_pane_class field_0x43c;
|
||||
/* 0x0474 */ fopMsgM_pane_class field_0x474;
|
||||
/* 0x04AC */ fopMsgM_pane_class field_0x4ac;
|
||||
/* 0x04E4 */ fopMsgM_pane_class field_0x4e4;
|
||||
/* 0x051C */ fopMsgM_pane_class field_0x51c;
|
||||
/* 0x0554 */ u8 mMainProc;
|
||||
/* 0x0555 */ u8 field_0x555;
|
||||
/* 0x0556 */ u8 field_0x556;
|
||||
/* 0x0557 */ u8 mDrawProc;
|
||||
/* 0x0558 */ u8 field_0x558;
|
||||
/* 0x0559 */ u8 field_0x559;
|
||||
/* 0x055A */ u8 field_0x55a;
|
||||
/* 0x055B */ u8 field_0x55b;
|
||||
/* 0x055C */ u8 field_0x55c;
|
||||
/* 0x055D */ u8 field_0x55d;
|
||||
/* 0x055E */ u8 field_0x55e;
|
||||
/* 0x055F */ u8 field_0x55f;
|
||||
/* 0x0560 */ u8 saveMemory[3 * sizeof(card_gamedata)];
|
||||
/* 0x1BB0 */ card_pictdata* savePicDatabuf;
|
||||
/* 0x1BB4 */ s16 field_0x1bb4;
|
||||
/* 0x1BB6 */ u8 field_0x1bb6;
|
||||
/* 0x1BB7 */ u8 field_0x1bb7;
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct CARDFileInfo {
|
||||
typedef struct CARDFileInfo {
|
||||
/* 0x00 */ s32 chan;
|
||||
/* 0x04 */ s32 fileNo;
|
||||
/* 0x08 */ s32 offset;
|
||||
/* 0x0C */ s32 length;
|
||||
/* 0x10 */ u16 iBlock;
|
||||
/* 0x12 */ u16 __padding;
|
||||
};
|
||||
} CARDFileInfo;
|
||||
|
||||
struct CARDStat {
|
||||
typedef struct CARDStat {
|
||||
u8 fileName[32];
|
||||
u32 dataLength;
|
||||
u32 lastModified;
|
||||
@@ -34,7 +34,7 @@ struct CARDStat {
|
||||
u32 offsetIcon[8];
|
||||
u32 offsetIconTlut;
|
||||
u32 offsetData;
|
||||
};
|
||||
} CARDStat;
|
||||
|
||||
#define CARDGetBannerFormat(stat) ((stat)->bannerFmt & 0x03)
|
||||
#define CARDGetIconAnim(stat) ((stat)->bannerFmt & 0x04)
|
||||
@@ -79,8 +79,8 @@ s32 CARDUnmount(s32);
|
||||
s32 CARDMount(s32, void*, void*);
|
||||
s32 CARDCheck(s32);
|
||||
s32 CARDFreeBlocks(s32, s32*, s32*);
|
||||
s32 CARDRead(CARDFileInfo*, void*, s32, s32);
|
||||
s32 CARDWrite(CARDFileInfo*, const void*, s32, s32);
|
||||
s32 CARDRead(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset);
|
||||
s32 CARDWrite(CARDFileInfo* fileInfo, const void* buf, s32 length, s32 offset);
|
||||
s32 CARDGetSerialNo(s32, u64*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
#include "global.h"
|
||||
#include "m_Do/m_Do_MemCardRWmng.h"
|
||||
|
||||
class mDoMemCd_Ctrl_c {
|
||||
public:
|
||||
@@ -61,7 +62,7 @@ public:
|
||||
void getProbeStat() {}
|
||||
void setPictWriteDataPtr(u8*) {}
|
||||
|
||||
/* 0x0000 */ u8 mData[0x1650];
|
||||
/* 0x0000 */ u8 mData[3 * sizeof(card_gamedata)];
|
||||
/* 0x1650 */ u8* mPictDataPtr;
|
||||
/* 0x1654 */ u8* mPictDataWritePtr;
|
||||
/* 0x1658 */ u8 mCardSlot;
|
||||
|
||||
@@ -8,47 +8,53 @@ typedef struct CARDFileInfo CARDFileInfo;
|
||||
|
||||
struct mDoMemCdRWm_HeaderData
|
||||
{
|
||||
/* 0x0000 */ u8 banner[0x0e00];
|
||||
/* 0x0e00 */ u8 icon[0x0200];
|
||||
/* 0x1000 */ u8 field_0x1000[0x0c00];
|
||||
/* 0x1c00 */ char comment[32];
|
||||
/* 0x1c20 */ char info[32];
|
||||
};
|
||||
/* 0x0000 */ u8 banner[0x0E00];
|
||||
/* 0x0E00 */ u8 icon[0x0200];
|
||||
/* 0x1000 */ u8 field_0x1000[0x0C00];
|
||||
/* 0x1C00 */ char comment[32];
|
||||
/* 0x1C20 */ char info[32];
|
||||
}; // Size: 0x1C40
|
||||
|
||||
struct card_pictdata
|
||||
{
|
||||
u8 data[0x1ffe];
|
||||
u16 csum;
|
||||
};
|
||||
/* 0x0000 */ u8 data[0x2000 - sizeof(u16)];
|
||||
/* 0x1FFE */ u16 csum;
|
||||
}; // Size: 0x2000
|
||||
|
||||
STATIC_ASSERT(sizeof(card_pictdata) == 0x2000);
|
||||
|
||||
struct card_gamedata
|
||||
{
|
||||
u8 data[dSv_save_c::PACKED_STRUCT_SIZE];
|
||||
u64 csum;
|
||||
};
|
||||
/* 0x000 */ u8 data[dSv_save_c::PACKED_STRUCT_SIZE];
|
||||
/* 0x768 */ u64 csum;
|
||||
}; // Size: 0x770
|
||||
|
||||
struct card_savedata
|
||||
{
|
||||
u32 saveCount;
|
||||
u32 dataVersion;
|
||||
card_gamedata gamedata[3];
|
||||
u32 field_0x1658[0x269];
|
||||
u32 csum;
|
||||
};
|
||||
/* 0x0000 */ u32 saveCount;
|
||||
/* 0x0004 */ u32 dataVersion;
|
||||
/* 0x0008 */ card_gamedata gamedata[3];
|
||||
/* 0x1658 */ u8 field_0x1658[0x2000 - 3*sizeof(u32) - 3*sizeof(card_gamedata)];
|
||||
/* 0x1FFC */ u32 csum;
|
||||
}; // Size: 0x2000
|
||||
|
||||
s32 mDoMemCdRWm_Store(CARDFileInfo*, void*, u32);
|
||||
s32 mDoMemCdRWm_Restore(CARDFileInfo*, void*, u32);
|
||||
STATIC_ASSERT(sizeof(card_savedata) == 0x2000);
|
||||
|
||||
STATIC_ASSERT(sizeof(card_pictdata) == sizeof(card_savedata));
|
||||
|
||||
s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size);
|
||||
s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size);
|
||||
#if VERSION == VERSION_PAL
|
||||
s32 mDoMemCdRWm_Restore2(CARDFileInfo*);
|
||||
#endif
|
||||
void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData*);
|
||||
void mDoMemCdRWm_SetCardStat(CARDFileInfo*);
|
||||
BOOL mDoMemCdRWm_CheckCardStat(CARDFileInfo*);
|
||||
u32 mDoMemCdRWm_CalcCheckSum(void*, u32);
|
||||
u16 mDoMemCdRWm_CalcCheckSumPictData(void*, u32);
|
||||
u32 mDoMemCdRWm_CalcCheckSum(void*, u32 size);
|
||||
u16 mDoMemCdRWm_CalcCheckSumPictData(void*, u32 size);
|
||||
BOOL mDoMemCdRWm_TestCheckSumPictData(void*);
|
||||
void mDoMemCdRWm_SetCheckSumPictData(u8*);
|
||||
u64 mDoMemCdRWm_CalcCheckSumGameData(void*, u32);
|
||||
u64 mDoMemCdRWm_CalcCheckSumGameData(void*, u32 size);
|
||||
BOOL mDoMemCdRWm_TestCheckSumGameData(void*);
|
||||
void mDoMemCdRWm_SetCheckSumGameData(u8*, u8);
|
||||
|
||||
|
||||
+3
-2
@@ -12,6 +12,7 @@
|
||||
#include "d/d_com_lib_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "m_Do/m_Do_MemCardRWmng.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
@@ -590,12 +591,12 @@ static BOOL dScnLogo_Delete(dScnLogo_c* i_this) {
|
||||
dComIfGp_setWindowNum(0);
|
||||
|
||||
for (s32 i = 0; i < 3; i++) {
|
||||
dComIfGp_setPictureBoxData(JKRAllocFromAram(0x2000, JKRAramHeap::HEAD), i);
|
||||
dComIfGp_setPictureBoxData(JKRAllocFromAram(sizeof(card_pictdata), JKRAramHeap::HEAD), i);
|
||||
dComIfGp_offPictureFlag(i);
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < 4; i++) {
|
||||
dComIfGp_setBossBattleData(JKRAllocFromAram(0x70, JKRAramHeap::HEAD), i);
|
||||
dComIfGp_setBossBattleData(JKRAllocFromAram(sizeof(dSv_player_status_c_c), JKRAramHeap::HEAD), i);
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_PAL
|
||||
|
||||
+32
-32
@@ -119,7 +119,7 @@ cPhs_State dScnName_c::create() {
|
||||
dFs_c = new dFile_select_c();
|
||||
JUT_ASSERT(470, dFs_c != NULL);
|
||||
dFs_c->field_0x0 = mArchive;
|
||||
savePicDatabuf = new (0x20) u8[0x12000];
|
||||
savePicDatabuf = new (0x20) card_pictdata[3 * 3];
|
||||
JUT_ASSERT(476, savePicDatabuf != NULL);
|
||||
if (fpcM_GetName(this) == PROC_NAME_SCENE) {
|
||||
dFs_c->setUseType(0);
|
||||
@@ -516,11 +516,11 @@ void dScnName_c::NoteOpenWait() {
|
||||
if (g_snHIO.field_0x8 == 0) {
|
||||
if (fpcM_GetName(this) == PROC_NAME_SCENE) {
|
||||
dFs_c->setSaveDataPtr(saveMemory);
|
||||
dFs_c->setSavePicDataPtr(savePicDatabuf);
|
||||
dFs_c->setSavePicDataPtr((u8*)savePicDatabuf);
|
||||
}
|
||||
if (fpcM_GetName(this) == PROC_NAMEEX_SCENE) {
|
||||
dFs_c->setSaveDataPtr(dMs_c->getDataBufPtr());
|
||||
dFs_c->setSavePicDataPtr(savePicDatabuf);
|
||||
dFs_c->setSavePicDataPtr((u8*)savePicDatabuf);
|
||||
}
|
||||
dFs_c->initial();
|
||||
mMainProc = 3;
|
||||
@@ -536,7 +536,6 @@ void dScnName_c::FileSelectOpen() {
|
||||
|
||||
/* 802315E0-802319B4 .text buttonIconProc__10dScnName_cFv */
|
||||
void dScnName_c::buttonIconProc() {
|
||||
/* Nonmatching */
|
||||
switch (field_0x1bb6) {
|
||||
case 0:
|
||||
{
|
||||
@@ -545,7 +544,7 @@ void dScnName_c::buttonIconProc() {
|
||||
if (ret == 1) {
|
||||
field_0x1bb4 = 0;
|
||||
field_0x1bb6 = 6;
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -561,7 +560,7 @@ void dScnName_c::buttonIconProc() {
|
||||
if (ret == 1) {
|
||||
field_0x1bb4 = 0;
|
||||
field_0x1bb6 = 6;
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -577,24 +576,24 @@ void dScnName_c::buttonIconProc() {
|
||||
if (ret == 1) {
|
||||
field_0x1bb4 = 0;
|
||||
field_0x1bb6 = 6;
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 0);
|
||||
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
|
||||
field_0x1bb4++;
|
||||
if (ret == 1) {
|
||||
field_0x1bb4 = 0;
|
||||
field_0x1bb6 = 6;
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 0);
|
||||
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
|
||||
field_0x1bb4++;
|
||||
if (ret == 1) {
|
||||
field_0x1bb4 = 0;
|
||||
@@ -604,13 +603,13 @@ void dScnName_c::buttonIconProc() {
|
||||
field_0x4ac.pane->show();
|
||||
}
|
||||
field_0x1bb6 = 0;
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 0);
|
||||
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
|
||||
field_0x1bb4++;
|
||||
if (ret == 1) {
|
||||
field_0x1bb4 = 0;
|
||||
@@ -620,7 +619,7 @@ void dScnName_c::buttonIconProc() {
|
||||
field_0x4ac.pane->hide();
|
||||
}
|
||||
field_0x1bb6 = 0;
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -639,7 +638,7 @@ void dScnName_c::FileSelOpenMain() {
|
||||
} else {
|
||||
field_0x1bb6 = 1;
|
||||
}
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
mMainProc = 4;
|
||||
}
|
||||
|
||||
@@ -649,7 +648,7 @@ void dScnName_c::FileselOpenWait() {}
|
||||
/* 80231A28-80231A8C .text FileSelectMain__10dScnName_cFv */
|
||||
void dScnName_c::FileSelectMain() {
|
||||
dFs_c->_move();
|
||||
field_0x1bb6 = dFs_c->field_0x3936;
|
||||
field_0x1bb6 = dFs_c->getIconMode();
|
||||
if (fpcM_GetName(this) == PROC_NAME_SCENE)
|
||||
FileSelectMainNormal();
|
||||
if (fpcM_GetName(this) == PROC_NAMEEX_SCENE)
|
||||
@@ -675,32 +674,34 @@ void dScnName_c::FileSelectMainNormal() {
|
||||
if (dComIfGs_getPictureNum() != 0) {
|
||||
u8 failed = 0;
|
||||
u8 boxDataIdx = 0;
|
||||
u8* workBuf = &((u8*)savePicDatabuf)[dFs_c->saveSlot * 0x6000];
|
||||
u8 r25 = 0;
|
||||
card_pictdata* workBuf = &savePicDatabuf[dFs_c->saveSlot * 3];
|
||||
for (s32 i = 0; i < 3; i++) {
|
||||
u32 mask = 1 << i;
|
||||
if ((dComIfGs_getEventReg(0x89ff) & mask)) {
|
||||
workBuf += 0x2000;
|
||||
workBuf++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mDoMemCdRWm_TestCheckSumPictData(workBuf)) {
|
||||
JKRMainRamToAram(workBuf, dComIfGp_getPictureBoxData(boxDataIdx), 0x2000, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
|
||||
JKRMainRamToAram((u8*)workBuf, dComIfGp_getPictureBoxData(boxDataIdx), sizeof(card_pictdata), EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
|
||||
boxDataIdx++;
|
||||
} else {
|
||||
failed++;
|
||||
}
|
||||
|
||||
if (i == pictureNum)
|
||||
r25++;
|
||||
if (r25 == pictureNum)
|
||||
break;
|
||||
|
||||
workBuf += 0x2000;
|
||||
workBuf++;
|
||||
}
|
||||
|
||||
dComIfGs_setPictureNum(pictureNum - failed);
|
||||
}
|
||||
dComIfGs_setEventReg(0x89ff, 0);
|
||||
mDoMemCd_setPictDataPtr(NULL);
|
||||
g_dComIfG_gameInfo.play.itemInit();
|
||||
dComIfGp_itemDataInit();
|
||||
if (field_0x1bb9 != 0) {
|
||||
field_0x1bb6 = 3;
|
||||
mMainProc = 5;
|
||||
@@ -752,7 +753,7 @@ void dScnName_c::FileSelectClose() {
|
||||
if (fpcM_GetName(this) == PROC_NAMEEX_SCENE) {
|
||||
dMs_c->initialize();
|
||||
dMs_c->field_0x053c = 1;
|
||||
dMs_c->field_0x053d = dFs_c->field_0x392f;
|
||||
dMs_c->field_0x053d = dFs_c->field_0x392f; // getErrType?
|
||||
if (dFs_c->field_0x392f == 2) {
|
||||
dMs_c->initializeEx();
|
||||
}
|
||||
@@ -775,9 +776,9 @@ void dScnName_c::FileSelectClose() {
|
||||
break;
|
||||
case 1:
|
||||
if (field_0x1bb9) {
|
||||
strcpy(dNm_c->field_0x2ad0, dComIfGs_getPlayerName());
|
||||
dNm_c->setNextNameStr((char*)dComIfGs_getPlayerName());
|
||||
} else {
|
||||
strcpy(dNm_c->field_0x2ad0, "");
|
||||
dNm_c->setNextNameStr("");
|
||||
}
|
||||
dNm_c->initial();
|
||||
mMainProc = 6;
|
||||
@@ -811,18 +812,17 @@ void dScnName_c::NameOpenWait() {}
|
||||
|
||||
/* 80231F48-80231FF4 .text NameInMain__10dScnName_cFv */
|
||||
void dScnName_c::NameInMain() {
|
||||
/* Nonmatching */
|
||||
dNm_c->_move();
|
||||
if (dNm_c->field_0x290b == 1) {
|
||||
if (dNm_c->isInputEnd() == 1) {
|
||||
if (!field_0x1bb9) {
|
||||
g_dComIfG_gameInfo.save.init();
|
||||
g_dComIfG_gameInfo.play.itemInit();
|
||||
dComIfGs_init();
|
||||
dComIfGp_itemDataInit();
|
||||
}
|
||||
|
||||
dComIfGs_setPlayerName(dNm_c->field_0x2a5c);
|
||||
dComIfGs_setPlayerName(dNm_c->getInputStrPtr());
|
||||
field_0x55f = 1;
|
||||
mMainProc = 9;
|
||||
} else if (dNm_c->field_0x290b == 2) {
|
||||
} else if (dNm_c->isInputEnd() == 2) {
|
||||
field_0x1bb6 = 3;
|
||||
mMainProc = 8;
|
||||
}
|
||||
@@ -840,7 +840,7 @@ void dScnName_c::NameInClose() {
|
||||
|
||||
/* 80232050-80232074 .text NameInDraw__10dScnName_cFv */
|
||||
void dScnName_c::NameInDraw() {
|
||||
dNm_c->_draw();
|
||||
dNm_c->draw();
|
||||
}
|
||||
|
||||
/* 80232074-802320C0 .text ShopDemoDataLoad__10dScnName_cFv */
|
||||
@@ -867,7 +867,7 @@ void dScnName_c::SaveOpen() {
|
||||
}
|
||||
if (dMs_c->_open() == 1) {
|
||||
field_0x1bb6 = 1;
|
||||
dFs_c->field_0x3936 = field_0x1bb6;
|
||||
dFs_c->setIconMode(field_0x1bb6);
|
||||
mMainProc = 11;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ void mDoMemCd_Ctrl_c::restore() {
|
||||
CARDFileInfo cardInfo;
|
||||
s32 ret = CARDOpen(mCardSlot, "gczelda", &cardInfo);
|
||||
if (ret == CARD_ERROR_READY) {
|
||||
if (!mDoMemCdRWm_Restore(&cardInfo, this, 0x1650)) {
|
||||
if (!mDoMemCdRWm_Restore(&cardInfo, mData, sizeof(mData))) {
|
||||
field_0x1660 = 3;
|
||||
} else {
|
||||
setCardState(ret);
|
||||
@@ -133,7 +133,7 @@ void mDoMemCd_Ctrl_c::store() {
|
||||
if (field_0x1660 == 1) {
|
||||
ret = CARDOpen(mCardSlot, "gczelda", &cardInfo);
|
||||
if (ret == CARD_ERROR_READY) {
|
||||
ret = mDoMemCdRWm_Store(&cardInfo, this, 0x1650);
|
||||
ret = mDoMemCdRWm_Store(&cardInfo, mData, sizeof(mData));
|
||||
if (ret != CARD_ERROR_READY)
|
||||
setCardState(ret);
|
||||
else
|
||||
|
||||
@@ -23,19 +23,19 @@ static u32 sSaveCount;
|
||||
s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
|
||||
s32 ret;
|
||||
mDoMemCdRWm_BuildHeader((mDoMemCdRWm_HeaderData*)sTmpBuf);
|
||||
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x0000);
|
||||
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 0 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
|
||||
if (!mDoMemCdRWm_CheckCardStat(card)) {
|
||||
memset(sTmpBuf, 0, 0x2000);
|
||||
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x2000);
|
||||
memset(sTmpBuf, 0, sizeof(sTmpBuf));
|
||||
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 1 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x4000);
|
||||
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 2 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
sSaveCount = 0;
|
||||
}
|
||||
|
||||
memset(sTmpBuf, 0, 0x2000);
|
||||
memset(sTmpBuf, 0, sizeof(sTmpBuf));
|
||||
card_savedata* save = (card_savedata*)sTmpBuf;
|
||||
save->dataVersion = 0;
|
||||
memcpy(save->gamedata, data, size);
|
||||
@@ -44,20 +44,20 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
|
||||
#else
|
||||
save->saveCount = dComIfGs_getPalLanguage();
|
||||
#endif
|
||||
s32 csum = mDoMemCdRWm_CalcCheckSum(save, 0x1FFC);
|
||||
s32 csum = mDoMemCdRWm_CalcCheckSum(save, sizeof(card_savedata) - sizeof(save->csum));
|
||||
save->csum = csum;
|
||||
|
||||
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x2000);
|
||||
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 1 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
ret = CARDRead(card, sTmpBuf, 0x2000, 0x2000);
|
||||
ret = CARDRead(card, sTmpBuf, sizeof(card_savedata), 1 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC) != csum) return ret;
|
||||
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, sizeof(card_savedata) - sizeof(save->csum)) != csum) return ret;
|
||||
|
||||
ret = CARDWrite(card, sTmpBuf, 0x2000, 0x4000);
|
||||
ret = CARDWrite(card, sTmpBuf, sizeof(card_savedata), 2 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
ret = CARDRead(card, sTmpBuf, 0x2000, 0x4000);
|
||||
ret = CARDRead(card, sTmpBuf, sizeof(card_savedata), 2 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, 0x1FFC) != csum) return ret;
|
||||
if (mDoMemCdRWm_CalcCheckSum(sTmpBuf, sizeof(card_savedata) - sizeof(save->csum)) != csum) return ret;
|
||||
|
||||
s32 i;
|
||||
u32 slot;
|
||||
@@ -65,10 +65,10 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
|
||||
if (mDoMemCd_getCopyToPos() < 3) {
|
||||
slot = mDoMemCd_getCopyToPos() * 3 + 3;
|
||||
u8* picData = mDoMemCd_getPictWriteDataPtr();
|
||||
for (i = 0; i < 3; i++, picData += 0x2000) {
|
||||
ret = CARDWrite(card, picData, 0x2000, (slot + i) * 0x2000);
|
||||
for (i = 0; i < 3; i++, picData += sizeof(card_pictdata)) {
|
||||
ret = CARDWrite(card, picData, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
ret = CARDRead(card, sTmpBuf, 0x2000, (slot + i) * 0x2000);
|
||||
ret = CARDRead(card, sTmpBuf, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
if (!mDoMemCdRWm_TestCheckSumPictData(picData)) return ret;
|
||||
}
|
||||
@@ -77,11 +77,11 @@ s32 mDoMemCdRWm_Store(CARDFileInfo* card, void* data, u32 size) {
|
||||
slot = dComIfGs_getDataNum() * 3 + 3;
|
||||
for (i = 0; i < 3; i++) {
|
||||
if (dComIfGp_isPictureFlag(i)) {
|
||||
memset(sTmpBuf, 0, 0x2000);
|
||||
JKRAramToMainRam(dComIfGp_getPictureBoxData(i), sTmpBuf, 0x2000);
|
||||
ret = CARDWrite(card, sTmpBuf, 0x2000, (slot + i) * 0x2000);
|
||||
memset(sTmpBuf, 0, sizeof(card_pictdata));
|
||||
JKRAramToMainRam(dComIfGp_getPictureBoxData(i), sTmpBuf, sizeof(card_pictdata));
|
||||
ret = CARDWrite(card, sTmpBuf, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
ret = CARDRead(card, sTmpBuf, 0x2000, (slot + i) * 0x2000);
|
||||
ret = CARDRead(card, sTmpBuf, sizeof(card_pictdata), (slot + i) * sizeof(card_pictdata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
}
|
||||
}
|
||||
@@ -108,12 +108,12 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size) {
|
||||
|
||||
save = (card_savedata*)sTmpBuf;
|
||||
save2 = (card_savedata*)sTmpBuf2;
|
||||
ret = CARDRead(card, save, 0x2000, 0x2000);
|
||||
ret = CARDRead(card, save, sizeof(card_savedata), 1 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
csum0a = mDoMemCdRWm_TestCheckSumGameData(&save->gamedata[0]);
|
||||
csum1a = mDoMemCdRWm_TestCheckSumGameData(&save->gamedata[1]);
|
||||
csum2a = mDoMemCdRWm_TestCheckSumGameData(&save->gamedata[2]);
|
||||
ret = CARDRead(card, save2, 0x2000, 0x4000);
|
||||
ret = CARDRead(card, save2, sizeof(card_savedata), 2 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
csum0b = mDoMemCdRWm_TestCheckSumGameData(&save2->gamedata[0]);
|
||||
csum1b = mDoMemCdRWm_TestCheckSumGameData(&save2->gamedata[1]);
|
||||
@@ -139,9 +139,9 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size) {
|
||||
return CARD_ERROR_FATAL_ERROR;
|
||||
|
||||
if (needsWrite) {
|
||||
ret = CARDWrite(card, save, 0x2000, 0x2000);
|
||||
ret = CARDWrite(card, save, sizeof(card_savedata), 1 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
ret = CARDWrite(card, save, 0x2000, 0x4000);
|
||||
ret = CARDWrite(card, save, sizeof(card_savedata), 2 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@ s32 mDoMemCdRWm_Restore(CARDFileInfo* card, void* dst, u32 size) {
|
||||
#endif
|
||||
mDoMemCd_setDataVersion(save->dataVersion);
|
||||
if (!invalid && mDoMemCd_getPictDataPtr() != NULL) {
|
||||
ret = CARDRead(card, mDoMemCd_getPictDataPtr(), 0x12000, 0x6000);
|
||||
ret = CARDRead(card, mDoMemCd_getPictDataPtr(), 3 * 3 * sizeof(card_pictdata), 3 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
}
|
||||
|
||||
@@ -173,9 +173,9 @@ s32 mDoMemCdRWm_Restore2(CARDFileInfo* card) {
|
||||
s32 ret;
|
||||
card_savedata* save;
|
||||
save = (card_savedata*)sTmpBuf;
|
||||
ret = CARDRead(card, save, 0x2000, 0x2000);
|
||||
ret = CARDRead(card, save, sizeof(card_savedata), 1 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) {
|
||||
ret = CARDRead(card, save, 0x2000, 0x4000);
|
||||
ret = CARDRead(card, save, sizeof(card_savedata), 2 * sizeof(card_savedata));
|
||||
if (ret != CARD_ERROR_READY) return ret;
|
||||
}
|
||||
|
||||
@@ -213,7 +213,6 @@ void mDoMemCdRWm_BuildHeader(mDoMemCdRWm_HeaderData* header) {
|
||||
snprintf(header->info, sizeof(header->info), "%d/%d Spielstand", cal.day_of_month, cal.month + 1);
|
||||
break;
|
||||
case 2:
|
||||
// Extended ASCII 0xE9 is: é ("Données de jeu")
|
||||
snprintf(header->info, sizeof(header->info), "Donn%ces de jeu %d/%d", 0xE9, cal.day_of_month, cal.month + 1);
|
||||
break;
|
||||
case 3:
|
||||
@@ -267,7 +266,7 @@ BOOL mDoMemCdRWm_CheckCardStat(CARDFileInfo* card) {
|
||||
CARDStat stat;
|
||||
CARDGetStatus(mDoMemCd_getNowSlot(), card->fileNo, &stat);
|
||||
if (!(stat.iconAddr == 0 &&
|
||||
stat.commentAddr == 0x1C00 &&
|
||||
stat.commentAddr == offsetof(mDoMemCdRWm_HeaderData, comment) &&
|
||||
CARDGetBannerFormat(&stat) == 1 &&
|
||||
CARDGetIconAnim(&stat) == 0 &&
|
||||
CARDGetIconFormat(&stat, 0) == 1 &&
|
||||
|
||||
Reference in New Issue
Block a user