From 03d27aa14389e648f51df2bc055ee3d53a3b67f2 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Tue, 18 Aug 2026 15:10:27 -0400 Subject: d_s_name equivalent except PAL --- src/d/d_file_error.cpp | 4 +- src/d/d_file_select.cpp | 171 ++++++++++--------- src/d/d_menu_save.cpp | 12 +- src/d/d_name.cpp | 4 +- src/d/d_s_name.cpp | 425 +++++++++++++++++++++++++++++++++++++++++------- 5 files changed, 474 insertions(+), 142 deletions(-) (limited to 'src/d') diff --git a/src/d/d_file_error.cpp b/src/d/d_file_error.cpp index e100415b..a8c50d1c 100644 --- a/src/d/d_file_error.cpp +++ b/src/d/d_file_error.cpp @@ -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); diff --git a/src/d/d_file_select.cpp b/src/d/d_file_select.cpp index c81c4818..3279e8c9 100644 --- a/src/d/d_file_select.cpp +++ b/src/d/d_file_select.cpp @@ -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; } } diff --git a/src/d/d_menu_save.cpp b/src/d/d_menu_save.cpp index 9885120c..9a4160b5 100644 --- a/src/d/d_menu_save.cpp +++ b/src/d/d_menu_save.cpp @@ -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; diff --git a/src/d/d_name.cpp b/src/d/d_name.cpp index af6919ce..647193dd 100644 --- a/src/d/d_name.cpp +++ b/src/d/d_name.cpp @@ -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() { diff --git a/src/d/d_s_name.cpp b/src/d/d_s_name.cpp index 5dc384ea..966ec415 100644 --- a/src/d/d_s_name.cpp +++ b/src/d/d_s_name.cpp @@ -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(); -- cgit v1.2.3