d_s_name equivalent except PAL

This commit is contained in:
LagoLunatic
2026-08-18 15:10:27 -04:00
parent 48bb9796bc
commit 03d27aa143
15 changed files with 578 additions and 178 deletions
+1 -1
View File
@@ -661,7 +661,7 @@ config.libs = [
Object(NonMatching, "d/d_picture_box.cpp"),
Object(Matching, "d/d_s_logo.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_s_menu.cpp"),
Object(NonMatching, "d/d_s_name.cpp"),
Object(EquivalentFor("D44J01", "GZLJ01", "GZLE01"), "d/d_s_name.cpp"), # stripped vtable padding
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_s_open.cpp"),
Object(NonMatching, "d/d_s_open_sub.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_s_play.cpp"),
@@ -7,7 +7,7 @@
struct controller_pad_buttons {
/* 0x00 (0x80 >> 7) */ bool left : 1;
/* 0x00 (0x40 >> 6) */ bool right : 1;
/* 0x00 (0x10 >> 5) */ bool down : 1;
/* 0x00 (0x20 >> 5) */ bool down : 1;
/* 0x00 (0x10 >> 4) */ bool up : 1;
/* 0x00 (0x08 >> 3) */ bool z : 1;
/* 0x00 (0x04 >> 2) */ bool r : 1;
+6 -1
View File
@@ -1833,6 +1833,11 @@ inline void dComIfGs_initDan(s8 i_stageNo) {
g_dComIfG_gameInfo.save.initDan(i_stageNo);
}
// Name from TP
inline void dComIfGs_resetDan() {
g_dComIfG_gameInfo.save.resetDan();
}
inline void dComIfGs_onActor(int i_no, int i_roomNo) {
g_dComIfG_gameInfo.save.onActor(i_no, i_roomNo);
}
@@ -3091,7 +3096,7 @@ inline void dComIfGp_plusMiniGameRupee(s16 count) {
inline s32 dComIfGp_getWindowNum() { return g_dComIfG_gameInfo.play.getWindowNum(); }
inline void dComIfGp_setWindowNum(u8 num) { g_dComIfG_gameInfo.play.setWindowNum(num); }
inline dDlst_window_c * dComIfGp_getWindow(int idx) { return g_dComIfG_gameInfo.play.getWindow(idx); }
inline void dComIfGp_setWindow(int idx, f32 x, f32 y, f32 w, f32 h, f32 n, f32 f, int cameraID, int mode) {
inline void dComIfGp_setWindow(u8 idx, f32 x, f32 y, f32 w, f32 h, f32 n, f32 f, int cameraID, int mode) {
g_dComIfG_gameInfo.play.setWindow(idx, x, y, w, h, n, f, cameraID, mode);
}
inline J2DOrthoGraph* dComIfGp_getCurrentGrafPort() { return g_dComIfG_gameInfo.play.getCurrentGrafPort(); }
+3
View File
@@ -78,6 +78,9 @@ public:
void _create();
void initial();
void _delete();
#if VERSION == VERSION_DEMO
void _deleteSp();
#endif
void setErrMessage(u32, int);
void closeMessage();
void resizeMsgBoard(int);
+38 -13
View File
@@ -83,8 +83,27 @@ public:
/* 0x50 */ u8 field_0x50;
/* 0x51 */ u8 field_0x51;
/* 0x52 */ u8 field_0x52;
/* 0x54 */ float field_0x54;
/* 0x58 */ float field_0x58;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
#if VERSION == VERSION_PAL
/* 0x5C */ u8 field_0x5c;
/* 0x5D */ u8 field_0x5d;
/* 0x5E */ u8 field_0x5e;
/* 0x5F */ u8 field_0x5f;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 0x64 */ s16 field_0x64;
/* 0x66 */ s16 field_0x66;
/* 0x68 */ s16 field_0x68;
/* 0x6A */ s16 field_0x6a;
/* 0x6C */ s16 field_0x6c;
/* 0x6E */ s16 field_0x6e;
/* 0x70 */ s16 field_0x70;
/* 0x72 */ s16 field_0x72;
/* 0x74 */ s16 field_0x74;
/* 0x76 */ s16 field_0x76;
/* 0x78 */ u8 field_0x78;
#endif
};
class dDlst_FileSel_c : public dDlst_base_c {
@@ -103,16 +122,18 @@ public:
void setSavePicDataPtr(u8* dataPtr) { mSavePicDataPtr = dataPtr; }
void setUseType(u8 useType) { mUseType = useType; }
void getErrType() {}
void getSelectNum() {}
void isDataExtra(u8) {}
void isDataNew(u8) {}
void isSelectEnd() {}
u8 getErrType() { return errType; }
u8 getSelectNum() { return selectNum; }
BOOL isDataExtra(u8 idx) { return dataExtra[idx]; }
BOOL isDataNew(u8 idx) { return dataNew[idx]; }
u8 isSelectEnd() { return selectEnd; } // ?
dFile_select_c() {}
void _create();
void initial();
#if VERSION == VERSION_DEMO
void _deleteSp();
#endif
void _delete();
void _move();
bool _open();
@@ -213,7 +234,8 @@ public:
void ExErrorMsgPaneMove2();
public:
/* 0x0000 */ JKRMemArchive* field_0x0;
/* 0x0000 */ JKRMemArchive* archive;
private:
/* 0x0004 */ dDlst_FileSel_c fileSel;
/* 0x0010 */ fopMsgM_pane_class field_0x10;
/* 0x0048 */ fopMsgM_pane_class field_0x48;
@@ -270,6 +292,9 @@ public:
/* 0x3730 */ fopMsgM_pane_class field_0x3730;
/* 0x3768 */ fopMsgM_pane_class field_0x3768;
/* 0x37A0 */ fopMsgM_pane_class field_0x37a0;
#if VERSION == VERSION_PAL
fopMsgM_pane_class pad[0xF]; // TODO
#endif
/* 0x37D8 */ JUtility::TColor field_0x37d8[11];
/* 0x3804 */ JUtility::TColor field_0x3804[11];
/* 0x3830 */ JUtility::TColor field_0x3830[18];
@@ -284,13 +309,13 @@ public:
/* 0x3900 */ char* field_0x3900[3];
/* 0x390C */ STControl* stick;
/* 0x3910 */ STControl* stick2;
/* 0x3914 */ u8 field_0x3914[3];
/* 0x3914 */ u8 dataNew[3];
/* 0x3917 */ u8 field_0x3917[3];
/* 0x391A */ u8 saveStatus[3];
/* 0x391A */ u8 dataExtra[3];
/* 0x391D */ u8 field_0x391D[3];
/* 0x3920 */ u8 field_0x3920;
/* 0x3921 */ u8 field_0x3921;
/* 0x3922 */ u8 saveSlot;
/* 0x3922 */ u8 selectNum;
/* 0x3923 */ s8 field_0x3923;
/* 0x3924 */ u8 field_0x3924;
/* 0x3925 */ u8 field_0x3925;
@@ -300,10 +325,10 @@ public:
/* 0x3929 */ u8 field_0x3929;
/* 0x392A */ u8 field_0x392a;
/* 0x392B */ u8 field_0x392b;
/* 0x392C */ u8 field_0x392c;
/* 0x392C */ u8 selectEnd;
/* 0x392D */ u8 field_0x392d;
/* 0x392E */ u8 field_0x392e;
/* 0x392F */ u8 field_0x392f;
/* 0x392F */ u8 errType;
/* 0x3930 */ s16 field_0x3930;
/* 0x3932 */ s16 field_0x3932;
/* 0x3934 */ u8 field_0x3934[0x3936 - 0x3934];
+5 -5
View File
@@ -68,8 +68,8 @@ public:
u8* getDataBufPtr() { return dataBuf; }
u8 getEndStatus() { return endStatus; }
u8 getSaveStatus() { return saveStatus; }
void setErrorFlag(u8) {}
void setErrorType(u8) {}
void setErrorFlag(u8 i_errorFlag) { errorFlag = i_errorFlag; }
void setErrorType(u8 i_errorType) { errorType = i_errorType; }
void setUseType(u8 i_useType) { useType = i_useType; }
virtual ~dMenu_save_c() {}
@@ -156,7 +156,7 @@ public:
BOOL PaneRotate(s16, u8, fopMsgM_pane_class*, f32, f32, f32, u8);
BOOL PaneTranceMenu(s16, u8, fopMsgM_pane_class*, f32, f32, u8, int);
public:
private:
/* 0x0004 */ JKRArchive* archive;
/* 0x0008 */ dDlst_MenuSave_c MenuSave;
/* 0x0014 */ fopMsgM_pane_class field_0x14[8];
@@ -193,8 +193,8 @@ public:
/* 0x0539 */ u8 field_0x539;
/* 0x053A */ u8 field_0x53a;
/* 0x053B */ u8 field_0x53b;
/* 0x053C */ u8 field_0x53c;
/* 0x053D */ u8 field_0x53d;
/* 0x053C */ u8 errorFlag;
/* 0x053D */ u8 errorType;
/* 0x0540 */ int field_0x540;
/* 0x0544 */ s16 field_0x544;
/* 0x0546 */ u8 field_0x546[0x0554 - 0x0546];
+2
View File
@@ -159,7 +159,9 @@ public:
void displayInit();
void NameStrSet();
#if VERSION == VERSION_DEMO
void _deleteSp();
#endif
#if VERSION <= VERSION_JPN
BOOL checkDakuon(int, u8);
+33 -4
View File
@@ -16,6 +16,7 @@ class dMenu_save_c;
class dMCloth_c;
class dName_c;
class mDoDvdThd_toMainRam_c;
class mDoDvdThd_mountXArchive_c;
class dScnName_camera_c : public camera_class {
public:
@@ -26,7 +27,7 @@ public:
dSn_HIO_c();
virtual ~dSn_HIO_c() {}
void genMessage(JORMContext* ctx);
void genMessage(JORMContext* ctx) { UNUSED(ctx); }
public:
/* 0x04 */ s8 mNo;
@@ -74,10 +75,22 @@ class dScnName_c : public scene_class {
public:
~dScnName_c();
cPhs_State create();
#if VERSION == VERSION_PAL
void bmg_data_read_all();
void bmg_data_set();
void tex_data_set();
#endif
void cloth_create();
void cloth_move();
void cloth2D_create();
void buttonIconCreate();
#if VERSION == VERSION_PAL
void buttonIconTexChange(u8, u8);
void PaneAlphaLangTxt(s16, u8);
void languageTexChange();
void langTexChg();
void langTexChgFast();
#endif
BOOL paneTransButtonIcon(s16, u8, f32, f32, u8);
BOOL execute();
void setView();
@@ -128,9 +141,21 @@ public:
void NoneDraw();
void changeGameScene();
#if VERSION == VERSION_PAL
/* 0x01C4 */ mDoDvdThd_mountXArchive_c* field_0x1c4;
/* 0x01C8 */ mDoDvdThd_mountXArchive_c* field_0x1c8;
/* 0x01CC */ mDoDvdThd_mountXArchive_c* field_0x1cc;
/* 0x01D0 */ mDoDvdThd_mountXArchive_c* field_0x1d0;
/* 0x01D4 */ mDoDvdThd_mountXArchive_c* field_0x1d4;
u8 pad[0x14];
#endif
/* 0x01C4 */ request_of_phase_process_class mPhs;
/* 0x01CC */ JKRHeap* heap;
#if VERSION == VERSION_DEMO
/* 0x01CC */ JKRSolidHeap* heap;
#else
/* 0x01CC */ JKRExpHeap* heap;
/* 0x01D0 */ JKRHeap* oldHeap;
#endif
/* 0x01D4 */ dScnName_camera_c mCamera;
/* 0x040C */ JKRMemArchive* mArchive;
/* 0x0410 */ mDoDvdThd_toMainRam_c* field_0x410;
@@ -146,9 +171,13 @@ public:
/* 0x04AC */ fopMsgM_pane_class field_0x4ac;
/* 0x04E4 */ fopMsgM_pane_class field_0x4e4;
/* 0x051C */ fopMsgM_pane_class field_0x51c;
#if VERSION == VERSION_PAL
/* 0x0554 */ fopMsgM_pane_class field_0x554;
/* 0x058C */ fopMsgM_pane_class field_0x58C;
#endif
/* 0x0554 */ u8 mMainProc;
/* 0x0555 */ u8 field_0x555;
/* 0x0556 */ u8 field_0x556;
/* 0x0555 */ u8 mOpenProc;
/* 0x0556 */ u8 mMemCardCheckProc;
/* 0x0557 */ u8 mDrawProc;
/* 0x0558 */ u8 field_0x558;
/* 0x0559 */ u8 field_0x559;
+3 -1
View File
@@ -736,6 +736,7 @@ public:
BOOL isSwitch(int);
BOOL revSwitch(int);
void reset() { mStageNo = -1; } // Name from TP
u8 getGbaRupeeCount() { return mGbaRupeeCount; }
void incGbaRupeeCount() { mGbaRupeeCount++; }
@@ -949,13 +950,14 @@ public:
void removeZone(int zoneNo) { mZone[zoneNo].reset(); }
void initDan(s8 i_stage) { mDan.init(i_stage); }
void resetDan() { mDan.reset(); } // Name from TP
u8 getDataNum() { return mDataNum; }
void setDataNum(u8 num) { mDataNum = num; }
u8 getNoFile() { return mNoFile; }
void setNoFile(u8 no) { mNoFile = no; }
u8 getNewFile() { return mNewFile; }
void setNewFile(u8 file) {mNewFile = file; }
void setNewFile(u8 file) { mNewFile = file; }
u64 getMemCardCheckID() { return mMemCardCheckID; }
void setMemCardCheckID(u64 id) { mMemCardCheckID = id; }
+12 -10
View File
@@ -20,16 +20,16 @@ public:
};
enum CardStatus {
CARD_STAT_WAIT,
CARD_STAT_RESTORE,
CARD_STAT_CREATE,
CARD_STAT_FORMAT,
CARD_STAT_READY,
CARD_STAT_DETACH,
CARD_STAT_ENCODING,
CARD_STAT_ERROR,
CARD_STAT_WRONG_DEVICE = 10,
CARD_STAT_IOERROR = 12,
/* 0x0 */ CARD_STAT_WAIT,
/* 0x1 */ CARD_STAT_RESTORE,
/* 0x2 */ CARD_STAT_CREATE,
/* 0x3 */ CARD_STAT_FORMAT,
/* 0x4 */ CARD_STAT_READY,
/* 0x5 */ CARD_STAT_DETACH,
/* 0x6 */ CARD_STAT_ENCODING,
/* 0x7 */ CARD_STAT_ERROR,
/* 0xA */ CARD_STAT_WRONG_DEVICE = 10,
/* 0xC */ CARD_STAT_IOERROR = 12,
};
mDoMemCd_Ctrl_c();
@@ -81,7 +81,9 @@ public:
/* 0x1658 */ u8 mCardSlot;
/* 0x1659 */ u8 mCopyToPos;
/* 0x165A */ u8 mProbeStat;
#if VERSION == VERSION_PAL
/* 0x165B */ u8 field_0x165B;
#endif
/* 0x165C */ s32 mCommand;
/* 0x1660 */ s32 field_0x1660;
/* 0x1664 */ OSMutex mMutex;
+2 -2
View File
@@ -79,14 +79,14 @@ MyScreen::~MyScreen() {
}
/* 8017DF04-8017E010 .text setErrMessage__13dFile_error_cFUli */
void dFile_error_c::setErrMessage(u32 stringId, int param_2) {
void dFile_error_c::setErrMessage(u32 msgNo, int param_2) {
m2fa = (u8) param_2;
char message_buffer[512];
initial();
fopMsgM_messageGet(message_buffer, stringId);
fopMsgM_messageGet(message_buffer, msgNo);
int line_count = getLineCount(message_buffer);
if (line_count + 2 < VERSION_SELECT(9, 9, 12, 12)) {
resizeMsgBoard(line_count + 2);
+96 -75
View File
@@ -86,6 +86,25 @@ dFs_HIO_c::dFs_HIO_c() {
field_0x4C = 0x64;
field_0x54 = 1.25f;
field_0x58 = 12.0f;
#if VERSION == VERSION_PAL
field_0x5c = 7;
field_0x5d = 0xA0;
field_0x5e = 0x50;
field_0x5f = 0xE;
field_0x60 = 0;
field_0x62 = 1;
field_0x64 = 1;
field_0x66 = 0;
field_0x68 = 0;
field_0x6a = 0;
field_0x6c = 0;
field_0x6e = -1;
field_0x70 = -1;
field_0x72 = 0;
field_0x74 = 0;
field_0x76 = 0;
field_0x78 = 0xA;
#endif
}
/* 8017FA20-8017FCC0 .text _create__14dFile_select_cFv */
@@ -96,7 +115,7 @@ void dFile_select_c::_create() {
JUT_ASSERT(VERSION_SELECT(302, 302, 361, 361), stick != NULL);
stick2 = new STControl(3, 1, 3, 2);
JUT_ASSERT(VERSION_SELECT(305, 305, 364, 364), stick2 != NULL);
fileSel.Scr->set("file_select.blo", (JKRArchive*)field_0x0);
fileSel.Scr->set("file_select.blo", archive);
fileSel.font = mDoExt_getMesgFont();
JUT_ASSERT(VERSION_SELECT(311, 311, 370, 370), fileSel.font != NULL);
g_fsHIO.mNo = mDoHIO_createChild("ファイルセレクト画面", &g_fsHIO);
@@ -104,13 +123,13 @@ void dFile_select_c::_create() {
mSavePicDataPtr = NULL;
for(int i = 0; i < 3; i++) {
field_0x3914[i] = 0;
dataNew[i] = 0;
field_0x3917[i] = 0;
saveStatus[i] = 0;
dataExtra[i] = 0;
field_0x391D[i] = 0;
}
saveSlot = 0;
selectNum = 0;
screenSet();
displayInit();
paneTransInit();
@@ -122,9 +141,11 @@ void dFile_select_c::initial() {
paneTransInit();
}
#if VERSION == VERSION_DEMO
void dFile_select_c::_deleteSp() {
mDoHIO_deleteChild(g_fsHIO.mNo);
}
#endif
/* 8017FCF4-8017FD6C .text _delete__14dFile_select_cFv */
void dFile_select_c::_delete() {
@@ -184,14 +205,14 @@ void dFile_select_c::_move() {
(this->*DataSelProc[field_0x392b])();
#else
#if VERSION <= VERSION_JPN
if(g_mDoMemCd_control.mProbeStat == 1 && field_0x3941 == 0)
if(mDoMemCd_getProbeStat() == 1 && field_0x3941 == 0)
#else
if((g_mDoMemCd_control.mProbeStat == 0 || g_mDoMemCd_control.mProbeStat == 1) && field_0x3941 == 0)
if((mDoMemCd_getProbeStat() == 0 || mDoMemCd_getProbeStat() == 1) && field_0x3941 == 0)
#endif
{
field_0x392e = 1;
field_0x3930 = 0;
field_0x392c = 2;
selectEnd = 2;
mIconMode = 3;
field_0x392a = 7;
field_0x392b = 0x26;
@@ -200,7 +221,7 @@ void dFile_select_c::_move() {
(this->*DataSelProc[field_0x392b])();
}
g_mDoMemCd_control.mProbeStat = 2;
mDoMemCd_clearProbeStat();
#endif
}
@@ -247,7 +268,7 @@ bool dFile_select_c::_close() {
#endif
}
else {
if(field_0x392c == 3) {
if(selectEnd == 3) {
result = closeBack();
}
else {
@@ -264,7 +285,7 @@ bool dFile_select_c::_close() {
int dFile_select_c::closeEnd() {
int temp1 = PaneTranceTitle(field_0x3930, g_fsHIO.field_0x08, 0.0f, g_fsHIO.field_0x48, 0, 1);
int temp2, temp3;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp2 = PaneTranceRecTlt1(field_0x3930, g_fsHIO.field_0x0C, 0.0f, 0.0f, -(float)g_fsHIO.field_0x40, 0.0f, 0, 1);
temp3 = PaneTranceRecInfo1(field_0x3930, g_fsHIO.field_0x11, 0.0f, 0.0f, -(float)g_fsHIO.field_0x40, 0.0f, 0, 1);
@@ -293,7 +314,7 @@ int dFile_select_c::closeEnd() {
int dFile_select_c::closeCardErr() {
int temp1 = PaneTranceTitle(field_0x3930, g_fsHIO.field_0x08, 0.0f, g_fsHIO.field_0x48, 0, 1);
int temp2, temp3;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp2 = PaneTranceRecTlt1(field_0x3930, g_fsHIO.field_0x0C, 0.0f, 0.0f, -(float)g_fsHIO.field_0x40, 0.0f, 0, 1);
temp3 = PaneTranceRecInfo1(field_0x3930, g_fsHIO.field_0x11, 0.0f, 0.0f, -(float)g_fsHIO.field_0x40, 0.0f, 0, 1);
@@ -340,7 +361,7 @@ int dFile_select_c::closeErrErase() {
int temp1 = PaneTranceTitle(field_0x3930, g_fsHIO.field_0x08, 0.0f, g_fsHIO.field_0x48, 0, 1);
int temp4 = MessagePaneMove(0.0f, 0.0f, g_fsHIO.field_0x44, 0.0f, g_fsHIO.field_0x31, 0, 1);
int temp2, temp3;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp2 = PaneTranceRecTlt1(field_0x3930, g_fsHIO.field_0x0C, 0.0f, 0.0f, -(float)g_fsHIO.field_0x40, 0.0f, 0, 1);
temp3 = PaneTranceRecInfo1(field_0x3930, g_fsHIO.field_0x11, 0.0f, 0.0f, -(float)g_fsHIO.field_0x40, 0.0f, 0, 1);
@@ -426,7 +447,7 @@ void dFile_select_c::dataSelect() {
mDoAud_seStart(JA_SE_MSEL_OK_1);
mIconMode = 4;
field_0x2fc0[0].pane->hide();
if(field_0x3917[saveSlot]) {
if(field_0x3917[selectNum]) {
fopMsgM_messageGet(field_0x38e8[field_0x392d ^ 1], 0x1C);
}
menuColorChange();
@@ -434,9 +455,9 @@ void dFile_select_c::dataSelect() {
field_0x392b = 0x2;
}
else if(stick2->checkUpTrigger()) {
if(saveSlot != 0) {
if(selectNum != 0) {
mDoAud_seStart(JA_SE_MSEL_CURSOR);
saveSlot--;
selectNum--;
field_0x3948 = 0.0f;
field_0x3923 = 0xFF;
field_0x3930 = 0;
@@ -445,9 +466,9 @@ void dFile_select_c::dataSelect() {
}
}
else if(stick2->checkDownTrigger()) {
if(saveSlot != 2) {
if(selectNum != 2) {
mDoAud_seStart(JA_SE_MSEL_CURSOR);
saveSlot++;
selectNum++;
field_0x3948 = 0.0f;
field_0x3923 = 0x1;
field_0x3930 = 0;
@@ -462,7 +483,7 @@ void dFile_select_c::dataSelect() {
/* 80181810-80181B7C .text menuColorChange__14dFile_select_cFv */
void dFile_select_c::menuColorChange() {
#if VERSION > VERSION_DEMO
if(field_0x3914[saveSlot])
if(dataNew[selectNum])
#endif
{
((J2DPicture*)field_0x3618.pane)->setBlackWhite(JUtility::TColor(0x5A, 0x5A, 0x5A, field_0x38c0[0].a), JUtility::TColor(0xC8, 0xC8, 0xC8, field_0x38c8[0].a));
@@ -485,7 +506,7 @@ void dFile_select_c::SelectTitAnime() {
float temp1 = fopMsgM_valueIncrease(g_fsHIO.field_0x4F, field_0x3930, 5);
field_0x3948 = g_fsHIO.field_0x4E * temp1 * field_0x3923;
switch(saveSlot) {
switch(selectNum) {
case 0:
fopMsgM_paneTrans(field_0x1238, 0.0f, field_0x3948);
if(field_0x10e8[0].pane->isVisible()) {
@@ -512,7 +533,7 @@ void dFile_select_c::SelectTitAnime() {
break;
}
fopMsgM_paneTrans(field_0x2fc0, 0.0f, saveSlot * 85.0f + field_0x3948);
fopMsgM_paneTrans(field_0x2fc0, 0.0f, selectNum * 85.0f + field_0x3948);
field_0x3930++;
if(field_0x3930 > g_fsHIO.field_0x4F) {
field_0x3930 = 0;
@@ -527,7 +548,7 @@ void dFile_select_c::SelectTitAnime() {
/* 80181D7C-80181DCC .text recCursorMove__14dFile_select_cFv */
void dFile_select_c::recCursorMove() {
fopMsgM_paneTrans(field_0x2fc0, 0.0f, saveSlot * 85.0f);
fopMsgM_paneTrans(field_0x2fc0, 0.0f, selectNum * 85.0f);
}
/* 80181DCC-80181E9C .text recCursorAnime__14dFile_select_cFv */
@@ -561,7 +582,7 @@ void dFile_select_c::recCursorAlphaInit() {
/* 80181ED0-80182490 .text recDataPaneMove__14dFile_select_cFv */
int dFile_select_c::recDataPaneMove() {
int temp1, temp2, temp3, temp4, temp5, temp6;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp1 = PaneTranceRecTlt2(field_0x3930 - g_fsHIO.field_0x29, g_fsHIO.field_0x28, 0.0f, 0.0f, g_fsHIO.field_0x40, 0.0f, 0, 1);
temp2 = PaneTranceRecInfo2(field_0x3930 - g_fsHIO.field_0x29, g_fsHIO.field_0x28, 0.0f, 0.0f, g_fsHIO.field_0x40, 0.0f, 0, 1);
@@ -604,16 +625,16 @@ int dFile_select_c::recDataPaneMove() {
/* 80182490-801824DC .text dataSelMoveSet__14dFile_select_cFv */
void dFile_select_c::dataSelMoveSet() {
field_0x3930 = 0;
if(field_0x3917[saveSlot]) {
if(field_0x3917[selectNum]) {
fopMsgM_messageGet(field_0x38e8[2], 0x23);
}
else {
makeRecInfo(saveSlot);
makeRecInfo(selectNum);
}
}
/* 801824DC-801827A0 .text makeRecInfo__14dFile_select_cFUc */
void dFile_select_c::makeRecInfo(u8 param_1) {
void dFile_select_c::makeRecInfo(u8 i_dataNo) {
static const char* amariheartTex[] = {
"heart_03.bti",
"heart_02.bti",
@@ -622,7 +643,7 @@ void dFile_select_c::makeRecInfo(u8 param_1) {
int i;
u8* saveData = &mSaveDataPtr[param_1 * sizeof(card_gamedata)];
u8* saveData = &mSaveDataPtr[i_dataNo * sizeof(card_gamedata)];
u16 curHealth = *(u16*)(saveData + 2);
@@ -718,7 +739,7 @@ void dFile_select_c::dataSelectPaneMove() {
temp4 = 1;
temp1 = recDataPaneMove();
temp5 = 0;
if(field_0x3917[saveSlot]) {
if(field_0x3917[selectNum]) {
temp2 = MessagePaneMove(g_fsHIO.field_0x44, 0.0f, 0.0f, 0.0f, g_fsHIO.field_0x30 + field_0x3920, 1, 0);
temp3 = yesNoPaneMove(g_fsHIO.field_0x42, 0.0f, g_fsHIO.field_0x38 + field_0x3920, 1, 0);
temp4 = PaneAlphaTitleTxt(field_0x3930 - g_fsHIO.field_0x29, g_fsHIO.field_0x09);
@@ -738,7 +759,7 @@ void dFile_select_c::dataSelectPaneMove() {
menuCursorAlphaInit();
field_0x30d8.pane->show();
if(field_0x3917[saveSlot]) {
if(field_0x3917[selectNum]) {
field_0x3928 = 1;
yesNoCursorMove();
field_0x3930 = 0;
@@ -770,11 +791,11 @@ void dFile_select_c::menuSelect() {
stick->checkTrigger();
if(CPad_CHECK_TRIG_A(0)) {
if(field_0x3928 == 0) {
if(field_0x3914[saveSlot]) {
if(dataNew[selectNum]) {
mDoAud_seStart(JA_SE_MSEL_OK_1);
}
else if(saveStatus[saveSlot]) {
if(field_0x391D[saveSlot]) {
else if(dataExtra[selectNum]) {
if(field_0x391D[selectNum]) {
mDoAud_seStart(JA_SE_MSEL_OK_1);
}
else {
@@ -786,15 +807,15 @@ void dFile_select_c::menuSelect() {
}
field_0x3930 = 0;
field_0x30d8.pane->hide();
field_0x392c = 1;
g_dComIfG_gameInfo.save.setDataNum(saveSlot);
selectEnd = 1;
g_dComIfG_gameInfo.save.setDataNum(selectNum);
field_0x392b = 0x26;
}
else if(field_0x3928 == 1) {
mDoAud_seStart(JA_SE_MSEL_OK_1);
field_0x3930 = 0;
field_0x30d8.pane->hide();
field_0x3924 = saveSlot;
field_0x3924 = selectNum;
saveCopyBWColor();
field_0x3944 = 85.0f;
fopMsgM_messageGet(field_0x38e8[field_0x392d ^ 1], 0x1F);
@@ -834,7 +855,7 @@ void dFile_select_c::menuSelect() {
field_0x3928++;
if(
#if VERSION > VERSION_DEMO
field_0x3914[saveSlot] &&
dataNew[selectNum] &&
#endif
(field_0x3928 == 1 || field_0x3928 == 2)
) {
@@ -851,7 +872,7 @@ void dFile_select_c::menuSelect() {
field_0x3928--;
if(
#if VERSION > VERSION_DEMO
field_0x3914[saveSlot] &&
dataNew[selectNum] &&
#endif
(field_0x3928 == 1 || field_0x3928 == 2)
) {
@@ -1724,7 +1745,7 @@ void dFile_select_c::yesNoCursorMove() {
void dFile_select_c::CmdExecPaneMove0() {
u8 temp;
if(field_0x392a == 4) {
temp = saveSlot;
temp = selectNum;
}
else if(field_0x392a == 3) {
temp = field_0x3926;
@@ -1786,8 +1807,8 @@ void dFile_select_c::CmdExecPaneMove2() {
/* 80187ADC-80187BF8 .text CommandExec__14dFile_select_cFv */
void dFile_select_c::CommandExec() {
if(field_0x392a == 4) {
dComIfGs_setInitDataToCard(mSaveDataPtr, saveSlot);
mDoMemCdRWm_SetCheckSumGameData(mSaveDataPtr, saveSlot);
dComIfGs_setInitDataToCard(mSaveDataPtr, selectNum);
mDoMemCdRWm_SetCheckSumGameData(mSaveDataPtr, selectNum);
mDoMemCd_setPictWriteDataPtr(mSavePicDataPtr);
mDoMemCd_setCopyToPos(0xFF);
mDoMemCd_Save(mSaveDataPtr, 0x1650, 0);
@@ -1865,7 +1886,7 @@ void dFile_select_c::DataCopyWait() {
/* 80187DF0-80187FCC .text ErasePaneMoveOk__14dFile_select_cFv */
void dFile_select_c::ErasePaneMoveOk() {
int temp1;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp1 = PaneTranceRecInfo1(field_0x3930 - g_fsHIO.field_0x3A, g_fsHIO.field_0x11, 0.0f, 0.0f, 0.0f, g_fsHIO.field_0x3E, g_fsHIO.field_0x07, 1);
@@ -1893,7 +1914,7 @@ void dFile_select_c::ErasePaneMoveOk() {
/* 80187FCC-801881A8 .text ErasePaneMoveOk2__14dFile_select_cFv */
void dFile_select_c::ErasePaneMoveOk2() {
int temp1;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp1 = PaneTranceRecInfo1(field_0x3930 - g_fsHIO.field_0x3B, g_fsHIO.field_0x11, g_fsHIO.field_0x3C, 0.0f, 0.0f, 0.0f, g_fsHIO.field_0x07, 0);
@@ -1924,15 +1945,15 @@ void dFile_select_c::ErrorMsgPaneMove() {
if(temp1 == 1 && temp2 == 1) {
field_0x392d ^= 1;
int id;
int msgNo;
if(field_0x392a == 4) {
id = 0x26;
msgNo = 0x26;
}
else if(field_0x392a == 3) {
id = 0x27;
msgNo = 0x27;
}
fopMsgM_messageGet(field_0x38e8[2], id);
fopMsgM_messageGet(field_0x38e8[2], msgNo);
MessagePaneMoveSet(g_fsHIO.field_0x44, field_0x3944, 0.0f, field_0x3944, 1, 0);
field_0x3930 = 0;
field_0x392b = 0x16;
@@ -2009,7 +2030,7 @@ void dFile_select_c::backDatSelWait2() {
if(CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0) || CPad_CHECK_TRIG_X(0) || CPad_CHECK_TRIG_Y(0) || CPad_CHECK_TRIG_L(0) || CPad_CHECK_TRIG_R(0) || CPad_CHECK_TRIG_Z(0) || CPad_CHECK_TRIG_START(0) || field_0x3932 == 0) {
field_0x392e = 1;
field_0x3930 = 0;
field_0x392c = 2;
selectEnd = 2;
mIconMode = 3;
field_0x392b = 0x26;
}
@@ -2018,7 +2039,7 @@ void dFile_select_c::backDatSelWait2() {
/* 80188704-80188C70 .text DataSelectPaneBackMove__14dFile_select_cFsss */
int dFile_select_c::DataSelectPaneBackMove(s16 param_1, s16 param_2, s16 param_3) {
int temp1, temp2, temp3, temp4, temp5, temp6;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp1 = 1;
temp2 = 1;
@@ -3027,7 +3048,7 @@ void dFile_select_c::displayInit() {
#endif
mIconMode = 6;
field_0x392d = 0;
field_0x392c = 0;
selectEnd = 0;
field_0x392e = 0;
field_0x38e8[2][0] = 0;
field_0x3932 = g_fsHIO.field_0x4A;
@@ -3079,11 +3100,11 @@ void dFile_select_c::setSaveData() {
fopMsgM_paneTrans(pane[i], 0.0f, 0.0f);
if(mDoMemCdRWm_TestCheckSumGameData(data)) {
if(data[0x19B]) {
saveStatus[i] = 1;
dataExtra[i] = 1;
field_0x391D[i] = ((data[0x64D] / 16) & 1) ^ 1;
}
else {
saveStatus[i] = 0;
dataExtra[i] = 0;
field_0x391D[i] = 0;
}
@@ -3110,7 +3131,7 @@ void dFile_select_c::setSaveData() {
strcpy(field_0x3900[i], "");
field_0x3914[i] = 1;
dataNew[i] = 1;
}
else {
strcpy(field_0x38f4[i], (char*)(&data[0x157]));
@@ -3127,7 +3148,7 @@ void dFile_select_c::setSaveData() {
#endif
time.hours, time.minutes, time.seconds
);
field_0x3914[i] = 0;
dataNew[i] = 0;
}
field_0x3917[i] = 0;
@@ -3157,7 +3178,7 @@ void dFile_select_c::setSaveData() {
#endif
strcpy(field_0x3900[i], "");
field_0x3917[i] = 1;
field_0x3914[i] = 0;
dataNew[i] = 0;
}
data += 0x770;
@@ -3192,11 +3213,11 @@ void dFile_select_c::setSaveData() {
fopMsgM_paneTrans(pane, 0.0f, 0.0f);
if(mDoMemCdRWm_TestCheckSumGameData(data)) {
if(data[0x19B]) {
saveStatus[i] = 1;
dataExtra[i] = 1;
field_0x391D[i] = ((data[0x64D] / 16) & 1) ^ 1;
}
else {
saveStatus[i] = 0;
dataExtra[i] = 0;
field_0x391D[i] = 0;
}
@@ -3223,7 +3244,7 @@ void dFile_select_c::setSaveData() {
strcpy(field_0x3900[i], "");
field_0x3914[i] = 1;
dataNew[i] = 1;
}
else {
strcpy(field_0x38f4[i], (char*)(&data[0x157]));
@@ -3240,7 +3261,7 @@ void dFile_select_c::setSaveData() {
#endif
time.hours, time.minutes, time.seconds
);
field_0x3914[i] = 0;
dataNew[i] = 0;
}
field_0x3917[i] = 0;
@@ -3270,7 +3291,7 @@ void dFile_select_c::setSaveData() {
#endif
strcpy(field_0x3900[i], "");
field_0x3917[i] = 1;
field_0x3914[i] = 0;
dataNew[i] = 0;
}
data += 0x770;
@@ -3296,7 +3317,7 @@ void dFile_select_c::changeExtraColor(int param_1) {
field_0x11c8,
};
if(saveStatus[param_1] == 1) {
if(dataExtra[param_1] == 1) {
for(int i = 2; i < 7; i++) {
((J2DPicture*)pane0[param_1][i].pane)->setBlackWhite(JUtility::TColor(0x6E, 0x50, 0, 0), JUtility::TColor(0x96, 0x78, 0, 0xFF));
((J2DPicture*)pane0[param_1][i + 5].pane)->setBlackWhite(JUtility::TColor(0xDC, 0xA0, 0, 0), JUtility::TColor(0xFF, 0xB4, 0x0F, 0xFF));
@@ -3354,7 +3375,7 @@ void dFile_select_c::changeExtraColor(int param_1) {
((J2DPicture*)pane0[1].pane)->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0xDC, 0xFF, 0x64, 0xFF));
if(saveStatus[param_1] == 1) {
if(dataExtra[param_1] == 1) {
for(int i = 2; i < 7; i++) {
((J2DPicture*)pane0[i].pane)->setBlackWhite(JUtility::TColor(0x6E, 0x50, 0, 0), JUtility::TColor(0x96, 0x78, 0, 0xFF));
((J2DPicture*)pane0[i + 5].pane)->setBlackWhite(JUtility::TColor(0xDC, 0xA0, 0, 0), JUtility::TColor(0xFF, 0xB4, 0x0F, 0xFF));
@@ -3490,14 +3511,14 @@ void dFile_select_c::dataSelectEx() {
field_0x2fc0[0].pane->hide();
field_0x3930 = 0;
field_0x392e = 0;
field_0x392c = 3;
selectEnd = 3;
mIconMode = 3;
field_0x392b = 0x26;
}
else if(stick2->checkUpTrigger()) {
if(saveSlot != 0) {
if(selectNum != 0) {
mDoAud_seStart(JA_SE_MSEL_CURSOR);
saveSlot--;
selectNum--;
field_0x3948 = 0.0f;
field_0x3923 = 0xFF;
field_0x3930 = 0;
@@ -3506,9 +3527,9 @@ void dFile_select_c::dataSelectEx() {
}
}
else if(stick2->checkDownTrigger()) {
if(saveSlot != 2) {
if(selectNum != 2) {
mDoAud_seStart(JA_SE_MSEL_CURSOR);
saveSlot++;
selectNum++;
field_0x3948 = 0.0f;
field_0x3923 = 0x1;
field_0x3930 = 0;
@@ -3524,7 +3545,7 @@ void dFile_select_c::dataSelectEx() {
void dFile_select_c::ExSavePaneMove() {
int temp1 = recDataPaneMove();
int temp2;
if(field_0x3917[saveSlot]) {
if(field_0x3917[selectNum]) {
temp2 = MessagePaneMove(g_fsHIO.field_0x44, 0.0f, 0.0f, 0.0f, g_fsHIO.field_0x30 + field_0x3920, 1, 0);
}
else {
@@ -3554,9 +3575,9 @@ void dFile_select_c::YesNoSelectEx() {
int result = ExCardCheck();
if(result) {
field_0x392e = 1;
field_0x392f = result;
errType = result;
field_0x392a = 6;
field_0x392c = 2;
selectEnd = 2;
mIconMode = 3;
field_0x392b = 0x26;
}
@@ -3604,7 +3625,7 @@ void dFile_select_c::YesNoSelectEx() {
/* 8018D0CC-8018D2F4 .text ExSavePaneMove0__14dFile_select_cFv */
void dFile_select_c::ExSavePaneMove0() {
int temp1;
if(field_0x3917[saveSlot]) {
if(field_0x3917[selectNum]) {
temp1 = MessagePaneMove(0.0f, field_0x3944, g_fsHIO.field_0x46, field_0x3944, g_fsHIO.field_0x31, 0, 1);
}
else {
@@ -3688,8 +3709,8 @@ void dFile_select_c::ExSavePaneMove1() {
/* 8018D590-8018D654 .text ExDataSave__14dFile_select_cFv */
void dFile_select_c::ExDataSave() {
dComIfGs_reinit();
dComIfGs_setMemoryToCard(mSaveDataPtr, saveSlot);
mDoMemCdRWm_SetCheckSumGameData(mSaveDataPtr, saveSlot);
dComIfGs_setMemoryToCard(mSaveDataPtr, selectNum);
mDoMemCdRWm_SetCheckSumGameData(mSaveDataPtr, selectNum);
#if VERSION > VERSION_DEMO
for(int i = 0; i < 3; i++) {
@@ -3701,7 +3722,7 @@ void dFile_select_c::ExDataSave() {
mDoMemCd_setCopyToPos(0xFF);
mDoMemCd_setPictWriteDataPtr(mSavePicDataPtr);
#else
dComIfGs_setDataNum(saveSlot);
dComIfGs_setDataNum(selectNum);
mDoMemCd_setPictWriteDataPtr(NULL);
#endif
mDoMemCd_Save(mSaveDataPtr, 0x1650, 0);
@@ -3736,7 +3757,7 @@ void dFile_select_c::ExDataSaveWait() {
/* 8018D770-8018D9A0 .text ExDataSavePaneMoveOk__14dFile_select_cFv */
void dFile_select_c::ExDataSavePaneMoveOk() {
int temp1;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp1 = PaneTranceRecInfo1(field_0x3930 - g_fsHIO.field_0x3A, g_fsHIO.field_0x11, 0.0f, 0.0f, 0.0f, g_fsHIO.field_0x3E, g_fsHIO.field_0x07, 1);
break;
@@ -3763,7 +3784,7 @@ void dFile_select_c::ExDataSavePaneMoveOk() {
/* 8018D9A0-8018DB74 .text ExDataSavePaneMoveOk2__14dFile_select_cFv */
void dFile_select_c::ExDataSavePaneMoveOk2() {
int temp1;
switch(saveSlot) {
switch(selectNum) {
case 0:
temp1 = PaneTranceRecInfo1(field_0x3930 - g_fsHIO.field_0x3B, g_fsHIO.field_0x11, g_fsHIO.field_0x3C, 0.0f, 0.0f, 0.0f, g_fsHIO.field_0x07, 0);
break;
@@ -3779,7 +3800,7 @@ void dFile_select_c::ExDataSavePaneMoveOk2() {
field_0x3930++;
if(temp1 == 1 && temp2 == 1) {
field_0x392c = 1;
selectEnd = 1;
}
}
+6 -6
View File
@@ -142,8 +142,8 @@ BOOL dMenu_save_c::openNormal() {
rt = openForGameover();
break;
case 3:
if (field_0x53c != 0) {
if (field_0x53d == 2) {
if (errorFlag != 0) {
if (errorType == 2) {
rt = openForEnding2();
} else {
rt = TRUE;
@@ -160,8 +160,8 @@ BOOL dMenu_save_c::openNormal() {
field_0x394.pane->show();
if (useType == 3) {
if (field_0x53c != 0) {
if (field_0x53d == 2) {
if (errorFlag != 0) {
if (errorType == 2) {
field_0x53a = 0;
field_0x535 = 1;
proc = PROC_CAN_NOT_SAVE;
@@ -1648,8 +1648,8 @@ void dMenu_save_c::paneTransInit() {
/* 801DA2C8-801DA3C4 .text displayInit__12dMenu_save_cFv */
void dMenu_save_c::displayInit() {
field_0x536 = 0;
field_0x53c = 0;
field_0x53d = 0;
errorFlag = 0;
errorType = 0;
field_0x53b = 0;
proc = PROC_SAVE_WAIT;
saveStatus = 1;
+3 -1
View File
@@ -115,12 +115,14 @@ void dName_c::_delete() {
mDoExt_removeMesgFont();
delete stick;
archive->removeResourceAll();
mDoHIO_deleteChild(g_nmHIO.id); // supposed to be _deleteSp?
mDoHIO_deleteChild(g_nmHIO.id);
}
#if VERSION == VERSION_DEMO
void dName_c::_deleteSp() {
mDoHIO_deleteChild(g_nmHIO.id);
}
#endif
/* 80216248-80216268 .text _move__7dName_cFv */
void dName_c::_move() {
+367 -58
View File
@@ -19,6 +19,7 @@
#include "f_op/f_op_overlap_mng.h"
#include "f_op/f_op_scene_mng.h"
#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_dvd_thread.h"
#include "m_Do/m_Do_graphic.h"
#include "m_Do/m_Do_hostIO.h"
@@ -100,17 +101,27 @@ cPhs_State resLoad(request_of_phase_process_class* phase, char* resName) {
/* 8022F9FC-802301C8 .text create__10dScnName_cFv */
cPhs_State dScnName_c::create() {
#if VERSION == VERSION_DEMO
dComIfGp_setNextStage("Name", 0, -1);
#else
dComIfGp_offEnableNextStage();
dComIfGp_setNextStage("Name", 0, 0);
#endif
dComIfGp_setStartStage(dComIfGp_getNextStartStage());
dComIfGp_offEnableNextStage();
cPhs_State rt = resLoad(&mPhs, "Stage");
if (rt == cPhs_COMPLEATE_e) {
#if VERSION == VERSION_DEMO
heap = mDoExt_createSolidHeapFromGameToCurrent(0x68000, 0);
#else
heap = JKRCreateExpHeap(0x68000, mDoExt_getGameHeap(), false);
JUT_ASSERT(0x1c8, heap != NULL);
#endif
JUT_ASSERT(VERSION_SELECT(303, 305, 456, 459), heap != NULL);
#if VERSION > VERSION_DEMO
oldHeap = mDoExt_setCurrentHeap(heap);
#endif
mArchive = new JKRMemArchive();
mArchive->mountFixed(dComIfG_getStageRes("Stage", 0x17), JKRMEMBREAK_FLAG_UNKNOWN0);
@@ -118,48 +129,61 @@ cPhs_State dScnName_c::create() {
buttonIconCreate();
dFs_c = new dFile_select_c();
JUT_ASSERT(470, dFs_c != NULL);
dFs_c->field_0x0 = mArchive;
JUT_ASSERT(VERSION_SELECT(316, 319, 470, 473), dFs_c != NULL);
dFs_c->archive = mArchive;
savePicDatabuf = new (0x20) card_pictdata[3 * 3];
JUT_ASSERT(476, savePicDatabuf != NULL);
JUT_ASSERT(VERSION_SELECT(322, 325, 476, 483), savePicDatabuf != NULL);
if (fpcM_GetName(this) == fpcNm_NAME_SCENE_e) {
dFs_c->setUseType(0);
dNm_c = new dName_c();
JUT_ASSERT(484, dNm_c != NULL);
JUT_ASSERT(VERSION_SELECT(330, 333, 484, 491), dNm_c != NULL);
dNm_c->_create();
dFe_c = new dFile_error_c();
JUT_ASSERT(489, dFe_c != NULL);
JUT_ASSERT(VERSION_SELECT(335, 338, 489, 496), dFe_c != NULL);
dFe_c->_create();
#if VERSION > VERSION_DEMO
dMs_c = NULL;
#endif
dComIfGs_setNewFile(0);
dComIfGs_setNoFile(0);
}
if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e) {
#if VERSION > VERSION_DEMO
dComIfGs_setClearCount(1);
#endif
dFs_c->setUseType(1);
dMs_c = new dMenu_save_c();
JUT_ASSERT(511, dMs_c != NULL);
JUT_ASSERT(VERSION_SELECT(350, 360, 511, 518), dMs_c != NULL);
dMs_c->setUseType(3);
dMs_c->_create();
dFe_c = NULL;
#if VERSION > VERSION_DEMO
dNm_c = NULL;
#endif
}
dFs_c->_create();
g_snHIO.mNo = mDoHIO_root.m_subroot.createChild("名前登録シーン", &g_snHIO);
#if VERSION == VERSION_DEMO
mDoExt_restoreCurrentHeap();
mDoExt_adjustSolidHeap(heap);
#endif
dComIfGp_setWindowNum(1);
dComIfGp_setWindow(0, 0.0f, 0.0f, mDoMch_render_c::getFbWidth(), mDoMch_render_c::getEfbHeight(), 0.0f, 1.0f, 0, 2);
dComIfGp_setCamera(0, &mCamera);
dDlst_window_c* window = dComIfGp_getWindow(0);
view_port_class* viewport = window->getViewPort();
fopCamM_SetNear(&mCamera, 5.0f);
fopCamM_SetFar(&mCamera, 160000.0f);
fopCamM_SetFovy(&mCamera, 60.0f);
f32 aspect = dComIfGp_getWindow(0)->getViewPort()->mWidth / dComIfGp_getWindow(0)->getViewPort()->mHeight;
fopCamM_SetAspect(&mCamera, aspect * fapGmHIO_getAspectRatio());
fopCamM_SetAspect(&mCamera, fapGmHIO_getAspectRatio() * (viewport->mWidth / viewport->mHeight));
fopCamM_SetEye(&mCamera, 9377.0f, 0.0f, 7644.0f);
fopCamM_SetCenter(&mCamera, 0.0f, 6311.0f, 1000.0f);
fopCamM_SetBank(&mCamera, 0);
@@ -193,20 +217,51 @@ cPhs_State dScnName_c::create() {
field_0x558 = g_snHIO.field_0x5;
field_0x1bb8 = 0;
#if VERSION == VERSION_DEMO
mMainProc = 0xE;
mDrawProc = 4;
#else
if (fpcM_GetName(this) == fpcNm_NAME_SCENE_e) {
mMainProc = 0;
field_0x556 = 0;
mMemCardCheckProc = 0;
mDrawProc = 0;
} else if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e) {
mMainProc = 10;
mDrawProc = 3;
}
#endif
JFWDisplay::getManager()->setTickRate(OS_TIMER_CLOCK / 30);
}
return rt;
}
#if VERSION == VERSION_PAL
void dScnName_c::bmg_data_read_all() {
/* Nonmatching */
dComIfGp_getMsgDtArchive()->unmount();
field_0x1c4 = mDoDvdThd_mountXArchive_c::create("/res/Msg/data0/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1c8 = mDoDvdThd_mountXArchive_c::create("/res/Msg/data1/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1cc = mDoDvdThd_mountXArchive_c::create("/res/Msg/data2/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1d0 = mDoDvdThd_mountXArchive_c::create("/res/Msg/data3/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1d4 = mDoDvdThd_mountXArchive_c::create("/res/Msg/data4/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::bmg_data_set() {
/* Nonmatching */
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::tex_data_set() {
/* Nonmatching */
}
#endif
/* 802301C8-802301FC .text cloth_create__10dScnName_cFv */
void dScnName_c::cloth_create() {
cloth2D_create();
@@ -224,7 +279,7 @@ void dScnName_c::cloth_move() {
void dScnName_c::cloth2D_create() {
JKRArchive* clothRes = dComIfGp_getClothResArchive();
cloth.cloth_c = new dMCloth_c();
JUT_ASSERT(801, cloth.cloth_c != NULL);
JUT_ASSERT(VERSION_SELECT(504, 517, 801, 805), cloth.cloth_c != NULL);
cloth.cloth_c->setArchive(clothRes);
cloth.cloth_c->setClothType(MENU_CLOTH_TYPE_FILE_SELECT);
}
@@ -239,7 +294,7 @@ static void dummy() {
/* 802302F8-80230500 .text buttonIconCreate__10dScnName_cFv */
void dScnName_c::buttonIconCreate() {
btnIcon.scr = new J2DScreen();
JUT_ASSERT(866, btnIcon.scr != NULL);
JUT_ASSERT(VERSION_SELECT(569, 582, 866, 870), btnIcon.scr != NULL);
btnIcon.scr->set("main_parts_fileselect.blo", mArchive);
fopMsgM_setPaneData(&field_0x43c, btnIcon.scr->search('cent'));
fopMsgM_setPaneData(&field_0x474, btnIcon.scr->search('bab'));
@@ -251,6 +306,36 @@ void dScnName_c::buttonIconCreate() {
field_0x1bb6 = 6;
}
#if VERSION == VERSION_PAL
void dScnName_c::buttonIconTexChange(u8, u8) {
/* Nonmatching */
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::PaneAlphaLangTxt(s16, u8) {
/* Nonmatching */
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::languageTexChange() {
/* Nonmatching */
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::langTexChg() {
/* Nonmatching */
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::langTexChgFast() {
/* Nonmatching */
}
#endif
/* 80230500-802305E0 .text paneTransButtonIcon__10dScnName_cFsUcffUc */
BOOL dScnName_c::paneTransButtonIcon(s16 param_1, u8 param_2, f32 param_3, f32 param_4, u8 param_5) {
if (param_1 < 0) {
@@ -332,9 +417,12 @@ BOOL dScnName_c::execute() {
dComIfG_resetToOpening(this);
}
#if VERSION > VERSION_DEMO
if (mDoRst::isReset()) {
return TRUE;
}
#endif
cloth_move();
if (dFe_c != NULL) {
@@ -362,8 +450,10 @@ void dScnName_c::setView() {
/* 80230714-802307EC .text draw__10dScnName_cFv */
BOOL dScnName_c::draw() {
setView();
for (create_tag_class* pTag = fopDwIt_Begin(); pTag != NULL; pTag = fopDwIt_Next(pTag))
fpcM_Draw(pTag->mpTagData);
for (create_tag_class* pTag = fopDwIt_Begin(); pTag != NULL; pTag = fopDwIt_Next(pTag)) {
void* process = pTag->mpTagData;
fpcM_Draw(process);
}
if (field_0x55d && !g_snHIO.field_0xb) {
dComIfGd_set2DOpa(&cloth);
}
@@ -374,6 +464,21 @@ BOOL dScnName_c::draw() {
/* 802307EC-80230A14 .text __dt__10dScnName_cFv */
dScnName_c::~dScnName_c() {
#if VERSION == VERSION_DEMO
mArchive->unmountFixed();
delete cloth.cloth_c;
dNm_c->_deleteSp();
dFs_c->_deleteSp();
if (dFe_c) {
dFe_c->_deleteSp();
}
s8 no = g_snHIO.mNo;
mDoHIO_root.m_subroot.deleteChild(no);
mDoExt_destroySolidHeap(heap);
dComIfG_deleteStageRes("Stage");
dComIfGp_setWindowNum(0);
dComIfGs_setRestartOption(0);
#else
dFs_c->_delete();
delete dFs_c;
if (dNm_c) {
@@ -392,42 +497,144 @@ dScnName_c::~dScnName_c() {
delete btnIcon.scr;
mArchive->unmountFixed();
delete cloth.cloth_c;
mDoHIO_root.m_subroot.deleteChild(g_snHIO.mNo);
s8 no = g_snHIO.mNo;
mDoHIO_root.m_subroot.deleteChild(no);
JKRSetCurrentHeap(oldHeap);
heap->destroy();
dComIfG_deleteStageRes("Stage");
dComIfGp_setWindowNum(0);
dComIfGs_setRestartOption(0);
#endif
}
/* 80230A14-80230AD0 .text MemCardCheckMain__10dScnName_cFv */
void dScnName_c::MemCardCheckMain() {
/* Nonmatching */
if (mDoMemCd_getProbeStat() == 0 || mDoMemCd_getProbeStat() == 1) {
#if VERSION > VERSION_DEMO
if (!mDoRst::isReset())
#endif
{
if (field_0x1bb8 == 0 && dFe_c->getStatus() == 1) {
dFe_c->closeMessage();
field_0x55a = 0xFF;
field_0x55b = 0;
mMemCardCheckProc = 2;
}
mDoMemCd_clearProbeStat();
}
}
(this->*MemCardCheckProc[mMemCardCheckProc])();
}
/* 80230AD0-80230C78 .text MemCardStatCheck__10dScnName_cFv */
void dScnName_c::MemCardStatCheck() {
/* Nonmatching */
if (field_0x558 > 0) {
field_0x558--;
return;
}
switch (mDoMemCd_getStatus(0)) {
case mDoMemCd_Ctrl_c::CARD_STAT_WAIT:
dFe_c->setErrMessage(9, 0);
field_0x55b = 4;
field_0x55a = 0x1A;
mMemCardCheckProc = 2;
break;
case 8:
dFe_c->setErrMessage(0xA, 0);
field_0x55b = 4;
field_0x55a = 0x1A;
mMemCardCheckProc = 2;
break;
case 9:
dFe_c->setErrMessage(0xB, 0);
field_0x55b = 4;
field_0x55a = 0x1A;
mMemCardCheckProc = 2;
break;
case mDoMemCd_Ctrl_c::CARD_STAT_WRONG_DEVICE:
dFe_c->setErrMessage(0xC, 0);
field_0x55b = 4;
field_0x55a = 0x1A;
mMemCardCheckProc = 2;
break;
case mDoMemCd_Ctrl_c::CARD_STAT_ENCODING:
case mDoMemCd_Ctrl_c::CARD_STAT_ERROR:
dFe_c->setErrMessage(0x2D, 0);
mMemCardCheckProc = 5;
break;
case 11:
case mDoMemCd_Ctrl_c::CARD_STAT_IOERROR:
dFe_c->setErrMessage(0xF, 0);
mMemCardCheckProc = 3;
field_0x55a = 0x60;
field_0x55c = 0x61;
field_0x55b = 0xD;
break;
case mDoMemCd_Ctrl_c::CARD_STAT_CREATE:
mDoMemCd_setPictDataPtr((u8*)savePicDatabuf);
mDoMemCd_Load();
mMemCardCheckProc = 1;
break;
case mDoMemCd_Ctrl_c::CARD_STAT_RESTORE:
dFe_c->setErrMessage(0x15, 0);
mMemCardCheckProc = 9;
break;
}
}
/* 80230C78-80230D20 .text MemCardLoadWait__10dScnName_cFv */
void dScnName_c::MemCardLoadWait() {
/* Nonmatching */
int rt = mDoMemCd_LoadSync(saveMemory, sizeof(saveMemory), 0);
if (rt == 0)
return;
if (rt == 1) {
dComIfGs_setMemCardCheckID(mDoMemCd_getCardSerialNo());
#if VERSION > VERSION_JPN
if (dComIfGs_getNoFile() != 0) {
dComIfGs_setNoFile(0);
}
#endif
mMainProc = 1;
mDrawProc = 4;
} else if (rt == 2) {
mMemCardCheckProc = 0;
}
}
/* 80230D20-80230D74 .text MemCardErrMsgWaitKey__10dScnName_cFv */
void dScnName_c::MemCardErrMsgWaitKey() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (field_0x55a != 0xFF) {
dFe_c->setErrMessage(field_0x55a, 0);
}
mMemCardCheckProc = field_0x55b;
}
}
/* 80230D74-80230DE8 .text MemCardErrMsgWaitKey2__10dScnName_cFv */
void dScnName_c::MemCardErrMsgWaitKey2() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (field_0x55a != 0xFF) {
dFe_c->setErrMessage(field_0x55a, 0);
field_0x55a = 0xFF;
mMemCardCheckProc = 3;
} else {
dFe_c->setErrMessage(field_0x55c, 0);
mMemCardCheckProc = field_0x55b;
}
}
}
/* 80230DE8-80230E50 .text MemCardGotoIPLSelect__10dScnName_cFv */
void dScnName_c::MemCardGotoIPLSelect() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (dFe_c->getYesNo() != 0) {
mMemCardCheckProc = 0xE;
} else {
dFe_c->setErrMessage(0x1A, 0);
mMemCardCheckProc = 4;
}
}
}
/* 80230E50-80230E7C .text MemCardGotoIPL__10dScnName_cFv */
@@ -437,17 +644,53 @@ void dScnName_c::MemCardGotoIPL() {
/* 80230E7C-80230F4C .text MemCardErrMsgWaitNoSaveSel__10dScnName_cFv */
void dScnName_c::MemCardErrMsgWaitNoSaveSel() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (dFe_c->getYesNo() != 0) {
dComIfGs_setInitDataToCard(saveMemory, 0);
mDoMemCdRWm_SetCheckSumGameData(saveMemory, 0);
dComIfGs_setInitDataToCard(saveMemory, 1);
mDoMemCdRWm_SetCheckSumGameData(saveMemory, 1);
dComIfGs_setInitDataToCard(saveMemory, 2);
mDoMemCdRWm_SetCheckSumGameData(saveMemory, 2);
dComIfGs_setNoFile(1);
mMainProc = 1;
mDrawProc = 4;
} else {
mMemCardCheckProc = 0;
}
}
}
/* 80230F4C-80230FD0 .text MemCardErrMsgWaitFormatSel__10dScnName_cFv */
void dScnName_c::MemCardErrMsgWaitFormatSel() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (dFe_c->getYesNo() != 0) {
dFe_c->setErrMessage(0x11, 0);
mMemCardCheckProc = 6;
} else {
dFe_c->setErrMessage(0x10, 0);
field_0x55b = 4;
field_0x55a = 0x1A;
mMemCardCheckProc = 2;
}
}
}
/* 80230FD0-8023106C .text MemCardErrMsgWaitFormatSel2__10dScnName_cFv */
void dScnName_c::MemCardErrMsgWaitFormatSel2() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (dFe_c->getYesNo() != 0) {
mDoMemCd_Format();
dFe_c->setErrMessage(0x12, 1);
mMemCardCheckProc = 7;
field_0x1bb8 = 1;
} else {
dFe_c->setErrMessage(0x10, 0);
field_0x55b = 4;
field_0x55a = 0x1A;
mMemCardCheckProc = 2;
}
}
}
/* 8023106C-802310C0 .text MemCardFormat__10dScnName_cFv */
@@ -455,18 +698,51 @@ void dScnName_c::MemCardFormat() {
field_0x1bbc = mDoMemCd_FormatSync();
if (field_0x1bbc != 0) {
dFe_c->closeMessage();
field_0x556 = 8;
mMemCardCheckProc = 8;
}
}
/* 802310C0-8023117C .text MemCardFormatCheck__10dScnName_cFv */
void dScnName_c::MemCardFormatCheck() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (field_0x1bbc == 2) {
field_0x55a = 0xFF;
field_0x55b = 0;
dFe_c->setErrMessage(0x14, 0);
mMemCardCheckProc = 2;
} else if (field_0x1bbc == 1) {
field_0x55a = 0xFF;
field_0x55b = 0;
dFe_c->setErrMessage(0x13, 0);
dFe_c->setTimeCountDownMode();
mMemCardCheckProc = 2;
}
field_0x1bb8 = 0;
field_0x55a = 0xFF;
}
}
/* 8023117C-80231284 .text MemCardMakeGameFileSel__10dScnName_cFv */
void dScnName_c::MemCardMakeGameFileSel() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (dFe_c->getYesNo() != 0) {
dComIfGs_setInitDataToCard(saveMemory, 0);
mDoMemCdRWm_SetCheckSumGameData(saveMemory, 0);
dComIfGs_setInitDataToCard(saveMemory, 1);
mDoMemCdRWm_SetCheckSumGameData(saveMemory, 1);
dComIfGs_setInitDataToCard(saveMemory, 2);
mDoMemCdRWm_SetCheckSumGameData(saveMemory, 2);
mDoMemCd_Save(saveMemory, sizeof(saveMemory), 0);
dFe_c->setErrMessage(0x17, 1);
mMemCardCheckProc = 0xA;
field_0x1bb8 = 1;
} else {
dFe_c->setErrMessage(0x16, 0);
field_0x55b = 4;
field_0x55a = 0x1A;
mMemCardCheckProc = 2;
}
}
}
/* 80231284-802312D8 .text MemCardMakeGameFile__10dScnName_cFv */
@@ -474,13 +750,28 @@ void dScnName_c::MemCardMakeGameFile() {
field_0x1bbc = mDoMemCd_SaveSync();
if (field_0x1bbc != 0) {
dFe_c->closeMessage();
field_0x556 = 11;
mMemCardCheckProc = 11;
}
}
/* 802312D8-80231398 .text MemCardMakeGameFileCheck__10dScnName_cFv */
void dScnName_c::MemCardMakeGameFileCheck() {
/* Nonmatching */
if (dFe_c->getStatus() == 2) {
if (field_0x1bbc == 2) {
field_0x55a = 0xFF;
field_0x55b = 0;
dFe_c->setErrMessage(0x18, 0);
mMemCardCheckProc = 2;
} else if (field_0x1bbc == 1) {
dComIfGs_setNewFile(1);
field_0x55a = 0xFF;
field_0x55b = 0xC;
dFe_c->setErrMessage(0x19, 0);
mMemCardCheckProc = 2;
}
field_0x1bb8 = 0;
field_0x55a = 0xFF;
}
}
/* 80231398-802313AC .text MemCardGotoFileSelect__10dScnName_cFv */
@@ -494,6 +785,15 @@ void dScnName_c::MemCardCheckDbg() {}
/* 802313B0-80231428 .text MemCardCheckDbgWait__10dScnName_cFv */
void dScnName_c::MemCardCheckDbgWait() {
if (dFe_c->getStatus() == 0) {
if (CPad_CHECK_TRIG_Y(0)) {
dFe_c->initial();
mMemCardCheckProc = 0xF;
} else if (CPad_CHECK_TRIG_Z(0)) {
mMainProc = 1;
mDrawProc = 4;
}
}
}
/* 80231428-80231454 .text FileErrorDraw__10dScnName_cFv */
@@ -533,14 +833,14 @@ void dScnName_c::NoteOpenWait() {
}
dFs_c->initial();
mMainProc = 3;
field_0x555 = 0;
mOpenProc = 0;
mDrawProc = 1;
}
}
/* 802315A8-802315E0 .text FileSelectOpen__10dScnName_cFv */
void dScnName_c::FileSelectOpen() {
(this->*(FileSelOpenProc[field_0x555]))();
(this->*(FileSelOpenProc[mOpenProc]))();
}
/* 802315E0-802319B4 .text buttonIconProc__10dScnName_cFv */
@@ -666,28 +966,31 @@ void dScnName_c::FileSelectMain() {
/* 80231A8C-80231CB8 .text FileSelectMainNormal__10dScnName_cFv */
void dScnName_c::FileSelectMainNormal() {
/* Nonmatching */
switch (dFs_c->field_0x392c) {
switch (dFs_c->isSelectEnd()) {
case 1:
field_0x1bb9 = 0;
if (dFs_c->field_0x3914[dFs_c->saveSlot] != 0) {
if (dFs_c->isDataNew(dFs_c->getSelectNum())) {
field_0x1bb6 = 3;
mMainProc = 5;
} else {
dComIfGs_setCardToMemory(saveMemory, dFs_c->saveSlot);
if (dFs_c->saveStatus[dFs_c->saveSlot] != 0 && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3510)) {
dComIfGs_setCardToMemory(saveMemory, dFs_c->getSelectNum());
if (dFs_c->isDataExtra(dFs_c->getSelectNum()) && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3510)) {
field_0x1bb9 = 1;
}
u8 pictureNum = dComIfGs_getPictureNum();
if (dComIfGs_getPictureNum() != 0) {
u8 failed = 0;
u8 boxDataIdx = 0;
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(dSv_event_flag_c::UNK_89FF) & mask)) {
int i;
u8 failed;
u8 r25;
u8 boxDataIdx;
card_pictdata* workBuf;
failed = 0;
boxDataIdx = 0;
r25 = 0;
workBuf = &savePicDatabuf[dFs_c->getSelectNum() * 3];
for (i = 0; i < 3; i++) {
if ((dComIfGs_getEventReg(dSv_event_flag_c::UNK_89FF) & (1 << i))) {
workBuf++;
continue;
}
@@ -729,8 +1032,7 @@ void dScnName_c::FileSelectMainNormal() {
/* 80231CB8-80231D00 .text FileSelectMainExSave__10dScnName_cFv */
void dScnName_c::FileSelectMainExSave() {
/* Nonmatching */
switch (dFs_c->field_0x392c) {
switch (dFs_c->isSelectEnd()) {
case 1:
field_0x558 = 0x2d;
mMainProc = 13;
@@ -757,25 +1059,32 @@ void dScnName_c::ResetWait() {
/* 80231D28-80231E9C .text FileSelectClose__10dScnName_cFv */
void dScnName_c::FileSelectClose() {
if (dFs_c->_close() == 1) {
switch (dFs_c->field_0x392c) {
switch (dFs_c->isSelectEnd()) {
case 2:
#if VERSION == VERSION_DEMO
cloth.cloth_c->alpha_out();
#endif
if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e) {
dMs_c->initialize();
dMs_c->field_0x53c = 1;
dMs_c->field_0x53d = dFs_c->field_0x392f; // getErrType?
if (dFs_c->field_0x392f == 2) {
dMs_c->setErrorFlag(1);
dMs_c->setErrorType(dFs_c->getErrType());
if (dFs_c->getErrType() == 2) {
dMs_c->initializeEx();
}
mMainProc = 10;
mDrawProc = 3;
} else {
#if VERSION > VERSION_DEMO
field_0x55d = 0;
cloth.cloth_c->init();
#endif
mMainProc = 0;
field_0x556 = 0;
mMemCardCheckProc = 0;
mDrawProc = 0;
}
#if VERSION > VERSION_DEMO
cloth.cloth_c->alpha_out();
#endif
break;
case 3:
cloth.cloth_c->alpha_out();
@@ -791,7 +1100,7 @@ void dScnName_c::FileSelectClose() {
}
dNm_c->initial();
mMainProc = 6;
field_0x555 = 0;
mOpenProc = 0;
mDrawProc = 2;
break;
}
@@ -805,7 +1114,7 @@ void dScnName_c::FileSelectDraw() {
/* 80231EC0-80231EF8 .text NameInOpen__10dScnName_cFv */
void dScnName_c::NameInOpen() {
(this->*(NameOpenProc[field_0x555]))();
(this->*(NameOpenProc[mOpenProc]))();
}
/* 80231EF8-80231F44 .text NameOpenMain__10dScnName_cFv */
@@ -842,7 +1151,7 @@ void dScnName_c::NameInClose() {
if ((BOOL)dNm_c->_close() == TRUE) {
dFs_c->initial();
mMainProc = 3;
field_0x555 = 0;
mOpenProc = 0;
mDrawProc = 1;
}
}
@@ -922,9 +1231,10 @@ void dScnName_c::changeGameScene() {
return;
dComIfGs_gameStart();
u32 procName = field_0x55f ? fpcNm_OPEN_SCENE_e : fpcNm_PLAY_SCENE_e;
if (fopScnM_ChangeReq(this, procName, fpcNm_OVERLAP0_e, 5)) {
g_dComIfG_gameInfo.save.getDan().mStageNo = -1;
if (fopScnM_ChangeReq(this, field_0x55f ? fpcNm_OPEN_SCENE_e : fpcNm_PLAY_SCENE_e, fpcNm_OVERLAP0_e, 5)) {
#if VERSION > VERSION_DEMO
dComIfGs_resetDan();
#endif
dComIfGs_setRestartRoomParam(0);
mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(), dComIfGp_getNextStageLayer());
}
@@ -968,8 +1278,7 @@ void dDlst_BTICN_c::draw() {
void dDlst_FLSEL_CLOTH_c::draw() {
Mtx44 mtx;
view_port_class* viewport = dComIfGp_getCurrentViewport();
f32 aspect = viewport->mWidth / viewport->mHeight;
C_MTXPerspective(mtx, 30.0f, aspect * fapGmHIO_getAspectRatio(), 1.0f, 100000.0f);
C_MTXPerspective(mtx, 30.0f, fapGmHIO_getAspectRatio() * (viewport->mWidth / viewport->mHeight), 1.0f, 100000.0f);
GXSetProjection(mtx, GX_PERSPECTIVE);
cloth_c->draw(0.0f, (GXColor){0xe3, 0xff, 0xb3, 0xff}, (GXColor){0x00, 0x00, 0x00, 0x00}, 0);
dComIfGp_getCurrentGrafPort()->setPort();