mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 21:30:47 -04:00
1898 lines
57 KiB
C++
1898 lines
57 KiB
C++
#include "d/dolzel.h" // IWYU pragma: keep
|
|
#include "d/d_menu_save.h"
|
|
#include "d/d_file_error.h"
|
|
#include "d/d_meter.h"
|
|
#include "m_Do/m_Do_Reset.h"
|
|
#include "m_Do/m_Do_MemCard.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
|
|
/* 801D5DB8-801D5E8C .text __ct__9dMs_HIO_cFv */
|
|
dMs_HIO_c::dMs_HIO_c() {
|
|
field_0x5 = 5;
|
|
field_0x6 = 0;
|
|
field_0x7 = 0;
|
|
field_0x8 = 5;
|
|
field_0xc = -500;
|
|
field_0xe = 200;
|
|
field_0x9 = 0;
|
|
field_0xa = 0;
|
|
field_0xb = 3;
|
|
field_0x10 = 5;
|
|
field_0x11 = 8;
|
|
field_0x12 = 5;
|
|
field_0x13 = 0;
|
|
field_0x14 = -100;
|
|
field_0x16 = 150;
|
|
field_0x18 = 5;
|
|
field_0x19 = 8;
|
|
field_0x1a = 5;
|
|
field_0x1b = 6;
|
|
field_0x1c = 2;
|
|
field_0x1e = 200;
|
|
field_0x20 = 12;
|
|
field_0x21 = 140;
|
|
field_0x22 = 70;
|
|
field_0x23 = 6;
|
|
field_0x24 = 8;
|
|
field_0x25 = 0;
|
|
field_0x26 = 3;
|
|
field_0x28 = 90;
|
|
field_0x29 = 10;
|
|
field_0x2a = 0;
|
|
field_0x2c = -60;
|
|
field_0x2e = 0;
|
|
}
|
|
|
|
dMs_HIO_c g_msHIO;
|
|
|
|
/* 801D5E8C-801D6140 .text _create__12dMenu_save_cFv */
|
|
void dMenu_save_c::_create() {
|
|
MenuSave.Scr = new J2DScreen();
|
|
JUT_ASSERT(VERSION_SELECT(165, 165, 165, 165), MenuSave.Scr != NULL);
|
|
|
|
stick = new STControl(5, 2, 3, 2);
|
|
JUT_ASSERT(VERSION_SELECT(170, 170, 170, 170), stick != NULL);
|
|
|
|
archive = dComIfGp_getSaveResArchive();
|
|
JUT_ASSERT(VERSION_SELECT(174, 174, 174, 174), archive != NULL);
|
|
|
|
MenuSave.Scr->set("menu_save.blo", archive);
|
|
|
|
MenuSave.font = mDoExt_getMesgFont();
|
|
JUT_ASSERT(VERSION_SELECT(180, 180, 180, 180), MenuSave.font != NULL);
|
|
|
|
dFe_c = new dFile_error_c();
|
|
JUT_ASSERT(VERSION_SELECT(184, 184, 184, 184), dFe_c != NULL);
|
|
dFe_c->_create();
|
|
|
|
g_msHIO.id = mDoHIO_createChild("セーブ画面", &g_msHIO);
|
|
|
|
screenSet();
|
|
displayInit();
|
|
paneTransInit();
|
|
}
|
|
|
|
typedef void (dMenu_save_c::*menuProcFunc)();
|
|
menuProcFunc MenuSaveProc[] = {
|
|
&dMenu_save_c::saveQuestion,
|
|
&dMenu_save_c::memCardCheck,
|
|
&dMenu_save_c::openSaveMenu,
|
|
&dMenu_save_c::closeSaveMenu,
|
|
&dMenu_save_c::memCardErrMsgWaitKey,
|
|
&dMenu_save_c::memCardErrMsgWaitKey2,
|
|
&dMenu_save_c::memCardErrMsgWaitKey3,
|
|
&dMenu_save_c::memCardErrGoIPLSel,
|
|
&dMenu_save_c::memCardErrGoIPLSel2,
|
|
&dMenu_save_c::memCardErrMsgWaitFormatSel,
|
|
&dMenu_save_c::memCardErrMsgWaitFormatSel2,
|
|
&dMenu_save_c::memCardFormat,
|
|
&dMenu_save_c::memCardFormatCheck,
|
|
&dMenu_save_c::memCardMakeGameFileSel,
|
|
&dMenu_save_c::memCardMakeGameFile,
|
|
&dMenu_save_c::memCardMakeGameFileCheck,
|
|
&dMenu_save_c::memCardDataLoadWait,
|
|
&dMenu_save_c::memCardDataLoadWait2,
|
|
&dMenu_save_c::memCardDataSave,
|
|
&dMenu_save_c::memCardDataSaveUpMenu,
|
|
&dMenu_save_c::memCardDataSaveSel,
|
|
&dMenu_save_c::memCardDataSaveDownMenu,
|
|
&dMenu_save_c::memCardDataSaveWait,
|
|
&dMenu_save_c::msgWait,
|
|
&dMenu_save_c::msgWait2,
|
|
&dMenu_save_c::saveEndWait,
|
|
&dMenu_save_c::saveWait,
|
|
&dMenu_save_c::canNotSave,
|
|
&dMenu_save_c::canNotSave2,
|
|
&dMenu_save_c::gameContinue,
|
|
&dMenu_save_c::gameContinue2,
|
|
&dMenu_save_c::gameContinue3,
|
|
#if VERSION >= VERSION_JPN
|
|
&dMenu_save_c::gameContinue4,
|
|
#endif
|
|
&dMenu_save_c::endingNoSave,
|
|
&dMenu_save_c::endingNoSave2,
|
|
&dMenu_save_c::endingNoSave3,
|
|
&dMenu_save_c::endingDataCheck,
|
|
&dMenu_save_c::noSave,
|
|
&dMenu_save_c::noSave2,
|
|
};
|
|
|
|
/* 801D6140-801D6174 .text initialize__12dMenu_save_cFv */
|
|
void dMenu_save_c::initialize() {
|
|
displayInit();
|
|
paneTransInit();
|
|
}
|
|
|
|
/* 801D6174-801D61A0 .text _open__12dMenu_save_cFv */
|
|
bool dMenu_save_c::_open() {
|
|
return openNormal();
|
|
}
|
|
|
|
/* 801D61A0-801D62CC .text openNormal__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::openNormal() {
|
|
BOOL rt;
|
|
switch (useType) {
|
|
case 1:
|
|
rt = openForCollect();
|
|
break;
|
|
case 0:
|
|
rt = openForItem();
|
|
break;
|
|
case 2:
|
|
rt = openForGameover();
|
|
break;
|
|
case 3:
|
|
if (field_0x53c != 0) {
|
|
if (field_0x53d == 2) {
|
|
rt = openForEnding2();
|
|
} else {
|
|
rt = TRUE;
|
|
}
|
|
} else {
|
|
rt = openForEnding();
|
|
}
|
|
break;
|
|
}
|
|
|
|
field_0x544++;
|
|
if (rt == TRUE) {
|
|
field_0x544 = 0;
|
|
field_0x394.pane->show();
|
|
|
|
if (useType == 3) {
|
|
if (field_0x53c != 0) {
|
|
if (field_0x53d == 2) {
|
|
field_0x53a = 0;
|
|
field_0x535 = 1;
|
|
proc = PROC_CAN_NOT_SAVE;
|
|
} else {
|
|
field_0x53a = 1;
|
|
proc = PROC_MEMCARD_CHECK;
|
|
}
|
|
} else {
|
|
field_0x53a = 0;
|
|
proc = PROC_SAVE_QUESTION;
|
|
}
|
|
} else {
|
|
field_0x53a = 0;
|
|
proc = PROC_SAVE_QUESTION;
|
|
}
|
|
|
|
saveStatus = 2;
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D62CC-801D62F8 .text _close__12dMenu_save_cFv */
|
|
bool dMenu_save_c::_close() {
|
|
return closeNormal();
|
|
}
|
|
|
|
/* 801D62F8-801D63A4 .text closeNormal__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeNormal() {
|
|
BOOL rt;
|
|
switch (useType) {
|
|
case 1:
|
|
rt = closeForCollect();
|
|
break;
|
|
case 0:
|
|
rt = closeForItem();
|
|
break;
|
|
case 2:
|
|
rt = closeForGameover();
|
|
break;
|
|
case 3:
|
|
rt = closeForEnding();
|
|
break;
|
|
}
|
|
|
|
field_0x544++;
|
|
if (rt == TRUE) {
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 0;
|
|
field_0x544 = 0;
|
|
field_0x53a = 1;
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D63A4-801D65C0 .text openForCollect__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::openForCollect() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_IN, NULL);
|
|
}
|
|
|
|
dMenu_setPushMenuButton(0);
|
|
|
|
BOOL var_r29 = FALSE;
|
|
BOOL alphaMask_rt = PaneAlphaMask(field_0x544 - g_msHIO.field_0x6, g_msHIO.field_0x5, 1, 0);
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0x9, g_msHIO.field_0x8, g_msHIO.field_0xc, 40.0f, 1, 0);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0x9 + g_msHIO.field_0x8), g_msHIO.field_0x8, 40.0f, 0.0f, 4, 2);
|
|
}
|
|
BOOL alphaWipe_rt = PaneScaleAlphaWipe(field_0x544 - g_msHIO.field_0x24, g_msHIO.field_0x23, g_msHIO.field_0x26, 1, 0);
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x11, g_msHIO.field_0x10, g_msHIO.field_0x14, 0.0f, 1, 0);
|
|
BOOL menu_rt = menuUp();
|
|
|
|
if (alphaMask_rt == TRUE
|
|
&& base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& alphaWipe_rt == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D65C0-801D67DC .text openForItem__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::openForItem() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_IN, NULL);
|
|
}
|
|
|
|
dMenu_setPushMenuButton(0);
|
|
|
|
BOOL var_r29 = FALSE;
|
|
BOOL alphaMask_rt = PaneAlphaMask(field_0x544 - g_msHIO.field_0x6, g_msHIO.field_0x5, 1, 0);
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0x9, g_msHIO.field_0x8, g_msHIO.field_0xc, 40.0f, 1, 0);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0x9 + g_msHIO.field_0x8), g_msHIO.field_0x8, 40.0f, 0.0f, 4, 2);
|
|
}
|
|
BOOL alphaWipe_rt = PaneScaleAlphaWipe(field_0x544 - g_msHIO.field_0x24, g_msHIO.field_0x23, g_msHIO.field_0x26, 1, 0);
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x11, g_msHIO.field_0x10, g_msHIO.field_0x14, 0.0f, 1, 0);
|
|
BOOL menu_rt = menuUp();
|
|
|
|
if (alphaMask_rt == TRUE
|
|
&& base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& alphaWipe_rt == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D67DC-801D69F8 .text closeForCollect__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeForCollect() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_OUT, NULL);
|
|
}
|
|
|
|
BOOL var_r29 = FALSE;
|
|
dMenu_setPushMenuButton(2);
|
|
|
|
BOOL alphaMask_rt = PaneAlphaMask(field_0x544 - g_msHIO.field_0x7, g_msHIO.field_0x5, 0, 1);
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0xa, g_msHIO.field_0x8, 0.0f, 40.0f, 4, 2);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0xa + g_msHIO.field_0x8), g_msHIO.field_0x8, 0.0f, g_msHIO.field_0xc, 0, 1);
|
|
}
|
|
BOOL alphaWipe_rt = PaneScaleAlphaWipe(field_0x544 - g_msHIO.field_0x25, g_msHIO.field_0x23, 1.0f, 0, 1);
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x12, g_msHIO.field_0x10, 0.0f, g_msHIO.field_0x14, 0, 1);
|
|
BOOL menu_rt;
|
|
if (field_0x535 != 0) {
|
|
menu_rt = TRUE;
|
|
} else {
|
|
menu_rt = menuDown();
|
|
}
|
|
|
|
if (alphaMask_rt == TRUE
|
|
&& base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& alphaWipe_rt == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D69F8-801D6C14 .text closeForItem__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeForItem() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_OUT, NULL);
|
|
}
|
|
|
|
BOOL var_r29 = FALSE;
|
|
dMenu_setPushMenuButton(1);
|
|
|
|
BOOL alphaMask_rt = PaneAlphaMask(field_0x544 - g_msHIO.field_0x7, g_msHIO.field_0x5, 0, 1);
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0xa, g_msHIO.field_0x8, 0.0f, 40.0f, 4, 2);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0xa + g_msHIO.field_0x8), g_msHIO.field_0x8, 0.0f, g_msHIO.field_0xc, 0, 1);
|
|
}
|
|
BOOL alphaWipe_rt = PaneScaleAlphaWipe(field_0x544 - g_msHIO.field_0x25, g_msHIO.field_0x23, 1.0f, 0, 1);
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x12, g_msHIO.field_0x10, 0.0f, g_msHIO.field_0x14, 0, 1);
|
|
BOOL menu_rt;
|
|
if (field_0x535 != 0) {
|
|
menu_rt = TRUE;
|
|
} else {
|
|
menu_rt = menuDown();
|
|
}
|
|
|
|
if (alphaMask_rt == TRUE
|
|
&& base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& alphaWipe_rt == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D6C14-801D6E68 .text openForGameover__12dMenu_save_cFv */
|
|
// NONMATCHING - instruction order
|
|
BOOL dMenu_save_c::openForGameover() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_IN, NULL);
|
|
}
|
|
|
|
BOOL var_r29 = FALSE;
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0x9, g_msHIO.field_0x8, g_msHIO.field_0xc, 0.0f, 1, 0);
|
|
|
|
s16 temp_r0 = field_0x544 - (g_msHIO.field_0x9 + (g_msHIO.field_0x8 - 2));
|
|
if (temp_r0 == 0 && field_0x539) {
|
|
for (int i = 0; i < 4; i++) {
|
|
static const f32 x[] = {-180.0f, -70.0f, 70.0f, 180.0f};
|
|
|
|
cXyz pos(x[i], 170.0f, 0.0f);
|
|
dComIfGp_particle_set2DmenuFore(0x2E, &pos);
|
|
}
|
|
|
|
field_0x539 = 0;
|
|
}
|
|
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0x9 + g_msHIO.field_0x8), g_msHIO.field_0x8, 0.0f, -20.0f, 5, 2);
|
|
}
|
|
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x11, g_msHIO.field_0x10, g_msHIO.field_0x14, 0.0f, 1, 0);
|
|
BOOL menu_rt = menuUp();
|
|
|
|
if (base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D6E68-801D6EAC .text closeForGameover__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeForGameover() {
|
|
switch (endStatus) {
|
|
case 1: return closeForGameover_1();
|
|
case 0: return closeForGameover_2();
|
|
}
|
|
}
|
|
|
|
/* 801D6EAC-801D704C .text closeForGameover_1__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeForGameover_1() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_OUT, NULL);
|
|
}
|
|
|
|
BOOL var_r29 = FALSE;
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0xa, g_msHIO.field_0x8, 0.0f, 40.0f, 4, 2);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0xa + g_msHIO.field_0x8), g_msHIO.field_0x8, 0.0f, g_msHIO.field_0xc, 0, 1);
|
|
}
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x12, g_msHIO.field_0x10, 0.0f, g_msHIO.field_0x14, 0, 1);
|
|
BOOL menu_rt;
|
|
if (field_0x535 != 0) {
|
|
menu_rt = TRUE;
|
|
} else {
|
|
menu_rt = menuDown();
|
|
}
|
|
|
|
if (base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D704C-801D755C .text closeForGameover_2__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeForGameover_2() {
|
|
BOOL var_r28 = FALSE;
|
|
BOOL var_r27 = FALSE;
|
|
BOOL var_r26 = FALSE;
|
|
BOOL var_r25 = FALSE;
|
|
|
|
BOOL var_r23 = PaneTranceTitle(field_0x544 - g_msHIO.field_0x13, g_msHIO.field_0x10, 0.0f, g_msHIO.field_0x2c, 1, 2);
|
|
PaneRotate(field_0x544 - g_msHIO.field_0x13, g_msHIO.field_0x10, &field_0x324, 73.5f, field_0x324.mSizeOrig.y / 2, 7.0f, 0);
|
|
if (var_r23 == TRUE) {
|
|
var_r28 = PaneTranceTitle(field_0x544 - (g_msHIO.field_0x13 + g_msHIO.field_0x10), g_msHIO.field_0x10, g_msHIO.field_0x2c, g_msHIO.field_0x16, 0, 1);
|
|
}
|
|
|
|
var_r23 = PaneTranceBase(field_0x544 - g_msHIO.field_0xb, g_msHIO.field_0x8, 0.0f, g_msHIO.field_0x2c, 1, 2);
|
|
PaneRotate(field_0x544 - g_msHIO.field_0xb, g_msHIO.field_0x10, &field_0x20c[0], 257.0f, 0.0f, -7.0f, 0);
|
|
if (var_r23 == TRUE) {
|
|
var_r27 = PaneTranceBase(field_0x544 - (g_msHIO.field_0xb + g_msHIO.field_0x8), g_msHIO.field_0x8, g_msHIO.field_0x2c, g_msHIO.field_0xe, 0, 1);
|
|
}
|
|
|
|
var_r23 = PaneTranceMenu(field_0x544 - g_msHIO.field_0x1b, g_msHIO.field_0x18, &field_0x3cc, 0.0f, g_msHIO.field_0x2c, 1, 2);
|
|
PaneRotate(field_0x544 - g_msHIO.field_0x1b, g_msHIO.field_0x10, &field_0x3cc, 30.0f, 32.0f, -7.0f, 0);
|
|
if (var_r23 == TRUE) {
|
|
var_r26 = PaneTranceMenu(field_0x544 - (g_msHIO.field_0x1b + g_msHIO.field_0x18), g_msHIO.field_0x18, &field_0x3cc, g_msHIO.field_0x2c, g_msHIO.field_0x1e, 0, 1);
|
|
}
|
|
|
|
var_r23 = PaneTranceMenu(field_0x544 - (g_msHIO.field_0x1b + g_msHIO.field_0x1c), g_msHIO.field_0x18, &field_0x474, 0.0f, g_msHIO.field_0x2c, 1, 2);
|
|
PaneRotate(field_0x544 - (g_msHIO.field_0x1b + g_msHIO.field_0x1c), g_msHIO.field_0x10, &field_0x474, 30.0f, 32.0f, 7.0f, 0);
|
|
if (var_r23 == TRUE) {
|
|
var_r25 = PaneTranceMenu(field_0x544 - (g_msHIO.field_0x1b + g_msHIO.field_0x1c + g_msHIO.field_0x18), g_msHIO.field_0x18, &field_0x474, g_msHIO.field_0x2c, g_msHIO.field_0x1e, 0, 1);
|
|
}
|
|
|
|
if (var_r28 == TRUE
|
|
&& var_r27 == TRUE
|
|
&& var_r26 == TRUE
|
|
&& var_r25 == TRUE)
|
|
{
|
|
PaneRotate(0, g_msHIO.field_0x10, &field_0x324, 73.5f, field_0x324.mSizeOrig.y / 2, 0.0f, 0);
|
|
PaneRotate(0, g_msHIO.field_0x10, &field_0x20c[0], 250.5f, 0.0f, 0.0f, 0);
|
|
PaneRotate(0, g_msHIO.field_0x10, &field_0x3cc, 30.0f, 32.0f, 0.0f, 0);
|
|
PaneRotate(0, g_msHIO.field_0x10, &field_0x474, 30.0f, 32.0f, 0.0f, 0);
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D755C-801D76E0 .text openForEnding__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::openForEnding() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_IN, NULL);
|
|
}
|
|
|
|
BOOL var_r29 = FALSE;
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0x9, g_msHIO.field_0x8, g_msHIO.field_0xc, 0.0f, 1, 0);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0x9 + g_msHIO.field_0x8), g_msHIO.field_0x8, 0.0f, -20.0f, 5, 2);
|
|
}
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x11, g_msHIO.field_0x10, g_msHIO.field_0x14, 0.0f, 1, 0);
|
|
BOOL menu_rt = menuUp();
|
|
|
|
if (base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D76E0-801D7850 .text openForEnding2__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::openForEnding2() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_IN, NULL);
|
|
}
|
|
|
|
BOOL var_r29 = FALSE;
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0x9, g_msHIO.field_0x8, g_msHIO.field_0xc, 0.0f, 1, 0);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0x9 + g_msHIO.field_0x8), g_msHIO.field_0x8, 0.0f, -20.0f, 5, 2);
|
|
}
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x11, g_msHIO.field_0x10, g_msHIO.field_0x14, 0.0f, 1, 0);
|
|
|
|
if (base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& title_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D7850-801D79F0 .text closeForEnding__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeForEnding() {
|
|
if (field_0x544 == 0) {
|
|
mDoAud_seStart(JA_SE_SAVE_PANEL_OUT, NULL);
|
|
}
|
|
|
|
BOOL var_r29 = FALSE;
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0xa, g_msHIO.field_0x8, 0.0f, 40.0f, 4, 2);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase(field_0x544 - (g_msHIO.field_0xa + g_msHIO.field_0x8), g_msHIO.field_0x8, 0.0f, g_msHIO.field_0xc, 0, 1);
|
|
}
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x12, g_msHIO.field_0x10, 0.0f, g_msHIO.field_0x14, 0, 1);
|
|
BOOL menu_rt;
|
|
if (field_0x535 != 0) {
|
|
menu_rt = TRUE;
|
|
} else {
|
|
menu_rt = menuDown();
|
|
}
|
|
|
|
if (base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D79F0-801D7A9C .text _delete__12dMenu_save_cFv */
|
|
void dMenu_save_c::_delete() {
|
|
delete MenuSave.Scr;
|
|
mDoExt_removeMesgFont();
|
|
delete stick;
|
|
dFe_c->_delete();
|
|
delete dFe_c;
|
|
archive->removeResourceAll();
|
|
mDoHIO_deleteChild(g_msHIO.id);
|
|
}
|
|
|
|
/* 801D7A9C-801D7B68 .text _move__12dMenu_save_cFv */
|
|
void dMenu_save_c::_move() {
|
|
#if VERSION > VERSION_DEMO
|
|
if (!mDoRst::isReset())
|
|
#endif
|
|
{
|
|
if ((mDoMemCd_getProbeStat() == 0 || mDoMemCd_getProbeStat() == 1)
|
|
#if VERSION > VERSION_DEMO
|
|
&& !mDoRst::isReset()
|
|
#endif
|
|
)
|
|
{
|
|
if (field_0x53b == 0 && dFe_c->getStatus() == 1) {
|
|
dFe_c->closeMessage();
|
|
field_0x533 = 0xFF;
|
|
field_0x52d = PROC_MEMCARD_CHECK;
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY3;
|
|
}
|
|
mDoMemCd_clearProbeStat();
|
|
}
|
|
|
|
dFe_c->_move();
|
|
(this->*MenuSaveProc[proc])();
|
|
}
|
|
}
|
|
|
|
/* 801D7B68-801D7BB8 .text noSave__12dMenu_save_cFv */
|
|
void dMenu_save_c::noSave() {
|
|
field_0x533 = 0xFF;
|
|
dFe_c->setErrMessage(0x65, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY3;
|
|
field_0x52d = PROC_NO_SAVE2;
|
|
}
|
|
|
|
/* 801D7BB8-801D7BCC .text noSave2__12dMenu_save_cFv */
|
|
void dMenu_save_c::noSave2() {
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
}
|
|
|
|
/* 801D7BCC-801D7CE8 .text saveQuestion__12dMenu_save_cFv */
|
|
void dMenu_save_c::saveQuestion() {
|
|
BOOL temp_r3;
|
|
if (useType == 2 || useType == 3) {
|
|
temp_r3 = YesNoSelect2(0);
|
|
} else {
|
|
temp_r3 = YesNoSelect(0);
|
|
}
|
|
|
|
if (temp_r3) {
|
|
if (field_0x52f == 0) {
|
|
*field_0x51c[field_0x536 ^ 1] = 0;
|
|
proc = PROC_MEMCARD_CHECK;
|
|
} else if (field_0x52f == 2) {
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
} else {
|
|
field_0x544 = 0;
|
|
switch (useType) {
|
|
case 0:
|
|
case 1:
|
|
case 2:
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x40);
|
|
proc = PROC_GAME_CONTINUE;
|
|
break;
|
|
case 3:
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x4D);
|
|
proc = PROC_ENDING_NO_SAVE;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D7CE8-801D7E30 .text memCardCheck__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardCheck() {
|
|
switch (mDoMemCd_getStatus(0)) {
|
|
case mDoMemCd_Ctrl_c::CARD_STAT_WAIT:
|
|
field_0x532 = 0x29;
|
|
proc = PROC_CLOSE_SAVE_MENU;
|
|
field_0x52d = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
break;
|
|
case 8:
|
|
field_0x532 = 0x2A;
|
|
proc = PROC_CLOSE_SAVE_MENU;
|
|
field_0x52d = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
break;
|
|
case 9:
|
|
field_0x532 = 0x2B;
|
|
proc = PROC_CLOSE_SAVE_MENU;
|
|
field_0x52d = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
break;
|
|
case mDoMemCd_Ctrl_c::CARD_STAT_WRONG_DEVICE:
|
|
field_0x532 = 0x2C;
|
|
proc = PROC_CLOSE_SAVE_MENU;
|
|
field_0x52d = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
break;
|
|
case mDoMemCd_Ctrl_c::CARD_STAT_ENCODING:
|
|
case mDoMemCd_Ctrl_c::CARD_STAT_ERROR:
|
|
field_0x532 = 0x2d;
|
|
proc = PROC_CLOSE_SAVE_MENU;
|
|
field_0x52d = PROC_MEMCARD_FORMAT;
|
|
break;
|
|
case 11:
|
|
case mDoMemCd_Ctrl_c::CARD_STAT_IOERROR:
|
|
field_0x532 = 0x2E;
|
|
proc = PROC_CLOSE_SAVE_MENU;
|
|
field_0x52d = PROC_MEMCARD_ERR_MSG_WAIT_KEY2;
|
|
field_0x533 = 0x62;
|
|
field_0x52e = 7;
|
|
break;
|
|
case mDoMemCd_Ctrl_c::CARD_STAT_CREATE:
|
|
mDoMemCd_setPictDataPtr(NULL);
|
|
mDoMemCd_Load();
|
|
proc = PROC_MEMCARD_DATA_LOAD_WAIT;
|
|
break;
|
|
case mDoMemCd_Ctrl_c::CARD_STAT_RESTORE:
|
|
field_0x532 = 0x34;
|
|
proc = PROC_CLOSE_SAVE_MENU;
|
|
field_0x52d = PROC_MEMCARD_MAKE_GAME_FILE_SEL;
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* 801D7E30-801D7E88 .text openSaveMenu__12dMenu_save_cFv */
|
|
void dMenu_save_c::openSaveMenu() {
|
|
if (openSave() == TRUE) {
|
|
field_0x53a = 0;
|
|
field_0x394.pane->show();
|
|
CursorAlphaInit();
|
|
proc = PROC_SAVE_QUESTION;
|
|
}
|
|
}
|
|
|
|
/* 801D7E88-801D7F30 .text closeSaveMenu__12dMenu_save_cFv */
|
|
void dMenu_save_c::closeSaveMenu() {
|
|
BOOL rt;
|
|
if (field_0x53a == 1) {
|
|
rt = TRUE;
|
|
} else {
|
|
rt = closeSave();
|
|
}
|
|
|
|
if (rt == TRUE) {
|
|
field_0x53a = 1;
|
|
if (useType == 3) {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536], 0x4C);
|
|
} else {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536], 0x39);
|
|
}
|
|
|
|
dFe_c->setErrMessage(field_0x532, 0);
|
|
proc = field_0x52d;
|
|
}
|
|
}
|
|
|
|
/* 801D7F30-801D7F4C .text memCardErrMsgWaitKey__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardErrMsgWaitKey() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
proc = PROC_OPEN_SAVE_MENU;
|
|
}
|
|
}
|
|
|
|
/* 801D7F4C-801D7FC0 .text memCardErrMsgWaitKey2__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardErrMsgWaitKey2() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (field_0x533 != 0xFF) {
|
|
dFe_c->setErrMessage(field_0x533, 0);
|
|
field_0x533 = 0xFF;
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY2;
|
|
} else {
|
|
dFe_c->setErrMessage(99, 0);
|
|
proc = field_0x52e;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D7FC0-801D801C .text memCardErrMsgWaitKey3__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardErrMsgWaitKey3() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (field_0x533 != 0xFF) {
|
|
dFe_c->setErrMessage(field_0x533, 0);
|
|
field_0x533 = 0xFF;
|
|
}
|
|
|
|
proc = field_0x52d;
|
|
}
|
|
}
|
|
|
|
/* 801D801C-801D8084 .text memCardErrGoIPLSel__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardErrGoIPLSel() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (dFe_c->getYesNo() != 0) {
|
|
dFe_c->setErrMessage(100, 0);
|
|
proc = PROC_MEMCARD_ERR_GO_IPL_SEL2;
|
|
} else {
|
|
proc = PROC_OPEN_SAVE_MENU;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D8084-801D80DC .text memCardErrGoIPLSel2__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardErrGoIPLSel2() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (dFe_c->getYesNo() != 0) {
|
|
OSResetSystem(1, 1, TRUE);
|
|
} else {
|
|
proc = PROC_OPEN_SAVE_MENU;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D80DC-801D8150 .text memCardErrMsgWaitFormatSel__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardErrMsgWaitFormatSel() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (dFe_c->getYesNo() != 0) {
|
|
dFe_c->setErrMessage(0x30, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_FORMAT_SEL;
|
|
} else {
|
|
dFe_c->setErrMessage(0x2F, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D8150-801D81DC .text memCardErrMsgWaitFormatSel2__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardErrMsgWaitFormatSel2() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (dFe_c->getYesNo() != 0) {
|
|
mDoMemCd_Format();
|
|
dFe_c->setErrMessage(0x31, 1);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_FORMAT_SEL2;
|
|
field_0x53b = 1;
|
|
} else {
|
|
dFe_c->setErrMessage(0x2F, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D81DC-801D8230 .text memCardFormat__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardFormat() {
|
|
field_0x540 = mDoMemCd_FormatSync();
|
|
if (field_0x540 != 0) {
|
|
dFe_c->closeMessage();
|
|
proc = PROC_MEMCARD_FORMAT_CHECK;
|
|
}
|
|
}
|
|
|
|
/* 801D8230-801D82C8 .text memCardFormatCheck__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardFormatCheck() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (field_0x540 == 2) {
|
|
dFe_c->setErrMessage(0x33, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY3;
|
|
field_0x52d = PROC_MEMCARD_CHECK;
|
|
} else if (field_0x540 == 1) {
|
|
dFe_c->setErrMessage(0x32, 0);
|
|
dFe_c->setTimeCountDownMode();
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY3;
|
|
field_0x52d = PROC_MEMCARD_CHECK;
|
|
}
|
|
|
|
field_0x53b = 0;
|
|
}
|
|
}
|
|
|
|
/* 801D82C8-801D83C0 .text memCardMakeGameFileSel__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardMakeGameFileSel() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (dFe_c->getYesNo() != 0) {
|
|
dComIfGs_setInitDataToCard(dataBuf, 0);
|
|
mDoMemCdRWm_SetCheckSumGameData(dataBuf, 0);
|
|
|
|
dComIfGs_setInitDataToCard(dataBuf, 1);
|
|
mDoMemCdRWm_SetCheckSumGameData(dataBuf, 1);
|
|
|
|
dComIfGs_setInitDataToCard(dataBuf, 2);
|
|
mDoMemCdRWm_SetCheckSumGameData(dataBuf, 2);
|
|
|
|
mDoMemCd_Save(dataBuf, sizeof(dataBuf), 0);
|
|
|
|
dFe_c->setErrMessage(0x36, 1);
|
|
proc = PROC_MEMCARD_MAKE_GAME_FILE;
|
|
field_0x53b = 1;
|
|
} else {
|
|
dFe_c->setErrMessage(0x35, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D83C0-801D8414 .text memCardMakeGameFile__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardMakeGameFile() {
|
|
field_0x540 = mDoMemCd_SaveSync();
|
|
if (field_0x540 != 0) {
|
|
dFe_c->closeMessage();
|
|
proc = PROC_MEMCARD_MAKE_GAME_FILE_CHECK;
|
|
}
|
|
}
|
|
|
|
/* 801D8414-801D84AC .text memCardMakeGameFileCheck__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardMakeGameFileCheck() {
|
|
if (dFe_c->getStatus() == 2) {
|
|
if (field_0x540 == 2) {
|
|
dFe_c->setErrMessage(0x37, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY3;
|
|
field_0x52d = PROC_MEMCARD_CHECK;
|
|
} else if (field_0x540 == 1) {
|
|
dComIfGs_setNewFile(1);
|
|
dFe_c->setErrMessage(0x38, 0);
|
|
proc = PROC_MEMCARD_ERR_MSG_WAIT_KEY;
|
|
}
|
|
|
|
field_0x53b = 0;
|
|
}
|
|
}
|
|
|
|
/* 801D84AC-801D8548 .text memCardDataLoadWait__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardDataLoadWait() {
|
|
int rt = mDoMemCd_LoadSync(dataBuf, sizeof(dataBuf), 0);
|
|
if (rt == 0)
|
|
return;
|
|
|
|
if (rt == 2) {
|
|
proc = PROC_MEMCARD_CHECK;
|
|
} else if (rt == 1) {
|
|
if (field_0x53a == 1) {
|
|
proc = PROC_OPEN_SAVE_MENU;
|
|
} else if (useType == 3) {
|
|
proc = PROC_ENDING_DATA_CHECK;
|
|
} else {
|
|
proc = PROC_MEMCARD_DATA_LOAT_WAIT2;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D8548-801D85D8 .text memCardDataLoadWait2__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardDataLoadWait2() {
|
|
BOOL menu_rt = menuDown();
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
field_0x544++;
|
|
if (menu_rt == TRUE && alphaMsg_rt == TRUE) {
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
field_0x535 = 1;
|
|
proc = PROC_MEMCARD_DATA_SAVE;
|
|
}
|
|
}
|
|
|
|
/* 801D85D8-801D8798 .text memCardDataSave__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardDataSave() {
|
|
bool temp_r0;
|
|
if (dComIfGs_getNewFile() == 1) {
|
|
temp_r0 = true;
|
|
} else if (dComIfGs_getNoFile() != 0) {
|
|
temp_r0 = false;
|
|
} else if (dComIfGs_getMemCardCheckID() != mDoMemCd_getCardSerialNo()) {
|
|
temp_r0 = false;
|
|
} else {
|
|
temp_r0 = true;
|
|
}
|
|
|
|
if (temp_r0) {
|
|
dComIfGs_exchangePlayerRecollectionData();
|
|
dComIfGs_putSave(dStage_stagInfo_GetSaveTbl(dComIfGp_getStage().getStagInfo()));
|
|
dComIfGs_setGameStartStage();
|
|
|
|
BOOL test = mDoMemCdRWm_TestCheckSumGameData(&dataBuf[dComIfGs_getDataNum() * (sizeof(dSv_save_c) - 8)]);
|
|
if (test) {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3C);
|
|
dataWrite();
|
|
proc = PROC_MEMCARD_DATA_SAVE_WAIT;
|
|
} else {
|
|
mDoAud_seStart(JA_SE_ALERT_DATA, NULL);
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3B);
|
|
proc = PROC_MEMCARD_DATA_SAVE_UP_MENU;
|
|
}
|
|
} else {
|
|
mDoAud_seStart(JA_SE_ALERT_DATA, NULL);
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3A);
|
|
proc = PROC_CAN_NOT_SAVE;
|
|
}
|
|
}
|
|
|
|
/* 801D8798-801D8848 .text memCardDataSaveUpMenu__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardDataSaveUpMenu() {
|
|
BOOL menu_rt = menuUp();
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
field_0x544++;
|
|
if (menu_rt == TRUE && alphaMsg_rt == TRUE) {
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
field_0x535 = 0;
|
|
CursorAlphaInit();
|
|
field_0x52f = 1;
|
|
CursorMove();
|
|
field_0x394.pane->show();
|
|
proc = PROC_MEMCARD_DATA_SAVE_SEL;
|
|
}
|
|
}
|
|
|
|
/* 801D8848-801D88E8 .text memCardDataSaveSel__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardDataSaveSel() {
|
|
if (YesNoSelect(0) != 0) {
|
|
if (field_0x52f == 0) {
|
|
#if VERSION == VERSION_PAL
|
|
if (mDoMemCd_getStatus(0) != 2) {
|
|
proc = PROC_MEMCARD_CHECK;
|
|
return;
|
|
}
|
|
#endif
|
|
proc = PROC_MEMCARD_DATA_SAVE_DOWN_MENU;
|
|
} else {
|
|
CursorAlphaInit();
|
|
field_0x52f = 0;
|
|
CursorMove();
|
|
field_0x394.pane->show();
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x39);
|
|
proc = PROC_MSG_WAIT;
|
|
field_0x52d = PROC_SAVE_QUESTION;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D88E8-801D8964 .text memCardDataSaveDownMenu__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardDataSaveDownMenu() {
|
|
BOOL menu_rt = menuDown();
|
|
BOOL temp_r5 = TRUE;
|
|
|
|
field_0x544++;
|
|
if (menu_rt == TRUE && temp_r5 == TRUE) {
|
|
field_0x544 = 0;
|
|
field_0x535 = 1;
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3C);
|
|
dataWrite();
|
|
proc = PROC_MEMCARD_DATA_SAVE_WAIT;
|
|
}
|
|
}
|
|
|
|
/* 801D8964-801D8A18 .text dataWrite__12dMenu_save_cFv */
|
|
void dMenu_save_c::dataWrite() {
|
|
int res = dComIfGs_setMemoryToCard(dataBuf, dComIfGs_getDataNum());
|
|
JUT_ASSERT(VERSION_SELECT(1789, 1792, 1792, 1803), res != -1);
|
|
|
|
mDoMemCdRWm_SetCheckSumGameData(dataBuf, dComIfGs_getDataNum());
|
|
mDoMemCd_Save(dataBuf, sizeof(dataBuf), 0);
|
|
|
|
#if VERSION >= VERSION_USA
|
|
field_0x540 = mDoMemCd_SaveSync();
|
|
#endif
|
|
}
|
|
|
|
/* 801D8A18-801D8BB8 .text memCardDataSaveWait__12dMenu_save_cFv */
|
|
void dMenu_save_c::memCardDataSaveWait() {
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
field_0x544++;
|
|
|
|
#if VERSION <= VERSION_JPN
|
|
int res = mDoMemCd_SaveSync();
|
|
#else
|
|
if (field_0x540 == 0) {
|
|
field_0x540 = mDoMemCd_SaveSync();
|
|
}
|
|
#endif
|
|
|
|
#if VERSION <= VERSION_JPN
|
|
if (res != 0 && alphaMsg_rt == TRUE)
|
|
#else
|
|
if (field_0x540 != 0 && alphaMsg_rt == TRUE)
|
|
#endif
|
|
{
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
field_0x534 = g_msHIO.field_0x28;
|
|
|
|
#if VERSION <= VERSION_JPN
|
|
if (res == 1)
|
|
#else
|
|
if (field_0x540 == 1)
|
|
#endif
|
|
{
|
|
mDoAud_seStart(JA_SE_SAVE_FINISH, NULL);
|
|
dComIfGs_exchangePlayerRecollectionData();
|
|
dComIfGs_setMemCardCheckID(mDoMemCd_getCardSerialNo());
|
|
dComIfGs_setNewFile(0);
|
|
dComIfGs_setNoFile(0);
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3E);
|
|
proc = PROC_MSG_WAIT;
|
|
field_0x52d = PROC_SAVE_END_WAIT;
|
|
}
|
|
#if VERSION <= VERSION_JPN
|
|
else if (res == 2)
|
|
#else
|
|
else if (field_0x540 == 2)
|
|
#endif
|
|
{
|
|
mDoAud_seStart(JA_SE_ALERT_DATA, NULL);
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3D);
|
|
proc = PROC_MSG_WAIT2;
|
|
field_0x52d = PROC_MEMCARD_CHECK;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D8BB8-801D8C24 .text msgWait__12dMenu_save_cFv */
|
|
void dMenu_save_c::msgWait() {
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
field_0x544++;
|
|
if (alphaMsg_rt == TRUE) {
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
proc = field_0x52d;
|
|
}
|
|
}
|
|
|
|
/* 801D8C24-801D8D08 .text msgWait2__12dMenu_save_cFv */
|
|
void dMenu_save_c::msgWait2() {
|
|
if (field_0x534 != 0) {
|
|
field_0x534--;
|
|
}
|
|
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
if (alphaMsg_rt == TRUE) {
|
|
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_0x534 == 0)
|
|
{
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
proc = field_0x52d;
|
|
}
|
|
} else {
|
|
field_0x544++;
|
|
}
|
|
}
|
|
|
|
/* 801D8D08-801D8DCC .text saveEndWait__12dMenu_save_cFv */
|
|
void dMenu_save_c::saveEndWait() {
|
|
if (field_0x534 != 0) {
|
|
field_0x534--;
|
|
}
|
|
|
|
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_0x534 == 0)
|
|
{
|
|
field_0x544 = 0;
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x40);
|
|
proc = PROC_GAME_CONTINUE;
|
|
}
|
|
}
|
|
|
|
/* 801D8DCC-801D8ED8 .text canNotSave__12dMenu_save_cFv */
|
|
void dMenu_save_c::canNotSave() {
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
if (alphaMsg_rt == FALSE) {
|
|
field_0x544++;
|
|
}
|
|
|
|
if (alphaMsg_rt == TRUE) {
|
|
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_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
|
|
if (useType == 3) {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x4C);
|
|
} else {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x39);
|
|
}
|
|
|
|
proc = PROC_CAN_NOT_SAVE2;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D8ED8-801D8F9C .text canNotSave2__12dMenu_save_cFv */
|
|
void dMenu_save_c::canNotSave2() {
|
|
BOOL menu_rt;
|
|
if (field_0x535) {
|
|
menu_rt = menuUp();
|
|
} else {
|
|
menu_rt = TRUE;
|
|
}
|
|
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
field_0x544++;
|
|
if (menu_rt == TRUE && alphaMsg_rt == TRUE) {
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
field_0x535 = 0;
|
|
CursorAlphaInit();
|
|
field_0x52f = 0;
|
|
CursorMove();
|
|
field_0x394.pane->show();
|
|
proc = PROC_SAVE_QUESTION;
|
|
}
|
|
}
|
|
|
|
/* 801D8F9C-801D9060 .text gameContinue__12dMenu_save_cFv */
|
|
void dMenu_save_c::gameContinue() {
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
BOOL menu_rt;
|
|
if (field_0x535) {
|
|
menu_rt = menuUp();
|
|
} else {
|
|
menu_rt = TRUE;
|
|
}
|
|
|
|
field_0x544++;
|
|
if (alphaMsg_rt == TRUE && menu_rt == TRUE) {
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
field_0x535 = 0;
|
|
CursorAlphaInit();
|
|
field_0x52f = 0;
|
|
CursorMove();
|
|
field_0x394.pane->show();
|
|
proc = PROC_GAME_CONTINUE2;
|
|
}
|
|
}
|
|
|
|
/* 801D9060-801D914C .text gameContinue2__12dMenu_save_cFv */
|
|
void dMenu_save_c::gameContinue2() {
|
|
BOOL rt;
|
|
if (useType == 2 || useType == 3) {
|
|
rt = YesNoSelect2(1);
|
|
} else {
|
|
rt = YesNoSelect(2);
|
|
}
|
|
|
|
if (rt) {
|
|
if (field_0x52f == 0) {
|
|
switch (useType) {
|
|
case 0:
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
endStatus = 1;
|
|
break;
|
|
}
|
|
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
} else if (useType == 2) {
|
|
#if VERSION == VERSION_DEMO
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
endStatus = 0;
|
|
#else
|
|
field_0x534 = 15;
|
|
proc = PROC_GAME_CONTINUE4;
|
|
#endif
|
|
} else if (field_0x52f == 2) {
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
} else {
|
|
field_0x544 = 0;
|
|
field_0x534 = 30;
|
|
proc = PROC_GAME_CONTINUE3;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D914C-801D91E8 .text gameContinue3__12dMenu_save_cFv */
|
|
void dMenu_save_c::gameContinue3() {
|
|
BOOL alphaWipe_rt = PaneScaleAlphaWipe(field_0x544, g_msHIO.field_0x23, 1.0f, 0, 1);
|
|
BOOL close_rt = closeForGameover_2();
|
|
|
|
field_0x544++;
|
|
if (alphaWipe_rt == TRUE && close_rt == TRUE) {
|
|
if (field_0x534 != 0) {
|
|
field_0x534--;
|
|
} else {
|
|
mDoRst::onReset();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D91E8-801D921C .text gameContinue4__12dMenu_save_cFv */
|
|
void dMenu_save_c::gameContinue4() {
|
|
if (field_0x534 != 0) {
|
|
field_0x534--;
|
|
} else {
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
endStatus = 0;
|
|
}
|
|
}
|
|
|
|
/* 801D921C-801D92B0 .text endingNoSave__12dMenu_save_cFv */
|
|
void dMenu_save_c::endingNoSave() {
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
field_0x544++;
|
|
if (alphaMsg_rt == TRUE) {
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
field_0x535 = 0;
|
|
CursorAlphaInit();
|
|
field_0x52f = 1;
|
|
CursorMove();
|
|
field_0x394.pane->show();
|
|
proc = PROC_ENDING_NO_SAVE2;
|
|
}
|
|
}
|
|
|
|
/* 801D92B0-801D9334 .text endingNoSave2__12dMenu_save_cFv */
|
|
void dMenu_save_c::endingNoSave2() {
|
|
if (YesNoSelect2(1)) {
|
|
if (field_0x52f == 0) {
|
|
endStatus = 0;
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
} else {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x4C);
|
|
proc = PROC_ENDING_NO_SAVE3;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 801D9334-801D93C8 .text endingNoSave3__12dMenu_save_cFv */
|
|
void dMenu_save_c::endingNoSave3() {
|
|
BOOL alphaMsg_rt = PaneAlphaMsgTxt(field_0x544, g_msHIO.field_0x29);
|
|
|
|
field_0x544++;
|
|
if (alphaMsg_rt == TRUE) {
|
|
field_0x536 ^= 1;
|
|
field_0x544 = 0;
|
|
field_0x535 = 0;
|
|
CursorAlphaInit();
|
|
field_0x52f = 0;
|
|
CursorMove();
|
|
field_0x394.pane->show();
|
|
proc = PROC_SAVE_QUESTION;
|
|
}
|
|
}
|
|
|
|
/* 801D93C8-801D94C0 .text endingDataCheck__12dMenu_save_cFv */
|
|
void dMenu_save_c::endingDataCheck() {
|
|
bool temp_r0;
|
|
if (dComIfGs_getNewFile() == 1) {
|
|
temp_r0 = true;
|
|
} else if (dComIfGs_getNoFile() != 0) {
|
|
temp_r0 = false;
|
|
} else if (dComIfGs_getMemCardCheckID() != mDoMemCd_getCardSerialNo()) {
|
|
temp_r0 = false;
|
|
} else {
|
|
temp_r0 = true;
|
|
}
|
|
|
|
if (temp_r0) {
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 3;
|
|
} else {
|
|
mDoAud_seStart(JA_SE_ALERT_DATA, NULL);
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3A);
|
|
proc = PROC_CAN_NOT_SAVE;
|
|
}
|
|
}
|
|
|
|
/* 801D94C0-801D94C4 .text saveWait__12dMenu_save_cFv */
|
|
void dMenu_save_c::saveWait() {}
|
|
|
|
/* 801D94C4-801D9764 .text YesNoSelect__12dMenu_save_cFi */
|
|
BOOL dMenu_save_c::YesNoSelect(int param_0) {
|
|
if (!field_0x394.pane->isVisible()) {
|
|
return TRUE;
|
|
}
|
|
|
|
stick->checkTrigger();
|
|
|
|
if (CPad_CHECK_TRIG_A(0)) {
|
|
field_0x394.pane->hide();
|
|
if (field_0x52f == 0) {
|
|
if (param_0) {
|
|
mDoAud_seStart(JA_SE_CONTINUE_GAME, NULL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_SAVE_START, NULL);
|
|
}
|
|
} else {
|
|
if (param_0) {
|
|
mDoAud_seStart(JA_SE_QUIT_GAME, NULL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_SAVE_CANCEL, NULL);
|
|
}
|
|
}
|
|
return 1;
|
|
} else if (CPad_CHECK_TRIG_B(0)) {
|
|
if (param_0 == TRUE) {
|
|
mDoAud_seStart(JA_SE_QUIT_GAME, NULL);
|
|
} else {
|
|
#if VERSION <= VERSION_JPN
|
|
mDoAud_seStart(JA_SE_SAVE_CANCEL, NULL);
|
|
#else
|
|
mDoAud_seStart(JA_SE_CONTINUE_GAME, NULL);
|
|
#endif
|
|
}
|
|
|
|
field_0x394.pane->hide();
|
|
field_0x52f = 2;
|
|
return 1;
|
|
} else if (stick->checkRightTrigger()) {
|
|
if (field_0x52f != 1) {
|
|
mDoAud_seStart(JA_SE_TALK_CURSOR, NULL);
|
|
field_0x52f = 1;
|
|
CursorMove();
|
|
}
|
|
} else if (stick->checkLeftTrigger()) {
|
|
if (field_0x52f != 0) {
|
|
mDoAud_seStart(JA_SE_TALK_CURSOR, NULL);
|
|
field_0x52f = 0;
|
|
CursorMove();
|
|
}
|
|
}
|
|
|
|
CursorAnime();
|
|
return 0;
|
|
}
|
|
|
|
/* 801D9764-801D9978 .text YesNoSelect2__12dMenu_save_cFi */
|
|
BOOL dMenu_save_c::YesNoSelect2(int param_0) {
|
|
if (!field_0x394.pane->isVisible()) {
|
|
return TRUE;
|
|
}
|
|
|
|
stick->checkTrigger();
|
|
|
|
if (CPad_CHECK_TRIG_A(0)) {
|
|
field_0x394.pane->hide();
|
|
if (field_0x52f == 0) {
|
|
if (param_0) {
|
|
mDoAud_seStart(JA_SE_CONTINUE_GAME, NULL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_SAVE_START, NULL);
|
|
}
|
|
} else {
|
|
if (param_0) {
|
|
mDoAud_seStart(JA_SE_QUIT_GAME, NULL);
|
|
} else {
|
|
mDoAud_seStart(JA_SE_SAVE_CANCEL, NULL);
|
|
}
|
|
}
|
|
return 1;
|
|
} else if (stick->checkRightTrigger()) {
|
|
if (field_0x52f != 1) {
|
|
mDoAud_seStart(JA_SE_TALK_CURSOR, NULL);
|
|
field_0x52f = 1;
|
|
CursorMove();
|
|
}
|
|
} else if (stick->checkLeftTrigger()) {
|
|
if (field_0x52f != 0) {
|
|
mDoAud_seStart(JA_SE_TALK_CURSOR, NULL);
|
|
field_0x52f = 0;
|
|
CursorMove();
|
|
}
|
|
}
|
|
|
|
CursorAnime();
|
|
return 0;
|
|
}
|
|
|
|
/* 801D9978-801D99AC .text CursorAlphaInit__12dMenu_save_cFv */
|
|
void dMenu_save_c::CursorAlphaInit() {
|
|
field_0x394.mNowAlpha = 0;
|
|
field_0x394.mUserArea = 0;
|
|
field_0x530 = 0;
|
|
fopMsgM_setAlpha(&field_0x394);
|
|
}
|
|
|
|
/* 801D99AC-801D99FC .text CursorMove__12dMenu_save_cFv */
|
|
void dMenu_save_c::CursorMove() {
|
|
fopMsgM_paneTrans(&field_0x394, field_0x52f * 139.0f, 0.0f);
|
|
}
|
|
|
|
/* 801D99FC-801D9ACC .text CursorAnime__12dMenu_save_cFv */
|
|
// NONMATCHING - small float reg alloc
|
|
void dMenu_save_c::CursorAnime() {
|
|
f32 temp_f1 = fopMsgM_valueIncrease(g_msHIO.field_0x20, field_0x394.mUserArea, 0);
|
|
if (field_0x530 != 0) {
|
|
temp_f1 = 1.0f - temp_f1;
|
|
}
|
|
|
|
field_0x394.mNowAlpha = g_msHIO.field_0x22 + (u32)((g_msHIO.field_0x21 - g_msHIO.field_0x22) * temp_f1);
|
|
fopMsgM_setAlpha(&field_0x394);
|
|
|
|
if (field_0x394.mUserArea == 0) {
|
|
field_0x394.mUserArea = g_msHIO.field_0x20;
|
|
field_0x530 ^= 1;
|
|
} else {
|
|
field_0x394.mUserArea--;
|
|
}
|
|
}
|
|
|
|
/* 801D9ACC-801D9C28 .text openSave__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::openSave() {
|
|
BOOL var_r29 = FALSE;
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0x9, g_msHIO.field_0x8, g_msHIO.field_0xc, 40.0f, 1, 0);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase((field_0x544 - g_msHIO.field_0x9) - g_msHIO.field_0x8, g_msHIO.field_0x8, 40.0f, 0.0f, 4, 2);
|
|
}
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x11, g_msHIO.field_0x10, g_msHIO.field_0x14, 0.0f, 1, 0);
|
|
BOOL menu_rt = menuUp();
|
|
|
|
field_0x544++;
|
|
if (base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
field_0x544 = 0;
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D9C28-801D9DA4 .text closeSave__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::closeSave() {
|
|
BOOL var_r29 = FALSE;
|
|
BOOL base_rt = PaneTranceBase(field_0x544 - g_msHIO.field_0xa, g_msHIO.field_0x8, 0.0f, 40.0f, 4, 2);
|
|
if (base_rt == TRUE) {
|
|
var_r29 = PaneTranceBase((field_0x544 - g_msHIO.field_0xa) - g_msHIO.field_0x8, g_msHIO.field_0x8, 0.0f, g_msHIO.field_0xc, 0, 1);
|
|
}
|
|
BOOL title_rt = PaneTranceTitle(field_0x544 - g_msHIO.field_0x12, g_msHIO.field_0x10, 0.0f, g_msHIO.field_0x14, 0, 1);
|
|
BOOL menu_rt;
|
|
if (field_0x535 != 0) {
|
|
menu_rt = TRUE;
|
|
} else {
|
|
menu_rt = menuDown();
|
|
}
|
|
|
|
field_0x544++;
|
|
if (base_rt == TRUE
|
|
&& var_r29 == TRUE
|
|
&& title_rt == TRUE
|
|
&& menu_rt == TRUE)
|
|
{
|
|
field_0x535 = 0;
|
|
field_0x544 = 0;
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801D9DA4-801DA118 .text screenSet__12dMenu_save_cFv */
|
|
void dMenu_save_c::screenSet() {
|
|
int i;
|
|
u32 var_r28 = 'wp00';
|
|
for (i = 0; i < 8; i++) {
|
|
fopMsgM_setPaneData(&field_0x14[i], MenuSave.Scr->search(var_r28));
|
|
var_r28++;
|
|
}
|
|
|
|
fopMsgM_setPaneData(&field_0x1d4, MenuSave.Scr->search('msk0'));
|
|
fopMsgM_setPaneData(&field_0x20c[0], MenuSave.Scr->search('cc01'));
|
|
fopMsgM_setPaneData(&field_0x20c[1], MenuSave.Scr->search('cc12'));
|
|
fopMsgM_setPaneData(&field_0x20c[2], MenuSave.Scr->search('cc23'));
|
|
fopMsgM_setPaneData(&field_0x20c[3], MenuSave.Scr->search('st00'));
|
|
fopMsgM_setPaneData(&field_0x20c[4], MenuSave.Scr->search('st01'));
|
|
|
|
((J2DTextBox*)field_0x20c[3].pane)->setFont(MenuSave.font);
|
|
((J2DTextBox*)field_0x20c[4].pane)->setFont(MenuSave.font);
|
|
|
|
#if VERSION == VERSION_PAL
|
|
((J2DTextBox*)field_0x20c[3].pane)->setLineSpace(28.0f);
|
|
((J2DTextBox*)field_0x20c[4].pane)->setLineSpace(28.0f);
|
|
#endif
|
|
|
|
char sp8[256];
|
|
for (int i = 0; i < 256; i++) {
|
|
sp8[i] = 'A';
|
|
}
|
|
sp8[255] = 0;
|
|
|
|
((J2DTextBox*)field_0x20c[3].pane)->setString(sp8);
|
|
((J2DTextBox*)field_0x20c[4].pane)->setString(sp8);
|
|
|
|
field_0x51c[0] = ((J2DTextBox*)field_0x20c[3].pane)->getStringPtr();
|
|
*field_0x51c[0] = 0;
|
|
|
|
field_0x51c[1] = ((J2DTextBox*)field_0x20c[4].pane)->getStringPtr();
|
|
*field_0x51c[1] = 0;
|
|
|
|
fopMsgM_setPaneData(&field_0x324, MenuSave.Scr->search('tk00'));
|
|
fopMsgM_setPaneData(&field_0x35c, MenuSave.Scr->search('tl00'));
|
|
#if VERSION == VERSION_PAL
|
|
fopMsgM_setPaneData(&field_0x51c_pal, MenuSave.Scr->search('tlsv'));
|
|
#endif
|
|
fopMsgM_setPaneData(&field_0x394, MenuSave.Scr->search('cur1'));
|
|
fopMsgM_setPaneData(&field_0x3cc, MenuSave.Scr->search('ysk0'));
|
|
fopMsgM_setPaneData(&field_0x404, MenuSave.Scr->search('ys00'));
|
|
fopMsgM_setPaneData(&field_0x43c, MenuSave.Scr->search('yes'));
|
|
((J2DTextBox*)field_0x43c.pane)->setFont(MenuSave.font);
|
|
|
|
fopMsgM_setPaneData(&field_0x474, MenuSave.Scr->search('nok0'));
|
|
fopMsgM_setPaneData(&field_0x4ac, MenuSave.Scr->search('no00'));
|
|
fopMsgM_setPaneData(&field_0x4e4, MenuSave.Scr->search('no'));
|
|
((J2DTextBox*)field_0x4e4.pane)->setFont(MenuSave.font);
|
|
|
|
#if VERSION == VERSION_PAL
|
|
char yestxt[4];
|
|
switch (dComIfGs_getPalLanguage()) {
|
|
case 0:
|
|
((J2DPicture*)field_0x51c_pal.pane)->changeTexture("title_save.bti", 0);
|
|
((J2DTextBox*)field_0x43c.pane)->setString("Yes");
|
|
((J2DTextBox*)field_0x4e4.pane)->setString("No");
|
|
break;
|
|
case 1:
|
|
((J2DPicture*)field_0x51c_pal.pane)->changeTexture("title_save_gm.bti", 0);
|
|
((J2DTextBox*)field_0x43c.pane)->setString("Ja");
|
|
((J2DTextBox*)field_0x4e4.pane)->setString("Nein");
|
|
break;
|
|
case 2:
|
|
((J2DPicture*)field_0x51c_pal.pane)->changeTexture("title_save_fr.bti", 0);
|
|
((J2DTextBox*)field_0x43c.pane)->setString("Oui");
|
|
((J2DTextBox*)field_0x4e4.pane)->setString("Non");
|
|
break;
|
|
case 3: {
|
|
strcpy(yestxt, "Si");
|
|
yestxt[1] = 0xED;
|
|
|
|
((J2DPicture*)field_0x51c_pal.pane)->changeTexture("title_save_sp.bti", 0);
|
|
((J2DTextBox*)field_0x43c.pane)->setString(yestxt);
|
|
((J2DTextBox*)field_0x4e4.pane)->setString("No");
|
|
break;
|
|
}
|
|
case 4: {
|
|
strcpy(yestxt, "Si");
|
|
yestxt[1] = 0xEC;
|
|
|
|
((J2DPicture*)field_0x51c_pal.pane)->changeTexture("title_save_it.bti", 0);
|
|
((J2DTextBox*)field_0x43c.pane)->setString(yestxt);
|
|
((J2DTextBox*)field_0x4e4.pane)->setString("No");
|
|
break;
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
|
|
/* 801DA118-801DA2C8 .text paneTransInit__12dMenu_save_cFv */
|
|
void dMenu_save_c::paneTransInit() {
|
|
field_0x544 = 0;
|
|
PaneScaleAlphaWipe(field_0x544, g_msHIO.field_0x23, g_msHIO.field_0x26, 1, 0);
|
|
PaneAlphaMask(field_0x544, g_msHIO.field_0x5, 1, 0);
|
|
PaneTranceBase(field_0x544, g_msHIO.field_0x8, g_msHIO.field_0xc, 0.0f, 1, 0);
|
|
PaneTranceTitle(field_0x544, g_msHIO.field_0x10, g_msHIO.field_0x14, 0.0f, 1, 0);
|
|
PaneTranceMenu(field_0x544, g_msHIO.field_0x18, &field_0x3cc, g_msHIO.field_0x1e, 0.0f, 1, 0);
|
|
PaneTranceMenu(field_0x544, g_msHIO.field_0x18, &field_0x474, g_msHIO.field_0x1e, 0.0f, 1, 0);
|
|
field_0x394.pane->hide();
|
|
}
|
|
|
|
/* 801DA2C8-801DA3C4 .text displayInit__12dMenu_save_cFv */
|
|
void dMenu_save_c::displayInit() {
|
|
field_0x536 = 0;
|
|
field_0x53c = 0;
|
|
field_0x53d = 0;
|
|
field_0x53b = 0;
|
|
proc = PROC_SAVE_WAIT;
|
|
saveStatus = 1;
|
|
field_0x53a = 1;
|
|
endStatus = 2;
|
|
field_0x535 = 0;
|
|
CursorAlphaInit();
|
|
field_0x52f = 0;
|
|
CursorMove();
|
|
|
|
fopMsgM_setNowAlpha(&field_0x20c[3], 1.0f);
|
|
fopMsgM_setNowAlpha(&field_0x20c[4], 0.0f);
|
|
fopMsgM_setAlpha(&field_0x20c[3]);
|
|
fopMsgM_setAlpha(&field_0x20c[4]);
|
|
|
|
field_0x539 = 1;
|
|
|
|
if (useType == 3) {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536], 0x4C);
|
|
} else {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536], 0x39);
|
|
}
|
|
|
|
*field_0x51c[field_0x536 ^ 1] = 0;
|
|
}
|
|
|
|
/* 801DA3C4-801DA420 .text initializeEx__12dMenu_save_cFv */
|
|
void dMenu_save_c::initializeEx() {
|
|
fopMsgM_messageGet(field_0x51c[field_0x536], 0x3A);
|
|
fopMsgM_messageGet(field_0x51c[field_0x536 ^ 1], 0x3A);
|
|
}
|
|
|
|
/* 801DA420-801DA508 .text menuUp__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::menuUp() {
|
|
BOOL var_r31 = PaneTranceMenu(field_0x544, g_msHIO.field_0x18, &field_0x3cc, g_msHIO.field_0x1e, 0.0f, 1, 0);
|
|
BOOL temp_r3 = PaneTranceMenu(field_0x544 - g_msHIO.field_0x1c, g_msHIO.field_0x18, &field_0x474, g_msHIO.field_0x1e, 0.0f, 1, 0);
|
|
|
|
if (var_r31 == true && temp_r3 == TRUE) {
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DA508-801DA5F0 .text menuDown__12dMenu_save_cFv */
|
|
BOOL dMenu_save_c::menuDown() {
|
|
BOOL var_r31 = PaneTranceMenu(field_0x544, g_msHIO.field_0x18, &field_0x3cc, 0.0f, g_msHIO.field_0x1e, 0, 1);
|
|
BOOL temp_r3 = PaneTranceMenu(field_0x544 - g_msHIO.field_0x1c, g_msHIO.field_0x18, &field_0x474, 0.0f, g_msHIO.field_0x1e, 0, 1);
|
|
|
|
if (var_r31 == true && temp_r3 == TRUE) {
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DA5F0-801DA6B0 .text PaneAlphaMsgTxt__12dMenu_save_cFsUc */
|
|
BOOL dMenu_save_c::PaneAlphaMsgTxt(s16 param_0, u8 param_1) {
|
|
if (param_0 < 0)
|
|
return FALSE;
|
|
if (param_0 > param_1)
|
|
return TRUE;
|
|
|
|
f32 var_f31 = fopMsgM_valueIncrease(param_1, param_0, 0);
|
|
fopMsgM_setNowAlpha(&field_0x20c[field_0x536 + 3], 1.0f - var_f31);
|
|
fopMsgM_setNowAlpha(&field_0x20c[(field_0x536 ^ 1) + 3], var_f31);
|
|
fopMsgM_setAlpha(&field_0x20c[0 + 3]);
|
|
fopMsgM_setAlpha(&field_0x20c[1 + 3]);
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DA6B0-801DA7B8 .text PaneTranceBase__12dMenu_save_cFsUcffUci */
|
|
BOOL dMenu_save_c::PaneTranceBase(s16 param_0, u8 param_1, f32 param_2, f32 param_3, u8 param_4, int param_5) {
|
|
if (param_0 < 0)
|
|
return FALSE;
|
|
if (param_0 > param_1)
|
|
return TRUE;
|
|
|
|
f32 var_f31 = fopMsgM_valueIncrease(param_1, param_0, param_4);
|
|
fopMsgM_paneTrans(&field_0x20c[0], 0.0f, param_2 + (var_f31 * (param_3 - param_2)));
|
|
|
|
if (param_5 != 2) {
|
|
if (param_5 == 1) {
|
|
var_f31 = 1.0f - var_f31;
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlpha(&field_0x20c[i], var_f31);
|
|
fopMsgM_setAlpha(&field_0x20c[i]);
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DA7B8-801DAA80 .text PaneScaleAlphaWipe__12dMenu_save_cFsUcfUci */
|
|
BOOL dMenu_save_c::PaneScaleAlphaWipe(s16 param_0, u8 param_1, f32 param_2, u8 param_3, int param_4) {
|
|
int i;
|
|
|
|
if (param_0 < 0)
|
|
return FALSE;
|
|
if (param_0 > param_1)
|
|
return TRUE;
|
|
|
|
f32 var_f31 = fopMsgM_valueIncrease(param_1, param_0, param_3);
|
|
|
|
f32 temp_f2 = param_2 - 1.0f;
|
|
if (temp_f2 >= 0.0f) {
|
|
f32 temp_f0 = (1.0f - var_f31) * temp_f2;
|
|
for (i = 0; i < 8; i++) {
|
|
field_0x14[i].mSize.x = field_0x14[i].mSizeOrig.x * (temp_f0 + 1.0f);
|
|
field_0x14[i].mSize.y = field_0x14[i].mSizeOrig.y * (temp_f0 + 1.0f);
|
|
field_0x14[i].pane->resize(field_0x14[i].mSize.x, field_0x14[i].mSize.y);
|
|
}
|
|
|
|
field_0x14[0].mPosTopLeft.x = field_0x14[0].mPosTopLeftOrig.x - (field_0x14[0].mSize.x - field_0x14[0].mSizeOrig.x);
|
|
field_0x14[0].pane->move(field_0x14[0].mPosTopLeft.x, field_0x14[0].mPosTopLeftOrig.y);
|
|
field_0x14[2].mPosTopLeft.y = field_0x14[2].mPosTopLeftOrig.y - (field_0x14[2].mSize.y - field_0x14[2].mSizeOrig.y);
|
|
field_0x14[2].pane->move(field_0x14[2].mPosTopLeftOrig.x, field_0x14[2].mPosTopLeft.y);
|
|
field_0x14[1].mPosTopLeft.y = field_0x14[1].mPosTopLeftOrig.y - (field_0x14[1].mSize.y - field_0x14[1].mSizeOrig.y);
|
|
field_0x14[1].mPosTopLeft.x = field_0x14[2].mSize.x;
|
|
field_0x14[1].pane->move(field_0x14[1].mPosTopLeft.x, field_0x14[1].mPosTopLeft.y);
|
|
field_0x14[3].mPosTopLeft.x = field_0x14[0].mSize.x;
|
|
field_0x14[3].pane->move(field_0x14[3].mPosTopLeft.x, field_0x14[3].mPosTopLeftOrig.y);
|
|
field_0x14[4].pane->move(field_0x14[2].mSize.x + field_0x14[1].mSize.x, -field_0x14[1].mSize.y);
|
|
field_0x14[5].pane->move(-field_0x14[5].mSize.x, -field_0x14[2].mSize.y);
|
|
field_0x14[6].pane->move(-(field_0x14[0].mSize.x + field_0x14[5].mSize.x), -(field_0x14[2].mSize.y + field_0x14[6].mSize.y));
|
|
field_0x14[7].pane->move(-(field_0x14[0].mSize.x + field_0x14[5].mSize.x), field_0x14[0].mSize.y + field_0x14[7].mSize.y);
|
|
}
|
|
|
|
if (param_4 != 2) {
|
|
if (param_4 == 1) {
|
|
var_f31 = 1.0f - var_f31;
|
|
}
|
|
|
|
for (i = 0; i < 8; i++) {
|
|
fopMsgM_setNowAlpha(&field_0x14[i], var_f31);
|
|
fopMsgM_setAlpha(&field_0x14[i]);
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DAA80-801DAB10 .text PaneAlphaMask__12dMenu_save_cFsUcUci */
|
|
BOOL dMenu_save_c::PaneAlphaMask(s16 param_0, u8 param_1, u8 param_2, int param_3) {
|
|
if (param_0 < 0)
|
|
return FALSE;
|
|
if (param_0 > param_1)
|
|
return TRUE;
|
|
|
|
f32 var_f31 = fopMsgM_valueIncrease(param_1, param_0, param_2);
|
|
|
|
if (param_3 != 2) {
|
|
if (param_3 == 1) {
|
|
var_f31 = 1.0f - var_f31;
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&field_0x1d4, var_f31);
|
|
fopMsgM_setAlpha(&field_0x1d4);
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DAB10-801DAC0C .text PaneTranceTitle__12dMenu_save_cFsUcffUci */
|
|
BOOL dMenu_save_c::PaneTranceTitle(s16 param_0, u8 param_1, f32 param_2, f32 param_3, u8 param_4, int param_5) {
|
|
if (param_0 < 0)
|
|
return FALSE;
|
|
if (param_0 > param_1)
|
|
return TRUE;
|
|
|
|
f32 var_f31 = fopMsgM_valueIncrease(param_1, param_0, param_4);
|
|
fopMsgM_paneTrans(&field_0x324, 0.0f, param_2 + (var_f31 * (param_3 - param_2)));
|
|
|
|
if (param_5 != 2) {
|
|
if (param_5 == 1) {
|
|
var_f31 = 1.0f - var_f31;
|
|
}
|
|
|
|
fopMsgM_setNowAlpha(&field_0x324, var_f31);
|
|
fopMsgM_setNowAlpha(&field_0x35c, var_f31);
|
|
fopMsgM_setAlpha(&field_0x324);
|
|
fopMsgM_setAlpha(&field_0x35c);
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DAC0C-801DACD0 .text PaneRotate__12dMenu_save_cFsUcP18fopMsgM_pane_classfffUc */
|
|
BOOL dMenu_save_c::PaneRotate(s16 param_0, u8 param_1, fopMsgM_pane_class* param_2, f32 param_3, f32 param_4, f32 param_5, u8 param_6) {
|
|
if (param_0 < 0)
|
|
return FALSE;
|
|
if (param_0 > param_1)
|
|
return TRUE;
|
|
|
|
f32 var_f31 = fopMsgM_valueIncrease(param_1, param_0, param_6);
|
|
param_2->pane->rotate(param_3, param_4, ROTATE_Z, param_5 * var_f31);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DACD0-801DADD4 .text PaneTranceMenu__12dMenu_save_cFsUcP18fopMsgM_pane_classffUci */
|
|
BOOL dMenu_save_c::PaneTranceMenu(s16 param_0, u8 param_1, fopMsgM_pane_class* param_2, f32 param_3, f32 param_4, u8 param_5, int param_6) {
|
|
if (param_0 < 0)
|
|
return FALSE;
|
|
if (param_0 > param_1)
|
|
return TRUE;
|
|
|
|
f32 var_f31 = fopMsgM_valueIncrease(param_1, param_0, param_5);
|
|
fopMsgM_paneTrans(param_2, 0.0f, param_3 + (var_f31 * (param_4 - param_3)));
|
|
|
|
if (param_6 != 2) {
|
|
if (param_6 == 1) {
|
|
var_f31 = 1.0f - var_f31;
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++) {
|
|
fopMsgM_setNowAlpha(¶m_2[i], var_f31);
|
|
fopMsgM_setAlpha(¶m_2[i]);
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/* 801DADD4-801DAE20 .text _draw__12dMenu_save_cFv */
|
|
void dMenu_save_c::_draw() {
|
|
MenuSave.Scr->draw(0.0f, 0.0f, dComIfGp_getCurrentGrafPort());
|
|
dFe_c->draw2();
|
|
}
|
|
|
|
/* 801DAE20-801DAE6C .text _draw2__12dMenu_save_cFv */
|
|
void dMenu_save_c::_draw2() {
|
|
dComIfGd_set2DOpa(&MenuSave);
|
|
dFe_c->_draw();
|
|
}
|
|
|
|
/* 801DAE6C-801DAED0 .text draw__16dDlst_MenuSave_cFv */
|
|
void dDlst_MenuSave_c::draw() {
|
|
J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
|
|
graf->setPort();
|
|
Scr->draw(0.0f, 0.0f, graf);
|
|
}
|