Files
tww/src/d/d_s_name.cpp
T
LagoLunatic a6bf2ff16b Add debug-only HIO TUs based on TP decomp (#1232)
* Add debug-only HIO TUs based on TP decomp

* Remove dump_sort
2026-10-07 18:47:36 -04:00

1581 lines
47 KiB
C++

//
// Generated by dtk
// Translation Unit: d_s_name.cpp
//
#include "d/dolzel.h" // IWYU pragma: keep
#include "d/d_s_name.h"
#include "d/d_com_inf_game.h"
#include "d/d_com_lib_game.h"
#include "d/d_file_error.h"
#include "d/d_file_select.h"
#include "d/d_menu_cloth.h"
#include "d/d_menu_save.h"
#include "d/d_name.h"
#include "f_ap/f_ap_game.h"
#include "f_op/f_op_camera_mng.h"
#include "f_op/f_op_draw_iter.h"
#include "f_op/f_op_kankyo_mng.h"
#include "f_op/f_op_overlap_mng.h"
#include "f_op/f_op_scene_mng.h"
#include "f_pc/f_pc_node.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"
#include "m_Do/m_Do_machine.h"
#include "m_Do/m_Do_MemCard.h"
#include "m_Do/m_Do_MemCardRWmng.h"
#include "m_Do/m_Do_mtx.h"
#include "m_Do/m_Do_Reset.h"
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JKernel/JKRMemArchive.h"
dSn_HIO_c g_snHIO;
static int mBmgStatus;
/* 8022F86C-8022F8F0 .text __ct__9dSn_HIO_cFv */
dSn_HIO_c::dSn_HIO_c() {
field_0x5 = 20;
field_0x6 = 15;
field_0x7 = 30;
field_0x8 = 0;
field_0x9 = 0;
field_0xa = 0;
field_0xb = 0;
field_0xe = 7;
field_0xc = -200;
field_0xf = 2;
field_0x10 = 0;
field_0x11 = 0;
field_0x12 = 0;
field_0x13 = 0;
field_0x14 = 0;
field_0x15 = 0;
field_0x16 = 0;
field_0x17 = 0;
field_0x18 = 0;
field_0x19 = 0;
field_0x1a = 0;
field_0x1b = 0;
}
/* 8022F8F0-8022F95C .text phase_1__FPc */
static cPhs_State phase_1(char* resName) {
mDoAud_bgmStart(JA_BGM_SELECT);
if (dComIfG_setStageRes(resName, NULL) == FALSE) {
return cPhs_ERROR_e;
}
return cPhs_NEXT_e;
}
/* 8022F95C-8022F9B4 .text phase_2__FPc */
static cPhs_State phase_2(char* resName) {
s32 rt = dComIfG_syncStageRes(resName);
if (rt < 0)
return cPhs_ERROR_e;
else if (rt > 0)
return cPhs_INIT_e;
return cPhs_NEXT_e;
}
/* 8022F9B4-8022F9BC .text phase_3__FPc */
static cPhs_State phase_3(char*) {
return cPhs_COMPLEATE_e;
}
/* 8022F9BC-8022F9FC .text resLoad__FP30request_of_phase_process_classPc */
cPhs_State resLoad(request_of_phase_process_class* phase, char* resName) {
static cPhs__Handler l_method[] = {
(cPhs__Handler)phase_1,
(cPhs__Handler)phase_2,
(cPhs__Handler)phase_3,
};
if (phase->id == 2) {
return cPhs_COMPLEATE_e;
}
return dComLbG_PhaseHandler(phase, l_method, 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();
#if VERSION == VERSION_PAL
if (fpcM_GetName(this) == fpcNm_NAME_SCENE_e) {
bmg_data_read_all();
if (mBmgStatus < 3) {
return cPhs_INIT_e;
}
}
#endif
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);
#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);
cloth_create();
buttonIconCreate();
dFs_c = new dFile_select_c();
JUT_ASSERT(VERSION_SELECT(316, 319, 470, 473), dFs_c != NULL);
dFs_c->archive = mArchive;
#if VERSION == VERSION_PAL
dFs_c->setField_0x3cd4(field_0x1d8);
#endif
savePicDatabuf = new (0x20) card_pictdata[3 * 3];
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(VERSION_SELECT(330, 333, 484, 491), dNm_c != NULL);
dNm_c->_create();
dFe_c = new dFile_error_c();
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(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_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);
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);
dComIfGp_setPlayer(0, NULL);
dComIfGd_setWindow(dComIfGp_getWindow(0));
dComIfGd_setViewport(dComIfGp_getWindow(0)->getViewPort());
dComIfGd_setView(&mCamera.view);
mDoGph_gInf_c::offAutoForcus();
setView();
dKy_setLight_init();
fopKyM_Create(fpcNm_KYEFF_e, 0, 0);
fopKyM_Create(fpcNm_KYEFF2_e, 0, 0);
fpcSCtRq_Request(fpcLy_CurrentLayer(), fpcNm_VRBOX_e, NULL, NULL, NULL);
fpcSCtRq_Request(fpcLy_CurrentLayer(), fpcNm_VRBOX2_e, NULL, NULL, NULL);
g_env_light.mVrSkyColor.r = 0x50;
g_env_light.mVrSkyColor.g = 0x78;
g_env_light.mVrSkyColor.b = 0xff;
g_env_light.mVrSkyColor.a = 0xff;
g_env_light.mVrkumoColor.r = 0xff;
g_env_light.mVrkumoColor.g = 0xff;
g_env_light.mVrkumoColor.b = 0xff;
g_env_light.mVrkumoColor.a = 0xff;
g_env_light.mVrKasumiMaeColor.r = 0xd2;
g_env_light.mVrKasumiMaeColor.g = 0xe5;
g_env_light.mVrKasumiMaeColor.b = 0xff;
g_env_light.mVrKasumiMaeColor.a = 0xff;
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;
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);
#if VERSION == VERSION_PAL
mBmgStatus = 0;
#endif
}
return rt;
}
#if VERSION == VERSION_PAL
void dScnName_c::bmg_data_read_all() {
if (mBmgStatus == 0) {
dComIfGp_getMsgDtArchive()->unmount();
field_0x1c4[0] = mDoDvdThd_mountXArchive_c::create("/res/Msg/data0/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1c4[1] = mDoDvdThd_mountXArchive_c::create("/res/Msg/data1/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1c4[2] = mDoDvdThd_mountXArchive_c::create("/res/Msg/data2/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1c4[3] = mDoDvdThd_mountXArchive_c::create("/res/Msg/data3/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
field_0x1c4[4] = mDoDvdThd_mountXArchive_c::create("/res/Msg/data4/bmgres.arc", 0, JKRArchive::MOUNT_MEM);
mBmgStatus = 1;
}
if (mBmgStatus == 1) {
if (field_0x1c4[0]->sync() && field_0x1c4[1]->sync() && field_0x1c4[2]->sync() &&
field_0x1c4[3]->sync() && field_0x1c4[4]->sync()) {
mBmgStatus = 2;
}
}
if (mBmgStatus == 2) {
dComIfGp_setMsgDtArchive(field_0x1c4[dComIfGs_getPalLanguage()]->getArchive());
for (int i = 0; i < 5; i++) {
field_0x1d8[i] = field_0x1c4[i]->getArchive();
delete field_0x1c4[i];
}
mBmgStatus = 3;
}
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::bmg_data_set() {
if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e) {
mBmgStatus = 10;
}
if (mBmgStatus == 0) {
for (int i = 0; i < 5; i++) {
field_0x1d8[i]->unmount();
}
char path[32];
sprintf(path, "/res/Msg/data%d/bmgres.arc", dComIfGs_getPalLanguage());
field_0x1c4[0] = mDoDvdThd_mountXArchive_c::create(path, 0, JKRArchive::MOUNT_MEM);
mBmgStatus = 1;
}
if (mBmgStatus == 1) {
if (field_0x1c4[0]->sync()) {
mBmgStatus = 2;
}
}
if (mBmgStatus == 2) {
dComIfGp_setMsgDtArchive(field_0x1c4[0]->getArchive());
delete field_0x1c4[0];
mBmgStatus = 3;
}
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::tex_data_set() {
if (mBmgStatus == 3) {
dComIfGp_getActionIconArchive()->unmount();
char path[32];
sprintf(path, "/res/Msg/data%d/acticon.arc", dComIfGs_getPalLanguage());
field_0x1c4[1] = mDoDvdThd_mountXArchive_c::create(path, 0, JKRArchive::MOUNT_ARAM);
mBmgStatus = 4;
}
if (mBmgStatus == 4) {
if (field_0x1c4[1]->sync()) {
mBmgStatus = 5;
}
}
if (mBmgStatus == 5) {
dComIfGp_setActionIconArchive(field_0x1c4[1]->getArchive());
delete field_0x1c4[1];
mBmgStatus = 6;
}
}
#endif
/* 802301C8-802301FC .text cloth_create__10dScnName_cFv */
void dScnName_c::cloth_create() {
cloth2D_create();
field_0x55d = 0;
}
/* 802301FC-80230240 .text cloth_move__10dScnName_cFv */
void dScnName_c::cloth_move() {
if (field_0x55d && !g_snHIO.field_0xb) {
cloth.cloth_c->cloth_move();
}
}
/* 80230240-802302F8 .text cloth2D_create__10dScnName_cFv */
void dScnName_c::cloth2D_create() {
JKRArchive* clothRes = dComIfGp_getClothResArchive();
cloth.cloth_c = new dMCloth_c();
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);
}
static void dummy() {
DEAD_STRING("baseMdl != 0");
DEAD_STRING("baseMdl->getModel() != 0");
DEAD_STRING("brkAnm != 0");
DEAD_STRING("res != 0");
// Need 0x18 bytes of stripped vtable padding to match.
// Unclear what the original classes in the unused function were, but this works.
dFe_HIO_c temp1;
dNm_HIO_c temp2;
}
/* 802302F8-80230500 .text buttonIconCreate__10dScnName_cFv */
void dScnName_c::buttonIconCreate() {
btnIcon.scr = new J2DScreen();
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'));
fopMsgM_setPaneData(&field_0x4ac, btnIcon.scr->search('baat'));
fopMsgM_setPaneData(&field_0x4e4[0], btnIcon.scr->search('bawp'));
#if VERSION == VERSION_PAL
fopMsgM_setPaneData(&field_0x4e4[1], btnIcon.scr->search('bap2'));
fopMsgM_setPaneData(&field_0x554[0], btnIcon.scr->search('bawd'));
fopMsgM_setPaneData(&field_0x554[1], btnIcon.scr->search('bad2'));
fopMsgM_setNowAlpha(&field_0x4e4[1], 0.0f);
fopMsgM_setNowAlpha(&field_0x554[1], 0.0f);
fopMsgM_setAlpha(&field_0x4e4[1]);
fopMsgM_setAlpha(&field_0x554[1]);
field_0x1c58 = 0;
field_0x1c5a = 0;
field_0x1c59 = 0;
buttonIconTexChange(dComIfGs_getPalLanguage(), field_0x1c58);
#else
fopMsgM_setPaneData(&field_0x4e4[1], btnIcon.scr->search('bawd'));
#endif
field_0x1bb4 = 0;
paneTransButtonIcon(field_0x1bb4, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 0);
field_0x1bb6 = 6;
}
#if VERSION == VERSION_PAL
void dScnName_c::buttonIconTexChange(u8 i_type, u8 i_index) {
switch (i_type) {
case 0:
((J2DPicture*)field_0x4e4[i_index].pane)->changeTexture("ba_kettei.bti", 0);
((J2DPicture*)field_0x554[i_index].pane)->changeTexture("ba_modoru.bti", 0);
break;
case 1:
((J2DPicture*)field_0x4e4[i_index].pane)->changeTexture("ba_kettei_gm.bti", 0);
((J2DPicture*)field_0x554[i_index].pane)->changeTexture("ba_modoru_gm.bti", 0);
break;
case 2:
((J2DPicture*)field_0x4e4[i_index].pane)->changeTexture("ba_kettei_fr.bti", 0);
((J2DPicture*)field_0x554[i_index].pane)->changeTexture("ba_modoru_fr.bti", 0);
break;
case 3:
((J2DPicture*)field_0x4e4[i_index].pane)->changeTexture("ba_kettei_sp.bti", 0);
((J2DPicture*)field_0x554[i_index].pane)->changeTexture("ba_modoru_sp.bti", 0);
break;
case 4:
((J2DPicture*)field_0x4e4[i_index].pane)->changeTexture("ba_kettei_it.bti", 0);
((J2DPicture*)field_0x554[i_index].pane)->changeTexture("ba_modoru_it.bti", 0);
break;
}
}
#endif
#if VERSION == VERSION_PAL
int dScnName_c::PaneAlphaLangTxt(s16 i_value, u8 i_max) {
if (i_value < 0) {
return 0;
}
if (i_value > i_max) {
return 1;
}
f32 alpha_in = fopMsgM_valueIncrease(i_max, i_value, 0);
f32 alpha_out = 1.0f - alpha_in;
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58], alpha_out);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58], alpha_out);
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58 ^ 1], alpha_in);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58 ^ 1], alpha_in);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58]);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58 ^ 1]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58 ^ 1]);
return 0;
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::languageTexChange() {
if (field_0x1c59 == 1) {
langTexChgFast();
} else {
field_0x1c59 = 1;
}
buttonIconTexChange(dFs_c->getField_0x3cc6(), field_0x1c58 ^ 1);
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::langTexChg() {
if (field_0x1c59 != 0) {
int result = PaneAlphaLangTxt(field_0x1c5a, 10);
field_0x1c5a++;
if (result == 1) {
field_0x1c58 ^= 1;
field_0x1c5a = 0;
field_0x1c59 = 0;
}
}
}
#endif
#if VERSION == VERSION_PAL
void dScnName_c::langTexChgFast() {
field_0x1c5a = 0;
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58 ^ 1], 1.0f);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58 ^ 1], 1.0f);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58 ^ 1]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58 ^ 1]);
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58], 0.0f);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58], 0.0f);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58]);
field_0x1c58 ^= 1;
}
#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) {
return false;
}
if (param_1 > param_2) {
return true;
}
f32 tmp = fopMsgM_valueIncrease(param_2, param_1, param_5);
tmp *= (param_4 - param_3);
fopMsgM_paneTrans(&field_0x43c, 0.0f, param_3 + tmp);
fopMsgM_paneTrans(&field_0x474, 0.0f, param_3 + tmp);
fopMsgM_paneTrans(&field_0x4ac, 0.0f, param_3 + tmp);
fopMsgM_paneTrans(&field_0x4e4[0], 0.0f, param_3 + tmp);
fopMsgM_paneTrans(&field_0x4e4[1], 0.0f, param_3 + tmp);
#if VERSION == VERSION_PAL
fopMsgM_paneTrans(&field_0x554[0], 0.0f, param_3 + tmp);
fopMsgM_paneTrans(&field_0x554[1], 0.0f, param_3 + tmp);
#endif
return false;
}
void (dScnName_c::*MainProc[])() = {
&dScnName_c::MemCardCheckMain,
&dScnName_c::NoteOpen,
&dScnName_c::NoteOpenWait,
&dScnName_c::FileSelectOpen,
&dScnName_c::FileSelectMain,
&dScnName_c::FileSelectClose,
&dScnName_c::NameInOpen,
&dScnName_c::NameInMain,
&dScnName_c::NameInClose,
&dScnName_c::changeGameScene,
&dScnName_c::SaveOpen,
&dScnName_c::SaveMain,
&dScnName_c::SaveClose,
&dScnName_c::ResetWait,
&dScnName_c::ShopDemoDataLoad,
&dScnName_c::ShopDemoDataSet,
};
void (dScnName_c::*MemCardCheckProc[])() = {
&dScnName_c::MemCardStatCheck,
&dScnName_c::MemCardLoadWait,
&dScnName_c::MemCardErrMsgWaitKey,
&dScnName_c::MemCardErrMsgWaitKey2,
&dScnName_c::MemCardErrMsgWaitNoSaveSel,
&dScnName_c::MemCardErrMsgWaitFormatSel,
&dScnName_c::MemCardErrMsgWaitFormatSel2,
&dScnName_c::MemCardFormat,
&dScnName_c::MemCardFormatCheck,
&dScnName_c::MemCardMakeGameFileSel,
&dScnName_c::MemCardMakeGameFile,
&dScnName_c::MemCardMakeGameFileCheck,
&dScnName_c::MemCardGotoFileSelect,
&dScnName_c::MemCardGotoIPLSelect,
&dScnName_c::MemCardGotoIPL,
&dScnName_c::MemCardCheckDbg,
&dScnName_c::MemCardCheckDbgWait,
};
void (dScnName_c::*NameOpenProc[])() = {
&dScnName_c::NameOpenMain,
&dScnName_c::NameOpenWait,
};
void (dScnName_c::*FileSelOpenProc[])() = {
&dScnName_c::FileSelOpenMain,
&dScnName_c::FileselOpenWait,
};
void (dScnName_c::*DrawProc[])() = {
&dScnName_c::FileErrorDraw,
&dScnName_c::FileSelectDraw,
&dScnName_c::NameInDraw,
&dScnName_c::SaveDraw,
&dScnName_c::NoneDraw,
};
/* 802305E0-80230678 .text execute__10dScnName_cFv */
BOOL dScnName_c::execute() {
if (!fopOvlpM_IsPeek()) {
dComIfG_resetToOpening(this);
}
#if VERSION > VERSION_DEMO
if (mDoRst::isReset()) {
return TRUE;
}
#endif
cloth_move();
if (dFe_c != NULL) {
dFe_c->_move();
}
(this->*(MainProc[mMainProc]))();
buttonIconProc();
return TRUE;
}
/* 80230678-80230714 .text setView__10dScnName_cFv */
void dScnName_c::setView() {
camera_class* camera = &mCamera;
C_MTXPerspective(camera->view.mProjMtx, camera->view.mFovy, camera->view.mAspect, camera->view.mNear, camera->view.mFar);
mDoMtx_lookAt(camera->view.mViewMtx, &camera->view.mLookat.mEye, &camera->view.mLookat.mCenter, camera->view.mBank);
cMtx_inverse(camera->view.mViewMtx, camera->view.mInvViewMtx);
MTXCopy(camera->view.mViewMtx, camera->view.mViewMtxNoTrans);
camera->view.mViewMtxNoTrans[0][3] = 0.0f;
camera->view.mViewMtxNoTrans[1][3] = 0.0f;
camera->view.mViewMtxNoTrans[2][3] = 0.0f;
j3dSys.setViewMtx(camera->view.mViewMtx);
cMtx_concatProjView(camera->view.mProjMtx, camera->view.mViewMtx, camera->view.mProjViewMtx);
}
/* 80230714-802307EC .text draw__10dScnName_cFv */
BOOL dScnName_c::draw() {
setView();
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);
}
(this->*(DrawProc[mDrawProc]))();
dComIfGd_set2DOpa(&btnIcon);
return TRUE;
}
/* 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_deleteChild(no);
mDoExt_destroySolidHeap(heap);
dComIfG_deleteStageRes("Stage");
dComIfGp_setWindowNum(0);
dComIfGs_setRestartOption(0);
#else
dFs_c->_delete();
delete dFs_c;
if (dNm_c) {
dNm_c->_delete();
delete dNm_c;
}
if (dFe_c) {
dFe_c->_delete();
delete dFe_c;
}
if (dMs_c) {
dMs_c->_delete();
delete dMs_c;
}
delete savePicDatabuf;
delete btnIcon.scr;
mArchive->unmountFixed();
delete cloth.cloth_c;
s8 no = g_snHIO.mNo;
mDoHIO_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() {
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() {
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() {
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() {
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() {
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() {
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 */
void dScnName_c::MemCardGotoIPL() {
OSResetSystem(1, 1, TRUE);
}
/* 80230E7C-80230F4C .text MemCardErrMsgWaitNoSaveSel__10dScnName_cFv */
void dScnName_c::MemCardErrMsgWaitNoSaveSel() {
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() {
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() {
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 */
void dScnName_c::MemCardFormat() {
field_0x1bbc = mDoMemCd_FormatSync();
if (field_0x1bbc != 0) {
dFe_c->closeMessage();
mMemCardCheckProc = 8;
}
}
/* 802310C0-8023117C .text MemCardFormatCheck__10dScnName_cFv */
void dScnName_c::MemCardFormatCheck() {
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() {
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 */
void dScnName_c::MemCardMakeGameFile() {
field_0x1bbc = mDoMemCd_SaveSync();
if (field_0x1bbc != 0) {
dFe_c->closeMessage();
mMemCardCheckProc = 11;
}
}
/* 802312D8-80231398 .text MemCardMakeGameFileCheck__10dScnName_cFv */
void dScnName_c::MemCardMakeGameFileCheck() {
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 */
void dScnName_c::MemCardGotoFileSelect() {
mMainProc = 1;
mDrawProc = 4;
}
/* 802313AC-802313B0 .text MemCardCheckDbg__10dScnName_cFv */
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 */
void dScnName_c::FileErrorDraw() {
if (dFe_c) {
dFe_c->_draw();
}
}
/* 80231454-802314E8 .text NoteOpen__10dScnName_cFv */
void dScnName_c::NoteOpen() {
if (field_0x558) {
field_0x558--;
return;
}
mDoAud_seStart(JA_SE_MSEL_CLOTH_ON);
mMainProc = 2;
field_0x55d = 1;
cloth.cloth_c->init();
field_0x559 = g_snHIO.field_0x6;
}
/* 802314E8-802315A8 .text NoteOpenWait__10dScnName_cFv */
void dScnName_c::NoteOpenWait() {
if (field_0x559) {
field_0x559--;
return;
}
if (g_snHIO.field_0x8 == 0) {
if (fpcM_GetName(this) == fpcNm_NAME_SCENE_e) {
dFs_c->setSaveDataPtr(saveMemory);
dFs_c->setSavePicDataPtr((u8*)savePicDatabuf);
#if VERSION == VERSION_PAL
dFs_c->setField_0x3cd4(field_0x1d8);
#endif
}
if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e) {
dFs_c->setSaveDataPtr(dMs_c->getDataBufPtr());
dFs_c->setSavePicDataPtr((u8*)savePicDatabuf);
}
dFs_c->initial();
#if VERSION == VERSION_PAL
field_0x1c58 = 0;
buttonIconTexChange(dComIfGs_getPalLanguage(), field_0x1c58);
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58 ^ 1], 0.0f);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58 ^ 1], 0.0f);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58 ^ 1]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58 ^ 1]);
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58], 1.0f);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58], 1.0f);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58]);
field_0x1c58 ^= 1;
#endif
mMainProc = 3;
mOpenProc = 0;
mDrawProc = 1;
}
}
/* 802315A8-802315E0 .text FileSelectOpen__10dScnName_cFv */
void dScnName_c::FileSelectOpen() {
(this->*(FileSelOpenProc[mOpenProc]))();
}
/* 802315E0-802319B4 .text buttonIconProc__10dScnName_cFv */
void dScnName_c::buttonIconProc() {
switch (field_0x1bb6) {
case 0:
{
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 1);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 1:
{
#if VERSION == VERSION_PAL
if (field_0x554[field_0x1c58].pane->isVisible()) {
field_0x554[0].pane->hide();
field_0x554[1].pane->hide();
field_0x474.pane->hide();
field_0x4ac.pane->hide();
}
#else
if (field_0x4e4[1].pane->isVisible()) {
field_0x4e4[1].pane->hide();
field_0x474.pane->hide();
field_0x4ac.pane->hide();
}
#endif
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 1);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 2:
{
#if VERSION == VERSION_PAL
if (!field_0x554[field_0x1c58].pane->isVisible()) {
field_0x554[0].pane->show();
field_0x554[1].pane->show();
field_0x474.pane->show();
field_0x4ac.pane->show();
}
#else
if (!field_0x4e4[1].pane->isVisible()) {
field_0x4e4[1].pane->show();
field_0x474.pane->show();
field_0x4ac.pane->show();
}
#endif
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, g_snHIO.field_0xc, 0.0f, 1);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 3:
{
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
field_0x1bb6 = 6;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 4:
{
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
#if VERSION == VERSION_PAL
if (!field_0x554[field_0x1c58].pane->isVisible()) {
field_0x554[0].pane->show();
field_0x554[1].pane->show();
field_0x474.pane->show();
field_0x4ac.pane->show();
}
#else
if (!field_0x4e4[1].pane->isVisible()) {
field_0x4e4[1].pane->show();
field_0x474.pane->show();
field_0x4ac.pane->show();
}
#endif
field_0x1bb6 = 0;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 5:
{
s32 ret = paneTransButtonIcon(field_0x1bb4 - g_snHIO.field_0xf, g_snHIO.field_0xe, 0.0f, g_snHIO.field_0xc, 0);
field_0x1bb4++;
if (ret == 1) {
field_0x1bb4 = 0;
#if VERSION == VERSION_PAL
if (field_0x554[field_0x1c58].pane->isVisible()) {
field_0x554[0].pane->hide();
field_0x554[1].pane->hide();
field_0x474.pane->hide();
field_0x4ac.pane->hide();
}
#else
if (field_0x4e4[1].pane->isVisible()) {
field_0x4e4[1].pane->hide();
field_0x474.pane->hide();
field_0x4ac.pane->hide();
}
#endif
field_0x1bb6 = 0;
dFs_c->setIconMode(field_0x1bb6);
}
}
break;
case 6:
break;
}
}
/* 802319B4-80231A24 .text FileSelOpenMain__10dScnName_cFv */
void dScnName_c::FileSelOpenMain() {
if (dFs_c->_open() != 1) {
return;
}
if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e) {
field_0x1bb6 = 2;
} else {
field_0x1bb6 = 1;
}
dFs_c->setIconMode(field_0x1bb6);
mMainProc = 4;
}
/* 80231A24-80231A28 .text FileselOpenWait__10dScnName_cFv */
void dScnName_c::FileselOpenWait() {}
/* 80231A28-80231A8C .text FileSelectMain__10dScnName_cFv */
void dScnName_c::FileSelectMain() {
dFs_c->_move();
field_0x1bb6 = dFs_c->getIconMode();
if (fpcM_GetName(this) == fpcNm_NAME_SCENE_e)
FileSelectMainNormal();
if (fpcM_GetName(this) == fpcNm_NAMEEX_SCENE_e)
FileSelectMainExSave();
}
/* 80231A8C-80231CB8 .text FileSelectMainNormal__10dScnName_cFv */
void dScnName_c::FileSelectMainNormal() {
#if VERSION == VERSION_PAL
if (dFs_c->getField_0x3cd3() != 0) {
languageTexChange();
dFs_c->setField_0x3cd3(0);
}
langTexChg();
#endif
switch (dFs_c->isSelectEnd()) {
case 1:
field_0x1bb9 = 0;
if (dFs_c->isDataNew(dFs_c->getSelectNum())) {
field_0x1bb6 = 3;
mMainProc = 5;
} else {
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) {
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;
}
if (mDoMemCdRWm_TestCheckSumPictData(workBuf)) {
JKRMainRamToAram((u8*)workBuf, dComIfGp_getPictureBoxData(boxDataIdx), sizeof(card_pictdata), EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1);
boxDataIdx++;
} else {
failed++;
}
r25++;
if (r25 == pictureNum)
break;
workBuf++;
}
dComIfGs_setPictureNum(pictureNum - failed);
}
dComIfGs_setEventReg(dSv_event_flag_c::UNK_89FF, 0);
mDoMemCd_setPictDataPtr(NULL);
dComIfGp_itemDataInit();
if (field_0x1bb9 != 0) {
field_0x1bb6 = 3;
mMainProc = 5;
} else {
field_0x55f = 0;
mMainProc = 9;
}
}
break;
case 2:
field_0x1bb6 = 3;
mMainProc = 5;
break;
}
}
/* 80231CB8-80231D00 .text FileSelectMainExSave__10dScnName_cFv */
void dScnName_c::FileSelectMainExSave() {
switch (dFs_c->isSelectEnd()) {
case 1:
field_0x558 = 0x2d;
mMainProc = 13;
return;
case 2:
case 3:
field_0x1bb6 = 3;
mMainProc = 5;
return;
default:
return;
}
}
/* 80231D00-80231D28 .text ResetWait__10dScnName_cFv */
void dScnName_c::ResetWait() {
if (field_0x558) {
field_0x558--;
return;
}
mDoRst::onReset();
}
/* 80231D28-80231E9C .text FileSelectClose__10dScnName_cFv */
void dScnName_c::FileSelectClose() {
if (dFs_c->_close() == 1) {
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->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;
mMemCardCheckProc = 0;
mDrawProc = 0;
}
#if VERSION > VERSION_DEMO
cloth.cloth_c->alpha_out();
#endif
break;
case 3:
cloth.cloth_c->alpha_out();
dMs_c->initialize();
mMainProc = 10;
mDrawProc = 3;
break;
case 1:
if (field_0x1bb9) {
dNm_c->setNextNameStr((char*)dComIfGs_getPlayerName());
} else {
dNm_c->setNextNameStr("");
}
dNm_c->initial();
mMainProc = 6;
mOpenProc = 0;
mDrawProc = 2;
break;
}
}
}
/* 80231E9C-80231EC0 .text FileSelectDraw__10dScnName_cFv */
void dScnName_c::FileSelectDraw() {
dFs_c->_draw();
}
/* 80231EC0-80231EF8 .text NameInOpen__10dScnName_cFv */
void dScnName_c::NameInOpen() {
(this->*(NameOpenProc[mOpenProc]))();
}
/* 80231EF8-80231F44 .text NameOpenMain__10dScnName_cFv */
void dScnName_c::NameOpenMain() {
if (dNm_c->_open() == true) {
field_0x1bb6 = 0;
mMainProc = 7;
}
}
/* 80231F44-80231F48 .text NameOpenWait__10dScnName_cFv */
void dScnName_c::NameOpenWait() {}
/* 80231F48-80231FF4 .text NameInMain__10dScnName_cFv */
void dScnName_c::NameInMain() {
dNm_c->_move();
if (dNm_c->isInputEnd() == 1) {
if (!field_0x1bb9) {
dComIfGs_init();
dComIfGp_itemDataInit();
}
dComIfGs_setPlayerName(dNm_c->getInputStrPtr());
field_0x55f = 1;
mMainProc = 9;
} else if (dNm_c->isInputEnd() == 2) {
field_0x1bb6 = 3;
mMainProc = 8;
}
}
/* 80231FF4-80232050 .text NameInClose__10dScnName_cFv */
void dScnName_c::NameInClose() {
if ((BOOL)dNm_c->_close() == TRUE) {
dFs_c->initial();
#if VERSION == VERSION_PAL
field_0x1c58 = 0;
buttonIconTexChange(dComIfGs_getPalLanguage(), field_0x1c58);
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58 ^ 1], 0.0f);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58 ^ 1], 0.0f);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58 ^ 1]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58 ^ 1]);
fopMsgM_setNowAlpha(&field_0x4e4[field_0x1c58], 1.0f);
fopMsgM_setNowAlpha(&field_0x554[field_0x1c58], 1.0f);
fopMsgM_setAlpha(&field_0x4e4[field_0x1c58]);
fopMsgM_setAlpha(&field_0x554[field_0x1c58]);
field_0x1c58 ^= 1;
#endif
mMainProc = 3;
mOpenProc = 0;
mDrawProc = 1;
}
}
/* 80232050-80232074 .text NameInDraw__10dScnName_cFv */
void dScnName_c::NameInDraw() {
dNm_c->draw();
}
/* 80232074-802320C0 .text ShopDemoDataLoad__10dScnName_cFv */
void dScnName_c::ShopDemoDataLoad() {
field_0x410 = mDoDvdThd_toMainRam_c::create("/res/ShopDemo/zelda_save.bin", JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
mMainProc = 15;
}
/* 802320C0-8023213C .text ShopDemoDataSet__10dScnName_cFv */
void dScnName_c::ShopDemoDataSet() {
if (field_0x410->sync()) {
memcpy(saveMemory, ((u8*)field_0x410->getMemAddress()) + 8, sizeof(saveMemory));
delete field_0x410;
mMainProc = 1;
mDrawProc = 4;
}
}
/* 8023213C-802321AC .text SaveOpen__10dScnName_cFv */
void dScnName_c::SaveOpen() {
if (field_0x558) {
field_0x558--;
return;
}
if (dMs_c->_open() == 1) {
field_0x1bb6 = 1;
dFs_c->setIconMode(field_0x1bb6);
mMainProc = 11;
}
}
/* 802321AC-8023222C .text SaveMain__10dScnName_cFv */
void dScnName_c::SaveMain() {
switch (dMs_c->getSaveStatus()) {
case 2:
dMs_c->_move();
if (dMs_c->getEndStatus() == 0) {
field_0x558 = 0x2d;
mMainProc = 13;
}
break;
case 3:
field_0x1bb6 = 3;
mMainProc = 12;
break;
}
}
/* 8023222C-80232278 .text SaveClose__10dScnName_cFv */
void dScnName_c::SaveClose() {
if (dMs_c->_close() == true) {
mMainProc = 1;
mDrawProc = 4;
}
}
/* 80232278-8023229C .text SaveDraw__10dScnName_cFv */
void dScnName_c::SaveDraw() {
dMs_c->_draw2();
}
/* 8023229C-802322A0 .text NoneDraw__10dScnName_cFv */
void dScnName_c::NoneDraw() {
}
/* 802322A0-80232338 .text changeGameScene__10dScnName_cFv */
void dScnName_c::changeGameScene() {
if (fopOvlpM_IsPeek())
return;
dComIfGs_gameStart();
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());
}
}
/* 80232338-80232358 .text dScnName_Draw__FP10dScnName_c */
static BOOL dScnName_Draw(dScnName_c* i_this) {
return i_this->draw();
}
/* 80232358-80232378 .text dScnName_Execute__FP10dScnName_c */
static BOOL dScnName_Execute(dScnName_c* i_this) {
return i_this->execute();
}
/* 80232378-80232380 .text dScnName_IsDelete__FP10dScnName_c */
static BOOL dScnName_IsDelete(dScnName_c*) {
return TRUE;
}
/* 80232380-802323A8 .text dScnName_Delete__FP10dScnName_c */
static BOOL dScnName_Delete(dScnName_c* i_this) {
#if VERSION == VERSION_PAL
i_this->bmg_data_set();
i_this->tex_data_set();
if (mBmgStatus < 6) {
return FALSE;
}
mBmgStatus = 0;
#endif
i_this->~dScnName_c();
return TRUE;
}
/* 802323A8-802323F8 .text dScnName_Create__FP11scene_class */
static cPhs_State dScnName_Create(scene_class* i_scn) {
dScnName_c* i_this = new (i_scn) dScnName_c();
return i_this->create();
}
/* 802323F8-8023245C .text draw__13dDlst_BTICN_cFv */
void dDlst_BTICN_c::draw() {
J2DOrthoGraph* graf = dComIfGp_getCurrentGrafPort();
graf->setPort();
scr->draw(0.0f, 0.0f, graf);
}
/* 8023245C-80232518 .text draw__19dDlst_FLSEL_CLOTH_cFv */
void dDlst_FLSEL_CLOTH_c::draw() {
Mtx44 mtx;
view_port_class* viewport = dComIfGp_getCurrentViewport();
C_MTXPerspective(mtx, 30.0f, fapGmHIO_getAspectRatio() * (viewport->mWidth / viewport->mHeight), 1.0f, 100000.0f);
GXSetProjection(mtx, GX_PERSPECTIVE);
cloth_c->draw(0.0f, COMPOUND_LITERAL(GXColor){0xe3, 0xff, 0xb3, 0xff}, COMPOUND_LITERAL(GXColor){0x00, 0x00, 0x00, 0x00}, 0);
dComIfGp_getCurrentGrafPort()->setPort();
}
static scene_method_class l_dScnName_Method = {
(process_method_func)dScnName_Create,
(process_method_func)dScnName_Delete,
(process_method_func)dScnName_Execute,
(process_method_func)dScnName_IsDelete,
(process_method_func)dScnName_Draw,
};
scene_process_profile_definition g_profile_NAME_SCENE = {
/* Layer ID */ fpcLy_ROOT_e,
/* List ID */ 1,
/* List Prio */ fpcPi_CURRENT_e,
/* Proc Name */ fpcNm_NAME_SCENE_e,
/* Proc SubMtd */ &g_fpcNd_Method.base,
/* Size */ sizeof(dScnName_c),
/* Size Other */ 0,
/* Parameters */ 0,
/* Node SubMtd */ &g_fopScn_Method.base,
/* Scene SubMtd */ &l_dScnName_Method,
};
scene_process_profile_definition g_profile_NAMEEX_SCENE = {
/* Layer ID */ fpcLy_ROOT_e,
/* List ID */ 1,
/* List Prio */ fpcPi_CURRENT_e,
/* Proc Name */ fpcNm_NAMEEX_SCENE_e,
/* Proc SubMtd */ &g_fpcNd_Method.base,
/* Size */ sizeof(dScnName_c),
/* Size Other */ 0,
/* Parameters */ 0,
/* Node SubMtd */ &g_fopScn_Method.base,
/* Scene SubMtd */ &l_dScnName_Method,
};