// // Generated by dtk // Translation Unit: d_s_play.cpp // #include "d/d_s_play.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JUtility/JUTAssert.h" #include "JSystem/JUtility/JUTConsole.h" #include "JSystem/JUtility/JUTReport.h" #include "SSystem/SComponent/c_counter.h" #include "c/c_dylink.h" #include "d/actor/d_a_dai.h" #include "d/actor/d_a_ib.h" #include "d/actor/d_a_npc_kg2.h" #include "d/actor/d_a_player_main.h" #include "d/actor/d_a_salvage.h" #include "d/actor/d_a_sea.h" #include "d/actor/d_a_steam_tag.h" #include "d/actor/d_a_title.h" #include "d/actor/d_a_ykgr.h" #include "d/actor/d_a_obj_tribox.h" #include "d/d_com_inf_game.h" #include "d/d_com_lib_game.h" #include "d/d_kankyo_rain.h" #include "d/d_material.h" #include "d/d_meter.h" #include "d/d_procname.h" #include "d/d_snap.h" #include "f_op/f_op_draw_iter.h" #include "f_op/f_op_msg_mng.h" #include "f_op/f_op_overlap_mng.h" #include "f_op/f_op_scene_mng.h" #include "f_pc/f_pc_manager.h" #include "m_Do/m_Do_Reset.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_machine.h" #include #include "weak_bss_3569.h" // IWYU pragma: keep static const int PRELOAD_RES_MAX = 0x23; static const int PRELOAD_DYL_MAX = 0x1B; struct PreLoadInfoT_s { char* stageName; const s16* dylKeyTbl; const char** resName; u8 dylKeyTblNum; u8 resNameNum; }; s8 dScnPly_ply_c::pauseTimer; s8 dScnPly_ply_c::nextPauseTimer; /* 80234570-802345B0 .text calcPauseTimer__13dScnPly_ply_cFv */ s8 dScnPly_ply_c::calcPauseTimer() { if (nextPauseTimer != 0) { pauseTimer = nextPauseTimer; nextPauseTimer = 0; return pauseTimer; } return cLib_calcTimer(&pauseTimer); } /* 802345B0-80234654 .text __ct__18dScnPly_dark_HIO_cFv */ dScnPly_dark_HIO_c::dScnPly_dark_HIO_c() { field_0x05 = 0; field_0x06 = 0; mDarkStatus = dStage_roomControl_c::getDarkStatus(0); } dScnPly_dark_HIO_c g_darkHIO; /* 80234654-802346A4 .text __ct__22dScnPly_reg_childHIO_cFv */ dScnPly_reg_childHIO_c::dScnPly_reg_childHIO_c() { for (int i = 0; i < 30; i++) { mFloatRegs[i] = 0.0f; } for (int i = 0; i < 10; i++) { mShortRegs[i] = 0; } } dScnPly_reg_HIO_c g_regHIO; /* 802346A4-80234734 .text __ct__22dScnPly_env_otherHIO_cFv */ dScnPly_env_otherHIO_c::dScnPly_env_otherHIO_c() { field_0x05 = 1; field_0x06 = 1; field_0x40 = 0; field_0x07 = 0; field_0x08 = 0; field_0x09 = 0; field_0x44 = 4000.0f; field_0x0a = 0; field_0x0b = 0; field_0x0c = 0; field_0x0d = 128; field_0x0e = 16; field_0x0f = 0; field_0x10 = 0; field_0x11 = 0; field_0x12 = 0; field_0x15 = 0; for (int i = 0; i < 20; i++) { field_0x18[i] = 0xFFFF; } field_0x16 = 0; } /* 80234734-80234778 .text __ct__22dScnPly_env_debugHIO_cFv */ dScnPly_env_debugHIO_c::dScnPly_env_debugHIO_c() { field_0x08 = -100.0f; field_0x0c = -100.0f; field_0x10 = -100.0f; field_0x14 = 100.0f; field_0x18 = 100.0f; field_0x1c = 100.0f; field_0x20 = 0.0f; field_0x24 = 0.0f; field_0x28 = 0.0f; field_0x2c = 100.0f; } dScnPly_env_HIO_c g_envHIO; /* 80234778-802347B4 .text __ct__17dScnPly_msg_HIO_cFv */ dScnPly_msg_HIO_c::dScnPly_msg_HIO_c() { field_0x08 = 0; mIsUpdate = false; field_0x06 = 0; field_0x07 = 0; field_0x09 = 0; mGroup = 0; mID = 1; field_0x10 = fpcM_ERROR_PROCESS_ID_e; } dScnPly_msg_HIO_c g_msgDHIO; /* 802347B4-802347BC .text dScnPly_msg_HIO_checkUpdate__17dScnPly_msg_HIO_cFUc */ void dScnPly_msg_HIO_c::dScnPly_msg_HIO_checkUpdate(u8 i_update) { mIsUpdate = i_update; } /* 802347BC-802347C4 .text dScnPly_msg_HIO_setUpdate__17dScnPly_msg_HIO_cFUc */ void dScnPly_msg_HIO_c::dScnPly_msg_HIO_setUpdate(u8 param_0) { field_0x07 = param_0; } /* 802347C4-80234830 .text dScnPly_msg_HIO_numUpdate__17dScnPly_msg_HIO_cFss */ void dScnPly_msg_HIO_c::dScnPly_msg_HIO_numUpdate(s16 i_addGroup, s16 i_addID) { mGroup += i_addGroup; mID += i_addID; if (mGroup > 99) { mGroup = 99; } if (mGroup < 0) { mGroup = 0; } if (mID > 0x7FFF) { mID = 0x7FFF; } if (mID < 0) { mID = 0; } } /* 80234830-80234AA8 .text dScnPly_msg_HIO_padCheck__17dScnPly_msg_HIO_cFv */ void dScnPly_msg_HIO_c::dScnPly_msg_HIO_padCheck() { if (mIsUpdate) { if (CPad_CHECK_TRIG_Z(3)) { dScnPly_msg_HIO_checkUpdate(0); } if (CPad_CHECK_TRIG_UP(3)) { if (CPad_CHECK_HOLD_A(3)) { dScnPly_msg_HIO_numUpdate(10, 0); } else { dScnPly_msg_HIO_numUpdate(1, 0); } } else if (CPad_CHECK_TRIG_DOWN(3)) { if (CPad_CHECK_HOLD_A(3)) { dScnPly_msg_HIO_numUpdate(-10, 0); } else { dScnPly_msg_HIO_numUpdate(-1, 0); } } else if (CPad_CHECK_TRIG_RIGHT(3)) { if (CPad_CHECK_HOLD_Y(3)) { dScnPly_msg_HIO_numUpdate(0, 1000); } else if (CPad_CHECK_HOLD_X(3)) { dScnPly_msg_HIO_numUpdate(0, 100); } else if (CPad_CHECK_HOLD_A(3)) { dScnPly_msg_HIO_numUpdate(0, 10); } else { dScnPly_msg_HIO_numUpdate(0, 1); } } else if (CPad_CHECK_TRIG_LEFT(3)) { if (CPad_CHECK_HOLD_Y(3)) { dScnPly_msg_HIO_numUpdate(0, -1000); } else if (CPad_CHECK_HOLD_X(3)) { dScnPly_msg_HIO_numUpdate(0, -100); } else if (CPad_CHECK_HOLD_A(3)) { dScnPly_msg_HIO_numUpdate(0, -10); } else { dScnPly_msg_HIO_numUpdate(0, -1); } } else if (CPad_CHECK_TRIG_B(3)) { if (field_0x06 == 0) { field_0x06 = 1; } } else if (field_0x07 != 0) { if (field_0x06 == 0) { field_0x06 = 1; } dScnPly_msg_HIO_setUpdate(0); } JUTReport(470, 250, "Group : %05d", mGroup); JUTReport(470, 270, "ID : %05d", mID); } } /* 80234AA8-80234B9C .text dScnPly_msg_HIO_messageProc__17dScnPly_msg_HIO_cFv */ void dScnPly_msg_HIO_c::dScnPly_msg_HIO_messageProc() { dScnPly_msg_HIO_padCheck(); if (field_0x06) { if (field_0x10 == fpcM_ERROR_PROCESS_ID_e) { u32 msg_num = mGroup; msg_num <<= 0x10; msg_num |= mID; cXyz sp10; sp10.x = sp10.y = sp10.z = 0.0f; if (mGroup != 99 && mGroup != 98 && mGroup != 89) { msg_num = fopMsgM_searchMessageNumber(msg_num); mGroup = (msg_num >> 0x10) & 0xFFFF; mID = msg_num & 0xFFFF; } field_0x10 = fopMsgM_messageSet(msg_num, &sp10); } else { msg_class* msg_p = fopMsgM_SearchByID(field_0x10); if (msg_p != NULL) { if (msg_p->mStatus == fopMsgStts_MSG_DISPLAYED_e) { msg_p->mStatus = fopMsgStts_MSG_ENDS_e; } else if (msg_p->mStatus == fopMsgStts_BOX_CLOSED_e) { msg_p->mStatus = fopMsgStts_MSG_DESTROYED_e; field_0x10 = fpcM_ERROR_PROCESS_ID_e; field_0x06 = 0; mID++; } } } } } static OSTime dylPreLoadTime1; static OSTime resPreLoadTime0; static OSTime resPreLoadTime1; static u8 number_of_resPhase[PRELOAD_RES_MAX]; static u8 number_of_dylPhase[PRELOAD_DYL_MAX]; static request_of_phase_process_class resPhase[PRELOAD_RES_MAX]; static request_of_phase_process_class dylPhase[PRELOAD_DYL_MAX]; static dScnPly_preLoad_HIO_c g_preLoadHIO; /* 80234B9C-80234FD0 .text dScnPly_Draw__FP13dScnPly_ply_c */ static BOOL dScnPly_Draw(dScnPly_ply_c* i_this) { dComIfG_Ccsp()->Move(); dComIfG_Bgsp()->ClrMoveFlag(); if (!fopOvlpM_IsPeek() && !dComIfG_resetToOpening(i_this) && fpcM_GetName(i_this) == PROC_PLAY_SCENE) { if (dComIfGp_isEnableNextStage()) { static s16 l_wipeType[] = { PROC_OVERLAP0, PROC_OVERLAP0, PROC_OVERLAP2, PROC_OVERLAP3, PROC_OVERLAP4, PROC_OVERLAP1, PROC_OVERLAP6, PROC_OVERLAP1, PROC_OVERLAP7, PROC_OVERLAP7, PROC_OVERLAP8, PROC_OVERLAP8, }; JUT_ASSERT(VERSION_SELECT(997, 997, 1001, 1001), dComIfGp_getNextStageWipe() < ARRAY_SIZE(l_wipeType)); if (strcmp(dComIfGp_getNextStageName(), "ENDING") == 0) { fopScnM_ChangeReq(i_this, PROC_ENDING_SCENE, PROC_OVERLAP0, 5); mDoAud_bgmStop(30); } else { fopScnM_ChangeReq(i_this, PROC_PLAY_SCENE, l_wipeType[dComIfGp_getNextStageWipe()], 5); int hour = dKy_getdaytime_hour(); BOOL isNight = FALSE; if (dKy_checkEventNightStop()) { isNight = TRUE; } else { isNight = (hour >= 6 && hour < 18) ? FALSE : TRUE; } if (dComIfGp_getNextStageWipe() == 1 || dComIfGp_getNextStageWipe() == 2 || dComIfGp_getNextStageWipe() == 7 || ((dComIfGp_getNextStageWipe() == 8 || dComIfGp_getNextStageWipe() == 10) && isNight) || ((dComIfGp_getNextStageWipe() == 9 || dComIfGp_getNextStageWipe() == 11) && !isNight)) { mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_saftyWhiteColor); // Fakematch? } else { mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor); // Fakematch? } mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(), dComIfGp_getNextStageLayer()); } } } if (!dMenu_flag() && dScnPly_ply_c::pauseTimer == 0) { dComIfGp_getVibration().Run(); dMat_control_c::icePlay(); dComIfGp_executeMagma(); if (dComIfGp_getGrass() != NULL || dComIfGp_getTree() != NULL || dComIfGp_getWood() != NULL || dComIfGp_getFlower() != NULL || dKyr_poison_live_check()) { // using the inline breaks the match // dComIfG_Ccsp()->PrepareMass(); g_dComIfG_gameInfo.play.mCcS.PrepareMass(); } dComIfGp_executeGrass(); dComIfGp_executeTree(); dComIfGp_executeWood(); dComIfGp_executeFlower(); dKyr_poison_light_colision(); dComIfG_Bgsp()->Move(); dSnap_Execute(); if (daPy_getPlayerLinkActorClass() == NULL || !daPy_getPlayerLinkActorClass()->checkGameOverStart()) { dComIfGp_particle_calc3D(); } dComIfGp_particle_calc2D(); cCt_execCounter(); } else { dComIfGp_getVibration().Pause(); } dComIfG_Ccsp()->MassClear(); dComIfGp_particle_calcMenu(); g_msgDHIO.dScnPly_msg_HIO_messageProc(); dComIfGp_roomControl_checkDrawArea(); for (create_tag_class* i = fopDwIt_Begin(); i != NULL; i = fopDwIt_Next(i)) { fpcM_Draw(i->mpTagData); } if (!dMenu_flag()) { dComIfGp_particle_drawModelParticle(); dComIfGp_drawMagma(); dComIfGp_drawGrass(); dComIfGp_drawTree(); dComIfGp_drawWood(); dComIfGp_drawFlower(); dComIfG_Ccsp()->Draw(); dSnap_DebugDraw(); dComIfGp_getAttention().Draw(); dComIfGp_map_mapBufferSendAGB(3); } return TRUE; } const char* sea_resName[] = { "Ship", "Cloth", "knob", "Yslvg00", "Kamome", }; STATIC_ASSERT(ARRAY_SIZE(sea_resName) <= PRELOAD_RES_MAX); const char* M_Dai_resName[] = { "door12", "System", "Dalways", "M_DOOR", "Odokuro", "Key", "Mspot", "Kbota_00", "Tenmado", "Osiblk", "Mmirror", "MkieK", "Mkanoke", "Vds", "St", "Msdan", "MkieB", "Mhsg", "Club", "ltubw", "Rd", "MpwrB", "Fm", }; STATIC_ASSERT(ARRAY_SIZE(M_Dai_resName) <= PRELOAD_RES_MAX); const s16 majroom_dylKeyTbl[] = { PROC_DOOR10, PROC_EP, PROC_HIMO3, PROC_KNOB00, PROC_KYTAG02, PROC_MO2, PROC_NPC_NZ, PROC_NZ, PROC_NZG, PROC_Obj_Barrel, PROC_Obj_Mshokki, PROC_OBJ_OTBLE, PROC_Tag_Attention, PROC_TAG_EVENT, PROC_TAG_HINT, PROC_TBOX, PROC_TSUBO, }; STATIC_ASSERT(ARRAY_SIZE(majroom_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* majroom_resName[] = { "Dalways", "Ep", "Ktaru_01", "System", "knob", "Himo3", "Mshokki", "Okmono", "Kantera", "Mbdoor", "Mo2", "Spear", "NZ", "NZG", "Npcnz", "Atdoor", "Ylesr00", "Pt", "Mozo", "Ki", "Kbota_00", }; STATIC_ASSERT(ARRAY_SIZE(majroom_resName) <= PRELOAD_RES_MAX); const s16 ma2room_dylKeyTbl[] = { PROC_AGBSW0, PROC_BK, PROC_DOOR10, PROC_EP, PROC_KNOB00, PROC_MO2, PROC_NZ, PROC_NZG, PROC_Obj_Mshokki, PROC_OBJ_OTBLE, PROC_Tag_Attention, PROC_TAG_EVENT, PROC_TBOX, PROC_TSUBO, }; STATIC_ASSERT(ARRAY_SIZE(ma2room_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* ma2room_resName[] = { "Dalways", "Ep", "System", "knob", "Ktaru_01", "Okmono", "Mo2", "Mbdoor", "Kantera", "Mshokki", "NZ", "NZG", "Shmrgrd", "Spear", "Nata", "Bk", "Atdoor", "Fm", "Kbota_00", "Mozo", "OQ", "Pt", "StpTetu", "Ylesr00", }; STATIC_ASSERT(ARRAY_SIZE(ma2room_resName) <= PRELOAD_RES_MAX); const s16 ma3room_dylKeyTbl[] = { PROC_DOOR10, PROC_EP, PROC_KI, PROC_KNOB00, PROC_MO2, PROC_NZ, PROC_NZG, PROC_Obj_Mshokki, PROC_OBJ_OTBLE, PROC_Tag_Attention, PROC_TAG_EVENT, PROC_TBOX, PROC_TSUBO, }; STATIC_ASSERT(ARRAY_SIZE(ma3room_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* ma3room_resName[] = { "Dalways", "Ep", "System", "knob", "Ki", "Ktaru_01", "Okmono", "Mbdoor", "Mshokki", "NZ", "NZG", "Npcnz", "Atdoor", "Kbota_00", "Mozo", "StpTetu", "Ylesr00", }; STATIC_ASSERT(ARRAY_SIZE(ma3room_resName) <= PRELOAD_RES_MAX); const s16 M_NewD2_dylKeyTbl[] = { PROC_TBOX, PROC_TAG_EVENT, PROC_DOOR10, PROC_AGBSW0, PROC_Ykgr, PROC_TSUBO, PROC_BK, PROC_SteamTag, PROC_MT, PROC_CC, PROC_NPC_NZ, PROC_Fire, }; STATIC_ASSERT(ARRAY_SIZE(M_NewD2_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* M_NewD2_resName[] = { "System", "Link", "Key", "Dalways", "Always", "Agb", "Ep", "Magma", "Boko", "KsakuCo", "Bk", "YFire_00", "Kmtub_00", "Kui", "Knsak_00", "Ki", "ltubw", "Osiblk", "Nata", "Mt", "Ksaku_00", "Ebrock", "CC", "Bridge", "Odokuro", "Msw", "Kbota_00", "Otana", "Okmono", "Npcnz", "NZG", "NZ", "MtoriSU", "Mflft", "Bb", }; STATIC_ASSERT(ARRAY_SIZE(M_NewD2_resName) <= PRELOAD_RES_MAX); const s16 kindan_dylKeyTbl[] = { PROC_TBOX, PROC_TAG_EVENT, PROC_SWC00, PROC_DOOR10, PROC_AGBSW0, PROC_Tag_Attention, PROC_TSUBO, PROC_CC, PROC_PH, PROC_KLFT, PROC_SITEM, PROC_KITA, PROC_Obj_Mtest, }; STATIC_ASSERT(ARRAY_SIZE(kindan_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* kindan_resName[] = { "System", "Ssk", "Link", "Key", "Dalways", "Always", "Agb", "Sitem", "Ss", "CC", "Vochi", "PH", "JBO", "Ep", "Klft", "KS", "BO", "ltubw", "Kui", "KsakuCo", "Sss", "Sk2", "Sk", "Shand", "Knsak_00", "Yaflw00", "Vpbot_00", "Spear", "Mtest", "Ksaku_00", "Kokiie", "Kita", "Kanat", "Boko", "Mdoor", }; STATIC_ASSERT(ARRAY_SIZE(kindan_resName) <= PRELOAD_RES_MAX); const s16 M_Dai_dylKeyTbl[] = { PROC_ALLDIE, PROC_Obj_Msdan2, PROC_Obj_Msdan, PROC_Obj_MsdanSub2, PROC_Obj_MsdanSub, PROC_SW_ATTACK, PROC_Obj_Correct, PROC_Obj_Mkiek, PROC_Obj_Vds, PROC_Obj_Ladder, PROC_DOOR12, PROC_Obj_MknjD, PROC_Obj_Swhammer, PROC_Obj_Swlight, PROC_Obj_Mkie, PROC_KANTERA, PROC_Obj_Mmrr, PROC_Obj_Kanoke, PROC_BOKO, PROC_BL, PROC_PW, PROC_CC, PROC_Obj_Tapestry, PROC_ST, PROC_FM, PROC_MO2, PROC_TN, }; STATIC_ASSERT(ARRAY_SIZE(M_Dai_dylKeyTbl) <= PRELOAD_DYL_MAX); const s16 sea_dylKeyTbl[] = { PROC_TAG_SO, PROC_Salvage, PROC_Obj_Coming, PROC_LODBG, PROC_Coming2, PROC_SHIP, PROC_NPC_SO, }; STATIC_ASSERT(ARRAY_SIZE(sea_dylKeyTbl) <= PRELOAD_DYL_MAX); const s16 kaze_dylKeyTbl[] = { PROC_GRASS, PROC_PH, PROC_FM, PROC_TAG_MDCB, PROC_Obj_Hfuck1, PROC_Obj_Eff, PROC_WindTag, PROC_Obj_Homen, PROC_TSUBO, PROC_EP, PROC_Obj_Jump, PROC_Obj_Hami3, PROC_WINDMILL, PROC_Obj_Hbrf1, PROC_Obj_Hami4, PROC_Obj_Hami2, PROC_MACHINE, PROC_Obj_Vmc, PROC_Obj_MknjD, PROC_NPC_CB1, PROC_Obj_Trap, PROC_SW_PROPELLER, PROC_TOGE, PROC_SHUTTER2, }; STATIC_ASSERT(ARRAY_SIZE(kaze_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* kaze_resName[] = { "Dalways", "Key", "door13", "Am", "Am2", "Ep", "Hami1", "Hami2", "Hami3", "Hami4", "Hfuck1", "Hhbot", "Hhyu1", "Hjump", "Hpbot1", "Hsen1", "Hsen3", "Kbota_00", "Ybgaf00", "Ph", "Sss", "Trap", "Vmc", "Yaflw00", "ltubw", }; STATIC_ASSERT(ARRAY_SIZE(kaze_resName) <= PRELOAD_RES_MAX); s16 Siren_dylKeyTbl[] = { PROC_Obj_Hha, PROC_Obj_Htetu1, PROC_NPC_OS, PROC_LIGHTSTAIR, PROC_WALL, PROC_Obj_Try, PROC_Obj_Correct, }; STATIC_ASSERT(ARRAY_SIZE(Siren_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* Siren_resName[] = { "Dalways", "Ship", "Cloth", "Key", "Hha", "Htetu1", "Os", "Htw1", "Hcbh", "Hdai1", }; STATIC_ASSERT(ARRAY_SIZE(Siren_resName) <= PRELOAD_RES_MAX); s16 GanonJ_dylKeyTbl[] = { PROC_TBOX, PROC_DOOR10, PROC_MANT, PROC_FGANON, PROC_TSUBO, PROC_MO2, PROC_BK, PROC_TN, PROC_PT, PROC_Obj_Hcbh, PROC_ANDSW0, }; STATIC_ASSERT(ARRAY_SIZE(GanonJ_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* GanonJ_resName[] = { "System", "Link", "Dalways", "Always", "Agb", "Fganon", "Spear", "Nata", "Mo2", "Bk", "Tn", "Tkwn", "Odokuro", "Boko", }; STATIC_ASSERT(ARRAY_SIZE(GanonJ_resName) <= PRELOAD_RES_MAX); s16 GanonK_dylKeyTbl[] = { PROC_TSUBO, PROC_Obj_Vteng, PROC_KUI, PROC_KS, PROC_EP, PROC_BGN, PROC_TAG_EVENT, PROC_Tag_Attention, PROC_PZ, PROC_Obj_Gbed, PROC_BGN3, PROC_BGN2, PROC_ATT, }; STATIC_ASSERT(ARRAY_SIZE(GanonK_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* GanonK_resName[] = { "Agb", "Always", "Ep", "KS", "Kui", "Link", "System", "ltubw", }; STATIC_ASSERT(ARRAY_SIZE(GanonK_resName) <= PRELOAD_RES_MAX); s16 GanonM_dylKeyTbl[] = { PROC_FGANON, PROC_MANT, PROC_Ygcwp, PROC_Obj_Vfan, PROC_WARPGANON, }; STATIC_ASSERT(ARRAY_SIZE(GanonM_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* GanonM_resName[] = { "Fganon", "Pgsw", "Vfan", "Ygcwp", "Gmjwp", }; STATIC_ASSERT(ARRAY_SIZE(GanonM_resName) <= PRELOAD_RES_MAX); const s16 M_DragB_dylKeyTbl[] = { PROC_WARPFLOWER, }; STATIC_ASSERT(ARRAY_SIZE(M_DragB_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* M_DragB_resName[] = { NULL, }; STATIC_ASSERT(ARRAY_SIZE(M_DragB_resName) <= PRELOAD_RES_MAX); const s16 kinBOSS_dylKeyTbl[] = { PROC_NPC_CB1, PROC_WARPFLOWER, }; STATIC_ASSERT(ARRAY_SIZE(kinBOSS_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* kinBOSS_resName[] = { "Cb", "Gtfglow", }; STATIC_ASSERT(ARRAY_SIZE(kinBOSS_resName) <= PRELOAD_RES_MAX); const s16 M_DaiB_dylKeyTbl[] = { PROC_WARPFLOWER, }; STATIC_ASSERT(ARRAY_SIZE(M_DaiB_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* M_DaiB_resName[] = { "Gtfglow", }; STATIC_ASSERT(ARRAY_SIZE(M_DaiB_resName) <= PRELOAD_RES_MAX); const s16 SirenB_dylKeyTbl[] = { PROC_WARPFLOWER, }; STATIC_ASSERT(ARRAY_SIZE(SirenB_dylKeyTbl) <= PRELOAD_DYL_MAX); const char* SirenB_resName[] = { "Ysbwp00", }; STATIC_ASSERT(ARRAY_SIZE(SirenB_resName) <= PRELOAD_RES_MAX); const PreLoadInfoT_s PreLoadInfoT[] = { { "sea", sea_dylKeyTbl, sea_resName, ARRAY_SIZE(sea_dylKeyTbl), ARRAY_SIZE(sea_resName), }, { "M_Dai", M_Dai_dylKeyTbl, M_Dai_resName, ARRAY_SIZE(M_Dai_dylKeyTbl), ARRAY_SIZE(M_Dai_resName), }, { "kaze", kaze_dylKeyTbl, kaze_resName, ARRAY_SIZE(kaze_dylKeyTbl), ARRAY_SIZE(kaze_resName), }, { "Siren", Siren_dylKeyTbl, Siren_resName, ARRAY_SIZE(Siren_dylKeyTbl), ARRAY_SIZE(Siren_resName), }, { "M_DragB", M_DragB_dylKeyTbl, M_DragB_resName, ARRAY_SIZE(M_DragB_dylKeyTbl), ARRAY_SIZE(M_DragB_resName), }, { "kinBOSS", kinBOSS_dylKeyTbl, kinBOSS_resName, ARRAY_SIZE(kinBOSS_dylKeyTbl), ARRAY_SIZE(kinBOSS_resName), }, { "SirenB", SirenB_dylKeyTbl, SirenB_resName, ARRAY_SIZE(SirenB_dylKeyTbl), ARRAY_SIZE(SirenB_resName), }, { "M_DaiB", M_DaiB_dylKeyTbl, M_DaiB_resName, ARRAY_SIZE(M_DaiB_dylKeyTbl), ARRAY_SIZE(M_DaiB_resName), }, { "majroom", majroom_dylKeyTbl, majroom_resName, ARRAY_SIZE(majroom_dylKeyTbl), ARRAY_SIZE(majroom_resName), }, { "ma2room", ma2room_dylKeyTbl, ma2room_resName, ARRAY_SIZE(ma2room_dylKeyTbl), ARRAY_SIZE(ma2room_resName), }, { "ma3room", ma3room_dylKeyTbl, ma3room_resName, ARRAY_SIZE(ma3room_dylKeyTbl), ARRAY_SIZE(ma3room_resName), }, { "M_NewD2", M_NewD2_dylKeyTbl, M_NewD2_resName, ARRAY_SIZE(M_NewD2_dylKeyTbl), ARRAY_SIZE(M_NewD2_resName), }, { "kindan", kindan_dylKeyTbl, kindan_resName, ARRAY_SIZE(kindan_dylKeyTbl), ARRAY_SIZE(kindan_resName), }, { "GanonJ", GanonJ_dylKeyTbl, GanonJ_resName, ARRAY_SIZE(GanonJ_dylKeyTbl), ARRAY_SIZE(GanonJ_resName), }, { "GanonK", GanonK_dylKeyTbl, GanonK_resName, ARRAY_SIZE(GanonK_dylKeyTbl), ARRAY_SIZE(GanonK_resName), }, { "GanonM", GanonM_dylKeyTbl, GanonM_resName, ARRAY_SIZE(GanonM_dylKeyTbl), ARRAY_SIZE(GanonM_resName), }, }; /* 80234FD0-802350B4 .text dScnPly_Execute__FP13dScnPly_ply_c */ static BOOL dScnPly_Execute(dScnPly_ply_c* i_this) { if (!fopOvlpM_IsPeek()) { if (mDoAud_zelAudio_c::isBgmSet()) { mDoAud_sceneBgmStart(); mDoAud_load2ndDynamicWave(); mDoAud_zelAudio_c::offBgmSet(); } if (i_this->calcPauseTimer() != 0) { return TRUE; } } dKy_itudemo_se(); if (!dMenu_flag()) { dComIfGp_demo_update(); // dComIfGp_jcame_update(); // Debug only // dComIfGp_jprev_update(); // Debug only dComIfGp_evmng_execute(); if (dComIfGp_getAttention().Owner() != NULL) { dComIfGp_getAttention().Run(-1); } else { dComIfGp_getAttention().Init(dComIfGp_getPlayer(0), 0); } dComIfGp_getDetect().proc(); } return TRUE; } /* 802350B4-802350BC .text dScnPly_IsDelete__FP13dScnPly_ply_c */ static BOOL dScnPly_IsDelete(dScnPly_ply_c* i_this) { return TRUE; } static s8 preLoadNo = 0xFF; static bool doPreLoad = true; /* 802350BC-80235364 .text dScnPly_Delete__FP13dScnPly_ply_c */ static BOOL dScnPly_Delete(dScnPly_ply_c* i_this) { dComIfGp_getAttention().~dAttention_c(); dComIfGp_getVibration().dVibration_c::~dVibration_c(); dComIfG_Bgsp()->Dt(); dComIfG_Ccsp()->Dt(); dSnap_Delete(); dStage_Delete(); dComIfGp_event_remove(); dComIfGp_particle_removeScene(); // dComIfGp_removeJcame(); // Debug only // dComIfGp_removeJprev(); // Debug only dComIfGp_removeDemo(); dMat_control_c::remove(); fopMsgM_destroyExpHeap(dComIfGp_getExpHeap2D()); if (strcmp(dComIfGp_getStartStageName(), "Xboss0") == 0 || strcmp(dComIfGp_getStartStageName(), "Xboss1") == 0 || strcmp(dComIfGp_getStartStageName(), "Xboss2") == 0 || strcmp(dComIfGp_getStartStageName(), "Xboss3") == 0 ) { dComIfGs_revPlayerRecollectionData(); } dComIfGp_removeMagma(); dComIfGp_removeGrass(); dComIfGp_removeTree(); dComIfGp_removeWood(); dComIfGp_removeFlower(); dComIfGp_clearItemTimeCount(); g_msgDHIO.field_0x06 = 0; g_msgDHIO.field_0x10 = -1; mDoHIO_deleteChild(g_darkHIO.mNo); mDoHIO_deleteChild(g_envHIO.mNo); mDoHIO_deleteChild(g_msgDHIO.mNo); dComIfGp_setWindowNum(0); if (preLoadNo >= 0) { const char** resName = PreLoadInfoT[preLoadNo].resName; s32 resNameNum = PreLoadInfoT[preLoadNo].resNameNum; if (resName != NULL && resName[0] != NULL) { for (int i = 0; i < resNameNum; i++) { dComIfG_resDelete(&resPhase[i], resName[i]); } } const s16* dylKeyTbl = PreLoadInfoT[preLoadNo].dylKeyTbl; s32 dylKeyTblNum = PreLoadInfoT[preLoadNo].dylKeyTblNum; if (dylKeyTbl != NULL && dylKeyTbl[0] != NULL) { for (int i = 0; i < dylKeyTblNum; i++) { cDylPhs::Unlink(&dylPhase[i], dylKeyTbl[i]); } } } dComIfGp_init(); return TRUE; } /* 80235364-802355A8 .text heapSizeCheck__Fv */ BOOL heapSizeCheck() { int archive_free = mDoExt_getArchiveHeap()->getFreeSize(); int archive_total_free = mDoExt_getArchiveHeap()->getTotalFreeSize(); f32 temp_f31 = (f32)archive_total_free / (f32)mDoExt_getSafeArchiveHeapSize(); f32 temp_f30 = (f32)archive_free / (f32)archive_total_free; int game_free = mDoExt_getGameHeap()->getFreeSize(); int game_total_free = mDoExt_getGameHeap()->getTotalFreeSize(); f32 temp_f29 = (f32)game_total_free / (f32)mDoExt_getSafeGameHeapSize(); f32 temp_f28 = (f32)game_free / (f32)game_total_free; mDoExt_getZeldaHeap()->getFreeSize(); #if VERSION <= VERSION_JPN int zelda_total_free = mDoExt_getZeldaHeap()->getFreeSize(); #else int zelda_total_free = mDoExt_getZeldaHeap()->getTotalFreeSize(); #endif f32 temp_f27 = (f32)zelda_total_free / (f32)mDoExt_getSafeZeldaHeapSize(); mDoExt_getCommandHeap()->getFreeSize(); #if VERSION <= VERSION_JPN int command_total_free = mDoExt_getCommandHeap()->getFreeSize(); #else int command_total_free = mDoExt_getCommandHeap()->getTotalFreeSize(); #endif f32 temp_f1 = (f32)command_total_free / (f32)mDoExt_getSafeCommandHeapSize(); if (temp_f31 < 0.7f || temp_f30 < 0.7f || temp_f29 < 0.7f || temp_f28 < 0.7f || temp_f27 < 0.7f || temp_f1 < 0.7f) { return FALSE; } return TRUE; } /* 802355A8-802356B0 .text phase_00__FP13dScnPly_ply_c */ cPhs_State phase_00(dScnPly_ply_c* i_this) { if (mDoAud_isUsedHeapForStreamBuffer()) { return cPhs_INIT_e; } mDoGph_gInf_c::offBlure(); if (fpcM_GetName(i_this) != PROC_PLAY_SCENE) { if (!heapSizeCheck()) { mDoRst_reset(0, 0x80000000, 0); } if (mDoRst::isReset()) { if (mDoAud_zelAudio_c::isResetFlag()) { mDoAud_zelAudio_c::getInterface()->resetRecover(); mDoAud_zelAudio_c::offResetFlag(); } mDoGph_gInf_c::offFade(); mDoGph_gInf_c::offMonotone(); dDlst_list_c::offWipe(); daTitle_proc_c::daTitle_Kirakira_Sound_flag_on(); daObjTribox::Act_c::reset(); dComIfGp_offEnableNextStage(); } dComIfGs_init(); } else { if (!heapSizeCheck()) { JUT_WARN(VERSION_SELECT(3356, 3356, 3372, 3372), "%s", "Memory Danger !!"); } } return cPhs_NEXT_e; } /* 802356B0-802356E0 .text phase_01__FP13dScnPly_ply_c */ cPhs_State phase_01(dScnPly_ply_c* i_this) { if (!mDoAud_load1stDynamicWave()) { return cPhs_INIT_e; } else { return cPhs_NEXT_e; } } static mDoDvdThd_mountXArchive_c* l_lkDemoAnmCommand; /* 802356E0-802357F4 .text phase_0__FP13dScnPly_ply_c */ cPhs_State phase_0(dScnPly_ply_c* i_this) { if (mDoAud_checkAllWaveLoadStatus()) { return cPhs_INIT_e; } else { l_lkDemoAnmCommand = NULL; s32 darcIdx = dComIfGs_isEventBit(0x2D01) ? 1 : 0; if (darcIdx != dComIfGp_getLkDemoAnmNo()) { if (dComIfGp_getLkDemoAnmNo() >= 0) { dComIfGp_getLkDemoAnmArchive()->unmount(); } dComIfGp_setLkDemoAnmNo(darcIdx); char buf[32]; sprintf(buf, "/res/Object/LkD%02d.arc", dComIfGp_getLkDemoAnmNo()); l_lkDemoAnmCommand = mDoDvdThd_mountXArchive_c::create(buf, 0, JKRArchive::MOUNT_ARAM); JUT_ASSERT(VERSION_SELECT(3399, 3399, 3414, 3414), l_lkDemoAnmCommand != NULL); } return cPhs_NEXT_e; } } /* 802357F4-802359DC .text phase_1__FP13dScnPly_ply_c */ cPhs_State phase_1(dScnPly_ply_c* i_this) { if (l_lkDemoAnmCommand != NULL) { if (!l_lkDemoAnmCommand->sync()) { return cPhs_INIT_e; } JUT_ASSERT(VERSION_SELECT(3424, 3424, 3439, 3439), l_lkDemoAnmCommand->getArchive()); dComIfGp_setLkDemoAnmArchive(l_lkDemoAnmCommand->getArchive()); delete l_lkDemoAnmCommand; } fpc_ProcID id = fopScnM_GetID(i_this); dStage_roomControl_c::setProcID(id); dComIfGp_setStartStage(dComIfGp_getNextStartStage()); dComIfGp_offEnableNextStage(); JUTReportConsole_f("Start StageName:RoomNo [%s:%d]\n", dComIfGp_getStartStageName(), dComIfGp_getStartStageRoomNo()); dComIfGp_setStatus(0); int rt = dComIfG_setStageRes("Stage", NULL); JUT_ASSERT(VERSION_SELECT(3443, 3443, 3458, 3458), rt == 1); dMat_control_c::create((J3DMaterialTable*)dComIfG_getObjectRes("Always", ALWAYS_BMT_ICE), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Always", ALWAYS_BTK_ICE)); return cPhs_NEXT_e; } /* 802359DC-80235ABC .text phase_2__FP13dScnPly_ply_c */ cPhs_State phase_2(dScnPly_ply_c* i_this) { int rt = dComIfG_syncStageRes("Stage"); JUT_ASSERT(VERSION_SELECT(3470, 3470, 3485, 3485), rt >= 0) if (rt != 0) { return cPhs_INIT_e; } else { dStage_infoCreate(); u8 particle_no = dStage_stagInfo_GetParticleNo(dComIfGp_getStageStagInfo()); dComIfGp_particle_readScene(particle_no, &i_this->sceneCommand); return cPhs_NEXT_e; } } /* 80235ABC-80235B0C .text phase_3__FP13dScnPly_ply_c */ cPhs_State phase_3(dScnPly_ply_c* i_this) { if ((i_this->sceneCommand != NULL && !i_this->sceneCommand->sync()) || mDoAud_zelAudio_c::getInterface()->check1stDynamicWave()) { return cPhs_INIT_e; } return cPhs_NEXT_e; } /* 80235B0C-80236334 .text phase_4__FP13dScnPly_ply_c */ cPhs_State phase_4(dScnPly_ply_c* i_this) { if (i_this->sceneCommand != NULL) { JUT_ASSERT(VERSION_SELECT(3552, 3552, 3567, 3567), i_this->sceneCommand->getMemAddress() != NULL); dComIfGp_particle_createScene(i_this->sceneCommand->getMemAddress()); delete i_this->sceneCommand; } else { dComIfGp_particle_createScene(NULL); } // dComIfG_initStopwatch(); // Debug only dComIfG_Bgsp()->Ct(); dComIfG_Ccsp()->Ct(); dComIfGp_createDemo(); daSea_Init(); dSnap_Create(); // dComIfGp_createJcame(); // Debug only // dComIfGp_createJprev(); // Debug only dComIfGp_setPlayerInfo(0, NULL, 0); for (s32 i = 0; i < 3; i++) dComIfGp_setPlayerPtr(i, NULL); 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_setCameraInfo(0, NULL, 0, 0, -1); dComIfGd_setWindow(NULL); dComIfGd_setViewport(NULL); dComIfGd_setView(NULL); JKRExpHeap* heap = fopMsgM_createExpHeap(VERSION_SELECT(0x736A1, 0x736A1, 0x73EA1, 0x73EA1)); JUT_ASSERT(VERSION_SELECT(3633, 3633, 3653, 3653), heap != NULL); dComIfGp_setExpHeap2D(heap); dStage_Create(); mDoGph_gInf_c::setTickRate((OS_BUS_CLOCK / 4) / 30); g_darkHIO.mNo = mDoHIO_createChild("暗闇スポット", &g_darkHIO); // "Darkness Spot" g_envHIO.mNo = mDoHIO_createChild("描画設定", &g_envHIO); // "Draw Settings" g_msgDHIO.mNo = mDoHIO_createChild("Message Data", &g_msgDHIO); new(&dComIfGp_getAttention()) dAttention_c(dComIfGp_getPlayer(0), NULL); dComIfGp_getVibration().Init(); daSteamTag_c::init(); daYkgr_c::init(); daSalvage_c::init(); daDai_c::init(); daNpc_Kg2_c::init(); daIball_c::init(); dComIfG_setBrightness(0xFF); mDoGph_gInf_c::offFade(); stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (stag_info != NULL && dStage_stagInfo_GetSTType(stag_info) == dStageType_FF1_e && dComIfGs_isEventBit(0x0801)) { dComIfGs_setSelectEquip(0, dItem_NONE_e); dComIfGp_setSelectEquip(0, dItem_NONE_e); dComIfGs_offCollect(0, 0); } if (strcmp(dComIfGp_getStartStageName(), "GTower") == 0) { dComIfGs_setItem(dInvSlot_BOW_e, dItem_NONE_e); // take away the bow for (int itemBtn = 0; itemBtn < dItemBtn_COUNT_e; itemBtn++) { u32 itemno = dComIfGp_getSelectItem(itemBtn); if (itemno == dItem_BOW_e || itemno == dItem_MAGIC_ARROW_e || itemno == dItem_LIGHT_ARROW_e) { dComIfGs_setSelectItem(itemBtn, dInvSlot_NONE_e); dComIfGp_setSelectItem(itemBtn); } } } else if (dComIfGs_getItem(dInvSlot_BOW_e) == dItem_NONE_e) { // give the bow back if (dComIfGs_isGetItem(dInvSlot_BOW_e, 2)) dComIfGs_setItem(dInvSlot_BOW_e, dItem_LIGHT_ARROW_e); else if (dComIfGs_isGetItem(dInvSlot_BOW_e, 1)) dComIfGs_setItem(dInvSlot_BOW_e, dItem_MAGIC_ARROW_e); else if (dComIfGs_isGetItem(dInvSlot_BOW_e, 0)) dComIfGs_setItem(dInvSlot_BOW_e, dItem_BOW_e); } if (strcmp(dComIfGp_getStartStageName(), "Xboss0") == 0 || strcmp(dComIfGp_getStartStageName(), "Xboss1") == 0 || strcmp(dComIfGp_getStartStageName(), "Xboss2") == 0 || strcmp(dComIfGp_getStartStageName(), "Xboss3") == 0 ) { dComIfGs_setPlayerRecollectionData(); } mDoAud_monsSeInit(); if (fpcM_GetName(i_this) == PROC_PLAY_SCENE) { mDoAud_zelAudio_c::onBgmSet(); } else { mDoAud_zelAudio_c::offBgmSet(); } dScnPly_ply_c::pauseTimer = 0; dScnPly_ply_c::nextPauseTimer = 0; if (((strcmp(dComIfGp_getStartStageName(), "Hyrule") == 0 || strcmp(dComIfGp_getStartStageName(), "Hyroom") == 0 || strcmp(dComIfGp_getStartStageName(), "kenroom") == 0) && !dComIfGs_isEventBit(0x3802)) || dComIfGp_getStartStageName()[0] == 'X') { mDoGph_gInf_c::onMonotone(); bool hy8 = strcmp(dComIfGp_getStartStageName(), "Hyrule") == 0 && dComIfGp_getStartStageLayer() == 8; s16 rate = hy8 ? -600 : 400; mDoGph_gInf_c::setMonotoneRate(rate); mDoGph_gInf_c::setMonotoneRateSpeed(0); } else { mDoGph_gInf_c::offMonotone(); } preLoadNo = -1; if (doPreLoad) { for (int i = 0; i < ARRAY_SIZE(PreLoadInfoT); i++) { if (strcmp(dComIfGp_getStartStageName(), PreLoadInfoT[i].stageName) == 0) { preLoadNo = i; } } } mDoRst::offReset(); OSTime time = resPreLoadTime0; JUTGamePad::clearResetOccurred(); JUTGamePad::setResetCallback(mDoRst_resetCallBack, NULL); cPhs_State rt; if (preLoadNo < 0) return cPhs_COMPLEATE_e; time = OSGetTime(); rt = cPhs_NEXT_e; resPreLoadTime0 = time; return rt; } /* 80236334-80236444 .text phase_5__FP13dScnPly_ply_c */ cPhs_State phase_5(dScnPly_ply_c* i_this) { if (preLoadNo >= 0) { cPhs_State rt = cPhs_NEXT_e; const char** resName = PreLoadInfoT[preLoadNo].resName; s32 resNameNum = PreLoadInfoT[preLoadNo].resNameNum; if (resName != NULL && resName[0] != NULL) { JUT_ASSERT(VERSION_SELECT(3804, 3804, 3824, 3824), resNameNum <= ARRAY_SIZE(resPhase)); for (int i = 0; i < resNameNum; i++) { if (dComIfG_resLoad(&resPhase[i], resName[i]) != cPhs_COMPLEATE_e) { rt = cPhs_INIT_e; } } } if (rt == cPhs_COMPLEATE_e) { resPreLoadTime1 = OSGetTime(); } return rt; } else { return cPhs_NEXT_e; } } /* 80236444-80236554 .text phase_6__FP13dScnPly_ply_c */ cPhs_State phase_6(dScnPly_ply_c* i_this) { if (preLoadNo >= 0) { cPhs_State rt = cPhs_NEXT_e; const s16* dylKeyTbl = PreLoadInfoT[preLoadNo].dylKeyTbl; s32 dylKeyTblNum = PreLoadInfoT[preLoadNo].dylKeyTblNum; if (dylKeyTbl != NULL && dylKeyTbl[0] != NULL) { JUT_ASSERT(VERSION_SELECT(3838, 3838, 3858, 3858), dylKeyTblNum <= ARRAY_SIZE(dylPhase)); for (int i = 0; i < dylKeyTblNum; i++) { if (cDylPhs::Link(&dylPhase[i], dylKeyTbl[i]) != cPhs_COMPLEATE_e) { rt = cPhs_INIT_e; } } } if (rt == cPhs_COMPLEATE_e) { dylPreLoadTime1 = OSGetTime(); } return rt; } else { return cPhs_NEXT_e; } } /* 80236554-8023655C .text phase_compleate__FPv */ cPhs_State phase_compleate(void* i_this) { return cPhs_COMPLEATE_e; } /* 8023655C-8023658C .text dScnPly_Create__FP11scene_class */ static cPhs_State dScnPly_Create(scene_class* i_this) { static request_of_phase_process_fn l_method[] = { (request_of_phase_process_fn)phase_00, (request_of_phase_process_fn)phase_01, (request_of_phase_process_fn)phase_0, (request_of_phase_process_fn)phase_1, (request_of_phase_process_fn)phase_2, (request_of_phase_process_fn)phase_3, (request_of_phase_process_fn)phase_4, (request_of_phase_process_fn)phase_5, (request_of_phase_process_fn)phase_6, (request_of_phase_process_fn)phase_compleate, }; return dComLbG_PhaseHandler(&static_cast(i_this)->mLoadPhs, l_method, i_this); } static scene_method_class l_dScnPly_Method = { (process_method_func)dScnPly_Create, (process_method_func)dScnPly_Delete, (process_method_func)dScnPly_Execute, (process_method_func)dScnPly_IsDelete, (process_method_func)dScnPly_Draw, }; scene_process_profile_definition g_profile_PLAY_SCENE = { /* LayerID */ fpcLy_ROOT_e, /* ListID */ 1, /* ListPrio */ fpcPi_CURRENT_e, /* ProcName */ PROC_PLAY_SCENE, /* Proc SubMtd */ &g_fpcNd_Method.base, /* Size */ sizeof(dScnPly_ply_c), /* SizeOther */ 0, /* Parameters */ 0, /* Node SubMtd */ &g_fopScn_Method.base, /* Scene SubMtd */ &l_dScnPly_Method, }; scene_process_profile_definition g_profile_OPENING_SCENE = { /* LayerID */ fpcLy_ROOT_e, /* ListID */ 1, /* ListPrio */ fpcPi_CURRENT_e, /* ProcName */ PROC_OPENING_SCENE, /* Proc SubMtd */ &g_fpcNd_Method.base, /* Size */ sizeof(dScnPly_ply_c), /* SizeOther */ 0, /* Parameters */ 0, /* Node SubMtd */ &g_fopScn_Method.base, /* Scene SubMtd */ &l_dScnPly_Method, }; scene_process_profile_definition g_profile_OPENING2_SCENE = { /* LayerID */ fpcLy_ROOT_e, /* ListID */ 1, /* ListPrio */ fpcPi_CURRENT_e, /* ProcName */ PROC_OPENING2_SCENE, /* Proc SubMtd */ &g_fpcNd_Method.base, /* Size */ sizeof(dScnPly_ply_c), /* SizeOther */ 0, /* Parameters */ 0, /* Node SubMtd */ &g_fopScn_Method.base, /* Scene SubMtd */ &l_dScnPly_Method, };