// // Generated By: dol2asm // Translation Unit: d_a_title // // // Issues with ~dDlst_daTitle_c appearing after create rather than end of TU // #include "d/actor/d_a_title.h" #include "d/d_demo.h" #include "d/d_pane_class_alpha.h" #include "d/d_menu_collect.h" #include "m_Do/m_Do_Reset.h" #include "m_Do/m_Do_controller_pad.h" #include "d/d_com_inf_game.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "f_op/f_op_overlap_mng.h" #include "f_op/f_op_msg_mng.h" #include "f_op/f_op_scene_mng.h" #include "JSystem/J2DGraph/J2DScreen.h" #include "JSystem/JKernel/JKRMemArchive.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "m_Do/m_Do_graphic.h" /* 80D67D8C-80D67DA8 000014 001C+00 4/4 0/0 0/0 .bss g_daTitHIO */ static daTit_HIO_c g_daTitHIO; /* ############################################################################################## */ /* 80D67BD4-80D67BE0 000000 000C+00 2/2 0/0 0/0 .rodata @3772 */ static u8 const lit_3772[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80D67BE0-80D67BE8 00000C 0006+02 3/3 0/0 0/0 .rodata l_arcName */ static char const l_arcName[6] = "Title"; /* 80D67C40-80D67C4C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80D67C4C-80D67C60 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ #pragma push #pragma force_active on static u32 lit_1787[1 + 4 /* padding */] = { 0x02000201, /* padding */ 0x40080000, 0x00000000, 0x3FE00000, 0x00000000, }; #pragma pop static procFunc daTitleProc[6] = { &daTitle_c::loadWait_proc, &daTitle_c::logoDispWait, &daTitle_c::logoDispAnm, &daTitle_c::keyWait, &daTitle_c::nextScene_proc, &daTitle_c::fastLogoDisp, }; /* 80D66B0C-80D66B54 0000EC 0048+00 1/1 0/0 0/0 .text __ct__11daTit_HIO_cFv */ daTit_HIO_c::daTit_HIO_c() { mPSScaleX = 1.0f; mPSScaleY = 1.0f; mPSPosX = 303.0f; mPSPosY = 347.0f; mAppear = 15; mArrow = 60; field_0x1a = 15; } /* 80D66B54-80D66CDC 000134 0188+00 1/1 0/0 0/0 .text CreateHeap__9daTitle_cFv */ int daTitle_c::CreateHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 10); mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000285); if (mpModel == NULL) { return 0; } void* res = dComIfG_getObjectRes(l_arcName, 7); mBck.init((J3DAnmTransform*)res, 1, 0, 2.0f, 0, -1, false); res = dComIfG_getObjectRes(l_arcName, 13); mBpk.init(modelData, (J3DAnmColor*)res, 1, 0, 2.0f, 0, -1); res = dComIfG_getObjectRes(l_arcName, 16); mBrk.init(modelData, (J3DAnmTevRegKey*)res, 1, 0, 2.0f, 0, -1); res = dComIfG_getObjectRes(l_arcName, 19); mBtk.init(modelData, (J3DAnmTextureSRTKey*)res, 1, 0, 2.0f, 0, -1); return 1; } /* 80D66CDC-80D66E7C 0002BC 01A0+00 1/1 0/0 0/0 .text create__9daTitle_cFv */ int daTitle_c::create() { fopAcM_SetupActor(this, daTitle_c); int phase_state = dComIfG_resLoad(&mPhaseReq, l_arcName); if (phase_state != cPhs_COMPLEATE_e) { return phase_state; } if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x4000)) { return cPhs_ERROR_e; } mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/Title2D.arc", 0, NULL); field_0x5f8 = 0; field_0x5f9 = 0; m2DHeap = JKRExpHeap::create(0x8000, mDoExt_getGameHeap(), false); loadWait_init(); g_daTitHIO.field_0x4 = -1; return phase_state; } /* 80D66E7C-80D66E9C 00045C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__9daTitle_cFP10fopAc_ac_c */ int daTitle_c::createHeapCallBack(fopAc_ac_c* title) { return ((daTitle_c*)title)->CreateHeap(); } /* 80D66E9C-80D66F34 00047C 0098+00 1/1 0/0 0/0 .text Execute__9daTitle_cFv */ int daTitle_c::Execute() { if (fopOvlpM_IsPeek()) { return 1; } dMenu_Collect3D_c::mViewOffsetY = 0.0f; if (mDoRst::isReset()) { return 1; } (this->*daTitleProc[mProcID])(); KeyWaitAnm(); return 1; } /* 80D66F34-80D67010 000514 00DC+00 1/1 0/0 0/0 .text KeyWaitAnm__9daTitle_cFv */ void daTitle_c::KeyWaitAnm() { if (field_0x5f9 != 0) { if (field_0x604 == 0) { if (field_0x5fa != 0) { field_0x600->alphaAnime(g_daTitHIO.mArrow, 0, 255, 0); } else { field_0x600->alphaAnimeLoop(g_daTitHIO.mArrow, 255, 128, 0); } if (field_0x600->getAlpha() == 255) { if (field_0x5fa != 0) { field_0x5fa = 0; } field_0x604 = g_daTitHIO.field_0x1a; } } if (field_0x604 != 0) { field_0x604--; } } } /* 80D67010-80D6701C 0005F0 000C+00 1/1 0/0 0/0 .text loadWait_init__9daTitle_cFv */ void daTitle_c::loadWait_init() { mProcID = 0; } /* 80D6701C-80D672E0 0005FC 02C4+00 1/0 0/0 0/0 .text loadWait_proc__9daTitle_cFv */ void daTitle_c::loadWait_proc() { if (mpMount->sync()) { JKRHeap* heap = mDoExt_setCurrentHeap(m2DHeap); mpHeap = heap; mpFont = mDoExt_getMesgFont(); mTitle.Scr = new J2DScreen(); mTitle.Scr->setPriority("zelda_press_start.blo", 0x100000, mpMount->getArchive()); J2DTextBox* text[7]; text[0] = (J2DTextBox*)mTitle.Scr->search('t_s_00'); text[1] = (J2DTextBox*)mTitle.Scr->search('t_s_01'); text[2] = (J2DTextBox*)mTitle.Scr->search('t_s_02'); text[3] = (J2DTextBox*)mTitle.Scr->search('t_s_03'); text[4] = (J2DTextBox*)mTitle.Scr->search('t_s_04'); text[5] = (J2DTextBox*)mTitle.Scr->search('t_s_05'); text[6] = (J2DTextBox*)mTitle.Scr->search('t_o'); for (int i = 0; i < 7; i++) { text[i]->setFont(mpFont); text[i]->setString(0x80, ""); fopMsgM_messageGet(text[i]->getStringPtr(), 100); } field_0x600 = new CPaneMgrAlpha(mTitle.Scr, 'n_all', 2, NULL); field_0x600->setAlpha(0); J2DPane* pane = mTitle.Scr->search('n_all'); pane->translate(g_daTitHIO.mPSPosX, g_daTitHIO.mPSPosY); pane->scale(g_daTitHIO.mPSScaleX, g_daTitHIO.mPSScaleY); mpHeap->becomeCurrentHeap(); logoDispWaitInit(); } } /* 80D672E0-80D672EC 0008C0 000C+00 1/1 0/0 0/0 .text logoDispWaitInit__9daTitle_cFv */ void daTitle_c::logoDispWaitInit() { mProcID = 1; } /* 80D672EC-80D67350 0008CC 0064+00 1/0 0/0 0/0 .text logoDispWait__9daTitle_cFv */ void daTitle_c::logoDispWait() { if (mDoCPd_c::getTrigA(PAD_1) || mDoCPd_c::getTrigStart(PAD_1)) { fastLogoDispInit(); } else if (getDemoPrm() == 1) { logoDispAnmInit(); } } /* 80D67350-80D6737C 000930 002C+00 1/1 0/0 0/0 .text logoDispAnmInit__9daTitle_cFv */ void daTitle_c::logoDispAnmInit() { mBck.setPlaySpeed(1.0f); mBpk.setPlaySpeed(1.0f); mBrk.setPlaySpeed(1.0f); mBtk.setPlaySpeed(1.0f); field_0x5f8 = 1; mProcID = 2; } /* 80D6737C-80D674A8 00095C 012C+00 1/0 0/0 0/0 .text logoDispAnm__9daTitle_cFv */ void daTitle_c::logoDispAnm() { mBck.play(); mBpk.play(); mBrk.play(); mBtk.play(); if (mBrk.isStop() && mBtk.isStop() && mBck.isStop() && mBpk.isStop()) { field_0x600->alphaAnimeStart(0); field_0x604 = 0; field_0x5f9 = 1; field_0x5fa = 1; keyWaitInit(); } } /* 80D674A8-80D674B4 000A88 000C+00 2/2 0/0 0/0 .text keyWaitInit__9daTitle_cFv */ void daTitle_c::keyWaitInit() { mProcID = 3; } /* 80D674B4-80D67544 000A94 0090+00 1/0 0/0 0/0 .text keyWait__9daTitle_cFv */ void daTitle_c::keyWait() { if (mDoCPd_c::getTrigA(PAD_1) || mDoCPd_c::getTrigStart(PAD_1)) { mDoAud_seStart(Z2SE_TITLE_ENTER, NULL, 0, 0); nextScene_init(); } } /* 80D67544-80D67550 000B24 000C+00 1/1 0/0 0/0 .text nextScene_init__9daTitle_cFv */ void daTitle_c::nextScene_init() { mProcID = 4; } /* 80D67550-80D675EC 000B30 009C+00 1/0 0/0 0/0 .text nextScene_proc__9daTitle_cFv */ void daTitle_c::nextScene_proc() { if (!fopOvlpM_IsPeek() && !mDoRst::isReset()) { scene_class* playScene = fopScnM_SearchByID(dStage_roomControl_c::getProcID()); fopScnM_ChangeReq(playScene, 13, 0, 5); mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor); } } /* 80D675EC-80D676AC 000BCC 00C0+00 1/1 0/0 0/0 .text fastLogoDispInit__9daTitle_cFv */ void daTitle_c::fastLogoDispInit() { mBck.setFrame(mBck.getEndFrame() - 1.0f); mBpk.setFrame(mBpk.getEndFrame() - 1.0f); mBrk.setFrame(mBrk.getEndFrame() - 1.0f); mBtk.setFrame(mBtk.getEndFrame() - 1.0f); field_0x600->alphaAnimeStart(0); field_0x604 = 0; field_0x5fc = 30; mProcID = 5; } /* 80D676AC-80D676F4 000C8C 0048+00 1/0 0/0 0/0 .text fastLogoDisp__9daTitle_cFv */ void daTitle_c::fastLogoDisp() { if (field_0x5fc != 0) { field_0x5fc--; return; } field_0x5f9 = 1; field_0x5fa = 1; field_0x5f8 = 1; keyWaitInit(); } /* 80D676F4-80D67768 000CD4 0074+00 1/1 0/0 0/0 .text getDemoPrm__9daTitle_cFv */ int daTitle_c::getDemoPrm() { // NONMATCHING dDemo_actor_c* demoActor = dDemo_c::getActor(demoActorID); dDemo_prm_c* prm; if (demoActor != NULL && demoActor->checkEnable(1) && (prm = demoActor->getPrm())) { void* data = (void*)prm->getData(); JStudio::stb::TParseData_fixed<49> aTStack_30(data); TValueIterator_raw iter = aTStack_30.begin(); return *iter & 0xff; } return -1; } /* 80D67768-80D6786C 000D48 0104+00 1/1 0/0 0/0 .text Draw__9daTitle_cFv */ int daTitle_c::Draw() { J3DModelData* modelData = mpModel->getModelData(); MTXTrans(mpModel->getBaseTRMtx(), 0.0f, 0.0f, -430.0f); mpModel->getBaseScale()->x = -1.0f; mBck.entry(modelData); mBpk.entry(modelData); mBrk.entry(modelData); mBtk.entry(modelData); dComIfGd_setListItem3D(); mDoExt_modelUpdateDL(mpModel); dComIfGd_setList(); if (field_0x5f8) { dComIfGd_set2DOpaTop(&mTitle); } return 1; } /* 80D6786C-80D67948 000E4C 00DC+00 1/1 0/0 0/0 .text Delete__9daTitle_cFv */ int daTitle_c::Delete() { dComIfG_resDelete(&mPhaseReq, l_arcName); delete mTitle.Scr; delete field_0x600; mpMount->getArchive()->removeResourceAll(); mpMount->getArchive()->unmount(); delete mpMount; if (m2DHeap != NULL) { m2DHeap->destroy(); } return 1; } /* 80D67948-80D67968 000F28 0020+00 1/0 0/0 0/0 .text daTitle_Draw__FP9daTitle_c */ static int daTitle_Draw(daTitle_c* i_this) { return i_this->Draw(); } /* 80D67968-80D67988 000F48 0020+00 1/0 0/0 0/0 .text daTitle_Execute__FP9daTitle_c */ static int daTitle_Execute(daTitle_c* i_this) { return i_this->Execute(); } /* 80D67988-80D679A8 000F68 0020+00 1/0 0/0 0/0 .text daTitle_Delete__FP9daTitle_c */ static int daTitle_Delete(daTitle_c* i_this) { return i_this->Delete(); } /* 80D679A8-80D679C8 000F88 0020+00 1/0 0/0 0/0 .text daTitle_Create__FP10fopAc_ac_c */ static int daTitle_Create(fopAc_ac_c* i_this) { return static_cast(i_this)->create(); } /* 80D679C8-80D67A04 000FA8 003C+00 1/0 0/0 0/0 .text draw__15dDlst_daTitle_cFv */ void dDlst_daTitle_c::draw() { J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort(); Scr->draw(0.0f, 0.0f, ctx); } /* 80D67CF0-80D67D10 -00001 0020+00 1/0 0/0 0/0 .data l_daTitle_Method */ static actor_method_class l_daTitle_Method = { (process_method_func)daTitle_Create, (process_method_func)daTitle_Delete, (process_method_func)daTitle_Execute, (process_method_func)NULL, (process_method_func)daTitle_Draw, }; /* 80D67D10-80D67D40 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TITLE */ extern actor_process_profile_definition g_profile_TITLE = { fpcLy_CURRENT_e, // mLayerID 7, // mListID fpcPi_CURRENT_e, // mListPrio PROC_TITLE, // mProcName &g_fpcLf_Method.base, // sub_method sizeof(daTitle_c), // mSize 0, // mSizeOther 0, // mParameters &g_fopAc_Method.base, // sub_method 0xa, // mPriority &l_daTitle_Method, // sub_method 0x00044000, // mStatus fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType };