Files
tp/src/d/s/d_s_logo.cpp
T
2023-03-07 18:03:46 -07:00

916 lines
33 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: d/s/d_s_logo
//
#include "d/s/d_s_logo.h"
#include "JSystem/JKernel/JKRAram.h"
#include "c/c_dylink.h"
#include "d/d_procname.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_machine.h"
//
// Types:
//
class dEnemyItem_c {
public:
static void setItemData(u8* data) { mData = data; }
static u8* mData;
};
//
// Forward References:
//
extern "C" void __ct__10dLog_HIO_cFv();
extern "C" void preLoad_dyl_create__10dScnLogo_cFv();
extern "C" void preLoad_dyl_remove__10dScnLogo_cFv();
extern "C" void preLoad_dyl__10dScnLogo_cFv();
extern "C" void checkProgSelect__10dScnLogo_cFv();
extern "C" void draw__10dScnLogo_cFv();
extern "C" void progInDraw__10dScnLogo_cFv();
extern "C" void progSelDraw__10dScnLogo_cFv();
extern "C" void progOutDraw__10dScnLogo_cFv();
extern "C" void progSetDraw__10dScnLogo_cFv();
extern "C" void progSet2Draw__10dScnLogo_cFv();
extern "C" void progChangeDraw__10dScnLogo_cFv();
extern "C" void warningInDraw__10dScnLogo_cFv();
extern "C" void warningDispDraw__10dScnLogo_cFv();
extern "C" void warningOutDraw__10dScnLogo_cFv();
extern "C" void nintendoInDraw__10dScnLogo_cFv();
extern "C" void nintendoOutDraw__10dScnLogo_cFv();
extern "C" void dolbyInDraw__10dScnLogo_cFv();
extern "C" void dolbyOutDraw__10dScnLogo_cFv();
extern "C" void dolbyOutDraw2__10dScnLogo_cFv();
extern "C" void dvdWaitDraw__10dScnLogo_cFv();
extern "C" void nextSceneChange__10dScnLogo_cFv();
extern "C" void __dt__10dScnLogo_cFv();
extern "C" static void phase_0__FP10dScnLogo_c();
extern "C" static void phase_1__FP10dScnLogo_c();
extern "C" static void phase_2__FP10dScnLogo_c();
extern "C" static void resLoad__FP30request_of_phase_process_classP10dScnLogo_c();
extern "C" void create__10dScnLogo_cFv();
extern "C" void logoInitGC__10dScnLogo_cFv();
extern "C" void dvdDataLoad__10dScnLogo_cFv();
extern "C" static void dScnLogo_Create__FP11scene_class();
extern "C" static void dScnLogo_Execute__FP10dScnLogo_c();
extern "C" static void dScnLogo_Draw__FP10dScnLogo_c();
extern "C" static void dScnLogo_Delete__FP10dScnLogo_c();
extern "C" static bool dScnLogo_IsDelete__FP10dScnLogo_c();
extern "C" void setProgressiveMode__10dScnLogo_cFUc();
extern "C" void getProgressiveMode__10dScnLogo_cFv();
extern "C" void isProgressiveMode__10dScnLogo_cFv();
extern "C" void setRenderMode__10dScnLogo_cFv();
extern "C" void __dt__10dLog_HIO_cFv();
extern "C" void func_802585A4(u16*);
extern "C" void __sinit_d_s_logo_cpp();
extern "C" extern char const* const d_s_d_s_logo__stringBase0;
//
// External References:
//
extern "C" void mDoExt_getGameHeap__Fv();
extern "C" void mDoExt_getJ2dHeap__Fv();
extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
extern "C" void mDoExt_getMesgFont__Fv();
extern "C" void mDoExt_getRubyFont__Fv();
extern "C" void mDoExt_getSubFont__Fv();
extern "C" void mDoExt_setAraCacheSize__FUl();
extern "C" void mDoRst_reset__FiUli();
extern "C" void mDoRst_resetCallBack__FiPv();
extern "C" void create__25mDoDvdThd_mountXArchive_cFPCcUcQ210JKRArchive10EMountModeP7JKRHeap();
extern "C" void create__21mDoDvdThd_toMainRam_cFPCcUcP7JKRHeap();
extern "C" void cDyl_InitAsyncIsDone__Fv();
extern "C" void Link__7cDylPhsFP30request_of_phase_process_classs();
extern "C" void fopScnM_ChangeReq__FP11scene_classssUs();
extern "C" void createParticle__14dComIfG_play_cFv();
extern "C" void dComIfG_changeOpeningScene__FP11scene_classs();
extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv();
extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap();
extern "C" void deleteRes__14dRes_control_cFPCcP11dRes_info_ci();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void syncAllRes__14dRes_control_cFP11dRes_info_ci();
extern "C" void createWork__8dMpath_cFv();
extern "C" void createCommon__13dPa_control_cFPCv();
extern "C" void __ct__10dDlst_2D_cFP7ResTIMGssssUc();
extern "C" void setSimpleTex__21dDlst_shadowControl_cFPC7ResTIMG();
extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c();
extern "C" void createWork__7dTres_cFv();
extern "C" void waitBlanking__10JFWDisplayFi();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void loadStaticWaves__10Z2SceneMgrFv();
extern "C" bool checkFirstWaves__10Z2SceneMgrFv();
extern "C" void resetProcess__10Z2AudioMgrFUlb();
extern "C" void becomeCurrentHeap__7JKRHeapFv();
extern "C" void destroy__7JKRHeapFv();
extern "C" void alloc__7JKRHeapFUli();
extern "C" void free__7JKRHeapFPvP7JKRHeap();
extern "C" void* __nw__FUl();
extern "C" void* __nwa__FUl();
extern "C" void __dl__FPv();
extern "C" void __dla__FPv();
extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
extern "C" void create__10JKRExpHeapFPvUlP7JKRHeapb();
extern "C" void getTotalFreeSize__11JKRAramHeapFv();
extern "C" void __dt__10J2DPictureFv();
extern "C" u32 OSGetProgressiveMode();
extern "C" void OSSetProgressiveMode(u32);
extern "C" u32 VIGetDTVStatus();
extern "C" void __register_global_object();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__10dDlst_2D_c[3];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
extern "C" extern u8 mInitFlag__17mDoAud_zelAudio_c[4];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" u8 mData__12dEnemyItem_c[4 + 4 /* padding */];
extern "C" u8 sManager__10JFWDisplay[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" u8 sAramObject__7JKRAram[4];
extern "C" u8 sCallback__Q210JUTGamePad13C3ButtonReset[4];
extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C2E38-803C2E44 01FF58 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 804510E8-804510F0 0005E8 0008+00 1/1 0/0 0/0 .sbss g_LogHIO */
static dLog_HIO_c g_LogHIO;
typedef void (dScnLogo_c::*execFunc)();
SECTION_DATA static execFunc l_execFunc[16] = {
&dScnLogo_c::warningInDraw, &dScnLogo_c::warningDispDraw, &dScnLogo_c::warningOutDraw,
&dScnLogo_c::nintendoInDraw, &dScnLogo_c::nintendoOutDraw, &dScnLogo_c::dolbyInDraw,
&dScnLogo_c::dolbyOutDraw, &dScnLogo_c::dolbyOutDraw2, &dScnLogo_c::progInDraw,
&dScnLogo_c::progSelDraw, &dScnLogo_c::progOutDraw, &dScnLogo_c::progSetDraw,
&dScnLogo_c::progSet2Draw, &dScnLogo_c::progChangeDraw, &dScnLogo_c::dvdWaitDraw,
&dScnLogo_c::nextSceneChange,
};
/* 802560A4-802560B4 2509E4 0010+00 1/1 0/0 0/0 .text __ct__10dLog_HIO_cFv */
dLog_HIO_c::dLog_HIO_c() {}
/* 802560B4-802560F8 2509F4 0044+00 1/1 0/0 0/0 .text preLoad_dyl_create__10dScnLogo_cFv
*/
void dScnLogo_c::preLoad_dyl_create() {
m_preLoad_dylPhase = new request_of_phase_process_class[14];
memset(m_preLoad_dylPhase, 0, sizeof(request_of_phase_process_class) * 14);
}
/* 802560F8-8025611C 250A38 0024+00 1/1 0/0 0/0 .text preLoad_dyl_remove__10dScnLogo_cFv
*/
void dScnLogo_c::preLoad_dyl_remove() {
delete[] m_preLoad_dylPhase;
}
/* ############################################################################################## */
/* 80399FE0-80399FFC 026640 001C+00 1/1 0/0 0/0 .rodata l_preLoad_dylKeyTbl */
SECTION_RODATA static s16 const l_preLoad_dylKeyTbl[14] = {
0x02DC, 0x02CE, 0x0221, 0x00F2, 0x021B, 0x02F4, 0x0139,
0x015A, 0x02E4, 0x00FE, 0x0308, 0x030F, 0x00FF, 0x013F,
};
COMPILER_STRIP_GATE(0x80399FE0, &l_preLoad_dylKeyTbl);
/* 8025611C-80256198 250A5C 007C+00 2/2 0/0 0/0 .text preLoad_dyl__10dScnLogo_cFv */
bool dScnLogo_c::preLoad_dyl() {
bool ret = 1;
for (int i = 0; i < 14; i++) {
int link = cDylPhs::Link(&m_preLoad_dylPhase[i], l_preLoad_dylKeyTbl[i]);
if (link != 4) {
ret = 0;
}
}
return ret;
}
/* 80256198-80256210 250AD8 0078+00 1/1 0/0 0/0 .text checkProgSelect__10dScnLogo_cFv */
void dScnLogo_c::checkProgSelect() {
if (mDoRst::getProgSeqFlag() == 0 && VIGetDTVStatus() != 0) {
if (isProgressiveMode() || mDoCPd_c::getHoldB(0)) {
field_0x20a = 1;
field_0x209 = 0;
}
}
}
/* 80256210-80256264 250B50 0054+00 1/1 0/0 0/0 .text draw__10dScnLogo_cFv */
int dScnLogo_c::draw() {
cLib_calcTimer<u16>(&mTimer);
(this->*l_execFunc[mExecCommand])();
return 1;
}
/* 80256264-8025631C 250BA4 00B8+00 1/0 0/0 0/0 .text progInDraw__10dScnLogo_cFv */
void dScnLogo_c::progInDraw() {
dComIfGd_set2DOpa(mProgressiveChoice);
dComIfGd_set2DOpa(mProgressiveYes);
dComIfGd_set2DOpa(mProgressiveNo);
if (mTimer == 0) {
mExecCommand = EXEC_PROG_SEL;
mTimer = 600;
field_0x20e = 30;
field_0x210 = field_0x20e;
field_0x212 = 0;
field_0x20b = 0;
}
}
/* 8025631C-802568E0 250C5C 05C4+00 1/0 0/0 0/0 .text progSelDraw__10dScnLogo_cFv */
void dScnLogo_c::progSelDraw() {
dComIfGd_set2DOpa(mProgressiveChoice);
dComIfGd_set2DOpa(mProgressiveYes);
dComIfGd_set2DOpa(mProgressiveNo);
if (field_0x20b == 0) {
if (field_0x209 == 0) {
if (mDoCPd_c::getHoldRight(0) || mDoCPd_c::getStickX(0) > 0.5f) {
mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0);
field_0x209 = 1;
field_0x20e = 30;
field_0x210 = field_0x20e;
field_0x212 = 0;
}
} else {
if (mDoCPd_c::getHoldLeft(0) || mDoCPd_c::getStickX(0) < -0.5f) {
mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0);
field_0x209 = 0;
field_0x20e = 30;
field_0x210 = field_0x20e;
field_0x212 = 0;
}
}
if (mDoCPd_c::getTrigA(0) || mTimer == 0) {
if (field_0x209 == 0) {
mProgressiveSel->getPicture()->changeTexture(mProgressivePro, 0);
setProgressiveMode(1);
mDoRst::setProgChgFlag(1);
mDoAud_seStart(Z2SE_SY_CURSOR_OK, NULL, 0, 0);
} else {
mProgressiveSel->getPicture()->changeTexture(mProgressiveInter, 0);
setProgressiveMode(0);
mDoAud_seStart(Z2SE_SY_CURSOR_OK, NULL, 0, 0);
}
if (mTimer > 540) {
field_0x20b = 1;
field_0x214 = mTimer - 540;
} else {
mExecCommand = EXEC_PROG_OUT;
mTimer = 30;
mDoGph_gInf_c::startFadeOut(mTimer);
field_0x20e = 30;
field_0x210 = field_0x20e;
field_0x212 = 0;
}
mDoRst::setProgSeqFlag(1);
}
} else {
if (field_0x214 == 0) {
mExecCommand = EXEC_PROG_OUT;
mTimer = 30;
mDoGph_gInf_c::startFadeOut(30);
field_0x20e = 30;
field_0x210 = field_0x20e;
field_0x212 = 0;
} else {
field_0x214--;
}
}
f32 alpha = (f32)field_0x210 / (f32)field_0x20e;
if (field_0x212 != 0) {
alpha = 1.0f - alpha;
}
u8 r = alpha * 255.0f;
u8 g = alpha * 200.0f;
if (field_0x209 != 0) {
mProgressiveYes->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255));
mProgressiveYes->getPicture()->setBlack(JUtility::TColor(0, 0, 0, 0));
mProgressiveNo->getPicture()->setWhite(JUtility::TColor(255, 200, 0, 255));
mProgressiveNo->getPicture()->setBlack(JUtility::TColor(r, g, 0, 0));
} else {
mProgressiveYes->getPicture()->setWhite(JUtility::TColor(255, 200, 0, 255));
mProgressiveYes->getPicture()->setBlack(JUtility::TColor(r, g, 0, 0));
mProgressiveNo->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255));
mProgressiveNo->getPicture()->setBlack(JUtility::TColor(0, 0, 0, 0));
}
if (field_0x210 == 0) {
field_0x210 = field_0x20e;
field_0x212 ^= 1;
} else {
field_0x210--;
}
}
/* 802568E0-80256A3C 251220 015C+00 1/0 0/0 0/0 .text progOutDraw__10dScnLogo_cFv */
void dScnLogo_c::progOutDraw() {
dComIfGd_set2DOpa(mProgressiveChoice);
dComIfGd_set2DOpa(mProgressiveYes);
dComIfGd_set2DOpa(mProgressiveNo);
if (mTimer == 0) {
if (field_0x218 != 0 && field_0x209 == 0) {
mExecCommand = EXEC_PROG_CHANGE;
mTimer = 150;
} else if (field_0x218 == 0 && field_0x209 != 0) {
if (mDoRst::getWarningDispFlag() != 0) {
mTimer = 90;
mExecCommand = EXEC_NINTENDO_IN;
} else {
mTimer = 120;
mExecCommand = EXEC_WARNING_IN;
}
mDoGph_gInf_c::startFadeIn(30);
} else {
mExecCommand = EXEC_PROG_SET;
mTimer = 150;
mDoGph_gInf_c::startFadeIn(30);
}
}
}
/* 80256A3C-80256AC0 25137C 0084+00 1/0 0/0 0/0 .text progSetDraw__10dScnLogo_cFv */
void dScnLogo_c::progSetDraw() {
dComIfGd_set2DOpa(mProgressiveSel);
if (mTimer == 0) {
mExecCommand = EXEC_PROG_SET2;
mTimer = 30;
mDoGph_gInf_c::startFadeOut(30);
}
}
/* 80256AC0-80256B3C 251400 007C+00 1/0 0/0 0/0 .text progSet2Draw__10dScnLogo_cFv */
void dScnLogo_c::progSet2Draw() {
dComIfGd_set2DOpa(mProgressiveSel);
if (mTimer == 0) {
if (getProgressiveMode() != 0) {
mTimer = 150;
} else {
mTimer = 30;
}
mExecCommand = EXEC_PROG_CHANGE;
}
}
/* 80256B3C-80256BF4 25147C 00B8+00 1/0 0/0 0/0 .text progChangeDraw__10dScnLogo_cFv */
void dScnLogo_c::progChangeDraw() {
if (getProgressiveMode() != 0 && mTimer == 90 && field_0x209 == 0) {
setRenderMode();
}
if (mTimer == 0) {
if (mDoRst::getWarningDispFlag() != 0) {
mTimer = 90;
mExecCommand = EXEC_NINTENDO_IN;
} else {
mTimer = 120;
mExecCommand = EXEC_WARNING_IN;
}
mDoGph_gInf_c::startFadeIn(30);
}
}
/* 80256BF4-80256C68 251534 0074+00 1/0 0/0 0/0 .text warningInDraw__10dScnLogo_cFv */
void dScnLogo_c::warningInDraw() {
dComIfGd_set2DOpa(mWarning);
if (mTimer == 0) {
mExecCommand = EXEC_WARNING_DISP;
mTimer = 3510;
field_0x20e = 30;
field_0x210 = field_0x20e;
field_0x212 = 1;
}
}
/* 80256C68-80256DC4 2515A8 015C+00 1/0 0/0 0/0 .text warningDispDraw__10dScnLogo_cFv */
void dScnLogo_c::warningDispDraw() {
dComIfGd_set2DOpa(mWarning);
dComIfGd_set2DOpa(mWarningStart);
f32 alpha = (f32)field_0x210 / (f32)field_0x20e;
if (field_0x212 != 0) {
alpha = 1.0f - alpha;
}
mWarningStart->setAlpha(255.0f * alpha);
if (field_0x210 == 0) {
field_0x210 = field_0x20e;
field_0x212 ^= 1;
} else {
field_0x210--;
}
if (mTimer == 0 ||
mDoCPd_c::getTrig(0) & (CButton::A | CButton::B | CButton::X | CButton::Y | CButton::START |
CButton::Z | CButton::L | CButton::R | CButton::DPAD_LEFT |
CButton::DPAD_RIGHT | CButton::DPAD_DOWN | CButton::DPAD_UP)) {
mExecCommand = EXEC_WARNING_OUT;
mTimer = 30;
mDoGph_gInf_c::startFadeOut(30);
mDoRst::setWarningDispFlag(1);
}
}
/* 80256DC4-80256E48 251704 0084+00 1/0 0/0 0/0 .text warningOutDraw__10dScnLogo_cFv */
void dScnLogo_c::warningOutDraw() {
dComIfGd_set2DOpa(mWarning);
if (mTimer == 0) {
mTimer = 90;
mExecCommand = EXEC_NINTENDO_IN;
mDoGph_gInf_c::startFadeIn(30);
}
}
/* 80256E48-80256ECC 251788 0084+00 1/0 0/0 0/0 .text nintendoInDraw__10dScnLogo_cFv */
void dScnLogo_c::nintendoInDraw() {
dComIfGd_set2DOpa(mNintendoLogo);
if (mTimer == 0) {
mExecCommand = EXEC_NINTENDO_OUT;
mTimer = 30;
mDoGph_gInf_c::startFadeOut(30);
}
}
/* 80256ECC-80256F50 25180C 0084+00 1/0 0/0 0/0 .text nintendoOutDraw__10dScnLogo_cFv */
void dScnLogo_c::nintendoOutDraw() {
dComIfGd_set2DOpa(mNintendoLogo);
if (mTimer == 0) {
mExecCommand = EXEC_DOLBY_IN;
mTimer = 90;
mDoGph_gInf_c::startFadeIn(30);
}
}
/* 80256F50-80256FD4 251890 0084+00 1/0 0/0 0/0 .text dolbyInDraw__10dScnLogo_cFv */
void dScnLogo_c::dolbyInDraw() {
dComIfGd_set2DOpa(mDolbyLogo);
if (mTimer == 0) {
mExecCommand = EXEC_DOLBY_OUT;
mTimer = 30;
mDoGph_gInf_c::startFadeOut(30);
}
}
/* 80256FD4-80257058 251914 0084+00 1/0 0/0 0/0 .text dolbyOutDraw__10dScnLogo_cFv */
void dScnLogo_c::dolbyOutDraw() {
dComIfGd_set2DOpa(mDolbyLogo);
if (mTimer == 0) {
mExecCommand = EXEC_DOLBY_OUT2;
mTimer = 30;
mDoGph_gInf_c::startFadeIn(30);
}
}
/* 80257058-80257070 251998 0018+00 1/0 0/0 0/0 .text dolbyOutDraw2__10dScnLogo_cFv */
void dScnLogo_c::dolbyOutDraw2() {
if (mTimer != 0) {
return;
}
mExecCommand = EXEC_DVD_WAIT;
}
/* 80257070-80257284 2519B0 0214+00 1/0 0/0 0/0 .text dvdWaitDraw__10dScnLogo_cFv */
void dScnLogo_c::dvdWaitDraw() {
if (!dComIfG_syncAllObjectRes()) {
if (mpField0Command->sync() && mpAlAnmCommand->sync() && mpFmapResCommand->sync() &&
mpDmapResCommand->sync() && mpCollectResCommand->sync() && mpItemIconCommand->sync() &&
mpRingResCommand->sync() && mpPlayerNameCommand->sync() &&
mpItemInfResCommand->sync() && mpButtonCommand->sync() && mpCardIconCommand->sync() &&
mpBmgResCommand->sync() && mpMsgComCommand->sync() && mpMsgResCommand[0]->sync() &&
mpMsgResCommand[1]->sync() && mpMsgResCommand[2]->sync() &&
mpMsgResCommand[3]->sync() && mpMsgResCommand[4]->sync() &&
mpMsgResCommand[5]->sync() && mpMsgResCommand[6]->sync() && mpFontResCommand->sync() &&
mpMain2DCommand->sync() && mpRubyResCommand->sync() && mParticleCommand->sync() &&
mItemTableCommand->sync() && mEnemyItemCommand->sync() && preLoad_dyl()) {
mDoRst::setLogoScnFlag(0);
mDoRst::setProgChgFlag(0);
mExecCommand = EXEC_SCENE_CHANGE;
}
}
}
/* 80257284-802572B8 251BC4 0034+00 1/0 0/0 0/0 .text nextSceneChange__10dScnLogo_cFv */
void dScnLogo_c::nextSceneChange() {
if (!mDoRst::isReset()) {
dComIfG_changeOpeningScene(this, PROC_OPENING_SCENE);
}
}
/* 802572B8-80257910 251BF8 0658+00 1/1 0/0 0/0 .text __dt__10dScnLogo_cFv */
dScnLogo_c::~dScnLogo_c() {
if (mDoRst::isReset()) {
if (mDoAud_zelAudio_c::isInitFlag()) {
Z2AudioMgr::getInterface()->resetProcess(5, true);
}
mDoRst_reset(0, 0x80000000, 0);
}
delete mNintendoLogo;
delete mWarning;
delete mWarningStart;
delete mDolbyLogo;
delete mProgressiveChoice;
delete mProgressiveYes;
delete mProgressiveNo;
delete mProgressiveSel;
preLoad_dyl_remove();
dComIfG_deleteObjectResMain("LogoUs");
field_0x1d4->destroy();
field_0x1d0->destroy();
i_JKRFree(buffer);
dComIfGp_particle_createCommon(mParticleCommand->getMemAddress());
dComIfGp_setFieldMapArchive2(mpField0Command->getArchive());
dComIfGp_setAnmArchive(mpAlAnmCommand->getArchive());
dComIfGp_setFmapResArchive(mpFmapResCommand->getArchive());
dComIfGp_setDmapResArchive(mpDmapResCommand->getArchive());
dComIfGp_setCollectResArchive(mpCollectResCommand->getArchive());
dComIfGp_setItemIconArchive(mpItemIconCommand->getArchive());
dComIfGp_setAllMapArchive(NULL);
dComIfGp_setRingResArchive(mpRingResCommand->getArchive());
dComIfGp_setNameResArchive(mpPlayerNameCommand->getArchive());
dComIfGp_setDemoMsgArchive(mpItemInfResCommand->getArchive());
dComIfGp_setMeterButtonArchive(mpButtonCommand->getArchive());
dComIfGp_setErrorResArchive(NULL);
dComIfGp_setCardIconResArchive(mpCardIconCommand->getArchive());
dComIfGp_setMsgDtArchive(0, mpBmgResCommand->getArchive());
dComIfGp_setMsgCommonArchive(mpMsgComCommand->getArchive());
for (int i = 0; i < 7; i++) {
dComIfGp_setMsgArchive(i, mpMsgResCommand[i]->getArchive());
}
dComIfGp_setFontArchive(mpFontResCommand->getArchive());
dComIfGp_setRubyArchive(mpRubyResCommand->getArchive());
dComIfGp_setMain2DArchive(mpMain2DCommand->getArchive());
mpField0Command->destroy();
mpAlAnmCommand->destroy();
mpFmapResCommand->destroy();
mpDmapResCommand->destroy();
mpCollectResCommand->destroy();
mpItemIconCommand->destroy();
mpRingResCommand->destroy();
mpPlayerNameCommand->destroy();
mpItemInfResCommand->destroy();
mpButtonCommand->destroy();
mpCardIconCommand->destroy();
mpBmgResCommand->destroy();
mpMsgComCommand->destroy();
for (int i = 0; i < 7; i++) {
mpMsgResCommand[i]->destroy();
}
mpFontResCommand->destroy();
mpMain2DCommand->destroy();
mpRubyResCommand->destroy();
mParticleCommand->destroy();
JKRAramHeap* aram_heap = JKRAram::getAramHeap();
u32 free_size = aram_heap->getTotalFreeSize();
mDoExt_getMesgFont();
mDoExt_getSubFont();
mDoExt_getRubyFont();
mDoExt_setAraCacheSize(free_size - aram_heap->getTotalFreeSize());
dComIfGp_setItemTable(mItemTableCommand->getMemAddress());
mItemTableCommand->destroy();
dEnemyItem_c::setItemData((u8*)mEnemyItemCommand->getMemAddress());
mEnemyItemCommand->destroy();
dDlst_shadowControl_c::setSimpleTex((ResTIMG*)dComIfG_getObjectRes("Always", 0x4A));
dTres_c::createWork();
dMpath_c::createWork();
}
/* 80257910-802579BC 252250 00AC+00 1/0 0/0 0/0 .text phase_0__FP10dScnLogo_c */
// setFadeColor instruction reordering
#ifdef NONMATCHING
static int phase_0(dScnLogo_c* logo) {
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
dComIfGp_particle_create();
logo->buffer = mDoExt_getGameHeap()->alloc(0x340000, -0x10);
logo->field_0x1d0 = JKRExpHeap::create(logo->buffer, 0x340000, NULL, false);
logo->field_0x1d4 = JKRExpHeap::create(0x130000, logo->field_0x1d0, false);
return 2;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm int phase_0(dScnLogo_c* param_0) {
nofralloc
#include "asm/d/s/d_s_logo/phase_0__FP10dScnLogo_c.s"
}
#pragma pop
#endif
/* 802579BC-80257A70 2522FC 00B4+00 1/0 0/0 0/0 .text phase_1__FP10dScnLogo_c */
static int phase_1(dScnLogo_c* logo) {
if (!cDyl_InitAsyncIsDone()) {
return 0;
}
if (!mDoAud_zelAudio_c::isInitFlag() ||
Z2AudioMgr::getInterface()->mSceneMgr.checkFirstWaves()) {
return 0;
}
dComIfG_setObjectRes("LogoUs", 0, logo->field_0x1d0);
mDoRst::setLogoScnFlag(1);
archiveHeap->dump_sort();
return 2;
}
/* 80257A70-80257AB4 2523B0 0044+00 1/0 0/0 0/0 .text phase_2__FP10dScnLogo_c */
static int phase_2(dScnLogo_c* param_0) {
return dComIfG_syncAllObjectRes() ? 0 : 4;
}
/* 80257AB4-80257AE0 2523F4 002C+00 1/1 0/0 0/0 .text
* resLoad__FP30request_of_phase_process_classP10dScnLogo_c */
static int resLoad(request_of_phase_process_class* i_phase, dScnLogo_c* param_1) {
static int (*l_method[3])(void*) = {(int (*)(void*))phase_0, (int (*)(void*))phase_1,
(int (*)(void*))phase_2};
return dComLbG_PhaseHandler(i_phase, l_method, param_1);
}
/* 80257AE0-80257C64 252420 0184+00 1/1 0/0 0/0 .text create__10dScnLogo_cFv */
int dScnLogo_c::create() {
int stat = resLoad(&field_0x1c4, this);
if (stat != 4) {
return stat;
}
mpHeap = mDoExt_setCurrentHeap(field_0x1d4);
logoInitGC();
mpHeap->becomeCurrentHeap();
dvdDataLoad();
Z2AudioMgr::getInterface()->mSceneMgr.loadStaticWaves();
mDoGph_gInf_c::setTickRate((OS_BUS_CLOCK / 4) / 60);
mDoGph_gInf_c::waitBlanking(0);
field_0x20a = 0;
mDoGph_gInf_c::startFadeIn(30);
checkProgSelect();
if (field_0x20a != 0) {
mExecCommand = EXEC_PROG_IN;
mTimer = 30;
field_0x218 = getProgressiveMode();
} else {
if (mDoRst::getWarningDispFlag()) {
mTimer = 90;
mExecCommand = EXEC_NINTENDO_IN;
} else {
mTimer = 120;
mExecCommand = EXEC_WARNING_IN;
}
mDoRst::setProgSeqFlag(1);
}
JUTGamePad::clearResetOccurred();
JUTGamePad::setResetCallback(mDoRst_resetCallBack, NULL);
mDoRst::offReset();
mDoRst::offResetPrepare();
return stat;
}
/* 80257C64-80257FEC 2525A4 0388+00 1/1 0/0 0/0 .text logoInitGC__10dScnLogo_cFv */
void dScnLogo_c::logoInitGC() {
ResTIMG* nintendoImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 4);
mNintendoLogo = new dDlst_2D_c(nintendoImg, 117, 154, 376, 104, 255);
mNintendoLogo->getPicture()->setWhite(JUtility::TColor(220, 0, 0, 255));
ResTIMG* dolbyImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 3);
mDolbyLogo = new dDlst_2D_c(dolbyImg, 189, 150, 232, 112, 255);
ResTIMG* warningImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 10);
mWarning = new dDlst_2D_c(warningImg, 0, 0, 608, 448, 255);
ResTIMG* warnStartImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 11);
mWarningStart = new dDlst_2D_c(warnStartImg, 0, 359, 608, 48, 255);
ResTIMG* progChoiceImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 5);
mProgressiveChoice = new dDlst_2D_c(progChoiceImg, 113, 281, 416, 72, 255);
ResTIMG* progYesImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 9);
mProgressiveYes = new dDlst_2D_c(progYesImg, 211, 372, 80, 32, 255);
mProgressiveYes->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255));
ResTIMG* progNoImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 7);
mProgressiveNo = new dDlst_2D_c(progNoImg, 350, 372, 80, 32, 255);
mProgressiveNo->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255));
mProgressivePro = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 8);
mProgressiveInter = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 6);
mProgressiveSel = new dDlst_2D_c(mProgressivePro, 153, 309, 336, 88, 255);
}
/* 80257FEC-80258420 25292C 0434+00 1/1 0/0 0/0 .text dvdDataLoad__10dScnLogo_cFv */
void dScnLogo_c::dvdDataLoad() {
dComIfG_setObjectRes("Always", 0, NULL);
archiveHeap->dump_sort();
dComIfG_setObjectRes("Alink", 0, NULL);
mpField0Command = mDoDvdThd_mountXArchive_c::create(
"/res/FieldMap/Field0.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpAlAnmCommand =
mDoDvdThd_mountXArchive_c::create("/res/Object/AlAnm.arc", 0, JKRArchive::MOUNT_ARAM, NULL);
mpFmapResCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/fmapres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpDmapResCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/dmapres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpCollectResCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/clctres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpItemIconCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/itemicon.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpRingResCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/ringres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpPlayerNameCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/playerName.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpItemInfResCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/itmInfRes.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpButtonCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/button.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpCardIconCommand = mDoDvdThd_mountXArchive_c::create(
"/res/CardIcon/cardicon.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpBmgResCommand =
mDoDvdThd_mountXArchive_c::create("/res/Msgus/bmgres.arc", 0, JKRArchive::MOUNT_MEM, NULL);
mpMsgComCommand = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgcom.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMsgResCommand[0] = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgres00.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMsgResCommand[1] = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgres01.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMsgResCommand[2] = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgres02.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMsgResCommand[3] = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgres03.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMsgResCommand[4] = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgres04F.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMsgResCommand[5] = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgres05.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMsgResCommand[6] = mDoDvdThd_mountXArchive_c::create(
"/res/Layout/msgres06.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
mpMain2DCommand =
mDoDvdThd_mountXArchive_c::create("/res/Layout/main2D.arc", 0, JKRArchive::MOUNT_MEM, NULL);
mpFontResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fontus/fontres.arc", 0,
JKRArchive::MOUNT_MEM, NULL);
mpRubyResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fontus/rubyres.arc", 0,
JKRArchive::MOUNT_MEM, NULL);
mParticleCommand = mDoDvdThd_toMainRam_c::create("/res/Particle/common.jpc", 0,
dComIfGp_particle_getResHeap());
mItemTableCommand = mDoDvdThd_toMainRam_c::create("/res/ItemTable/item_table.bin", 0, NULL);
mEnemyItemCommand = mDoDvdThd_toMainRam_c::create("/res/ItemTable/enemy_table.bin", 0, NULL);
preLoad_dyl_create();
preLoad_dyl();
}
/* 80258420-80258444 252D60 0024+00 1/0 0/0 0/0 .text dScnLogo_Create__FP11scene_class */
#ifdef NONMATCHING
static int dScnLogo_Create(scene_class* scn) {
return static_cast<dScnLogo_c*>(scn)->create();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dScnLogo_Create(scene_class* param_0) {
nofralloc
#include "asm/d/s/d_s_logo/dScnLogo_Create__FP11scene_class.s"
}
#pragma pop
#endif
/* 80258444-80258484 252D84 0040+00 1/0 0/0 0/0 .text dScnLogo_Execute__FP10dScnLogo_c */
static int dScnLogo_Execute(dScnLogo_c* logo) {
if (mDoRst::isReset()) {
fopScnM_ChangeReq(logo, 9, 0, 5);
}
return 1;
}
/* 80258484-802584A8 252DC4 0024+00 1/0 0/0 0/0 .text dScnLogo_Draw__FP10dScnLogo_c */
static int dScnLogo_Draw(dScnLogo_c* logo) {
logo->draw();
return 1;
}
/* 802584A8-802584D0 252DE8 0028+00 1/0 0/0 0/0 .text dScnLogo_Delete__FP10dScnLogo_c */
static int dScnLogo_Delete(dScnLogo_c* logo) {
logo->~dScnLogo_c();
return 1;
}
/* 802584D0-802584D8 252E10 0008+00 1/0 0/0 0/0 .text dScnLogo_IsDelete__FP10dScnLogo_c
*/
static int dScnLogo_IsDelete(dScnLogo_c* logo) {
return 1;
}
/* 802584D8-802584FC 252E18 0024+00 1/1 0/0 0/0 .text setProgressiveMode__10dScnLogo_cFUc
*/
void dScnLogo_c::setProgressiveMode(u8 mode) {
OSSetProgressiveMode(mode);
}
/* 802584FC-80258520 252E3C 0024+00 3/3 0/0 0/0 .text getProgressiveMode__10dScnLogo_cFv
*/
u8 dScnLogo_c::getProgressiveMode() {
return OSGetProgressiveMode();
}
/* 80258520-8025854C 252E60 002C+00 1/1 0/0 0/0 .text isProgressiveMode__10dScnLogo_cFv
*/
bool dScnLogo_c::isProgressiveMode() {
return OSGetProgressiveMode() == 1;
}
/* 8025854C-8025855C 252E8C 0010+00 1/1 0/0 0/0 .text setRenderMode__10dScnLogo_cFv */
void dScnLogo_c::setRenderMode() {
mDoMch_render_c::setProgressiveMode();
}
/* 8025855C-802585A4 252E9C 0048+00 2/1 0/0 0/0 .text __dt__10dLog_HIO_cFv */
dLog_HIO_c::~dLog_HIO_c() {}
/* 802585A4-802585C0 252EE4 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Us>__FPUs */
template <typename T>
T cLib_calcTimer(T* value) {
if (*value != 0) {
*value = *value - 1;
}
return *value;
}
/* 803C2FD0-803C2FE4 -00001 0014+00 1/0 0/0 0/0 .data l_dScnLogo_Method */
SECTION_DATA static void* l_dScnLogo_Method[5] = {
(void*)dScnLogo_Create__FP11scene_class, (void*)dScnLogo_Delete__FP10dScnLogo_c,
(void*)dScnLogo_Execute__FP10dScnLogo_c, (void*)dScnLogo_IsDelete__FP10dScnLogo_c,
(void*)dScnLogo_Draw__FP10dScnLogo_c,
};
/* 803C2FE4-803C300C -00001 0028+00 0/0 0/0 1/0 .data g_profile_LOGO_SCENE */
SECTION_DATA extern void* g_profile_LOGO_SCENE[10] = {
(void*)NULL,
(void*)0x0001FFFD,
(void*)0x00090000,
(void*)&g_fpcNd_Method,
(void*)0x000002A8,
(void*)NULL,
(void*)NULL,
(void*)&g_fopScn_Method,
(void*)&l_dScnLogo_Method,
(void*)NULL,
};
/* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */