Files
tww/src/c/c_dylink.cpp
T
Jasper St. Pierre 75ef109e98 c_dylink match
2023-10-13 14:21:53 -07:00

632 lines
23 KiB
C++

//
// Generated by dtk
// Translation Unit: c_dylink.o
//
#include "c/c_dylink.h"
#include "d/d_com_lib_game.h"
#include "d/d_procname.h"
#include "m_Do/m_Do_dvd_thread.h"
#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_printf.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "JSystem/JKernel/JKRFileCache.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "DynamicLink.h"
#include "dolphin/OS/OS.h"
#include "MSL_C/string.h"
DynamicModuleControlBase * DMC[PROC_COUNT_e];
bool DMC_initialized = false;
BOOL cDyl_Initialized = false;
mDoDvdThd_callback_c * cDyl_DVD = NULL;
const DynamicNameTableEntry DynamicNameTable[] = {
{PROC_ALLDIE, "d_a_alldie"},
{PROC_TAG_EVSW, "d_a_tag_evsw"},
{PROC_Obj_Swpush, "d_a_obj_swpush"},
{PROC_Obj_Swheavy, "d_a_obj_swheavy"},
{PROC_Obj_Swflat, "d_a_obj_swflat"},
{PROC_Obj_Swlight, "d_a_obj_swlight"},
{PROC_Obj_Swhammer, "d_a_obj_swhammer"},
{PROC_Obj_Quake, "d_a_obj_quake"},
{PROC_Obj_Drift, "d_a_obj_drift"},
{PROC_Tag_Volcano, "d_a_tag_volcano"},
{PROC_TAG_SO, "d_a_tag_so"},
{PROC_Obj_Pbco, "d_a_obj_pbco"},
{PROC_SEATAG, "d_a_seatag"},
{PROC_Obj_Tide, "d_a_obj_tide"},
{PROC_Hmlif, "d_a_hmlif"},
{PROC_SCENECHG, "d_a_scene_change"},
{PROC_Obj_Magmarock, "d_a_obj_magmarock"},
{PROC_Obj_Movebox, "d_a_obj_movebox"},
{PROC_Obj_Tribox, "d_a_obj_tribox"},
{PROC_Obj_Shelf, "d_a_obj_shelf"},
{PROC_Obj_Hlift, "d_a_obj_hlift"},
{PROC_Obj_Hami2, "d_a_obj_hami2"},
{PROC_Obj_Hami3, "d_a_obj_hami3"},
{PROC_Obj_Hami4, "d_a_obj_hami4"},
{PROC_Obj_Hbrf1, "d_a_obj_hbrf1"},
{PROC_Obj_Volcano, "d_a_obj_volcano"},
{PROC_Obj_Vmc, "d_a_obj_vmc"},
{PROC_Obj_Usovmc, "d_a_obj_usovmc"},
{PROC_Obj_Vfan, "d_a_obj_vfan"},
{PROC_Obj_Iceisland, "d_a_obj_iceisland"},
{PROC_Obj_Dragonhead, "d_a_obj_dragonhead"},
{PROC_Obj_Pirateship, "d_a_obj_pirateship"},
{PROC_Obj_Tousekiki, "d_a_obj_tousekiki"},
{PROC_Tag_Ret, "d_a_tag_ret"},
{PROC_Kaji, "d_a_kaji"},
{PROC_Canon, "d_a_canon"},
{PROC_MGBOARD, "d_a_mgameboard"},
{PROC_OBJ_CANON, "d_a_obj_canon"},
{PROC_OBJ_OTBLE, "d_a_obj_otble"},
{PROC_OBJ_WARPT, "d_a_obj_warpt"},
{PROC_OBJ_TORIPOST, "d_a_obj_toripost"},
{PROC_OBJ_IKADA, "d_a_obj_ikada"},
{PROC_OBJ_MJDOOR, "d_a_obj_majyuu_door"},
{PROC_OBJ_PFALL, "d_a_obj_pfall"},
{PROC_OBJ_HOLE, "d_a_obj_hole"},
{PROC_Obj_Stair, "d_a_obj_stair"},
{PROC_Obj_Lpalm, "d_a_obj_lpalm"},
{PROC_Obj_Mtest, "d_a_obj_mtest"},
{PROC_Obj_Mkie, "d_a_obj_mkie"},
{PROC_Obj_Mkiek, "d_a_obj_mkiek"},
{PROC_Obj_MknjD, "d_a_obj_mknjd"},
{PROC_Obj_Msdan, "d_a_obj_msdan"},
{PROC_Obj_MsdanSub, "d_a_obj_msdan_sub"},
{PROC_Obj_Msdan2, "d_a_obj_msdan2"},
{PROC_Obj_MsdanSub2, "d_a_obj_msdan_sub2"},
{PROC_Obj_Nest, "d_a_obj_nest"},
{PROC_Obj_Ojtree, "d_a_obj_ojtree"},
{PROC_Obj_Ospbox, "d_a_obj_ospbox"},
{PROC_Obj_Ladder, "d_a_obj_ladder"},
{PROC_Obj_Smplbg, "d_a_obj_smplbg"},
{PROC_Obj_Akabe, "d_a_obj_akabe"},
{PROC_Obj_Ashut, "d_a_obj_ashut"},
{PROC_BRIDGE, "d_a_bridge"},
{PROC_MSW, "d_a_msw"},
{PROC_MFLFT, "d_a_mflft"},
{PROC_KLFT, "d_a_klft"},
{PROC_ICE_LIFT, "d_a_icelift"},
{PROC_AMI_PROP, "d_a_amiprop"},
{PROC_PEDESTAL, "d_a_pedestal"},
{PROC_FLOOR, "d_a_floor"},
{PROC_KITA, "d_a_kita"},
{PROC_KOKIIE, "d_a_kokiie"},
{PROC_SHAND, "d_a_shand"},
{PROC_BITA, "d_a_bita"},
{PROC_SK, "d_a_sk"},
{PROC_SK2, "d_a_sk2"},
{PROC_SSK, "d_a_ssk"},
{PROC_WARPFLOWER, "d_a_warpf"},
{PROC_WARPFOUT, "d_a_warpfout"},
{PROC_WARPLIGHT, "d_a_warpls"},
{PROC_WARPHYRULE, "d_a_warphr"},
{PROC_WARPDEMO20, "d_a_warpdm20"},
{PROC_WARPGANON, "d_a_warpgn"},
{PROC_WARPMAJYUU, "d_a_warpmj"},
{PROC_Balancelift, "d_a_obj_balancelift"},
{PROC_SHUTTER, "d_a_shutter"},
{PROC_SHUTTER2, "d_a_shutter2"},
{PROC_WINDMILL, "d_a_windmill"},
{PROC_MBDOOR, "d_a_mbdoor"},
{PROC_NPC_DE1, "d_a_npc_de1"},
{PROC_NPC_NZ, "d_a_npc_nz"},
{PROC_NPC_SO, "d_a_npc_so"},
{PROC_FM, "d_a_fm"},
{PROC_LEAF_LIFT, "d_a_leaflift"},
{PROC_Obj_Roten, "d_a_obj_roten"},
{PROC_TOGE, "d_a_toge"},
{PROC_Obj_Ferris, "d_a_obj_ferris"},
{PROC_Obj_Xfuta, "d_a_obj_xfuta"},
{PROC_Obj_Gaship, "d_a_obj_gaship"},
{PROC_Obj_Rforce, "d_a_obj_rforce"},
{PROC_Obj_Gaship2, "d_a_obj_gaship2"},
{PROC_Obj_Light, "d_a_obj_light"},
{PROC_Obj_Homen, "d_a_obj_homen"},
{PROC_Obj_Homensmk, "d_a_obj_homensmoke"},
{PROC_Obj_Ftree, "d_a_obj_ftree"},
{PROC_Obj_Vds, "d_a_obj_Vds"},
{PROC_Obj_Vyasi, "d_a_obj_vyasi"},
{PROC_Obj_Ajav, "d_a_obj_ajav"},
{PROC_Obj_Trap, "d_a_obj_trap"},
{PROC_Obj_Hha, "d_a_obj_hha"},
{PROC_Obj_Htetu1, "d_a_obj_htetu1"},
{PROC_Obj_Gnntakis, "d_a_obj_gnndemotakis"},
{PROC_Obj_Gnntakie, "d_a_obj_gnndemotakie"},
{PROC_Obj_Gnnbtaki, "d_a_obj_gnnbtltaki"},
{PROC_Obj_Rcloud, "d_a_obj_rcloud"},
{PROC_Obj_Gryw00, "d_a_obj_gryw00"},
{PROC_Obj_AjavW, "d_a_obj_AjavW"},
{PROC_Obj_Leaves, "d_a_obj_leaves"},
{PROC_Obj_YLzou, "d_a_obj_YLzou"},
{PROC_Obj_Gbed, "d_a_obj_ganonbed"},
{PROC_Obj_Vteng, "d_a_obj_Vteng"},
{PROC_Obj_Hfuck1, "d_a_obj_hfuck1"},
{PROC_Obj_Ohatch, "d_a_obj_ohatch"},
{PROC_Obj_Hcbh, "d_a_obj_hcbh"},
{PROC_Obj_Ygush00, "d_a_obj_Ygush00"},
{PROC_Obj_Bscurtain, "d_a_obj_bscurtain"},
{PROC_Obj_Shmrgrd, "d_a_obj_shmrgrd"},
{PROC_Obj_Eayogn, "d_a_obj_eayogn"},
{PROC_Obj_Vmsms, "d_a_obj_vmsms"},
{PROC_Obj_Vmsdz, "d_a_obj_vmsdz"},
{PROC_Ygcwp, "d_a_ygcwp"},
{PROC_Obj_Vgnfd, "d_a_obj_vgnfd"},
{PROC_Obj_Kanoke, "d_a_obj_kanoke"},
{PROC_Obj_Eskban, "d_a_obj_eskban"},
{PROC_Obj_Ekskz, "d_a_obj_ekskz"},
{PROC_Obj_Ebomzo, "d_a_obj_ebomzo"},
{PROC_Obj_Kanat, "d_a_obj_kanat"},
{PROC_Obj_Aygr, "d_a_obj_aygr"},
{PROC_SHIP, "d_a_ship"},
{PROC_Obj_Jump, "d_a_obj_jump"},
{PROC_NPC_MK, "d_a_npc_mk"},
{PROC_SAIL, "d_a_sail"},
{PROC_PIRATE_FLAG, "d_a_pirate_flag"},
{PROC_MAJUU_FLAG, "d_a_majuu_flag"},
{PROC_Tori_Flag, "d_a_tori_flag"},
{PROC_Sie_Flag, "d_a_sie_flag"},
{PROC_SYAN, "d_a_syan"},
{PROC_AYUSH, "d_a_ghostship"},
{PROC_OSHIP, "d_a_oship"},
{PROC_RECTANGLE, "d_a_rectangle"},
{PROC_BB, "d_a_bb"},
{PROC_KANBAN, "d_a_kanban"},
{PROC_HITOBJ, "d_a_hitobj"},
{PROC_KT, "d_a_kt"},
{PROC_EP, "d_a_ep"},
{PROC_LAMP, "d_a_lamp"},
{PROC_FF, "d_a_ff"},
{PROC_MO2, "d_a_mo2"},
{PROC_BK, "d_a_bk"},
{PROC_ST, "d_a_st"},
{PROC_TN, "d_a_tn"},
{PROC_MANT, "d_a_mant"},
{PROC_KANTERA, "d_a_kantera"},
{PROC_KAMOME, "d_a_kamome"},
{PROC_NPC_KAM, "d_a_npc_kamome"},
{PROC_WBIRD, "d_a_wbird"},
{PROC_DEMO_KMM, "d_a_demo_kmm"},
{PROC_NZ, "d_a_nz"},
{PROC_NZG, "d_a_nzg"},
{PROC_KN, "d_a_kn"},
{PROC_DEMO_DK, "d_a_demo_dk"},
{PROC_AM, "d_a_am"},
{PROC_AM2, "d_a_am2"},
{PROC_GM, "d_a_gm"},
{PROC_KS, "d_a_ks"},
{PROC_CC, "d_a_cc"},
{PROC_BL, "d_a_bl"},
{PROC_WZ, "d_a_wz"},
{PROC_PH, "d_a_ph"},
{PROC_PZ, "d_a_pz"},
{PROC_BPW, "d_a_bpw"},
{PROC_PW, "d_a_pw"},
{PROC_JBO, "d_a_jbo"},
{PROC_BO, "d_a_bo"},
{PROC_KI, "d_a_ki"},
{PROC_MT, "d_a_mt"},
{PROC_BWD, "d_a_bwd"},
{PROC_BWDS, "d_a_bwds"},
{PROC_BWDG, "d_a_bwdg"},
{PROC_KB, "d_a_kb"},
{PROC_DR, "d_a_dr"},
{PROC_DR2, "d_a_dr2"},
{PROC_RD, "d_a_rd"},
{PROC_DAIOCTA, "d_a_daiocta"},
{PROC_DAIOCTA_EYE, "d_a_daiocta_eye"},
{PROC_OQ, "d_a_oq"},
{PROC_GY, "d_a_gy"},
{PROC_GY_CTRL, "d_a_gy_ctrl"},
{PROC_GY_CTRLB, "d_a_gy_ctrl"},
{PROC_Hot_Floor, "d_a_hot_floor"},
{PROC_Beam, "d_a_beam"},
{PROC_Bemos, "d_a_obj_bemos"},
{PROC_BTD, "d_a_btd"},
{PROC_BMD, "d_a_bmd"},
{PROC_BMDHAND, "d_a_bmdhand"},
{PROC_BMDFOOT, "d_a_bmdfoot"},
{PROC_DK, "d_a_dk"},
{PROC_BDK, "d_a_bdk"},
{PROC_BDKOBJ, "d_a_bdkobj"},
{PROC_BST, "d_a_bst"},
{PROC_FGANON, "d_a_fganon"},
{PROC_FGMAHOU, "d_a_fgmahou"},
{PROC_BGN, "d_a_bgn"},
{PROC_BGN2, "d_a_bgn2"},
{PROC_BGN3, "d_a_bgn3"},
{PROC_GND, "d_a_gnd"},
{PROC_PT, "d_a_pt"},
{PROC_SWTDOOR, "d_a_swtdoor"},
{PROC_MOZO, "d_a_mozo"},
{PROC_KUI, "d_a_kui"},
{PROC_SS, "d_a_ss"},
{PROC_SSS, "d_a_sss"},
{PROC_SITEM, "d_a_sitem"},
{PROC_MACHINE, "d_a_machine"},
{PROC_BOSSITEM, "d_a_boss_item"},
{PROC_Demo_Item, "d_a_demo_item"},
{PROC_RACEITEM, "d_a_race_item"},
{PROC_ShopItem, "d_a_shop_item"},
{PROC_DEKU_ITEM, "d_a_deku_item"},
{PROC_Obj_Paper, "d_a_obj_paper"},
{PROC_Obj_Demo_Barrel,"d_a_obj_demo_barrel"},
{PROC_Obj_Dmgroom, "d_a_obj_dmgroom"},
{PROC_Obj_Doguu, "d_a_obj_doguu"},
{PROC_Obj_Wood, "d_a_obj_wood"},
{PROC_Obj_Flame, "d_a_obj_flame"},
{PROC_Obj_Buoyrace, "d_a_obj_buoyrace"},
{PROC_Obj_Coming, "d_a_obj_coming"},
{PROC_Coming2, "d_a_coming2"},
{PROC_Coming3, "d_a_coming3"},
{PROC_Obj_Mmrr, "d_a_obj_mmrr"},
{PROC_Obj_Pbka, "d_a_obj_pbka"},
{PROC_Obj_Plant, "d_a_obj_plant"},
{PROC_Obj_Gtaki, "d_a_obj_gtaki"},
{PROC_Obj_Yboil, "d_a_obj_Yboil"},
{PROC_Obj_Rflw, "d_a_obj_rflw"},
{PROC_Obj_Table, "d_a_obj_table"},
{PROC_Obj_Tenmado, "d_a_obj_tenmado"},
{PROC_Obj_Cafelmp, "d_a_obj_cafelmp"},
{PROC_Obj_Apzl, "d_a_obj_apzl"},
{PROC_Obj_Adnno, "d_a_obj_adnno"},
{PROC_Obj_Auzu, "d_a_obj_auzu"},
{PROC_Obj_Gong, "d_a_obj_gong"},
{PROC_Obj_Barrier, "d_a_obj_barrier"},
{PROC_Obj_Firewall, "d_a_obj_firewall"},
{PROC_Obj_TnTrap, "d_a_obj_tntrap"},
{PROC_Obj_Monument, "d_a_obj_monument"},
{PROC_Obj_Tapestry, "d_a_obj_tapestry"},
{PROC_Obj_HSH, "d_a_obj_hsehi1"},
{PROC_Goal_Flag, "d_a_goal_flag"},
{PROC_TBOX, "d_a_tbox"},
{PROC_SBOX, "d_a_sbox"},
{PROC_BOMB_FLOWER, "d_a_bflower"},
{PROC_ACORN_LEAF, "d_a_acorn_leaf"},
{PROC_SWC00, "d_a_swc00"},
{PROC_FAN, "d_a_fan"},
{PROC_DOOR10, "d_a_door10"},
{PROC_DOOR12, "d_a_door12"},
{PROC_ATDOOR, "d_a_atdoor"},
{PROC_MDOOR, "d_a_mdoor"},
{PROC_KDDOOR, "d_a_kddoor"},
{PROC_KNOB00, "d_a_knob00"},
{PROC_MTOGE, "d_a_mtoge"},
{PROC_ANDSW0, "d_a_andsw0"},
{PROC_ANDSW2, "d_a_andsw2"},
{PROC_DAI, "d_a_dai"},
{PROC_SW_ATTACK, "d_a_swattack"},
{PROC_SW_ITEM, "d_a_switem"},
{PROC_SW_TACT, "d_a_swtact"},
{PROC_NPC_OS, "d_a_npc_os"},
{PROC_NPC_YM1, "d_a_npc_ym1"},
{PROC_NPC_YM2, "d_a_npc_ym1"},
{PROC_NPC_YW1, "d_a_npc_yw1"},
{PROC_NPC_JI1, "d_a_npc_ji1"},
{PROC_NPC_KO1, "d_a_npc_ko1"},
{PROC_NPC_KO2, "d_a_npc_ko1"},
{PROC_NPC_LS1, "d_a_npc_ls1"},
{PROC_NPC_P1, "d_a_npc_p1"},
{PROC_NPC_P2, "d_a_npc_p2"},
{PROC_NPC_SARACE, "d_a_npc_sarace"},
{PROC_NPC_TC, "d_a_npc_tc"},
{PROC_NPC_BM1, "d_a_npc_bm1"},
{PROC_NPC_BM2, "d_a_npc_bm1"},
{PROC_NPC_BM3, "d_a_npc_bm1"},
{PROC_NPC_BM4, "d_a_npc_bm1"},
{PROC_NPC_BM5, "d_a_npc_bm1"},
{PROC_NPC_OB1, "d_a_npc_ob1"},
{PROC_NPC_AJ1, "d_a_npc_aj1"},
{PROC_NPC_KM1, "d_a_npc_km1"},
{PROC_NPC_CB1, "d_a_npc_cb1"},
{PROC_NPC_BA1, "d_a_npc_ba1"},
{PROC_NPC_BJ1, "d_a_npc_bj1"},
{PROC_NPC_BJ2, "d_a_npc_bj1"},
{PROC_NPC_BJ3, "d_a_npc_bj1"},
{PROC_NPC_BJ4, "d_a_npc_bj1"},
{PROC_NPC_BJ5, "d_a_npc_bj1"},
{PROC_NPC_BJ6, "d_a_npc_bj1"},
{PROC_NPC_BJ7, "d_a_npc_bj1"},
{PROC_NPC_BJ8, "d_a_npc_bj1"},
{PROC_NPC_BJ9, "d_a_npc_bj1"},
{PROC_NPC_BS1, "d_a_npc_bs1"},
{PROC_NPC_BMCON1, "d_a_npc_bmcon1"},
{PROC_NPC_BMS1, "d_a_npc_bms1"},
{PROC_NPC_BMSW, "d_a_npc_bmsw"},
{PROC_NPC_BTSW, "d_a_npc_btsw"},
{PROC_NPC_BTSW2, "d_a_npc_btsw2"},
{PROC_NPC_DS1, "d_a_npc_ds1"},
{PROC_NPC_RSH1, "d_a_npc_rsh1"},
{PROC_NPC_KK1, "d_a_npc_kk1"},
{PROC_NPC_PM1, "d_a_npc_pm1"},
{PROC_NPC_KP1, "d_a_npc_kp1"},
{PROC_NPC_PF1, "d_a_npc_pf1"},
{PROC_NPC_GP1, "d_a_npc_gp1"},
{PROC_NPC_JB1, "d_a_npc_jb1"},
{PROC_NPC_KF1, "d_a_npc_kf1"},
{PROC_NPC_AUCTION, "d_a_npc_auction"},
{PROC_NPC_KG1, "d_a_npc_kg1"},
{PROC_NPC_KG2, "d_a_npc_kg2"},
{PROC_NPC_TT, "d_a_npc_tt"},
{PROC_NPC_HR, "d_a_npc_hr"},
{PROC_NPC_HO, "d_a_npc_ho"},
{PROC_NPC_MD, "d_a_npc_md"},
{PROC_NPC_UK, "d_a_npc_uk"},
{PROC_BIGELF, "d_a_bigelf"},
{PROC_NPC_CO1, "d_a_npc_co1"},
{PROC_NPC_ZK1, "d_a_npc_zk1"},
{PROC_NPC_ROTEN, "d_a_npc_roten"},
{PROC_NPC_PEOPLE, "d_a_npc_people"},
{PROC_NPC_GK1, "d_a_npc_gk1"},
{PROC_NPC_PHOTO, "d_a_npc_photo"},
{PROC_NPC_AC1, "d_a_npc_ac1"},
{PROC_NPC_HI1, "d_a_npc_hi1"},
{PROC_NPC_SV, "d_a_npc_sv"},
{PROC_NPC_MT, "d_a_npc_mt"},
{PROC_NPC_MN, "d_a_npc_mn"},
{PROC_NPC_AH, "d_a_npc_ah"},
{PROC_AUCTION, "d_a_auction"},
{PROC_KYTAG00, "d_a_kytag00"},
{PROC_KYTAG01, "d_a_kytag01"},
{PROC_KYTAG02, "d_a_kytag02"},
{PROC_KYTAG03, "d_a_kytag03"},
{PROC_KYTAG04, "d_a_kytag04"},
{PROC_KYTAG05, "d_a_kytag05"},
{PROC_KYTAG06, "d_a_kytag06"},
{PROC_KYTAG07, "d_a_kytag07"},
{PROC_WindTag, "d_a_wind_tag"},
{PROC_YOUGAN, "d_a_yougan"},
{PROC_Mmusic, "d_a_mmusic"},
{PROC_Komore, "d_a_komore"},
{PROC_Tpota, "d_a_tpota"},
{PROC_Obj_Itnak, "d_a_obj_Itnak"},
{PROC_Obj_Zouk, "d_a_obj_zouK"},
{PROC_Ykgr, "d_a_ykgr"},
{PROC_SAKU, "d_a_saku"},
{PROC_Salvage, "d_a_salvage"},
{PROC_SALVAGE_TBOX, "d_a_salvage_tbox"},
{PROC_Kmon, "d_a_kmon"},
{PROC_OBJ_FIGURE, "d_a_obj_figure"},
{PROC_OBJ_HAT, "d_a_obj_hat"},
{PROC_Lwood, "d_a_lwood"},
{PROC_Dummy, "d_a_dummy"},
{PROC_TAG_EVENT, "d_a_tag_event"},
{PROC_TAG_HINT, "d_a_tag_hint"},
{PROC_TAG_MSG, "d_a_tag_msg"},
{PROC_TAG_ETC, "d_a_tag_etc"},
{PROC_TAG_ISLAND, "d_a_tag_island"},
{PROC_TAG_KF1, "d_a_tag_kf1"},
{PROC_TAG_KK1, "d_a_tag_kk1"},
{PROC_TAG_PHOTO, "d_a_tag_photo"},
{PROC_TAG_KB_ITEM, "d_a_tag_kb_item"},
{PROC_TAG_MK, "d_a_tag_mk"},
{PROC_TAG_MDCB, "d_a_tag_md_cb"},
{PROC_TAG_BA1, "d_a_tag_ba1"},
{PROC_TagRock, "d_a_fallrock_tag"},
{PROC_FallRock, "d_a_fallrock"},
{PROC_SteamTag, "d_a_steam_tag"},
{PROC_Fire, "d_a_fire"},
{PROC_BRANCH, "d_a_branch"},
{PROC_NPC_ZL1, "d_a_npc_zl1"},
{PROC_WATERFALL, "d_a_waterfall"},
{PROC_LIGHTBRIDGE, "d_a_lbridge"},
{PROC_LIGHTSTAIR, "d_a_lstair"},
{PROC_WALL, "d_a_wall"},
{PROC_SW_PROPELLER, "d_a_swpropeller"},
{PROC_IKARI, "d_a_ikari"},
{PROC_AGBSW0, "d_a_agbsw0"},
{PROC_MAGMA, "d_a_magma"},
{PROC_GRASS, "d_a_grass"},
{PROC_Obj_Tower, "d_a_obj_tower"},
{PROC_Obj_DoguuD, "d_a_obj_doguu_demo"},
{PROC_SPOTBOX, "d_a_spotbox"},
{PROC_TORNADO, "d_a_tornado"},
{PROC_TITLE, "d_a_title"},
{PROC_MP, "d_a_movie_player"},
{PROC_LODBG, "d_a_lod_bg"},
{PROC_HIMO3, "d_a_himo3"},
{PROC_ATT, "d_a_att"},
{PROC_Hys, "d_a_hys"},
{PROC_SWHIT0, "d_a_swhit0"},
{PROC_TAG_GSHIP, "d_a_tag_ghostship"},
{PROC_TSUBO, "d_a_tsubo"},
{PROC_STONE, "d_a_stone"},
{PROC_Stone2, "d_a_stone2"},
{PROC_Obj_Barrel, "d_a_obj_barrel"},
{PROC_Obj_Barrel2, "d_a_obj_barrel2"},
{PROC_Obj_Try, "d_a_obj_try"},
{PROC_Obj_Vtil, "d_a_obj_vtil"},
{PROC_Obj_Ice, "d_a_obj_ice"},
{PROC_Obj_Mshokki, "d_a_obj_mshokki"},
{PROC_BOKO, "d_a_boko"},
{PROC_TAMA, "d_a_tama"},
{PROC_Obj_Buoyflag, "d_a_obj_buoyflag"},
{PROC_Obj_Correct, "d_a_obj_correct"},
{PROC_Obj_Eff, "d_a_obj_eff"},
{PROC_Tag_Light, "d_a_tag_light"},
{PROC_Tag_Attention, "d_a_tag_attention"},
{PROC_Tag_Waterlevel, "d_a_tag_waterlevel"},
{PROC_ARROW_ICEEFF, "d_a_arrow_iceeff"},
{PROC_ARROW_LIGHTEFF, "d_a_arrow_lighteff"},
{PROC_Obj_Timer, "d_a_obj_timer"},
{0xFFFF, NULL},
};
/* 800227A0-800229E0 .text cCc_Init__Fv */
s32 cCc_Init() {
JUT_ASSERT(0x2a, !DMC_initialized);
JKRSolidHeap * pHeap = JKRSolidHeap::create(0x5648, mDoExt_getArchiveHeap(), false);
JKRHeap * pOldHeap = pHeap->becomeCurrentHeap();
memset(DMC, 0, sizeof(DMC));
for (int i = 0; i < ARRAY_SIZE(DynamicNameTable); i++) {
const DynamicNameTableEntry & d = DynamicNameTable[i];
if (d.name == NULL)
continue;
JUT_ASSERT(0x39, d.mKey < (sizeof(DMC) / sizeof(DMC[0])));
JUT_ASSERT(0x3a, DMC[d.mKey] == 0);
for (int j = 0; j < ARRAY_SIZE(DMC); j++) {
if (DMC[j] != NULL) {
if (!strcmp(d.name, DMC[j]->getModuleName())) {
DMC[d.mKey] = DMC[j];
break;
}
}
}
if (DMC[d.mKey] == NULL)
DMC[d.mKey] = new DynamicModuleControl(d.name);
}
pHeap->adjustSize();
pOldHeap->becomeCurrentHeap();
DMC_initialized = TRUE;
return TRUE;
}
/* 800229E0-80022A80 .text cDyl_IsLinked__Fs */
s32 cDyl_IsLinked(s16 i_ProfName) {
JUT_ASSERT(0xae, cDyl_Initialized);
if (DMC[i_ProfName] != NULL)
return DMC[i_ProfName]->isLinked();
return TRUE;
}
/* 80022A80-80022B58 .text cDyl_Unlink__Fs */
s32 cDyl_Unlink(s16 i_ProfName) {
JUT_ASSERT(0xc5, cDyl_Initialized);
JUT_ASSERT(0xc6, i_ProfName < (sizeof(DMC) / sizeof(DMC[0])));
if (DMC[i_ProfName] != NULL)
return DMC[i_ProfName]->unlink();
return 0;
}
static void dummy(s16 i_ProfName) {
OSReport_Error("cDyl_Link i_ProfName=%d\n", i_ProfName);
OSReport_Error("cDyl_LinkASync: リンクに失敗しました。諦めます\n");
}
/* 80022B58-80022CEC .text cDyl_LinkASync__Fs */
s32 cDyl_LinkASync(s16 i_ProfName) {
JUT_ASSERT(0x101, DMC_initialized);
if (!cDyl_Initialized)
return cPhs_INIT_e;
if (i_ProfName >= ARRAY_SIZE(DMC)) {
OSReport_Error("cDyl_Link i_ProfName=%d\n", i_ProfName);
return cPhs_ERROR_e;
}
JUT_ASSERT(0x111, i_ProfName < (sizeof(DMC) / sizeof(DMC[0])));
DynamicModuleControlBase * d = DMC[i_ProfName];
if (d != NULL) {
JUT_ASSERT(0x115, cDyl_Initialized);
if (d->load_async()) {
if (d->link()) {
return cPhs_COMPLEATE_e;
} else {
OSReport_Error("cDyl_LinkASync: リンクに失敗しました。諦めます\n");
return cPhs_ERROR_e;
}
}
return cPhs_INIT_e;
}
return cPhs_COMPLEATE_e;
}
/* 80022CEC-80022DF8 .text cDyl_InitCallback__FPv */
BOOL cDyl_InitCallback(void*) {
JUT_ASSERT(0x12f, !cDyl_Initialized);
JKRFileLoader * pFileLoader = JKRFileCache::mount("/", mDoExt_getArchiveHeap(), NULL);
DynamicModuleControl::initialize();
void * pData = JKRFileLoader::getGlbResource("/dvd/framework.str");
JKRFileLoader::detachResource(pData, pFileLoader);
pFileLoader->unmount();
OSSetStringTable(pData);
DynamicModuleControl dmc("f_pc_profile_lst");
dmc.link();
cDyl_Initialized = TRUE;
return TRUE;
}
/* 80022DF8-80022E70 .text cDyl_InitAsync__Fv */
void cDyl_InitAsync() {
cCc_Init();
JUT_ASSERT(0x145, cDyl_DVD == 0);
cDyl_DVD = mDoDvdThd_callback_c::create((mDoDvdThd_callback_func) cDyl_InitCallback, NULL);
}
/* 80022E70-80022EDC .text cDyl_InitAsyncIsDone__Fv */
int cDyl_InitAsyncIsDone() {
if (cDyl_DVD == NULL)
return TRUE;
if (cDyl_DVD->sync()) {
cDyl_DVD->destroy();
cDyl_DVD = NULL;
return TRUE;
}
return FALSE;
}
/* 80022EDC-80022EE4 .text phase_01__7cDylPhsFPv */
int cDylPhs::phase_01(void*) {
return cPhs_NEXT_e;
}
/* 80022EE4-80022F1C .text phase_02__7cDylPhsFPs */
int cDylPhs::phase_02(s16* pProf) {
s32 ret = cDyl_LinkASync(*pProf);
return ret == cPhs_COMPLEATE_e ? cPhs_NEXT_e : ret;
}
/* 80022F1C-80022F24 .text phase_03__7cDylPhsFPv */
int cDylPhs::phase_03(void*) {
return cPhs_INIT_e;
}
/* 80022F24-80022F68 .text Link__7cDylPhsFP30request_of_phase_process_classs */
int cDylPhs::Link(request_of_phase_process_class* i_phase, s16 profName) {
static cPhs__Handler l_method[] = {
(cPhs__Handler) &cDylPhs::phase_01,
(cPhs__Handler) &cDylPhs::phase_02,
(cPhs__Handler) &cDylPhs::phase_03,
};
if (i_phase->id == cPhs_NEXT_e)
return cPhs_COMPLEATE_e;
return dComLbG_PhaseHandler(i_phase, l_method, &profName);
}
/* 80022F68-80023004 .text Unlink__7cDylPhsFP30request_of_phase_process_classs */
int cDylPhs::Unlink(request_of_phase_process_class* i_phase, s16 profName) {
JUT_ASSERT(0x1a6, i_phase->id != 1);
s32 ret;
if (i_phase->id == cPhs_NEXT_e) {
ret = cDyl_Unlink(profName);
i_phase->id = cPhs_INIT_e;
} else {
ret = cPhs_INIT_e;
}
return ret;
}