From 70a174197780758981cae2c012cee02f8d4ff83f Mon Sep 17 00:00:00 2001 From: hatal175 Date: Sat, 26 Jul 2025 03:44:23 +0300 Subject: [PATCH] d_a_obj_twGate Matching (#2555) * d_a_obj_twGate Matching * d_a_obj_volcbom OK --- config/GZ2E01/rels/d_a_obj_twGate/symbols.txt | 28 +- .../GZ2E01/rels/d_a_obj_volcbom/symbols.txt | 34 +- config/GZ2J01/rels/d_a_obj_twGate/symbols.txt | 28 +- .../GZ2J01/rels/d_a_obj_volcbom/symbols.txt | 34 +- config/GZ2P01/rels/d_a_obj_twGate/symbols.txt | 28 +- .../GZ2P01/rels/d_a_obj_volcbom/symbols.txt | 32 +- .../RZDE01_00/rels/d_a_obj_twGate/symbols.txt | 28 +- .../rels/d_a_obj_volcbom/symbols.txt | 24 +- .../ShieldD/rels/d_a_obj_twGateD/symbols.txt | 28 +- .../ShieldD/rels/d_a_obj_volcbomD/symbols.txt | 28 +- config/ShieldD/rels/d_a_obj_web1D/symbols.txt | 2 +- configure.py | 4 +- include/d/actor/d_a_e_bu.h | 4 +- include/d/actor/d_a_e_zh.h | 2 + include/d/actor/d_a_midna.h | 6 + include/d/actor/d_a_obj_twGate.h | 31 +- include/d/actor/d_a_obj_volcbom.h | 107 +- include/d/actor/d_a_player.h | 3 +- include/d/d_com_inf_game.h | 4 + include/f_op/f_op_actor_mng.h | 12 + include/f_pc/f_pc_base.h | 8 +- include/f_pc/f_pc_manager.h | 2 +- src/d/actor/d_a_alink_demo.inc | 2 +- src/d/actor/d_a_e_zh.cpp | 2 +- src/d/actor/d_a_npc_jagar.cpp | 2 +- src/d/actor/d_a_npc_maro.cpp | 2 +- src/d/actor/d_a_npc_moi.cpp | 2 +- src/d/actor/d_a_npc_uri.cpp | 4 +- src/d/actor/d_a_obj_amiShutter.cpp | 6 - src/d/actor/d_a_obj_lv6bemos.cpp | 2 +- src/d/actor/d_a_obj_togeTrap.cpp | 2 +- src/d/actor/d_a_obj_twGate.cpp | 613 ++---- src/d/actor/d_a_obj_volcbom.cpp | 1822 ++++++++--------- src/d/actor/d_a_obj_wood_statue.cpp | 2 +- src/f_pc/f_pc_base.cpp | 14 +- src/f_pc/f_pc_deletor.cpp | 4 +- src/f_pc/f_pc_executor.cpp | 6 +- src/f_pc/f_pc_leaf.cpp | 2 +- src/f_pc/f_pc_node.cpp | 2 +- src/f_pc/f_pc_priority.cpp | 4 +- 40 files changed, 1428 insertions(+), 1542 deletions(-) diff --git a/config/GZ2E01/rels/d_a_obj_twGate/symbols.txt b/config/GZ2E01/rels/d_a_obj_twGate/symbols.txt index e03e02dbcb9..5fdaf159b9a 100644 --- a/config/GZ2E01/rels/d_a_obj_twGate/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_twGate/symbols.txt @@ -14,10 +14,10 @@ __dt__12J3DFrameCtrlFv = .text:0x0000059C; // type:function size:0x48 scope:glob Execute__10daTwGate_cFPPA3_A4_f = .text:0x000005E4; // type:function size:0x110 scope:global Draw__10daTwGate_cFv = .text:0x000006F4; // type:function size:0xCC scope:global Delete__10daTwGate_cFv = .text:0x000007C0; // type:function size:0x40 scope:global -daTwGate_Draw__FP10daTwGate_c = .text:0x00000800; // type:function size:0x2C scope:global -daTwGate_Execute__FP10daTwGate_c = .text:0x0000082C; // type:function size:0x20 scope:global -daTwGate_Delete__FP10daTwGate_c = .text:0x0000084C; // type:function size:0x20 scope:global -daTwGate_Create__FP10fopAc_ac_c = .text:0x0000086C; // type:function size:0x20 scope:global +daTwGate_Draw__FP10daTwGate_c = .text:0x00000800; // type:function size:0x2C scope:local +daTwGate_Execute__FP10daTwGate_c = .text:0x0000082C; // type:function size:0x20 scope:local +daTwGate_Delete__FP10daTwGate_c = .text:0x0000084C; // type:function size:0x20 scope:local +daTwGate_Create__FP10fopAc_ac_c = .text:0x0000086C; // type:function size:0x20 scope:local __dt__14daTwGate_HIO_cFv = .text:0x0000088C; // type:function size:0x6C scope:global __sinit_d_a_obj_twGate_cpp = .text:0x000008F8; // type:function size:0x3C scope:local _ctors = .ctors:0x00000000; // type:label scope:global @@ -25,19 +25,19 @@ __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 sc _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local @3638 = .rodata:0x00000000; // type:object size:0x4 scope:local -l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:global -l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:global -l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:global -l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:global -l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:global -l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:global -l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:global +l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:local +l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:local +l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:local +l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:local +l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:local +l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:local +l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:local @3693 = .rodata:0x00000240; // type:object size:0x4 scope:local @3769 = .rodata:0x00000244; // type:object size:0x4 scope:local @3837 = .rodata:0x00000248; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x0000024C; // type:object size:0x59 scope:local data:string_table -l_resNameIdx = .data:0x00000000; // type:object size:0x34 scope:global -l_daTwGate_Method = .data:0x00000034; // type:object size:0x20 scope:global +l_resNameIdx = .data:0x00000000; // type:object size:0x34 scope:local +l_daTwGate_Method = .data:0x00000034; // type:object size:0x20 scope:local g_profile_Obj_TwGate = .data:0x00000054; // type:object size:0x30 scope:global __vt__8cM3dGLin = .data:0x00000084; // type:object size:0xC scope:global __vt__12J3DFrameCtrl = .data:0x00000090; // type:object size:0xC scope:global @@ -47,4 +47,4 @@ __vt__18fOpAcm_HIO_entry_c = .data:0x000000D0; // type:object size:0xC scope:glo __vt__14mDoHIO_entry_c = .data:0x000000DC; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @3630 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global align:4 data:float +l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local align:4 data:float diff --git a/config/GZ2E01/rels/d_a_obj_volcbom/symbols.txt b/config/GZ2E01/rels/d_a_obj_volcbom/symbols.txt index defc3b60ce5..1ed74a92639 100644 --- a/config/GZ2E01/rels/d_a_obj_volcbom/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_volcbom/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global -eventCallBack__FPvi = .text:0x00000078; // type:function size:0x48 scope:global +eventCallBack__FPvi = .text:0x00000078; // type:function size:0x48 scope:local initBaseMtx__14daObjVolcBom_cFv = .text:0x000000C0; // type:function size:0x58 scope:global setBaseMtx__14daObjVolcBom_cFv = .text:0x00000118; // type:function size:0x70 scope:global Create__14daObjVolcBom_cFv = .text:0x00000188; // type:function size:0x238 scope:global @@ -43,15 +43,15 @@ demoProc__14daObjVolcBom_cFv = .text:0x00001DC8; // type:function size:0x580 sco calcObjPos__14daObjVolcBom_cFv = .text:0x00002348; // type:function size:0x80 scope:global Draw__14daObjVolcBom_cFv = .text:0x000023C8; // type:function size:0x214 scope:global Delete__14daObjVolcBom_cFv = .text:0x000025DC; // type:function size:0x78 scope:global -daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00002654; // type:function size:0x134 scope:global +daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00002654; // type:function size:0x134 scope:local __dt__8cM3dGCylFv = .text:0x00002788; // type:function size:0x48 scope:global __dt__8cM3dGAabFv = .text:0x000027D0; // type:function size:0x48 scope:global __dt__10dCcD_GSttsFv = .text:0x00002818; // type:function size:0x5C scope:global __dt__12dBgS_AcchCirFv = .text:0x00002874; // type:function size:0x70 scope:global __dt__12dBgS_ObjAcchFv = .text:0x000028E4; // type:function size:0x70 scope:global -daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00002954; // type:function size:0x20 scope:global -daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x00002974; // type:function size:0x20 scope:global -daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x00002994; // type:function size:0x2C scope:global +daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00002954; // type:function size:0x20 scope:local +daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x00002974; // type:function size:0x20 scope:local +daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x00002994; // type:function size:0x2C scope:local __dt__10cCcD_GSttsFv = .text:0x000029C0; // type:function size:0x48 scope:global cLib_calcTimer__FPUc = .text:0x00002A08; // type:function size:0x1C scope:global @36@__dt__12dBgS_ObjAcchFv = .text:0x00002A24; // type:function size:0x8 scope:local @@ -59,10 +59,10 @@ cLib_calcTimer__FPUc = .text:0x00002A08; // type:function size:0x1C scope:gl _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local -l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:global -l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:global -l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:global -l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:global +l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:local +l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:local +l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:local +l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:local @3785 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float @3786 = .rodata:0x00000024; // type:object size:0x4 scope:local @3787 = .rodata:0x00000028; // type:object size:0x4 scope:local @@ -93,13 +93,13 @@ l_effect_id$4032 = .rodata:0x00000054; // type:object size:0xE scope:local @4828 = .rodata:0x000000AC; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x000000B0; // type:object size:0x48 scope:local data:string_table ...data.0 = .data:0x00000000; // type:label scope:local -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local lbl_676_data_10 = .data:0x00000010; // type:object size:0x10 -l_arcName = .data:0x00000020; // type:object size:0x4 scope:global data:4byte -l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:global -l_staff_name = .data:0x00000028; // type:object size:0x4 scope:global data:4byte -l_cyl_src = .data:0x0000002C; // type:object size:0x44 scope:global +l_arcName = .data:0x00000020; // type:object size:0x4 scope:local data:4byte +l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:local +l_staff_name = .data:0x00000028; // type:object size:0x4 scope:local data:4byte +l_cyl_src = .data:0x0000002C; // type:object size:0x44 scope:local @3933 = .data:0x00000070; // type:object size:0xC scope:local @3934 = .data:0x0000007C; // type:object size:0xC scope:local @3935 = .data:0x00000088; // type:object size:0xC scope:local @@ -113,7 +113,7 @@ mode_proc$3932 = .data:0x000000A0; // type:object size:0x30 scope:local @4371 = .data:0x0000010C; // type:object size:0xC scope:local l_func$4365 = .data:0x00000118; // type:object size:0x48 scope:local action_table$4540 = .data:0x00000160; // type:object size:0x10 scope:local -daObjVolcBom_METHODS = .data:0x00000170; // type:object size:0x20 scope:global +daObjVolcBom_METHODS = .data:0x00000170; // type:object size:0x20 scope:local g_profile_Obj_VolcanicBomb = .data:0x00000190; // type:object size:0x30 scope:global __vt__12dBgS_AcchCir = .data:0x000001C0; // type:object size:0xC scope:global __vt__10cCcD_GStts = .data:0x000001CC; // type:object size:0xC scope:global @@ -123,5 +123,5 @@ __vt__8cM3dGAab = .data:0x000001F0; // type:object size:0xC scope:global __vt__12dBgS_ObjAcch = .data:0x000001FC; // type:object size:0x24 scope:global __vt__12J3DFrameCtrl = .data:0x00000220; // type:object size:0xC scope:global __vt__14daObjVolcBom_c = .data:0x0000022C; // type:object size:0x28 scope:global -lbl_676_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte -lbl_676_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte +init$1712 = .bss:0x00000000; // type:object size:0x1 scope:local data:byte +init$2146 = .bss:0x00000001; // type:object size:0x1 scope:local data:byte diff --git a/config/GZ2J01/rels/d_a_obj_twGate/symbols.txt b/config/GZ2J01/rels/d_a_obj_twGate/symbols.txt index e03e02dbcb9..5fdaf159b9a 100644 --- a/config/GZ2J01/rels/d_a_obj_twGate/symbols.txt +++ b/config/GZ2J01/rels/d_a_obj_twGate/symbols.txt @@ -14,10 +14,10 @@ __dt__12J3DFrameCtrlFv = .text:0x0000059C; // type:function size:0x48 scope:glob Execute__10daTwGate_cFPPA3_A4_f = .text:0x000005E4; // type:function size:0x110 scope:global Draw__10daTwGate_cFv = .text:0x000006F4; // type:function size:0xCC scope:global Delete__10daTwGate_cFv = .text:0x000007C0; // type:function size:0x40 scope:global -daTwGate_Draw__FP10daTwGate_c = .text:0x00000800; // type:function size:0x2C scope:global -daTwGate_Execute__FP10daTwGate_c = .text:0x0000082C; // type:function size:0x20 scope:global -daTwGate_Delete__FP10daTwGate_c = .text:0x0000084C; // type:function size:0x20 scope:global -daTwGate_Create__FP10fopAc_ac_c = .text:0x0000086C; // type:function size:0x20 scope:global +daTwGate_Draw__FP10daTwGate_c = .text:0x00000800; // type:function size:0x2C scope:local +daTwGate_Execute__FP10daTwGate_c = .text:0x0000082C; // type:function size:0x20 scope:local +daTwGate_Delete__FP10daTwGate_c = .text:0x0000084C; // type:function size:0x20 scope:local +daTwGate_Create__FP10fopAc_ac_c = .text:0x0000086C; // type:function size:0x20 scope:local __dt__14daTwGate_HIO_cFv = .text:0x0000088C; // type:function size:0x6C scope:global __sinit_d_a_obj_twGate_cpp = .text:0x000008F8; // type:function size:0x3C scope:local _ctors = .ctors:0x00000000; // type:label scope:global @@ -25,19 +25,19 @@ __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 sc _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local @3638 = .rodata:0x00000000; // type:object size:0x4 scope:local -l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:global -l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:global -l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:global -l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:global -l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:global -l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:global -l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:global +l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:local +l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:local +l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:local +l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:local +l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:local +l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:local +l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:local @3693 = .rodata:0x00000240; // type:object size:0x4 scope:local @3769 = .rodata:0x00000244; // type:object size:0x4 scope:local @3837 = .rodata:0x00000248; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x0000024C; // type:object size:0x59 scope:local data:string_table -l_resNameIdx = .data:0x00000000; // type:object size:0x34 scope:global -l_daTwGate_Method = .data:0x00000034; // type:object size:0x20 scope:global +l_resNameIdx = .data:0x00000000; // type:object size:0x34 scope:local +l_daTwGate_Method = .data:0x00000034; // type:object size:0x20 scope:local g_profile_Obj_TwGate = .data:0x00000054; // type:object size:0x30 scope:global __vt__8cM3dGLin = .data:0x00000084; // type:object size:0xC scope:global __vt__12J3DFrameCtrl = .data:0x00000090; // type:object size:0xC scope:global @@ -47,4 +47,4 @@ __vt__18fOpAcm_HIO_entry_c = .data:0x000000D0; // type:object size:0xC scope:glo __vt__14mDoHIO_entry_c = .data:0x000000DC; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @3630 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global align:4 data:float +l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local align:4 data:float diff --git a/config/GZ2J01/rels/d_a_obj_volcbom/symbols.txt b/config/GZ2J01/rels/d_a_obj_volcbom/symbols.txt index ac86abafaee..3fca5d457b3 100644 --- a/config/GZ2J01/rels/d_a_obj_volcbom/symbols.txt +++ b/config/GZ2J01/rels/d_a_obj_volcbom/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global -eventCallBack__FPvi = .text:0x00000078; // type:function size:0x48 scope:global +eventCallBack__FPvi = .text:0x00000078; // type:function size:0x48 scope:local initBaseMtx__14daObjVolcBom_cFv = .text:0x000000C0; // type:function size:0x58 scope:global setBaseMtx__14daObjVolcBom_cFv = .text:0x00000118; // type:function size:0x70 scope:global Create__14daObjVolcBom_cFv = .text:0x00000188; // type:function size:0x238 scope:global @@ -43,15 +43,15 @@ demoProc__14daObjVolcBom_cFv = .text:0x00001DC8; // type:function size:0x580 sco calcObjPos__14daObjVolcBom_cFv = .text:0x00002348; // type:function size:0x80 scope:global Draw__14daObjVolcBom_cFv = .text:0x000023C8; // type:function size:0x214 scope:global Delete__14daObjVolcBom_cFv = .text:0x000025DC; // type:function size:0x78 scope:global -daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00002654; // type:function size:0x134 scope:global +daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00002654; // type:function size:0x134 scope:local __dt__8cM3dGCylFv = .text:0x00002788; // type:function size:0x48 scope:global __dt__8cM3dGAabFv = .text:0x000027D0; // type:function size:0x48 scope:global __dt__10dCcD_GSttsFv = .text:0x00002818; // type:function size:0x5C scope:global __dt__12dBgS_AcchCirFv = .text:0x00002874; // type:function size:0x70 scope:global __dt__12dBgS_ObjAcchFv = .text:0x000028E4; // type:function size:0x70 scope:global -daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00002954; // type:function size:0x20 scope:global -daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x00002974; // type:function size:0x20 scope:global -daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x00002994; // type:function size:0x2C scope:global +daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00002954; // type:function size:0x20 scope:local +daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x00002974; // type:function size:0x20 scope:local +daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x00002994; // type:function size:0x2C scope:local __dt__10cCcD_GSttsFv = .text:0x000029C0; // type:function size:0x48 scope:global cLib_calcTimer__FPUc = .text:0x00002A08; // type:function size:0x1C scope:global @36@__dt__12dBgS_ObjAcchFv = .text:0x00002A24; // type:function size:0x8 scope:local @@ -59,10 +59,10 @@ cLib_calcTimer__FPUc = .text:0x00002A08; // type:function size:0x1C scope:gl _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local -l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:global -l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:global -l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:global -l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:global +l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:local +l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:local +l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:local +l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:local @3785 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float @3786 = .rodata:0x00000024; // type:object size:0x4 scope:local @3787 = .rodata:0x00000028; // type:object size:0x4 scope:local @@ -92,13 +92,13 @@ l_effect_id$4032 = .rodata:0x00000054; // type:object size:0xE scope:local @4718 = .rodata:0x000000A8; // type:object size:0x4 scope:local @4828 = .rodata:0x000000AC; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x000000B0; // type:object size:0x48 scope:local data:string_table -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local lbl_676_data_10 = .data:0x00000010; // type:object size:0x10 -l_arcName = .data:0x00000020; // type:object size:0x4 scope:global data:4byte -l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:global -l_staff_name = .data:0x00000028; // type:object size:0x4 scope:global data:4byte -l_cyl_src = .data:0x0000002C; // type:object size:0x44 scope:global +l_arcName = .data:0x00000020; // type:object size:0x4 scope:local data:4byte +l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:local +l_staff_name = .data:0x00000028; // type:object size:0x4 scope:local data:4byte +l_cyl_src = .data:0x0000002C; // type:object size:0x44 scope:local @3933 = .data:0x00000070; // type:object size:0xC scope:local @3934 = .data:0x0000007C; // type:object size:0xC scope:local @3935 = .data:0x00000088; // type:object size:0xC scope:local @@ -112,7 +112,7 @@ mode_proc$3932 = .data:0x000000A0; // type:object size:0x30 scope:local @4371 = .data:0x0000010C; // type:object size:0xC scope:local l_func$4365 = .data:0x00000118; // type:object size:0x48 scope:local action_table$4540 = .data:0x00000160; // type:object size:0x10 scope:local -daObjVolcBom_METHODS = .data:0x00000170; // type:object size:0x20 scope:global +daObjVolcBom_METHODS = .data:0x00000170; // type:object size:0x20 scope:local g_profile_Obj_VolcanicBomb = .data:0x00000190; // type:object size:0x30 scope:global __vt__12dBgS_AcchCir = .data:0x000001C0; // type:object size:0xC scope:global __vt__10cCcD_GStts = .data:0x000001CC; // type:object size:0xC scope:global @@ -122,5 +122,5 @@ __vt__8cM3dGAab = .data:0x000001F0; // type:object size:0xC scope:global __vt__12dBgS_ObjAcch = .data:0x000001FC; // type:object size:0x24 scope:global __vt__12J3DFrameCtrl = .data:0x00000220; // type:object size:0xC scope:global __vt__14daObjVolcBom_c = .data:0x0000022C; // type:object size:0x28 scope:global -lbl_676_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte -lbl_676_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte +init$1712 = .bss:0x00000000; // type:object size:0x1 data:byte scope:local +init$2146 = .bss:0x00000001; // type:object size:0x1 data:byte scope:local diff --git a/config/GZ2P01/rels/d_a_obj_twGate/symbols.txt b/config/GZ2P01/rels/d_a_obj_twGate/symbols.txt index e03e02dbcb9..5fdaf159b9a 100644 --- a/config/GZ2P01/rels/d_a_obj_twGate/symbols.txt +++ b/config/GZ2P01/rels/d_a_obj_twGate/symbols.txt @@ -14,10 +14,10 @@ __dt__12J3DFrameCtrlFv = .text:0x0000059C; // type:function size:0x48 scope:glob Execute__10daTwGate_cFPPA3_A4_f = .text:0x000005E4; // type:function size:0x110 scope:global Draw__10daTwGate_cFv = .text:0x000006F4; // type:function size:0xCC scope:global Delete__10daTwGate_cFv = .text:0x000007C0; // type:function size:0x40 scope:global -daTwGate_Draw__FP10daTwGate_c = .text:0x00000800; // type:function size:0x2C scope:global -daTwGate_Execute__FP10daTwGate_c = .text:0x0000082C; // type:function size:0x20 scope:global -daTwGate_Delete__FP10daTwGate_c = .text:0x0000084C; // type:function size:0x20 scope:global -daTwGate_Create__FP10fopAc_ac_c = .text:0x0000086C; // type:function size:0x20 scope:global +daTwGate_Draw__FP10daTwGate_c = .text:0x00000800; // type:function size:0x2C scope:local +daTwGate_Execute__FP10daTwGate_c = .text:0x0000082C; // type:function size:0x20 scope:local +daTwGate_Delete__FP10daTwGate_c = .text:0x0000084C; // type:function size:0x20 scope:local +daTwGate_Create__FP10fopAc_ac_c = .text:0x0000086C; // type:function size:0x20 scope:local __dt__14daTwGate_HIO_cFv = .text:0x0000088C; // type:function size:0x6C scope:global __sinit_d_a_obj_twGate_cpp = .text:0x000008F8; // type:function size:0x3C scope:local _ctors = .ctors:0x00000000; // type:label scope:global @@ -25,19 +25,19 @@ __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 sc _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local @3638 = .rodata:0x00000000; // type:object size:0x4 scope:local -l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:global -l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:global -l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:global -l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:global -l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:global -l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:global -l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:global +l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:local +l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:local +l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:local +l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:local +l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:local +l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:local +l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:local @3693 = .rodata:0x00000240; // type:object size:0x4 scope:local @3769 = .rodata:0x00000244; // type:object size:0x4 scope:local @3837 = .rodata:0x00000248; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x0000024C; // type:object size:0x59 scope:local data:string_table -l_resNameIdx = .data:0x00000000; // type:object size:0x34 scope:global -l_daTwGate_Method = .data:0x00000034; // type:object size:0x20 scope:global +l_resNameIdx = .data:0x00000000; // type:object size:0x34 scope:local +l_daTwGate_Method = .data:0x00000034; // type:object size:0x20 scope:local g_profile_Obj_TwGate = .data:0x00000054; // type:object size:0x30 scope:global __vt__8cM3dGLin = .data:0x00000084; // type:object size:0xC scope:global __vt__12J3DFrameCtrl = .data:0x00000090; // type:object size:0xC scope:global @@ -47,4 +47,4 @@ __vt__18fOpAcm_HIO_entry_c = .data:0x000000D0; // type:object size:0xC scope:glo __vt__14mDoHIO_entry_c = .data:0x000000DC; // type:object size:0xC scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @3630 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global align:4 data:float +l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local align:4 data:float diff --git a/config/GZ2P01/rels/d_a_obj_volcbom/symbols.txt b/config/GZ2P01/rels/d_a_obj_volcbom/symbols.txt index ac86abafaee..e6a48fec7de 100644 --- a/config/GZ2P01/rels/d_a_obj_volcbom/symbols.txt +++ b/config/GZ2P01/rels/d_a_obj_volcbom/symbols.txt @@ -43,15 +43,15 @@ demoProc__14daObjVolcBom_cFv = .text:0x00001DC8; // type:function size:0x580 sco calcObjPos__14daObjVolcBom_cFv = .text:0x00002348; // type:function size:0x80 scope:global Draw__14daObjVolcBom_cFv = .text:0x000023C8; // type:function size:0x214 scope:global Delete__14daObjVolcBom_cFv = .text:0x000025DC; // type:function size:0x78 scope:global -daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00002654; // type:function size:0x134 scope:global +daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00002654; // type:function size:0x134 scope:local __dt__8cM3dGCylFv = .text:0x00002788; // type:function size:0x48 scope:global __dt__8cM3dGAabFv = .text:0x000027D0; // type:function size:0x48 scope:global __dt__10dCcD_GSttsFv = .text:0x00002818; // type:function size:0x5C scope:global __dt__12dBgS_AcchCirFv = .text:0x00002874; // type:function size:0x70 scope:global __dt__12dBgS_ObjAcchFv = .text:0x000028E4; // type:function size:0x70 scope:global -daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00002954; // type:function size:0x20 scope:global -daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x00002974; // type:function size:0x20 scope:global -daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x00002994; // type:function size:0x2C scope:global +daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00002954; // type:function size:0x20 scope:local +daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x00002974; // type:function size:0x20 scope:local +daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x00002994; // type:function size:0x2C scope:local __dt__10cCcD_GSttsFv = .text:0x000029C0; // type:function size:0x48 scope:global cLib_calcTimer__FPUc = .text:0x00002A08; // type:function size:0x1C scope:global @36@__dt__12dBgS_ObjAcchFv = .text:0x00002A24; // type:function size:0x8 scope:local @@ -59,10 +59,10 @@ cLib_calcTimer__FPUc = .text:0x00002A08; // type:function size:0x1C scope:gl _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local -l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:global -l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:global -l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:global -l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:global +l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:local +l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:local +l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:local +l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:local @3785 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float @3786 = .rodata:0x00000024; // type:object size:0x4 scope:local @3787 = .rodata:0x00000028; // type:object size:0x4 scope:local @@ -92,13 +92,13 @@ l_effect_id$4032 = .rodata:0x00000054; // type:object size:0xE scope:local @4718 = .rodata:0x000000A8; // type:object size:0x4 scope:local @4828 = .rodata:0x000000AC; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x000000B0; // type:object size:0x48 scope:local data:string_table -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local lbl_676_data_10 = .data:0x00000010; // type:object size:0x10 -l_arcName = .data:0x00000020; // type:object size:0x4 scope:global data:4byte -l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:global -l_staff_name = .data:0x00000028; // type:object size:0x4 scope:global data:4byte -l_cyl_src = .data:0x0000002C; // type:object size:0x44 scope:global +l_arcName = .data:0x00000020; // type:object size:0x4 scope:local data:4byte +l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:local +l_staff_name = .data:0x00000028; // type:object size:0x4 scope:local data:4byte +l_cyl_src = .data:0x0000002C; // type:object size:0x44 scope:local @3933 = .data:0x00000070; // type:object size:0xC scope:local @3934 = .data:0x0000007C; // type:object size:0xC scope:local @3935 = .data:0x00000088; // type:object size:0xC scope:local @@ -112,7 +112,7 @@ mode_proc$3932 = .data:0x000000A0; // type:object size:0x30 scope:local @4371 = .data:0x0000010C; // type:object size:0xC scope:local l_func$4365 = .data:0x00000118; // type:object size:0x48 scope:local action_table$4540 = .data:0x00000160; // type:object size:0x10 scope:local -daObjVolcBom_METHODS = .data:0x00000170; // type:object size:0x20 scope:global +daObjVolcBom_METHODS = .data:0x00000170; // type:object size:0x20 scope:local g_profile_Obj_VolcanicBomb = .data:0x00000190; // type:object size:0x30 scope:global __vt__12dBgS_AcchCir = .data:0x000001C0; // type:object size:0xC scope:global __vt__10cCcD_GStts = .data:0x000001CC; // type:object size:0xC scope:global @@ -122,5 +122,5 @@ __vt__8cM3dGAab = .data:0x000001F0; // type:object size:0xC scope:global __vt__12dBgS_ObjAcch = .data:0x000001FC; // type:object size:0x24 scope:global __vt__12J3DFrameCtrl = .data:0x00000220; // type:object size:0xC scope:global __vt__14daObjVolcBom_c = .data:0x0000022C; // type:object size:0x28 scope:global -lbl_676_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte -lbl_676_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte +init$1712 = .bss:0x00000000; // type:object size:0x1 data:byte scope:local +init$2146 = .bss:0x00000001; // type:object size:0x1 data:byte scope:local diff --git a/config/RZDE01_00/rels/d_a_obj_twGate/symbols.txt b/config/RZDE01_00/rels/d_a_obj_twGate/symbols.txt index f4e8e9b13c0..6123f2e93a9 100644 --- a/config/RZDE01_00/rels/d_a_obj_twGate/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_twGate/symbols.txt @@ -10,10 +10,10 @@ create__10daTwGate_cFv = .text:0x00000298; // type:function size:0x198 scope:glo Execute__10daTwGate_cFPPA3_A4_f = .text:0x00000430; // type:function size:0x110 scope:global Draw__10daTwGate_cFv = .text:0x00000540; // type:function size:0xC0 scope:global Delete__10daTwGate_cFv = .text:0x00000600; // type:function size:0x3C scope:global -daTwGate_Draw__FP10daTwGate_c = .text:0x0000063C; // type:function size:0x10 scope:global -daTwGate_Execute__FP10daTwGate_c = .text:0x0000064C; // type:function size:0x4 scope:global -daTwGate_Delete__FP10daTwGate_c = .text:0x00000650; // type:function size:0x4 scope:global -daTwGate_Create__FP10fopAc_ac_c = .text:0x00000654; // type:function size:0x4 scope:global +daTwGate_Draw__FP10daTwGate_c = .text:0x0000063C; // type:function size:0x10 scope:local +daTwGate_Execute__FP10daTwGate_c = .text:0x0000064C; // type:function size:0x4 scope:local +daTwGate_Delete__FP10daTwGate_c = .text:0x00000650; // type:function size:0x4 scope:local +daTwGate_Create__FP10fopAc_ac_c = .text:0x00000654; // type:function size:0x4 scope:local __dt__14daTwGate_HIO_cFv = .text:0x00000658; // type:function size:0x40 scope:global __sinit_d_a_obj_twGate_cpp = .text:0x00000698; // type:function size:0x48 scope:local _ctors = .ctors:0x00000000; // type:label scope:global @@ -21,13 +21,13 @@ __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 sc _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local @89924 = .rodata:0x00000000; // type:object size:0x4 scope:local -l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:global -l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:global -l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:global -l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:global -l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:global -l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:global -l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:global +l_bmdIdx = .rodata:0x00000004; // type:object size:0x34 scope:local +l_dzbIdx = .rodata:0x00000038; // type:object size:0x34 scope:local +l_btkIdx = .rodata:0x0000006C; // type:object size:0x34 scope:local +l_brkIdx = .rodata:0x000000A0; // type:object size:0x34 scope:local +l_twFlagIdx = .rodata:0x000000D4; // type:object size:0x34 scope:local +l_cheeckPos0 = .rodata:0x00000108; // type:object size:0x9C scope:local +l_cheeckPos1 = .rodata:0x000001A4; // type:object size:0x9C scope:local @89977 = .rodata:0x00000240; // type:object size:0x4 scope:local @90028 = .rodata:0x00000244; // type:object size:0x4 scope:local @90091 = .rodata:0x00000248; // type:object size:0x4 scope:local @@ -41,8 +41,8 @@ lbl_672_data_31 = .data:0x00000031; // type:object size:0xA data:string lbl_672_data_3B = .data:0x0000003B; // type:object size:0xA data:string lbl_672_data_45 = .data:0x00000045; // type:object size:0xA data:string lbl_672_data_4F = .data:0x0000004F; // type:object size:0xD -l_resNameIdx = .data:0x0000005C; // type:object size:0x34 scope:global -l_daTwGate_Method = .data:0x00000090; // type:object size:0x20 scope:global +l_resNameIdx = .data:0x0000005C; // type:object size:0x34 scope:local +l_daTwGate_Method = .data:0x00000090; // type:object size:0x20 scope:local g_profile_Obj_TwGate = .data:0x000000B0; // type:object size:0x30 scope:global __vt__14daTwGate_HIO_c = .data:0x000000E0; // type:object size:0xC scope:global lbl_672_data_EC = .data:0x000000EC; // type:object size:0x10 @@ -54,4 +54,4 @@ lbl_672_data_148 = .data:0x00000148; // type:object size:0xC __RTTI__10daTwGate_c = .data:0x00000168; // type:object size:0x8 scope:global __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @88985 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global align:4 data:float +l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local align:4 data:float diff --git a/config/RZDE01_00/rels/d_a_obj_volcbom/symbols.txt b/config/RZDE01_00/rels/d_a_obj_volcbom/symbols.txt index cc2c6ac828e..ec531c44a84 100644 --- a/config/RZDE01_00/rels/d_a_obj_volcbom/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_volcbom/symbols.txt @@ -39,18 +39,18 @@ demoProc__14daObjVolcBom_cFv = .text:0x000019BC; // type:function size:0x408 sco calcObjPos__14daObjVolcBom_cFv = .text:0x00001DC4; // type:function size:0x7C scope:global Draw__14daObjVolcBom_cFv = .text:0x00001E40; // type:function size:0x204 scope:global Delete__14daObjVolcBom_cFv = .text:0x00002044; // type:function size:0x74 scope:global -daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x000020B8; // type:function size:0x104 scope:global -daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x000021BC; // type:function size:0x4 scope:global -daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x000021C0; // type:function size:0x4 scope:global -daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x000021C4; // type:function size:0x10 scope:global +daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x000020B8; // type:function size:0x104 scope:local +daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x000021BC; // type:function size:0x4 scope:local +daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x000021C0; // type:function size:0x4 scope:local +daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x000021C4; // type:function size:0x10 scope:local entry__13mDoExt_btkAnmFP12J3DModelData = .text:0x000021D4; // type:function size:0xC scope:global entry__13mDoExt_brkAnmFP12J3DModelData = .text:0x000021E0; // type:function size:0xC scope:global _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local -l_disapp_eff = .rodata:0x00000000; // type:object size:0x2 scope:global -l_start_eff = .rodata:0x00000002; // type:object size:0x6 scope:global -l_bind_eff = .rodata:0x00000008; // type:object size:0x8 scope:global +l_disapp_eff = .rodata:0x00000000; // type:object size:0x2 scope:local +l_start_eff = .rodata:0x00000002; // type:object size:0x6 scope:local +l_bind_eff = .rodata:0x00000008; // type:object size:0x8 scope:local @96867 = .rodata:0x00000010; // type:object size:0x4 scope:local align:4 data:float @96868 = .rodata:0x00000014; // type:object size:0x4 scope:local @96869 = .rodata:0x00000018; // type:object size:0x4 scope:local @@ -78,12 +78,12 @@ l_effect_id$94323 = .rodata:0x00000074; // type:object size:0xE scope:local @97547 = .rodata:0x000000B0; // type:object size:0x4 scope:local @97608 = .rodata:0x000000B4; // type:object size:0x4 scope:local lbl_677_data_0 = .data:0x00000000; // type:object size:0xC data:4byte -l_arcName = .data:0x0000000C; // type:object size:0x4 scope:global data:4byte +l_arcName = .data:0x0000000C; // type:object size:0x4 scope:local data:4byte lbl_677_data_10 = .data:0x00000010; // type:object size:0x14 data:string -l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:global +l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:local lbl_677_data_28 = .data:0x00000028; // type:object size:0x8 data:string -l_staff_name = .data:0x00000030; // type:object size:0x4 scope:global data:4byte -l_cyl_src = .data:0x00000034; // type:object size:0x44 scope:global +l_staff_name = .data:0x00000030; // type:object size:0x4 scope:local data:4byte +l_cyl_src = .data:0x00000034; // type:object size:0x44 scope:local lbl_677_data_78 = .data:0x00000078; // type:object size:0xC l_func$94537 = .data:0x00000084; // type:object size:0x48 scope:local lbl_677_data_CC = .data:0x000000CC; // type:object size:0x14 data:string @@ -93,7 +93,7 @@ lbl_677_data_E9 = .data:0x000000E9; // type:object size:0x5 data:string lbl_677_data_EE = .data:0x000000EE; // type:object size:0x6 action_table$94648 = .data:0x000000F4; // type:object size:0x10 scope:local lbl_677_data_104 = .data:0x00000104; // type:object size:0x8 -daObjVolcBom_METHODS = .data:0x0000010C; // type:object size:0x20 scope:global +daObjVolcBom_METHODS = .data:0x0000010C; // type:object size:0x20 scope:local g_profile_Obj_VolcanicBomb = .data:0x0000012C; // type:object size:0x30 scope:global __vt__14daObjVolcBom_c = .data:0x0000015C; // type:object size:0x28 scope:global lbl_677_data_184 = .data:0x00000184; // type:object size:0x10 diff --git a/config/ShieldD/rels/d_a_obj_twGateD/symbols.txt b/config/ShieldD/rels/d_a_obj_twGateD/symbols.txt index c3ecede37e3..bc25a2170b9 100644 --- a/config/ShieldD/rels/d_a_obj_twGateD/symbols.txt +++ b/config/ShieldD/rels/d_a_obj_twGateD/symbols.txt @@ -13,10 +13,10 @@ __ct__10daTwGate_cFv = .text:0x00000630; // type:function size:0x58 scope:global Execute__10daTwGate_cFPPA3_A4_f = .text:0x00000690; // type:function size:0x140 scope:global Draw__10daTwGate_cFv = .text:0x000007D0; // type:function size:0x94 scope:global Delete__10daTwGate_cFv = .text:0x00000870; // type:function size:0x58 scope:global -daTwGate_Draw__FP10daTwGate_c = .text:0x000008D0; // type:function size:0x28 scope:global -daTwGate_Execute__FP10daTwGate_c = .text:0x00000900; // type:function size:0x28 scope:global -daTwGate_Delete__FP10daTwGate_c = .text:0x00000930; // type:function size:0x44 scope:global -daTwGate_Create__FP10fopAc_ac_c = .text:0x00000980; // type:function size:0x50 scope:global +daTwGate_Draw__FP10daTwGate_c = .text:0x000008D0; // type:function size:0x28 scope:local +daTwGate_Execute__FP10daTwGate_c = .text:0x00000900; // type:function size:0x28 scope:local +daTwGate_Delete__FP10daTwGate_c = .text:0x00000930; // type:function size:0x44 scope:local +daTwGate_Create__FP10fopAc_ac_c = .text:0x00000980; // type:function size:0x50 scope:local __dt__14daTwGate_HIO_cFv = .text:0x000009D0; // type:function size:0x5C scope:global __sinit_\d_a_obj_twGate_cpp = .text:0x00000A30; // type:function size:0x44 scope:local _ctors = .ctors:0x00000000; // type:label scope:global @@ -26,13 +26,13 @@ _dtors = .dtors:0x00000000; // type:label scope:global @114197 = .rodata:0x00000000; // type:object size:0x4 scope:local @114211 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 data:float @114212 = .rodata:0x00000008; // type:object size:0x4 scope:local align:4 data:float -l_bmdIdx = .rodata:0x0000000C; // type:object size:0x34 scope:global -l_dzbIdx = .rodata:0x00000040; // type:object size:0x34 scope:global -l_btkIdx = .rodata:0x00000074; // type:object size:0x34 scope:global -l_brkIdx = .rodata:0x000000A8; // type:object size:0x34 scope:global -l_twFlagIdx = .rodata:0x000000DC; // type:object size:0x34 scope:global -l_cheeckPos0 = .rodata:0x00000110; // type:object size:0x9C scope:global -l_cheeckPos1 = .rodata:0x000001AC; // type:object size:0x9C scope:global +l_bmdIdx = .rodata:0x0000000C; // type:object size:0x34 scope:local +l_dzbIdx = .rodata:0x00000040; // type:object size:0x34 scope:local +l_btkIdx = .rodata:0x00000074; // type:object size:0x34 scope:local +l_brkIdx = .rodata:0x000000A8; // type:object size:0x34 scope:local +l_twFlagIdx = .rodata:0x000000DC; // type:object size:0x34 scope:local +l_cheeckPos0 = .rodata:0x00000110; // type:object size:0x9C scope:local +l_cheeckPos1 = .rodata:0x000001AC; // type:object size:0x9C scope:local @114255 = .rodata:0x00000248; // type:object size:0x4 scope:local @114294 = .rodata:0x0000024C; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000250; // type:object size:0xC scope:global @@ -49,7 +49,7 @@ lbl_662_rodata_260 = .rodata:0x00000260; // type:object size:0x14 @114222 = .data:0x00000054; // type:object size:0xA scope:local data:string @114223 = .data:0x00000060; // type:object size:0xA scope:local data:string @114224 = .data:0x0000006C; // type:object size:0xA scope:local data:string -l_resNameIdx = .data:0x00000078; // type:object size:0x34 scope:global +l_resNameIdx = .data:0x00000078; // type:object size:0x34 scope:local @114252 = .data:0x000000AC; // type:object size:0x13 scope:local data:string @114253 = .data:0x000000C0; // type:object size:0xF scope:local data:string @114254 = .data:0x000000D0; // type:object size:0x5 scope:local data:string @@ -58,7 +58,7 @@ l_resNameIdx = .data:0x00000078; // type:object size:0x34 scope:global @114295 = .data:0x00000118; // type:object size:0x13 scope:local @114442 = .data:0x0000012C; // type:object size:0x1B scope:local data:string @114458 = .data:0x00000148; // type:object size:0x1B scope:local data:string -l_daTwGate_Method = .data:0x00000168; // type:object size:0x20 scope:global +l_daTwGate_Method = .data:0x00000168; // type:object size:0x20 scope:local g_profile_Obj_TwGate = .data:0x00000188; // type:object size:0x30 scope:global __vt__14daTwGate_HIO_c = .data:0x000001B8; // type:object size:0x20 scope:global @114460 = .data:0x000001D8; // type:object size:0xF scope:local data:string @@ -83,4 +83,4 @@ __RTTI__10daTwGate_c = .data:0x00000260; // type:object size:0x8 scope:global lbl_662_data_3B1 = .data:0x000003B1; // type:object size:0x7F __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @114190 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000014; // type:object size:0xC scope:global align:4 data:float +l_HIO = .bss:0x00000014; // type:object size:0xC scope:local align:4 data:float diff --git a/config/ShieldD/rels/d_a_obj_volcbomD/symbols.txt b/config/ShieldD/rels/d_a_obj_volcbomD/symbols.txt index 0cf4b206aff..14efa0adcff 100644 --- a/config/ShieldD/rels/d_a_obj_volcbomD/symbols.txt +++ b/config/ShieldD/rels/d_a_obj_volcbomD/symbols.txt @@ -62,21 +62,21 @@ calcObjPos__14daObjVolcBom_cFv = .text:0x00002C60; // type:function size:0xBC sc Draw__14daObjVolcBom_cFv = .text:0x00002D20; // type:function size:0x258 scope:global mDoExt_bckAnmRemove__FP12J3DModelData = .text:0x00002F80; // type:function size:0x38 scope:global Delete__14daObjVolcBom_cFv = .text:0x00002FC0; // type:function size:0x9C scope:global -daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00003060; // type:function size:0x7C scope:global +daObjVolcBom_create1st__FP14daObjVolcBom_c = .text:0x00003060; // type:function size:0x7C scope:local __ct__14daObjVolcBom_cFv = .text:0x000030E0; // type:function size:0x88 scope:global -daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00003170; // type:function size:0x28 scope:global -daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x000031A0; // type:function size:0x28 scope:global -daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x000031D0; // type:function size:0x28 scope:global +daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c = .text:0x00003170; // type:function size:0x28 scope:local +daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c = .text:0x000031A0; // type:function size:0x28 scope:local +daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c = .text:0x000031D0; // type:function size:0x28 scope:local __dt__18daObjVolcBom_HIO_cFv = .text:0x00003200; // type:function size:0x6C scope:global __sinit_\d_a_obj_volcbom_cpp = .text:0x00003270; // type:function size:0x44 scope:local _ctors = .ctors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local -l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:global -l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:global -l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:global -l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:global +l_midna_offset = .rodata:0x00000000; // type:object size:0xC scope:local +l_disapp_eff = .rodata:0x0000000C; // type:object size:0x2 scope:local +l_start_eff = .rodata:0x00000010; // type:object size:0x6 scope:local +l_bind_eff = .rodata:0x00000018; // type:object size:0x8 scope:local @119031 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float @119032 = .rodata:0x00000024; // type:object size:0x4 scope:local @119048 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 data:float @@ -110,12 +110,12 @@ cNullVec__6Z2Calc = .rodata:0x000000D4; // type:object size:0xC scope:global @46916 = .rodata:0x000000E0; // type:object size:0x4 scope:local lbl_667_rodata_E4 = .rodata:0x000000E4; // type:object size:0x18 @119014 = .data:0x00000000; // type:object size:0xA scope:local data:string -l_arcName = .data:0x0000000C; // type:object size:0x4 scope:global data:4byte +l_arcName = .data:0x0000000C; // type:object size:0x4 scope:local data:4byte @119015 = .data:0x00000010; // type:object size:0x14 scope:local data:string -l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:global +l_portal_warp_name = .data:0x00000024; // type:object size:0x4 scope:local @119016 = .data:0x00000028; // type:object size:0x8 scope:local data:string -l_staff_name = .data:0x00000030; // type:object size:0x4 scope:global data:4byte -l_cyl_src = .data:0x00000034; // type:object size:0x44 scope:global +l_staff_name = .data:0x00000030; // type:object size:0x4 scope:local data:4byte +l_cyl_src = .data:0x00000034; // type:object size:0x44 scope:local @119045 = .data:0x00000078; // type:object size:0x9 scope:local @119046 = .data:0x00000084; // type:object size:0x9 scope:local @119047 = .data:0x00000090; // type:object size:0xF scope:local @@ -152,7 +152,7 @@ l_cyl_src = .data:0x00000034; // type:object size:0x44 scope:global @LOCAL@demoProc__14daObjVolcBom_cFv@action_table = .data:0x000002E8; // type:object size:0x10 scope:local @119785 = .data:0x000002F8; // type:object size:0x6 scope:local data:string @119787 = .data:0x00000300; // type:object size:0x16 scope:local -daObjVolcBom_METHODS = .data:0x00000318; // type:object size:0x20 scope:global +daObjVolcBom_METHODS = .data:0x00000318; // type:object size:0x20 scope:local g_profile_Obj_VolcanicBomb = .data:0x00000338; // type:object size:0x30 scope:global __vt__18daObjVolcBom_HIO_c = .data:0x00000368; // type:object size:0x20 scope:global @119991 = .data:0x00000388; // type:object size:0x13 scope:local data:string @@ -190,4 +190,4 @@ lbl_667_data_438 = .data:0x00000438; // type:object size:0x2C lbl_667_data_6C1 = .data:0x000006C1; // type:object size:0xBB __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @119025 = .bss:0x00000008; // type:object size:0xC scope:local -l_HIO = .bss:0x00000018; // type:object size:0x38 scope:global data:byte +l_HIO = .bss:0x00000018; // type:object size:0x38 scope:local data:byte diff --git a/config/ShieldD/rels/d_a_obj_web1D/symbols.txt b/config/ShieldD/rels/d_a_obj_web1D/symbols.txt index 2a5d5e9c4d9..1d351fb11c3 100644 --- a/config/ShieldD/rels/d_a_obj_web1D/symbols.txt +++ b/config/ShieldD/rels/d_a_obj_web1D/symbols.txt @@ -69,5 +69,5 @@ __RTTI__16daObj_Web1_HIO_c = .data:0x00000220; // type:object size:0x8 scope:glo @117165 = .data:0x0000029C; // type:object size:0x11 scope:local data:string @117166 = .data:0x000002C4; // type:object size:0xD scope:local data:string lbl_676_data_2D1 = .data:0x000002D1; // type:object size:0x13 -lbl_676_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +init$1712 = .bss:0x00000000; // type:object size:0x1 scope:local data:byte l_HIO = .bss:0x00000008; // type:object size:0x8 scope:global data:byte diff --git a/configure.py b/configure.py index 596e893c6bd..5c1ed01301d 100755 --- a/configure.py +++ b/configure.py @@ -2148,12 +2148,12 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tornado2"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tp"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_treesh"), - ActorRel(NonMatching, "d_a_obj_twGate"), + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_twGate"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_udoor"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_usaku"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_vground"), ActorRel(NonMatching, "d_a_obj_volcball"), - ActorRel(NonMatching, "d_a_obj_volcbom"), + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_volcbom"), ActorRel(NonMatching, "d_a_obj_warp_kbrg"), ActorRel(NonMatching, "d_a_obj_warp_obrg"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_waterGate"), diff --git a/include/d/actor/d_a_e_bu.h b/include/d/actor/d_a_e_bu.h index 8ec8f9a9a5d..639ab6c7a98 100644 --- a/include/d/actor/d_a_e_bu.h +++ b/include/d/actor/d_a_e_bu.h @@ -67,11 +67,13 @@ public: STATIC_ASSERT(sizeof(e_bu_class) == 0xaa4); -class daE_BU_HIO_c { +class daE_BU_HIO_c : public JORReflexible { public: /* 806911AC */ daE_BU_HIO_c(); /* 806941D4 */ virtual ~daE_BU_HIO_c() {} + void genMessage(JORMContext* ctx); + /* 0x04 */ s8 id; /* 0x08 */ f32 base_size; /* 0x0C */ f32 fly_speed; diff --git a/include/d/actor/d_a_e_zh.h b/include/d/actor/d_a_e_zh.h index 6bcbb6524ab..9ddb99f3906 100644 --- a/include/d/actor/d_a_e_zh.h +++ b/include/d/actor/d_a_e_zh.h @@ -118,6 +118,8 @@ public: /* 8082902C */ daE_ZH_HIO_c(); /* 8082F160 */ virtual ~daE_ZH_HIO_c() {} + void genMessage(JORMContext* ctx); + // ボールマスター (Ball Master) /* 0x04 */ s8 field_0x4; /* 0x08 */ f32 model_size; // モデルサイズ (Model Size) diff --git a/include/d/actor/d_a_midna.h b/include/d/actor/d_a_midna.h index 8e2fef45093..5f579756300 100644 --- a/include/d/actor/d_a_midna.h +++ b/include/d/actor/d_a_midna.h @@ -136,6 +136,7 @@ public: FLG0_UNK_4 = 4, FLG0_UNK_2 = 2, FLG0_UNK_1 = 1, + FLG0_TAG_PORTAL = FLG0_TAG_WAIT | FLG0_PORTAL_OBJ_CALL, }; enum daMidna_FLG1 { @@ -298,6 +299,11 @@ public: onEndResetStateFlg0(ERFLG0_UNK_2); } + void onTagWaitPosPortalObj(const cXyz& i_pos) { + mTagWaitPos = i_pos; + onStateFlg0(FLG0_TAG_PORTAL); + } + void onTagWaitPos(const cXyz* param_0) { mTagWaitPos = *param_0; onStateFlg0(FLG0_TAG_WAIT); diff --git a/include/d/actor/d_a_obj_twGate.h b/include/d/actor/d_a_obj_twGate.h index 36a79741a1a..56ad4504663 100644 --- a/include/d/actor/d_a_obj_twGate.h +++ b/include/d/actor/d_a_obj_twGate.h @@ -2,6 +2,7 @@ #define D_A_OBJ_TWGATE_H #include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_movebg_actor.h" /** * @ingroup actors-objects @@ -11,24 +12,36 @@ * @details * */ -class daTwGate_c : public fopAc_ac_c { +class daTwGate_c : public dBgS_MoveBgActor { public: /* 80D1FB84 */ void setBaseMtx(); - /* 80D1FC0C */ void CreateHeap(); - /* 80D1FD44 */ void create(); - /* 80D1FFA4 */ void Execute(f32 (**)[3][4]); - /* 80D200B4 */ void Draw(); - /* 80D20180 */ void Delete(); + /* 80D1FC0C */ int CreateHeap(); + /* 80D1FD44 */ int create(); + /* 80D1FFA4 */ int Execute(Mtx**); + /* 80D200B4 */ int Draw(); + /* 80D20180 */ int Delete(); + + int getGateType() { return fopAcM_GetParamBit(this, 4, 8); } + private: - /* 0x568 */ u8 field_0x568[0x5fc - 0x568]; + /* 0x5A0 */ request_of_phase_process_class mPhase; + /* 0x5A8 */ J3DModel* mModel; + /* 0x5AC */ mDoExt_btkAnm mBtk; + /* 0x5C4 */ mDoExt_brkAnm mBrk; + /* 0x5DC */ u8 mGateType; + /* 0x5E0 */ cM3dGLin mLine; }; STATIC_ASSERT(sizeof(daTwGate_c) == 0x5fc); -class daTwGate_HIO_c { +class daTwGate_HIO_c : public fOpAcm_HIO_entry_c { public: /* 80D1FAAC */ daTwGate_HIO_c(); - /* 80D2024C */ ~daTwGate_HIO_c(); + /* 80D2024C */ ~daTwGate_HIO_c() {} + + void genMessage(JORMContext* ctx); + + /* 0x4 */ f32 mRange; }; #endif /* D_A_OBJ_TWGATE_H */ diff --git a/include/d/actor/d_a_obj_volcbom.h b/include/d/actor/d_a_obj_volcbom.h index f79dd3d8932..3b8f5124404 100644 --- a/include/d/actor/d_a_obj_volcbom.h +++ b/include/d/actor/d_a_obj_volcbom.h @@ -1,6 +1,10 @@ #ifndef D_A_OBJ_VOLCBOM_H #define D_A_OBJ_VOLCBOM_H +#include "d/d_bg_s_acch.h" +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_cc_d.h" +#include "d/d_msg_flow.h" #include "f_op/f_op_actor_mng.h" /** @@ -11,14 +15,33 @@ * @details * */ -class daObjVolcBom_c : public fopAc_ac_c { +class daObjVolcBom_c : public dBgS_MoveBgActor { public: + typedef void (daObjVolcBom_c::*modeFunc)(); + typedef void (daObjVolcBom_c::*actionFunc)(); + + enum Mode { + MODE_WAIT_APPEAR, + MODE_FALL, + MODE_WAIT_END_FALL_DEMO, + MODE_WAIT, + }; + + enum Action { + ACTION_WAIT, + ACTION_ORDER_EVENT, + ACTION_TALK_EVENT, + ACTION_WARP_EVENT, + ACTION_ORDER_A_TALK_EVENT, + ACTION_DEAD, + }; + /* 80D241E0 */ void initBaseMtx(); /* 80D24238 */ void setBaseMtx(); - /* 80D242A8 */ void Create(); - /* 80D244E0 */ void CreateHeap(); - /* 80D248F4 */ void create1st(); - /* 80D249D0 */ void Execute(f32 (**)[3][4]); + /* 80D242A8 */ int Create(); + /* 80D244E0 */ int CreateHeap(); + /* 80D248F4 */ int create1st(); + /* 80D249D0 */ int Execute(Mtx**); /* 80D24A2C */ void mode_proc_call(); /* 80D24B18 */ void init_modeWaitAppear(); /* 80D24B6C */ void modeWaitAppear(); @@ -33,7 +56,7 @@ public: /* 80D25224 */ void appear(); /* 80D25230 */ void disappear(); /* 80D2523C */ void setSmoke(); - /* 80D252C8 */ void checkTalkDistance(); + /* 80D252C8 */ bool checkTalkDistance(); /* 80D25364 */ void calcMidnaWaitPos(); /* 80D253FC */ void setSrcEffect(); /* 80D25528 */ void setBindEffect(); @@ -51,20 +74,82 @@ public: /* 80D25EE4 */ void actionDead(); /* 80D25EE8 */ void demoProc(); /* 80D26468 */ void calcObjPos(); - /* 80D264E8 */ void Draw(); - /* 80D266FC */ void Delete(); + /* 80D264E8 */ int Draw(); + /* 80D266FC */ int Delete(); void startFall() { field_0x95f = 1; } void startSearch() { field_0x960 = 1; } + void setAction(u8 action) { mAction = action; } + u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); } + u8 getArg0() { return fopAcM_GetParamBit(this, 16, 8); } + u16 getMsgID() { return mMsgID; } private: - /* 0x568 */ u8 field_0x568[0x95F - 0x568]; + /* 0x5A0 */ request_of_phase_process_class mPhase; + /* 0x5A8 */ J3DModel* mModel1; + /* 0x5AC */ mDoExt_btkAnm* mBtk1; + /* 0x5B0 */ mDoExt_brkAnm* mBrk1; + /* 0x5B4 */ mDoExt_bckAnm* mBck1; + /* 0x5B8 */ J3DModel* mModel2; + /* 0x5BC */ mDoExt_btkAnm* mBtk2; + /* 0x5C0 */ mDoExt_brkAnm* mBrk2; + /* 0x5C4 */ JPABaseEmitter* mSmokeEmitter; + /* 0x5C8 */ u8 mSmokeTimer; + /* 0x5C9 */ bool field_0x5c9; + /* 0x5CA */ u8 mAction; + /* 0x5CB */ bool field_0x5cb; + /* 0x5CC */ dBgS_ObjAcch mAcch; + /* 0x7A4 */ dBgS_AcchCir mAcchCir; + /* 0x7E4 */ dCcD_Stts mStts; + /* 0x820 */ dCcD_Cyl mCyl; + /* 0x95C */ u8 mDemoTimer; + /* 0x95D */ u8 mWaitAppearState; + /* 0x95E */ bool field_0x95e; /* 0x95F */ u8 field_0x95f; - /* 0x960 */ u8 field_0x960; - /* 0x961 */ u8 field_0x961[0xA1C - 0x961]; + /* 0x960 */ bool field_0x960; + /* 0x961 */ u8 mMode; + /* 0x962 */ bool misAppearing; + /* 0x963 */ bool mIsMsgIDInit; + /* 0x964 */ u16 mMsgID; + /* 0x968 */ cXyz mLightPosWorld; + /* 0x974 */ u32 mShadowID; + /* 0x978 */ f32 field_0x978; + /* 0x97C */ f32 mBaseScale; + /* 0x980 */ cXyz mWarpSEPos; + /* 0x98C */ cXyz mWaitSEPos; + /* 0x998 */ cXyz mMidnaWaitPos; + /* 0x9A4 */ dMsgFlow_c mMsgFlow; + /* 0x9F0 */ s16 mEventId; + /* 0x9F4 */ int mStaffId; + /* 0x9F8 */ JPABaseEmitter* mStartEmitters[3]; + /* 0xA04 */ JPABaseEmitter* mDisappearEmitters[1]; + /* 0xA08 */ JPABaseEmitter* mBindEmitters[4]; + /* 0xA18 */ u16 mEffectJntNo; + /* 0xA1A */ bool field_0xa1a; + /* 0xA1B */ u8 mNaviTimer; }; STATIC_ASSERT(sizeof(daObjVolcBom_c) == 0xa1c); +#ifdef DEBUG +class daObjVolcBom_HIO_c : public mDoHIO_entry_c { +public: + daObjVolcBom_HIO_c(); + void genMessage(JORMContext* ctx); + + /* 0x04 */ u8 field_0x04; + /* 0x08 */ f32 field_0x08; + /* 0x0C */ u8 field_0x0c[0x14 - 0x0c]; + /* 0x14 */ u8 field_0x14; + /* 0x15 */ u8 field_0x15; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ u8 field_0x28[0x34 - 0x28]; + /* 0x34 */ u8 field_0x34; +}; +#endif + #endif /* D_A_OBJ_VOLCBOM_H */ diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index e970e61617f..b3c6e716f19 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -437,7 +437,7 @@ public: FLG3_COPY_ROD_ATN_KEEP = 0x10000000, FLG3_BOOMERANG_ATN_KEEP = 0x8000000, FLG3_UNK_4000000 = 0x4000000, - FLG3_UNK_2000000 = 0x2000000, + FLG3_WARP_OBJ_DEMO = 0x2000000, FLG3_UNK_1000000 = 0x1000000, FLG3_UNK_800000 = 0x800000, FLG3_UNK_400000 = 0x400000, @@ -963,6 +963,7 @@ public: } } void onMidnaTalkPolySpeed() { onNoResetFlg3(FLG3_MIDNA_TALK_POLY_SPEED); } + void onWarpObjDemo() { onNoResetFlg3(FLG3_WARP_OBJ_DEMO); } void offCargoCarry() { if (checkCargoCarry()) { diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 71a9c43873e..c15edc9348e 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -3517,6 +3517,10 @@ inline BOOL dComIfGp_evmng_startCheck(char const* i_event) { return g_dComIfG_gameInfo.play.getEvtManager().startCheckOld(i_event); } +inline BOOL dComIfGp_evmng_startCheck(s16 i_eventId) { + return g_dComIfG_gameInfo.play.getEvtManager().startCheck(i_eventId); +} + inline BOOL dComIfGp_evmng_endCheck(const char* event) { return g_dComIfG_gameInfo.play.getEvtManager().endCheckOld(event); } diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index ea2854dee65..89954309691 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -88,6 +88,18 @@ struct fopAcM_search_prm { struct fOpAcm_HIO_entry_c : public mDoHIO_entry_c { virtual ~fOpAcm_HIO_entry_c() {} + + #ifdef DEBUG + void removeHIO(const fopAc_ac_c* i_this) { removeHIO(*i_this); } + void removeHIO(const fopAc_ac_c& i_this) { removeHIO(static_cast(i_this)); } + void removeHIO(const leafdraw_class& i_this) { removeHIO(i_this.base); } + void removeHIO(const base_process_class& i_this) { removeHIO(i_this.state); } + void removeHIO(const state_class& state) { + if (state.create_phase == cPhs_NEXT_e) { + mDoHIO_entry_c::removeHIO(); + } + } + #endif }; class l_HIO { diff --git a/include/f_pc/f_pc_base.h b/include/f_pc/f_pc_base.h index 10f90417839..896e7a9c9d5 100644 --- a/include/f_pc/f_pc_base.h +++ b/include/f_pc/f_pc_base.h @@ -14,14 +14,18 @@ typedef struct process_method_class process_method_class; typedef struct process_profile_definition process_profile_definition; typedef struct profile_method_class profile_method_class; +typedef struct state_class { + /* 0x00 */ s8 init_state; // maybe inaccurate name + /* 0x01 */ u8 create_phase; +} state_class; + typedef struct base_process_class { /* 0x00 */ int type; /* 0x04 */ fpc_ProcID id; /* 0x08 */ s16 name; /* 0x0A */ s8 unk_0xA; /* 0x0B */ u8 pause_flag; - /* 0x0C */ s8 init_state; // maybe inaccurate name - /* 0x0D */ u8 create_phase; + /* 0x0C */ state_class state; /* 0x0E */ s16 profname; /* 0x10 */ process_profile_definition* profile; /* 0x14 */ struct create_request* create_req; diff --git a/include/f_pc/f_pc_manager.h b/include/f_pc/f_pc_manager.h index a9ac53dff61..21505588275 100644 --- a/include/f_pc/f_pc_manager.h +++ b/include/f_pc/f_pc_manager.h @@ -54,7 +54,7 @@ inline BOOL fpcM_IsJustType(int i_typeA, int i_typeB) { } inline bool fpcM_IsFirstCreating(void* i_process) { - return ((base_process_class*)i_process)->init_state == 0; + return ((base_process_class*)i_process)->state.init_state == 0; } inline process_profile_definition* fpcM_GetProfile(void* i_process) { diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc index f62a2e24a63..232e8417b0a 100644 --- a/src/d/actor/d_a_alink_demo.inc +++ b/src/d/actor/d_a_alink_demo.inc @@ -4229,7 +4229,7 @@ void daAlink_c::skipPortalObjWarp() { return; } - if (checkNoResetFlg3(FLG3_UNK_2000000) && + if (checkNoResetFlg3(FLG3_WARP_OBJ_DEMO) && (dComIfGp_TargetWarpPt_get() == 9 && dComIfGp_TransportWarp_check())) { dStage_changeScene(2, 0.0f, 0, fopAcM_GetRoomNo(this), shape_angle.y, -1); diff --git a/src/d/actor/d_a_e_zh.cpp b/src/d/actor/d_a_e_zh.cpp index 3bbd0249cef..7536a0e1e11 100644 --- a/src/d/actor/d_a_e_zh.cpp +++ b/src/d/actor/d_a_e_zh.cpp @@ -1201,7 +1201,7 @@ void daE_ZH_c::executeBgHitSHMove() { if (NREG_S(0) != 0) { OS_REPORT("mRetrunStartLine.x %f\n", mRetrunStartLine.x); - OS_REPORT("mRetrunEndLine.x %f\n". mRetrunEndLine.x); + OS_REPORT("mRetrunEndLine.x %f\n", mRetrunEndLine.x); OS_REPORT("mRetrunStartLine.z %f\n", mRetrunStartLine.z); OS_REPORT("mRetrunEndLine.z %f\n", mRetrunEndLine.z); OS_REPORT("\n"); diff --git a/src/d/actor/d_a_npc_jagar.cpp b/src/d/actor/d_a_npc_jagar.cpp index 298bde68477..322f56ad6a5 100644 --- a/src/d/actor/d_a_npc_jagar.cpp +++ b/src/d/actor/d_a_npc_jagar.cpp @@ -1314,7 +1314,7 @@ int daNpc_Jagar_c::wait(void* param_0) { if (chkSitMotion() || field_0x1002 != 0) { if (!daNpcT_chkEvtBit(0x235) && !daNpcT_chkEvtBit(0x87) && daNpcT_chkTmpBit(0x10)) { - if (daPy_getPlayerActorClass()->eventInfo.chkCondition(1) != 0 ? 1 : 0) { + if (daPy_getPlayerActorClass()->eventInfo.chkCondition(dEvtCnd_CANTALK_e) != 0 ? 1 : 0) { mEvtNo = 3; } } diff --git a/src/d/actor/d_a_npc_maro.cpp b/src/d/actor/d_a_npc_maro.cpp index 32636a27491..a5ec3bb04b1 100644 --- a/src/d/actor/d_a_npc_maro.cpp +++ b/src/d/actor/d_a_npc_maro.cpp @@ -3316,7 +3316,7 @@ int daNpc_Maro_c::arrowTutorial(void* ) { field_0xe33 = 1; } else { actor_p = (daTag_EvtArea_c*) mActorMngr[6].getActorP(); - if (actor_p != NULL && !(daPy_getPlayerActorClass()->eventInfo.chkCondition(1) == 0)) { + if (actor_p != NULL && !(daPy_getPlayerActorClass()->eventInfo.chkCondition(dEvtCnd_CANTALK_e) == 0)) { if (actor_p->chkPointInArea(daPy_getPlayerActorClass()->current.pos) == 0) { mEvtNo = 9; } diff --git a/src/d/actor/d_a_npc_moi.cpp b/src/d/actor/d_a_npc_moi.cpp index 58f97dc1570..aa235df6f08 100644 --- a/src/d/actor/d_a_npc_moi.cpp +++ b/src/d/actor/d_a_npc_moi.cpp @@ -1894,7 +1894,7 @@ int daNpc_Moi_c::walkOnEggshell(void* param_1) { if (field_0x1658) { field_0x1658 = injuryCheck(); if (field_0x1658) { - if (daPy_getPlayerActorClass()->eventInfo.chkCondition(1) != 0) { + if (daPy_getPlayerActorClass()->eventInfo.chkCondition(dEvtCnd_CANTALK_e) != 0) { f32 fVar = daPy_getPlayerActorClass()->attention_info.position.absXZ( attention_info.position); } diff --git a/src/d/actor/d_a_npc_uri.cpp b/src/d/actor/d_a_npc_uri.cpp index 868c212cce6..43d0cf7fed9 100644 --- a/src/d/actor/d_a_npc_uri.cpp +++ b/src/d/actor/d_a_npc_uri.cpp @@ -1491,7 +1491,7 @@ int daNpc_Uri_c::wait(void* param_0) { if (chkPointInArea(acStack_70, attention_info.position, 200.0f, fVar2, fVar3, 0)) { - if (daPy_getPlayerActorClass()->eventInfo.chkCondition(1) != 0 && + if (daPy_getPlayerActorClass()->eventInfo.chkCondition(dEvtCnd_CANTALK_e) != 0 && chkPlayerCarryBasket()) { mEvtNo = 5; @@ -1511,7 +1511,7 @@ int daNpc_Uri_c::wait(void* param_0) { daNpc_Uri_Param_c::m.field_0x5c, mCurAngle.y)) { if (!daPy_getPlayerActorClass()->checkPlayerFly()) { - if (daPy_getPlayerActorClass()->eventInfo.chkCondition(1) != 0) { + if (daPy_getPlayerActorClass()->eventInfo.chkCondition(dEvtCnd_CANTALK_e) != 0) { if (chkActorInSight(daPy_getPlayerActorClass(), mAttnFovY, home.angle.y)) { diff --git a/src/d/actor/d_a_obj_amiShutter.cpp b/src/d/actor/d_a_obj_amiShutter.cpp index 260ac60e7b8..9e7dc7a1a82 100644 --- a/src/d/actor/d_a_obj_amiShutter.cpp +++ b/src/d/actor/d_a_obj_amiShutter.cpp @@ -8,12 +8,6 @@ #include "c/c_damagereaction.h" #include "d/d_bg_w.h" -// -// Declarations: -// - -/* ############################################################################################## */ - UNK_REL_DATA /* 80BA14CC-80BA1514 0000EC 0048+00 1/1 0/0 0/0 .text __ct__18daAmiShutter_HIO_cFv */ diff --git a/src/d/actor/d_a_obj_lv6bemos.cpp b/src/d/actor/d_a_obj_lv6bemos.cpp index 37d25ae2773..7a08fb9956e 100644 --- a/src/d/actor/d_a_obj_lv6bemos.cpp +++ b/src/d/actor/d_a_obj_lv6bemos.cpp @@ -194,7 +194,7 @@ int daObjL6Bm_c::CreateHeap() { } #ifdef DEBUG - pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_0FF); + pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_OFF); JUT_ASSERT(660, pbtk != 0); #endif diff --git a/src/d/actor/d_a_obj_togeTrap.cpp b/src/d/actor/d_a_obj_togeTrap.cpp index cae00fa615c..546864d89e3 100644 --- a/src/d/actor/d_a_obj_togeTrap.cpp +++ b/src/d/actor/d_a_obj_togeTrap.cpp @@ -295,7 +295,7 @@ int daTogeTrap_c::Delete() { dComIfG_resDelete(&mPhase, "P_Toge"); #ifdef DEBUG - l_HIO.removeHIO(); + l_HIO.removeHIO(this); #endif return 1; diff --git a/src/d/actor/d_a_obj_twGate.cpp b/src/d/actor/d_a_obj_twGate.cpp index a3742dd8982..52cd9f8318f 100644 --- a/src/d/actor/d_a_obj_twGate.cpp +++ b/src/d/actor/d_a_obj_twGate.cpp @@ -4,124 +4,239 @@ */ #include "d/actor/d_a_obj_twGate.h" -#include "dol2asm.h" - - - - -// -// Forward References: -// - -extern "C" void __ct__14daTwGate_HIO_cFv(); -extern "C" void __dt__18fOpAcm_HIO_entry_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__10daTwGate_cFv(); -extern "C" void CreateHeap__10daTwGate_cFv(); -extern "C" void create__10daTwGate_cFv(); -extern "C" void __dt__8cM3dGLinFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void Execute__10daTwGate_cFPPA3_A4_f(); -extern "C" void Draw__10daTwGate_cFv(); -extern "C" void Delete__10daTwGate_cFv(); -extern "C" static void daTwGate_Draw__FP10daTwGate_c(); -extern "C" static void daTwGate_Execute__FP10daTwGate_c(); -extern "C" static void daTwGate_Delete__FP10daTwGate_c(); -extern "C" static void daTwGate_Create__FP10fopAc_ac_c(); -extern "C" void __dt__14daTwGate_HIO_cFv(); -extern "C" void __sinit_d_a_obj_twGate_cpp(); -extern "C" extern char const* const d_a_obj_twGate__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void isDarkClearLV__21dSv_player_status_b_cCFi(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool Create__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void cM3d_Len3dSqPntAndSegLine__FPC8cM3dGLinPC3VecP3VecPf(); -extern "C" void SetStartEnd__8cM3dGLinFRC3VecRC3Vec(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D20308-80D2030C 000000 0004+00 4/4 0/0 0/0 .rodata @3638 */ -SECTION_RODATA static f32 const lit_3638 = 1900.0f; -COMPILER_STRIP_GATE(0x80D20308, &lit_3638); - -/* 80D20554-80D20554 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D20554 = "twGtFiro"; -SECTION_DEAD static char const* const stringBase_80D2055D = "twGtK0102"; -SECTION_DEAD static char const* const stringBase_80D20567 = "twGtK0709"; -SECTION_DEAD static char const* const stringBase_80D20571 = ""; -SECTION_DEAD static char const* const stringBase_80D20572 = "twGnFiro"; -SECTION_DEAD static char const* const stringBase_80D2057B = "twGnK0102"; -SECTION_DEAD static char const* const stringBase_80D20585 = "twGnK0709"; -SECTION_DEAD static char const* const stringBase_80D2058F = "twGnK079b"; -SECTION_DEAD static char const* const stringBase_80D20599 = "twGnK1415"; -SECTION_DEAD static char const* const stringBase_80D205A3 = "twGnK0616"; -#pragma pop +#include "d/d_com_inf_game.h" /* 80D205B0-80D205E4 -00001 0034+00 3/3 0/0 0/0 .data l_resNameIdx */ -SECTION_DATA static void* l_resNameIdx[13] = { - (void*)&d_a_obj_twGate__stringBase0, - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x9), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x13), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x1D), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x1D), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x1D), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x1E), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x27), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x31), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x3B), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x45), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x4F), - (void*)(((char*)&d_a_obj_twGate__stringBase0) + 0x1D), +static char* l_resNameIdx[13] = { + "twGtFiro", + "twGtK0102", + "twGtK0709", + "", + "", + "", + "twGnFiro", + "twGnK0102", + "twGnK0709", + "twGnK079b", + "twGnK1415", + "twGnK0616", + "", }; +/* 80D1FAAC-80D1FAE0 0000EC 0034+00 1/1 0/0 0/0 .text __ct__14daTwGate_HIO_cFv */ +daTwGate_HIO_c::daTwGate_HIO_c() { + mRange = 1900.0f; +} + +#ifdef DEBUG +void daTwGate_HIO_c::genMessage(JORMContext* ctx) { + // Range + ctx->genSlider("範囲", &mRange, 0.0f, 500000.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); +} +#endif + +/* 80D1FB84-80D1FC0C 0001C4 0088+00 2/2 0/0 0/0 .text setBaseMtx__10daTwGate_cFv */ +void daTwGate_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(current.angle.x, current.angle.y, current.angle.z); + mModel->setBaseScale(scale); + mModel->setBaseTRMtx(mDoMtx_stack_c::get()); +} + +/* ############################################################################################## */ +/* 80D2030C-80D20340 000004 0034+00 0/2 0/0 0/0 .rodata l_bmdIdx */ +static int const l_bmdIdx[13] = { + 6, 6, 6, -1, -1, -1, 6, 6, 6, 6, 6, 6, -1, +}; + +/* 80D20340-80D20374 000038 0034+00 0/1 0/0 0/0 .rodata l_dzbIdx */ +static u32 const l_dzbIdx[13] = { + 15, 15, 15, -1, -1, -1, 15, 15, 15, 15, 15, 15, -1, +}; + +/* 80D20374-80D203A8 00006C 0034+00 0/1 0/0 0/0 .rodata l_btkIdx */ +static u32 const l_btkIdx[13] = { + 12, 12, 12, -1, -1, -1, 12, 12, 12, 12, 12, 12, -1, +}; + +/* 80D203A8-80D203DC 0000A0 0034+00 0/1 0/0 0/0 .rodata l_brkIdx */ +static u32 const l_brkIdx[13] = { + 9, 9, 9, -1, -1, -1, 9, 9, 9, 9, 9, 9, -1, +}; + +/* 80D203DC-80D20410 0000D4 0034+00 0/2 0/0 0/0 .rodata l_twFlagIdx */ +static u32 const l_twFlagIdx[13] = { + 0, 1, 2, 4, -1, -1, 0, 1, 1, 2, 2, 4, 4, +}; + +/* 80D20410-80D204AC 000108 009C+00 0/1 0/0 0/0 .rodata l_cheeckPos0 */ +static Vec const l_cheeckPos0[13] = { + {-572.6072f, 314.9037f, -20792.293f}, + {-24536.904f, -7234.991f, 73427.242f}, + {3821.4783f, 4674.5557f, -59714.414f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {-23484.578f, -7201.7114f, 73893.843f}, + {2943.5786f, 4804.4688f, -60534.016f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, +}; + +/* 80D204AC-80D20548 0001A4 009C+00 0/1 0/0 0/0 .rodata l_cheeckPos1 */ +static Vec const l_cheeckPos1[13] = { + {-178.19418f, 308.69842f, -20657.326f}, + {-23610.3066f, -7234.9912f, 74043.75f}, + {2953.5532f, 4674.5556f, -60520.844f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {-24473.582, -7201.7114f, 73296.75f}, + {3821.1848f, 4804.4687f, -59707.8515f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, +}; + +/* 80D1FC0C-80D1FD44 00024C 0138+00 1/0 0/0 0/0 .text CreateHeap__10daTwGate_cFv */ +int daTwGate_c::CreateHeap() { + J3DModelData* modelData = + (J3DModelData*)dComIfG_getObjectRes(l_resNameIdx[mGateType], l_bmdIdx[mGateType]); + JUT_ASSERT(292, modelData != 0); + mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); + if (mModel == NULL) { + return 0; + } + ; + int res = mBtk.init(modelData, (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_resNameIdx[mGateType], l_btkIdx[mGateType]), 1, 2, 1.0f, 0, -1); + JUT_ASSERT(309, res == 1); + + res = mBrk.init(modelData, (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_resNameIdx[mGateType], l_brkIdx[mGateType]), 1, 0, 1.0f, 0, -1); + JUT_ASSERT(317, res == 1); + return 1; +} + +/* 80D206AC-80D206B4 000014 0008+00 2/2 0/0 0/0 .bss l_HIO */ +static daTwGate_HIO_c l_HIO; + +/* 80D1FD44-80D1FF14 000384 01D0+00 1/1 0/0 0/0 .text create__10daTwGate_cFv */ +int daTwGate_c::create() { + fopAcM_SetupActor(this, daTwGate_c); + mGateType = getGateType(); + if (l_bmdIdx[mGateType] == -1) { + // Twilight gate: Invalid argument. + OS_REPORT("=== トワイライトゲート:無効な引数です (%d) ===\n", mGateType); + return cPhs_ERROR_e; + } + + if (dComIfGs_isDarkClearLV(l_twFlagIdx[mGateType]) == TRUE) { + return cPhs_ERROR_e; + } + + int rv = dComIfG_resLoad(&mPhase, l_resNameIdx[mGateType]); + if (rv == cPhs_COMPLEATE_e) { + if (MoveBGCreate(l_resNameIdx[mGateType], l_dzbIdx[mGateType], + dBgS_MoveBGProc_TypicalRotY, 0x22a0, NULL) == cPhs_ERROR_e) { + return cPhs_ERROR_e; + } + + setBaseMtx(); + fopAcM_SetMtx(this, mModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mModel->getModelData()); + mLine.SetStartEnd(l_cheeckPos0[mGateType], l_cheeckPos1[mGateType]); + mBrk.setPlaySpeed(-1.0f); + + #ifdef DEBUG + // Twilight Gate + l_HIO.entryHIO("トワイライトゲート"); + #endif + } + return rv; +} + +/* 80D1FFA4-80D200B4 0005E4 0110+00 1/0 0/0 0/0 .text Execute__10daTwGate_cFPPA3_A4_f */ +int daTwGate_c::Execute(Mtx** i_mtx) { + if (dComIfGs_isDarkClearLV(l_twFlagIdx[mGateType]) == TRUE) { + fopAcM_delete(this); + } + cXyz cStack_34; + f32 local_38; + bool res = cM3d_Len3dSqPntAndSegLine(&mLine, &dComIfGp_getPlayer(0)->current.pos, &cStack_34, &local_38); + f32 fVar1 = JMAFastSqrt(local_38); + if (fVar1 <= l_HIO.mRange) { + if (mBrk.getPlaySpeed() != 1.0f) { + mBrk.setPlaySpeed(1.0f); + } + } else { + if (mBrk.getPlaySpeed() != -1.0f) { + mBrk.setPlaySpeed(-1.0f); + } + } + mBtk.play(); + mBrk.play(); + *i_mtx = &mModel->getBaseTRMtx(); + setBaseMtx(); + return 1; +} + +/* 80D200B4-80D20180 0006F4 00CC+00 1/0 0/0 0/0 .text Draw__10daTwGate_cFv */ +int daTwGate_c::Draw() { + g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mModel, &tevStr); + dComIfGd_setListDarkBG(); + mDoExt_modelUpdateDL(mModel); + dComIfGd_setList(); + J3DModelData* modelData = mModel->getModelData(); + mBtk.entry(modelData); + mBrk.entry(modelData); + return 1; +} + +/* 80D20180-80D201C0 0007C0 0040+00 1/0 0/0 0/0 .text Delete__10daTwGate_cFv */ +int daTwGate_c::Delete() { + dComIfG_resDelete(&mPhase, l_resNameIdx[mGateType]); + + #ifdef DEBUG + l_HIO.removeHIO(this); + #endif + + return 1; +} + +/* 80D201C0-80D201EC 000800 002C+00 1/0 0/0 0/0 .text daTwGate_Draw__FP10daTwGate_c */ +static int daTwGate_Draw(daTwGate_c* i_this) { + return i_this->MoveBGDraw(); +} + +/* 80D201EC-80D2020C 00082C 0020+00 1/0 0/0 0/0 .text daTwGate_Execute__FP10daTwGate_c */ +static int daTwGate_Execute(daTwGate_c* i_this) { + return i_this->MoveBGExecute(); +} + +/* 80D2020C-80D2022C 00084C 0020+00 1/0 0/0 0/0 .text daTwGate_Delete__FP10daTwGate_c */ +static int daTwGate_Delete(daTwGate_c* i_this) { + fopAcM_RegisterDeleteID(i_this, "daTwGate"); + return i_this->MoveBGDelete(); +} + +/* 80D2022C-80D2024C 00086C 0020+00 1/0 0/0 0/0 .text daTwGate_Create__FP10fopAc_ac_c */ +static int daTwGate_Create(fopAc_ac_c* i_this) { + fopAcM_RegisterCreateID(daTwGate_c, i_this, "daTwGate"); + return a_this->create(); +} + /* 80D205E4-80D20604 -00001 0020+00 1/0 0/0 0/0 .data l_daTwGate_Method */ static actor_method_class l_daTwGate_Method = { - (process_method_func)daTwGate_Create__FP10fopAc_ac_c, - (process_method_func)daTwGate_Delete__FP10daTwGate_c, - (process_method_func)daTwGate_Execute__FP10daTwGate_c, - 0, - (process_method_func)daTwGate_Draw__FP10daTwGate_c, + (process_method_func)daTwGate_Create, + (process_method_func)daTwGate_Delete, + (process_method_func)daTwGate_Execute, + NULL, + (process_method_func)daTwGate_Draw, }; /* 80D20604-80D20634 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TwGate */ @@ -142,278 +257,4 @@ extern actor_process_profile_definition g_profile_Obj_TwGate = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80D20634-80D20640 000084 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGLin */ -SECTION_DATA extern void* __vt__8cM3dGLin[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGLinFv, -}; - -/* 80D20640-80D2064C 000090 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80D2064C-80D20674 00009C 0028+00 1/1 0/0 0/0 .data __vt__10daTwGate_c */ -SECTION_DATA extern void* __vt__10daTwGate_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__10daTwGate_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__10daTwGate_cFPPA3_A4_f, - (void*)Draw__10daTwGate_cFv, - (void*)Delete__10daTwGate_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80D20674-80D20680 0000C4 000C+00 2/2 0/0 0/0 .data __vt__14daTwGate_HIO_c */ -SECTION_DATA extern void* __vt__14daTwGate_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daTwGate_HIO_cFv, -}; - -/* 80D20680-80D2068C 0000D0 000C+00 3/3 0/0 0/0 .data __vt__18fOpAcm_HIO_entry_c */ -SECTION_DATA extern void* __vt__18fOpAcm_HIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18fOpAcm_HIO_entry_cFv, -}; - -/* 80D2068C-80D20698 0000DC 000C+00 4/4 0/0 0/0 .data __vt__14mDoHIO_entry_c */ -SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14mDoHIO_entry_cFv, -}; - -/* 80D1FAAC-80D1FAE0 0000EC 0034+00 1/1 0/0 0/0 .text __ct__14daTwGate_HIO_cFv */ -daTwGate_HIO_c::daTwGate_HIO_c() { - // NONMATCHING -} - -/* 80D1FAE0-80D1FB3C 000120 005C+00 1/0 0/0 0/0 .text __dt__18fOpAcm_HIO_entry_cFv */ -// fOpAcm_HIO_entry_c::~fOpAcm_HIO_entry_c() { -extern "C" void __dt__18fOpAcm_HIO_entry_cFv() { - // NONMATCHING -} - -/* 80D1FB3C-80D1FB84 00017C 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */ -// mDoHIO_entry_c::~mDoHIO_entry_c() { -extern "C" void __dt__14mDoHIO_entry_cFv() { - // NONMATCHING -} - -/* 80D1FB84-80D1FC0C 0001C4 0088+00 2/2 0/0 0/0 .text setBaseMtx__10daTwGate_cFv */ -void daTwGate_c::setBaseMtx() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D2030C-80D20340 000004 0034+00 0/2 0/0 0/0 .rodata l_bmdIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_bmdIdx[52] = { - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80D2030C, &l_bmdIdx); -#pragma pop - -/* 80D20340-80D20374 000038 0034+00 0/1 0/0 0/0 .rodata l_dzbIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_dzbIdx[52] = { - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, - 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80D20340, &l_dzbIdx); -#pragma pop - -/* 80D20374-80D203A8 00006C 0034+00 0/1 0/0 0/0 .rodata l_btkIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_btkIdx[52] = { - 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, - 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80D20374, &l_btkIdx); -#pragma pop - -/* 80D203A8-80D203DC 0000A0 0034+00 0/1 0/0 0/0 .rodata l_brkIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_brkIdx[52] = { - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80D203A8, &l_brkIdx); -#pragma pop - -/* 80D203DC-80D20410 0000D4 0034+00 0/2 0/0 0/0 .rodata l_twFlagIdx */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_twFlagIdx[52] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, -}; -COMPILER_STRIP_GATE(0x80D203DC, &l_twFlagIdx); -#pragma pop - -/* 80D20410-80D204AC 000108 009C+00 0/1 0/0 0/0 .rodata l_cheeckPos0 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_cheeckPos0[156] = { - 0xC4, 0x0F, 0x26, 0xDC, 0x43, 0x9D, 0x73, 0xAC, 0xC6, 0xA2, 0x70, 0x96, 0xC6, 0xBF, 0xB1, 0xCF, - 0xC5, 0xE2, 0x17, 0xEE, 0x47, 0x8F, 0x69, 0x9F, 0x45, 0x6E, 0xD7, 0xA7, 0x45, 0x92, 0x14, 0x72, - 0xC7, 0x69, 0x42, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC6, 0xB7, 0x79, 0x28, 0xC5, 0xE1, 0x0D, 0xB1, 0x47, 0x90, 0x52, 0xEC, - 0x45, 0x37, 0xF9, 0x42, 0x45, 0x96, 0x23, 0xC0, 0xC7, 0x6C, 0x76, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D20410, &l_cheeckPos0); -#pragma pop - -/* 80D204AC-80D20548 0001A4 009C+00 0/1 0/0 0/0 .rodata l_cheeckPos1 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_cheeckPos1[156] = { - 0xC3, 0x32, 0x31, 0xB6, 0x43, 0x9A, 0x59, 0x66, 0xC6, 0xA1, 0x62, 0xA7, 0xC6, 0xB8, 0x74, 0x9D, - 0xC5, 0xE2, 0x17, 0xEE, 0x47, 0x90, 0x9D, 0xE0, 0x45, 0x38, 0x98, 0xDA, 0x45, 0x92, 0x14, 0x72, - 0xC7, 0x6C, 0x68, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC6, 0xBF, 0x33, 0x2A, 0xC5, 0xE1, 0x0D, 0xB1, 0x47, 0x8F, 0x28, 0x60, - 0x45, 0x6E, 0xD2, 0xF5, 0x45, 0x96, 0x23, 0xC0, 0xC7, 0x69, 0x3B, 0xDA, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D204AC, &l_cheeckPos1); -#pragma pop - -/* 80D20548-80D2054C 000240 0004+00 0/2 0/0 0/0 .rodata @3693 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3693 = 1.0f; -COMPILER_STRIP_GATE(0x80D20548, &lit_3693); -#pragma pop - -/* 80D1FC0C-80D1FD44 00024C 0138+00 1/0 0/0 0/0 .text CreateHeap__10daTwGate_cFv */ -void daTwGate_c::CreateHeap() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D2054C-80D20550 000244 0004+00 0/2 0/0 0/0 .rodata @3769 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3769 = -1.0f; -COMPILER_STRIP_GATE(0x80D2054C, &lit_3769); -#pragma pop - -/* 80D1FD44-80D1FF14 000384 01D0+00 1/1 0/0 0/0 .text create__10daTwGate_cFv */ -void daTwGate_c::create() { - // NONMATCHING -} - -/* 80D1FF14-80D1FF5C 000554 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGLinFv */ -// cM3dGLin::~cM3dGLin() { -extern "C" void __dt__8cM3dGLinFv() { - // NONMATCHING -} - -/* 80D1FF5C-80D1FFA4 00059C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D20550-80D20554 000248 0004+00 0/1 0/0 0/0 .rodata @3837 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3837[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D20550, &lit_3837); -#pragma pop - -/* 80D206A0-80D206AC 000008 000C+00 1/1 0/0 0/0 .bss @3630 */ -static u8 lit_3630[12]; - -/* 80D206AC-80D206B4 000014 0008+00 2/2 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[8]; - -/* 80D1FFA4-80D200B4 0005E4 0110+00 1/0 0/0 0/0 .text Execute__10daTwGate_cFPPA3_A4_f */ -void daTwGate_c::Execute(f32 (**param_0)[3][4]) { - // NONMATCHING -} - -/* 80D200B4-80D20180 0006F4 00CC+00 1/0 0/0 0/0 .text Draw__10daTwGate_cFv */ -void daTwGate_c::Draw() { - // NONMATCHING -} - -/* 80D20180-80D201C0 0007C0 0040+00 1/0 0/0 0/0 .text Delete__10daTwGate_cFv */ -void daTwGate_c::Delete() { - // NONMATCHING -} - -/* 80D201C0-80D201EC 000800 002C+00 1/0 0/0 0/0 .text daTwGate_Draw__FP10daTwGate_c */ -static void daTwGate_Draw(daTwGate_c* param_0) { - // NONMATCHING -} - -/* 80D201EC-80D2020C 00082C 0020+00 1/0 0/0 0/0 .text daTwGate_Execute__FP10daTwGate_c */ -static void daTwGate_Execute(daTwGate_c* param_0) { - // NONMATCHING -} - -/* 80D2020C-80D2022C 00084C 0020+00 1/0 0/0 0/0 .text daTwGate_Delete__FP10daTwGate_c */ -static void daTwGate_Delete(daTwGate_c* param_0) { - // NONMATCHING -} - -/* 80D2022C-80D2024C 00086C 0020+00 1/0 0/0 0/0 .text daTwGate_Create__FP10fopAc_ac_c */ -static void daTwGate_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80D2024C-80D202B8 00088C 006C+00 2/1 0/0 0/0 .text __dt__14daTwGate_HIO_cFv */ -daTwGate_HIO_c::~daTwGate_HIO_c() { - // NONMATCHING -} - -/* 80D202B8-80D202F4 0008F8 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_twGate_cpp */ -void __sinit_d_a_obj_twGate_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80D202B8, __sinit_d_a_obj_twGate_cpp); -#pragma pop - /* 80D20554-80D20554 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_volcbom.cpp b/src/d/actor/d_a_obj_volcbom.cpp index 14adf2043f2..6e18b5d4e00 100644 --- a/src/d/actor/d_a_obj_volcbom.cpp +++ b/src/d/actor/d_a_obj_volcbom.cpp @@ -4,312 +4,84 @@ */ #include "d/actor/d_a_obj_volcbom.h" +#include "d/actor/d_a_midna.h" +#include "d/actor/d_a_player.h" +#include "d/d_bg_w.h" +#include "d/d_s_play.h" +#include "d/d_debug_viewer.h" #include "d/d_cc_d.h" -#include "dol2asm.h" +#include "d/d_com_inf_game.h" +#include "d/d_meter2_info.h" +#ifdef DEBUG +daObjVolcBom_HIO_c::daObjVolcBom_HIO_c() { -// -// Forward References: -// +} -extern "C" static void eventCallBack__FPvi(); -extern "C" void initBaseMtx__14daObjVolcBom_cFv(); -extern "C" void setBaseMtx__14daObjVolcBom_cFv(); -extern "C" void Create__14daObjVolcBom_cFv(); -extern "C" void CreateHeap__14daObjVolcBom_cFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void create1st__14daObjVolcBom_cFv(); -extern "C" void Execute__14daObjVolcBom_cFPPA3_A4_f(); -extern "C" void mode_proc_call__14daObjVolcBom_cFv(); -extern "C" void init_modeWaitAppear__14daObjVolcBom_cFv(); -extern "C" void modeWaitAppear__14daObjVolcBom_cFv(); -extern "C" void init_modeFall__14daObjVolcBom_cFv(); -extern "C" void modeFall__14daObjVolcBom_cFv(); -extern "C" void init_modeWaitEndFallDemo__14daObjVolcBom_cFv(); -extern "C" void modeWaitEndFallDemo__14daObjVolcBom_cFv(); -extern "C" void init_modeWait__14daObjVolcBom_cFv(); -extern "C" void modeWait__14daObjVolcBom_cFv(); -extern "C" void clrDzb__14daObjVolcBom_cFv(); -extern "C" void setDzb__14daObjVolcBom_cFv(); -extern "C" void appear__14daObjVolcBom_cFv(); -extern "C" void disappear__14daObjVolcBom_cFv(); -extern "C" void setSmoke__14daObjVolcBom_cFv(); -extern "C" void checkTalkDistance__14daObjVolcBom_cFv(); -extern "C" void calcMidnaWaitPos__14daObjVolcBom_cFv(); -extern "C" void setSrcEffect__14daObjVolcBom_cFv(); -extern "C" void setBindEffect__14daObjVolcBom_cFv(); -extern "C" void followBindEffect__14daObjVolcBom_cFv(); -extern "C" void endBindEffect__14daObjVolcBom_cFv(); -extern "C" void followSrcEffect__14daObjVolcBom_cFv(); -extern "C" void endSrcEffect__14daObjVolcBom_cFv(); -extern "C" void event_proc_call__14daObjVolcBom_cFv(); -extern "C" void orderZHintEvent__14daObjVolcBom_cFv(); -extern "C" void actionWait__14daObjVolcBom_cFv(); -extern "C" void actionOrderEvent__14daObjVolcBom_cFv(); -extern "C" void actionOrderATalkEvent__14daObjVolcBom_cFv(); -extern "C" void actionTalkEvent__14daObjVolcBom_cFv(); -extern "C" void actionWarpEvent__14daObjVolcBom_cFv(); -extern "C" void actionDead__14daObjVolcBom_cFv(); -extern "C" void demoProc__14daObjVolcBom_cFv(); -extern "C" void calcObjPos__14daObjVolcBom_cFv(); -extern "C" void Draw__14daObjVolcBom_cFv(); -extern "C" void Delete__14daObjVolcBom_cFv(); -extern "C" static void daObjVolcBom_create1st__FP14daObjVolcBom_c(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" static void daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c(); -extern "C" static void daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c(); -extern "C" static void daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void func_80D26B28(void* _this, u8*); -extern "C" static void func_80D26B44(); -extern "C" static void func_80D26B4C(); -extern "C" extern char const* const d_a_obj_volcbom__stringBase0; +void daObjVolcBom_HIO_c::genMessage(JORMContext* ctx) { -// -// External References: -// +} -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void transM__14mDoMtx_stack_cFfff(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb(); -extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_btkAnmRemove__FP12J3DModelData(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void dComIfGp_TargetWarpPt_set__FUc(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii(); -extern "C" void setPt2__14dEvt_control_cFPv(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc(); -extern "C" void startCheck__16dEvent_manager_cFs(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void getRunEventName__16dEvent_manager_cFv(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void request__10dAttHint_cFP10fopAc_ac_ci(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); -extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); -extern "C" void getEventId__10dMsgFlow_cFPi(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void ChkUsed__9cBgW_BgIdCFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void func_802807E0(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void getName__10JUTNameTabCFUs(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" extern u8 g_meter2_info[248]; -extern "C" f32 mGroundY__11fopAcM_gc_c; -extern "C" u8 m_midnaActor__9daPy_py_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" extern u8 struct_80D26EA8[4]; - -// -// Declarations: -// +static daObjVolcBom_HIO_c l_HIO; +#endif /* 80D24198-80D241E0 000078 0048+00 1/1 0/0 0/0 .text eventCallBack__FPvi */ -static void eventCallBack(void* param_0, int param_1) { - // NONMATCHING +static int eventCallBack(void* param_1, int param_2) { + daPy_py_c* player = daPy_getPlayerActorClass(); + if (param_1 != 0) { + player->skipPortalObjWarp(); + } + return 1; } /* 80D241E0-80D24238 0000C0 0058+00 1/1 0/0 0/0 .text initBaseMtx__14daObjVolcBom_cFv */ void daObjVolcBom_c::initBaseMtx() { - // NONMATCHING + mModel1->setBaseScale(scale); + mModel2->setBaseScale(scale); + setBaseMtx(); } /* 80D24238-80D242A8 000118 0070+00 2/2 0/0 0/0 .text setBaseMtx__14daObjVolcBom_cFv */ void daObjVolcBom_c::setBaseMtx() { - // NONMATCHING + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mModel1->setBaseTRMtx(mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx); + mModel2->setBaseTRMtx(mDoMtx_stack_c::get()); } -/* ############################################################################################## */ /* 80D26B5C-80D26B68 000000 000C+00 9/9 0/0 0/0 .rodata l_midna_offset */ -SECTION_RODATA static u8 const l_midna_offset[12] = { - 0x00, 0x00, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static Vec const l_midna_offset = { + 0.0f, 1000.0f, 0.0f, }; -COMPILER_STRIP_GATE(0x80D26B5C, &l_midna_offset); /* 80D26B68-80D26B6C 00000C 0002+02 0/1 0/0 0/0 .rodata l_disapp_eff */ -#pragma push -#pragma force_active on -SECTION_RODATA static u16 const l_disapp_eff[1 + 1 /* padding */] = { - 0x8B30, - /* padding */ - 0x0000, -}; -COMPILER_STRIP_GATE(0x80D26B68, &l_disapp_eff); -#pragma pop +static u16 const l_disapp_eff[1] = { 0x8B30 }; /* 80D26B6C-80D26B74 000010 0006+02 0/1 0/0 0/0 .rodata l_start_eff */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_start_eff[6 + 2 /* padding */] = { - 0x8B, - 0x31, - 0x8B, - 0x32, - 0x8B, - 0x33, - /* padding */ - 0x00, - 0x00, +static u16 const l_start_eff[3] = { + 0x8B31, + 0x8B32, + 0x8B33, }; -COMPILER_STRIP_GATE(0x80D26B6C, &l_start_eff); -#pragma pop /* 80D26B74-80D26B7C 000018 0008+00 1/1 0/0 0/0 .rodata l_bind_eff */ -SECTION_RODATA static u8 const l_bind_eff[8] = { - 0x8B, 0x47, 0x8B, 0x48, 0x8B, 0x49, 0x8B, 0x4A, -}; -COMPILER_STRIP_GATE(0x80D26B74, &l_bind_eff); - -/* 80D26B7C-80D26B80 000020 0004+00 4/11 0/0 0/0 .rodata @3785 */ -SECTION_RODATA static f32 const lit_3785 = 1.0f; -COMPILER_STRIP_GATE(0x80D26B7C, &lit_3785); - -/* 80D26B80-80D26B84 000024 0004+00 0/1 0/0 0/0 .rodata @3786 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3786 = 30.0f; -COMPILER_STRIP_GATE(0x80D26B80, &lit_3786); -#pragma pop - -/* 80D26B84-80D26B88 000028 0004+00 0/1 0/0 0/0 .rodata @3787 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3787 = -6.0f; -COMPILER_STRIP_GATE(0x80D26B84, &lit_3787); -#pragma pop - -/* 80D26B88-80D26B8C 00002C 0004+00 1/2 0/0 0/0 .rodata @3788 */ -SECTION_RODATA static f32 const lit_3788 = 10.0f; -COMPILER_STRIP_GATE(0x80D26B88, &lit_3788); - -/* 80D26C0C-80D26C0C 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D26C0C = "M_VolcBom"; -SECTION_DEAD static char const* const stringBase_80D26C16 = "PORTAL_WARP_BIGVOLC"; -SECTION_DEAD static char const* const stringBase_80D26C2A = "BigVolc"; -SECTION_DEAD static char const* const stringBase_80D26C32 = "effect_p"; -#pragma pop - -/* 80D26C54-80D26C60 000000 000C+00 3/3 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, +static u16 const l_bind_eff[4] = { + 0x8B47, 0x8B48, 0x8B49, 0x8B4A, }; -/* 80D26C60-80D26C74 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop +UNK_REL_DATA /* 80D26C74-80D26C78 -00001 0004+00 5/6 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_volcbom__stringBase0; +static char* l_arcName = "M_VolcBom"; /* 80D26C78-80D26C7C -00001 0004+00 0/1 0/0 0/0 .data l_portal_warp_name */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_portal_warp_name = - (void*)(((char*)&d_a_obj_volcbom__stringBase0) + 0xA); -#pragma pop +static char* l_portal_warp_name = "PORTAL_WARP_BIGVOLC"; /* 80D26C7C-80D26C80 -00001 0004+00 2/2 0/0 0/0 .data l_staff_name */ -SECTION_DATA static void* l_staff_name = (void*)(((char*)&d_a_obj_volcbom__stringBase0) + 0x1E); +static char* l_staff_name = "BigVolc"; /* 80D26C80-80D26CC4 00002C 0044+00 0/1 0/0 0/0 .data l_cyl_src */ -#pragma push -#pragma force_active on static dCcD_SrcCyl l_cyl_src = { { {0x0, {{AT_TYPE_CSTATUE_SWING, 0x1, 0x1f}, {0x0, 0x10}, 0x78}}, // mObj @@ -323,169 +95,859 @@ static dCcD_SrcCyl l_cyl_src = { 1500.0f // mHeight } // mCyl }; -#pragma pop /* 80D242A8-80D244E0 000188 0238+00 1/0 0/0 0/0 .text Create__14daObjVolcBom_cFv */ -void daObjVolcBom_c::Create() { - // NONMATCHING +int daObjVolcBom_c::Create() { + int swbit = getSwbit(); + if (fopAcM_isSwitch(this, swbit)) { + mBaseScale = 1.0f; + setSmoke(); + init_modeWait(); + } else { + init_modeWaitAppear(); + } + initBaseMtx(); + fopAcM_SetMtx(this, mModel1->getBaseTRMtx()); + mAcchCir.SetWall(30.0f, 30.0f); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, + &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL); + mStts.Init(0xff, 0xff, this); + mCyl.Set(l_cyl_src); + mCyl.SetStts(&mStts); + fopAcM_setCullSizeBox2(this, mModel1->getModelData()); + fopAcM_SetGravity(this, -6.0f); + fopAcM_setCullSizeFar(this, 10.0f); + attention_info.distances[fopAc_attn_TALK_e] = 0x36; + attention_info.distances[fopAc_attn_SPEAK_e] = 0x36; + eventInfo.setArchiveName(l_arcName); + mEventId = dComIfGp_getEventManager().getEventIdx(this, l_portal_warp_name, 0xff); + JUTNameTab* nameTab = mModel1->getModelData()->getJointTree().getJointName(); + mEffectJntNo = 0xffff; + for (u16 i = 0; i < mModel1->getModelData()->getJointNum(); i++) { + if (strcmp(nameTab->getName(i), "effect_p") == 0) { + mEffectJntNo = i; + break; + } + } + + #ifdef DEBUG + if (mEffectJntNo != 0xffff) { + mBtk1->entry(mModel1->getModelData()); + mModel1->calcMaterial(); + mBtk1->init(mModel1->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 20), 0, 2, 1.0f, 0, -1); + } else { + // Large volcanic bombs; joint effect_p was not found! + OS_REPORT_ERROR("大火山弾;ジョイント effect_p が見つかりませんでした\n"); + } + return mEffectJntNo != 0xffff; + #else + mBtk1->entry(mModel1->getModelData()); + mModel1->calcMaterial(); + mBtk1->init(mModel1->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 20), 0, 2, 1.0f, 0, -1); + return 1; + #endif } -/* ############################################################################################## */ -/* 80D26B8C-80D26B90 000030 0004+00 1/6 0/0 0/0 .rodata @3904 */ -SECTION_RODATA static u8 const lit_3904[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D26B8C, &lit_3904); +/* 80D244E0-80D248AC 0003C0 03CC+00 1/0 0/0 0/0 .text CreateHeap__14daObjVolcBom_cFv */ +int daObjVolcBom_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 12); + JUT_ASSERT(389, modelData != 0); + mModel1 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); + if (mModel1 == NULL) { + return 0; + } -/* 80D26C0C-80D26C0C 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D26C3B = "WAIT"; -SECTION_DEAD static char const* const stringBase_80D26C40 = "FLY"; -SECTION_DEAD static char const* const stringBase_80D26C44 = "INIT"; -SECTION_DEAD static char const* const stringBase_80D26C49 = "BEAM"; -#pragma pop + J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 16); + JUT_ASSERT(403, pbrk != 0); + mBrk1 = new mDoExt_brkAnm(); + if (mBrk1 == NULL || !mBrk1->init(modelData, pbrk, 1, 2, 1.0f, 0, -1)) { + return 0; + } -/* 80D26CC4-80D26CD0 -00001 000C+00 0/1 0/0 0/0 .data @3933 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3933[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWaitAppear__14daObjVolcBom_cFv, -}; -#pragma pop + J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 21); + JUT_ASSERT(416, pbtk != 0); + mBtk1 = new mDoExt_btkAnm(); + if (mBtk1 == NULL || !mBtk1->init(modelData, pbtk, 1, 2, 1.0f, 0, -1)) { + return 0; + } -/* 80D26CD0-80D26CDC -00001 000C+00 0/1 0/0 0/0 .data @3934 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3934[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeFall__14daObjVolcBom_cFv, -}; -#pragma pop + J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 8); + JUT_ASSERT(428, pbck != 0); + mBck1 = new mDoExt_bckAnm(); + if (mBck1 == NULL || !mBck1->init(pbck, 1, 0, 1.0f, 0, -1, false)) { + return 0; + } -/* 80D26CDC-80D26CE8 -00001 000C+00 0/1 0/0 0/0 .data @3935 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3935[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWaitEndFallDemo__14daObjVolcBom_cFv, -}; -#pragma pop + field_0x5cb = false; + modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 11); + JUT_ASSERT(443, modelData != 0); + mModel2 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); + if (mModel2 == NULL) { + return 0; + } -/* 80D26CE8-80D26CF4 -00001 000C+00 0/1 0/0 0/0 .data @3936 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3936[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWait__14daObjVolcBom_cFv, -}; -#pragma pop + pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 15); + JUT_ASSERT(457, pbrk != 0); + mBrk2 = new mDoExt_brkAnm(); + if (mBrk2 == NULL || !mBrk2->init(modelData, pbrk, 1, 0, 1.0f, 0, -1)) { + return 0; + } -/* 80D26CF4-80D26D24 0000A0 0030+00 0/1 0/0 0/0 .data mode_proc$3932 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 mode_proc[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop + mBrk2->setPlaySpeed(0.0f); + pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 19); + JUT_ASSERT(471, pbtk != 0); + mBtk2 = new mDoExt_btkAnm(); + if (mBtk2 == NULL || !mBtk2->init(modelData, pbtk, 1, 2, 1.0f, 0, -1)) { + return 0; + } + mBtk2->setPlaySpeed(0.0f); + return 1; +} -/* 80D26D24-80D26D30 -00001 000C+00 0/1 0/0 0/0 .data @4366 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4366[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionWait__14daObjVolcBom_cFv, -}; -#pragma pop +/* 80D248F4-80D249D0 0007D4 00DC+00 1/1 0/0 0/0 .text create1st__14daObjVolcBom_cFv */ +int daObjVolcBom_c::create1st() { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[65])) { + return cPhs_ERROR_e; + } + if (!mIsMsgIDInit) { + mMsgID = current.angle.z; + current.angle.z = 0; + home.angle.z = 0; + shape_angle.z = 0; + mIsMsgIDInit = true; + } -/* 80D26D30-80D26D3C -00001 000C+00 0/1 0/0 0/0 .data @4367 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4367[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionOrderEvent__14daObjVolcBom_cFv, -}; -#pragma pop + int rv = dComIfG_resLoad(&mPhase, l_arcName); + if (rv == cPhs_COMPLEATE_e) { + rv = MoveBGCreate(l_arcName, 24, dBgS_MoveBGProc_TypicalRotY, 0x4000, NULL); + if (rv == cPhs_ERROR_e) { + return rv; + } -/* 80D26D3C-80D26D48 -00001 000C+00 0/1 0/0 0/0 .data @4368 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4368[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionTalkEvent__14daObjVolcBom_cFv, -}; -#pragma pop + #ifdef DEBUG + // The Great Lava Bombs + l_HIO.entryHIO("大溶岩弾"); + #endif + } -/* 80D26D48-80D26D54 -00001 000C+00 0/1 0/0 0/0 .data @4369 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4369[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionWarpEvent__14daObjVolcBom_cFv, -}; -#pragma pop + return rv; +} -/* 80D26D54-80D26D60 -00001 000C+00 0/1 0/0 0/0 .data @4370 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4370[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionOrderATalkEvent__14daObjVolcBom_cFv, -}; -#pragma pop +/* 80D249D0-80D24A2C 0008B0 005C+00 1/0 0/0 0/0 .text Execute__14daObjVolcBom_cFPPA3_A4_f + */ +int daObjVolcBom_c::Execute(Mtx** i_mtx) { + mode_proc_call(); + *i_mtx = &mBgMtx; + setBaseMtx(); + mBtk1->play(); + mBrk1->play(); -/* 80D26D60-80D26D6C -00001 000C+00 0/1 0/0 0/0 .data @4371 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4371[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionDead__14daObjVolcBom_cFv, -}; -#pragma pop + #ifdef DEBUG + if (l_HIO.field_0x14 != 0) { + switch (mMode) { + case MODE_WAIT_APPEAR: + dDbVw_Report(0x1e, 0x50, "Mode_WaitAppear"); + break; + case MODE_FALL: + dDbVw_Report(0x1e, 0x50, "Mode_Fall"); + break; + case MODE_WAIT_END_FALL_DEMO: + dDbVw_Report(0x1e, 0x50, "Mode_Wait"); + break; + default: + dDbVw_Report(0x1e, 0x50, "Mode_????"); + break; + } + } + #endif + return 1; +} -/* 80D26D6C-80D26DB4 000118 0048+00 0/1 0/0 0/0 .data l_func$4365 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_func[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop +/* 80D24A2C-80D24B18 00090C 00EC+00 1/1 0/0 0/0 .text mode_proc_call__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::mode_proc_call() { + static daObjVolcBom_c::modeFunc mode_proc[4] = { + &daObjVolcBom_c::modeWaitAppear, + &daObjVolcBom_c::modeFall, + &daObjVolcBom_c::modeWaitEndFallDemo, + &daObjVolcBom_c::modeWait, + }; -/* 80D26DB4-80D26DC4 -00001 0010+00 1/1 0/0 0/0 .data action_table$4540 */ -SECTION_DATA static void* action_table[4] = { - (void*)(((char*)&d_a_obj_volcbom__stringBase0) + 0x2F), - (void*)(((char*)&d_a_obj_volcbom__stringBase0) + 0x34), - (void*)(((char*)&d_a_obj_volcbom__stringBase0) + 0x38), - (void*)(((char*)&d_a_obj_volcbom__stringBase0) + 0x3D), + (this->*mode_proc[mMode])(); + cXyz scale(mBaseScale, mBaseScale, mBaseScale); + mModel1->setBaseScale(scale); + + #ifdef DEBUG + if (l_HIO.field_0x15 != 0) { + fopAc_ac_c* player = dComIfGp_getPlayer(0); + current.pos.x = player->current.pos.x; + current.pos.y = l_HIO.field_0x18; + current.pos.z = player->current.pos.z; + mLightPosWorld.x = player->current.pos.x; + mLightPosWorld.y = l_HIO.field_0x1c; + mLightPosWorld.z = player->current.pos.z; + mBaseScale = l_HIO.field_0x20; + field_0x978 = l_HIO.field_0x24; + mAcch.CrrPos(dComIfG_Bgsp()); + return; + } + #endif +} + +/* 80D24B18-80D24B6C 0009F8 0054+00 1/1 0/0 0/0 .text init_modeWaitAppear__14daObjVolcBom_cFv */ +void daObjVolcBom_c::init_modeWaitAppear() { + disappear(); + clrDzb(); + current.pos.y += 2000.0f; + mWaitAppearState = 0; + mMode = MODE_WAIT_APPEAR; +} + +/* 80D24B6C-80D24D80 000A4C 0214+00 1/0 0/0 0/0 .text modeWaitAppear__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::modeWaitAppear() { + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + J3DJoint* root_jnt = mModel1->getModelData()->getJointNodePointer(0); + JUT_ASSERT(623, root_jnt != 0); + + switch (mWaitAppearState) { + case 0: + if (field_0x960) { + mWaitAppearState = 1; + } + break; + case 1: + cLib_addCalc(&field_0x978, 1.0f, 0.02f, 0.1f, 0.01f); + cLib_addCalc(&mBaseScale, 1.0f, 0.02f, 0.1f, 0.01f); + mLightPosWorld.x = player->current.pos.x; + mLightPosWorld.y = current.pos.y + root_jnt->getMin()->y; + mLightPosWorld.z = player->current.pos.z; + current.pos.x = player->current.pos.x; + current.pos.y = player->current.pos.y + 2000.0f; + current.pos.z = player->current.pos.z; + appear(); + mWaitSEPos = current.pos; + mWaitSEPos.y = mAcch.GetGroundH(); + mDoAud_seStartLevel(Z2SE_OBJ_VOLC_WAIT, &mWaitSEPos, 0, 0); + if (field_0x95f == 0) { + break; + } + field_0x960 = false; + mWaitAppearState = 2; + // fallthrough + case 2: + field_0x978 = 1.0f; + mBaseScale = 1.0f; + current.pos.x = home.pos.x; + current.pos.z = home.pos.z; + current.pos.y = mAcch.GetGroundH() + 15000.0f; + mLightPosWorld = current.pos; + mLightPosWorld.y = mAcch.GetGroundH() + 2000.0f + root_jnt->getMin()->y; + fopAcM_SetMaxFallSpeed(this, -250.0f); + init_modeFall(); + break; + } + + if (field_0x95f == 0) { + mAcch.CrrPos(dComIfG_Bgsp()); + } +} + +/* 80D24D80-80D24E50 000C60 00D0+00 1/1 0/0 0/0 .text init_modeFall__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::init_modeFall() { + mBrk2->setPlaySpeed(1.0f); + mBtk2->setPlaySpeed(1.0f); + field_0x95e = true; + field_0x960 = false; + field_0x978 = 0.5f; + eyePos = current.pos; + fopAcM_seStart(this, Z2SE_OBJ_VOLC_FALL, 0); + OS_REPORT("大火山弾:落下SE(%.2f,%.2f,%.2f)\n", eyePos.x, eyePos.y, eyePos.z); + mMode = MODE_FALL; +} + +/* 80D26BB0-80D26BC0 000054 000E+02 0/1 0/0 0/0 .rodata l_effect_id$4032 */ +static u16 const l_effect_id[7] = { + 0x85F7, + 0x85F8, + 0x85F9, + 0x85FA, + 0x85FB, + 0x85FC, + 0x85FD, }; +/* 80D24E50-80D25024 000D30 01D4+00 1/0 0/0 0/0 .text modeFall__14daObjVolcBom_cFv */ +void daObjVolcBom_c::modeFall() { + bool isHomeHeight = false; + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + fopAcM_posMoveF(this, NULL); + if (home.pos.y > current.pos.y) { + isHomeHeight = true; + current.pos.y = home.pos.y; + } + eyePos = current.pos; + mBtk2->play(); + if (mBrk2->play()) { + field_0x95e = false; + } + mDoAud_seStartLevel(Z2SE_OBJ_VOLC_WAIT, &mWaitSEPos, 0, 0); + if (isHomeHeight) { + dComIfGp_getVibration().StartShock(8, 0x1f, cXyz(0.0f, 1.0f, 0.0f)); + cXyz cStack_28(current.pos); + if (fopAcM_gc_c::gndCheck(&cStack_28)) { + cStack_28.y = fopAcM_gc_c::getGroundY(); + } + for (int i = 0; i < 7; i++) { + dComIfGp_particle_setColor(l_effect_id[i], + &cStack_28, &tevStr, NULL, NULL, 0.0f, 0xff); + } + + fopAcM_onSwitch(this, getSwbit()); + setDzb(); + // Large volcanic bombs drop bit ON + OS_REPORT("大火山弾落下ビットON\n"); + init_modeWaitEndFallDemo(); + } +} + +/* 80D25024-80D25038 000F04 0014+00 1/1 0/0 0/0 .text init_modeWaitEndFallDemo__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::init_modeWaitEndFallDemo() { + mSmokeTimer = 5; + mMode = MODE_WAIT_END_FALL_DEMO; +} + +/* 80D25038-80D25094 000F18 005C+00 1/0 0/0 0/0 .text modeWaitEndFallDemo__14daObjVolcBom_cFv */ +void daObjVolcBom_c::modeWaitEndFallDemo() { + if (cLib_calcTimer(&mSmokeTimer) == 0) { + setSmoke(); + } + + if (!dComIfGp_event_runCheck()) { + init_modeWait(); + } +} + +/* 80D25094-80D25100 000F74 006C+00 2/2 0/0 0/0 .text init_modeWait__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::init_modeWait() { + eyePos = current.pos; + attention_info.position = current.pos; + calcMidnaWaitPos(); + appear(); + mMode = MODE_WAIT; +} + +/* 80D25100-80D25178 000FE0 0078+00 1/0 0/0 0/0 .text modeWait__14daObjVolcBom_cFv */ +void daObjVolcBom_c::modeWait() { + cXyz cStack_18(current.pos); + cStack_18.y -= 750.0f; + mCyl.SetC(cStack_18); + dComIfG_Ccsp()->Set(&mCyl); + event_proc_call(); +} + +/* 80D25178-80D251CC 001058 0054+00 1/1 0/0 0/0 .text clrDzb__14daObjVolcBom_cFv */ +void daObjVolcBom_c::clrDzb() { + if (mpBgW != NULL && mpBgW->ChkUsed()) { + dComIfG_Bgsp().Release(mpBgW); + } +} + +/* 80D251CC-80D25224 0010AC 0058+00 1/1 0/0 0/0 .text setDzb__14daObjVolcBom_cFv */ +void daObjVolcBom_c::setDzb() { + if (mpBgW != NULL && !mpBgW->ChkUsed()) { + dComIfG_Bgsp().Regist(mpBgW, this); + } +} + +/* 80D25224-80D25230 001104 000C+00 2/2 0/0 0/0 .text appear__14daObjVolcBom_cFv */ +void daObjVolcBom_c::appear() { + misAppearing = false; +} + +/* 80D25230-80D2523C 001110 000C+00 1/1 0/0 0/0 .text disappear__14daObjVolcBom_cFv */ +void daObjVolcBom_c::disappear() { + misAppearing = true; +} + +/* 80D2523C-80D252C8 00111C 008C+00 2/2 0/0 0/0 .text setSmoke__14daObjVolcBom_cFv */ +void daObjVolcBom_c::setSmoke() { + if (mSmokeEmitter == NULL) { + mSmokeEmitter = + dComIfGp_particle_set(0x8608, ¤t.pos, &home.angle, &scale, 0xff, 0, -1, 0, 0, 0); + } + + if (mSmokeEmitter == NULL) { + // Large volcanic bombs: smoke effects could not be set + OS_REPORT("大火山弾:煙エフェクトセットできませんでした\n"); + } +} + +/* 80D252C8-80D25364 0011A8 009C+00 3/3 0/0 0/0 .text checkTalkDistance__14daObjVolcBom_cFv */ +bool daObjVolcBom_c::checkTalkDistance() { + daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + f32 playerDist = fopAcM_searchPlayerDistanceXZ(this); + if ((getArg0() != 0xff && playerDist < getArg0() * 10.0f) || + (getArg0() == 0xff && playerDist < 500.0f)) + { + return true; + } + return false; +} + +/* 80D25364-80D253FC 001244 0098+00 1/1 0/0 0/0 .text calcMidnaWaitPos__14daObjVolcBom_cFv */ +void daObjVolcBom_c::calcMidnaWaitPos() { + cXyz cStack_18(0.0f, 1000.0f, 0.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::multVec(&cStack_18, &mMidnaWaitPos); + attention_info.position = mMidnaWaitPos; + attention_info.position.y += 250.0f; +} + +/* 80D253FC-80D25528 0012DC 012C+00 1/1 0/0 0/0 .text setSrcEffect__14daObjVolcBom_cFv */ +void daObjVolcBom_c::setSrcEffect() { + for (int i = 0; i < 1; i++) { + mDisappearEmitters[i] = dComIfGp_particle_set(l_disapp_eff[i], ¤t.pos, &home.angle, &scale, + 0xff, 0, -1, 0, 0, 0); + if (mDisappearEmitters[i] != NULL) { + mDisappearEmitters[i]->becomeImmortalEmitter(); + } + } + + for (int i = 0; i < 3; i++) { + mStartEmitters[i] = dComIfGp_particle_set(l_start_eff[i], ¤t.pos, &home.angle, &scale, + 0xff, 0, -1, 0, 0, 0); + if (mStartEmitters[i] != NULL) { + mStartEmitters[i]->becomeImmortalEmitter(); + } + } +} + +/* 80D25528-80D255F4 001408 00CC+00 1/1 0/0 0/0 .text setBindEffect__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::setBindEffect() { + for (int i = 0; i < 4; i++) { + mBindEmitters[i] = dComIfGp_particle_set(l_bind_eff[i], ¤t.pos, &home.angle, &scale, + 0xff, 0, -1, 0, 0, 0); + if (mBindEmitters[i] != NULL) { + mBindEmitters[i]->becomeImmortalEmitter(); + } + } +} + +/* 80D255F4-80D25664 0014D4 0070+00 1/1 0/0 0/0 .text followBindEffect__14daObjVolcBom_cFv */ +void daObjVolcBom_c::followBindEffect() { + for (int i = 0; i < 4; i++) { + if (mBindEmitters[i] != NULL) { + mBindEmitters[i]->setGlobalRTMatrix(mModel1->getAnmMtx(0)); + } + } +} + +/* 80D25664-80D256B8 001544 0054+00 1/1 0/0 0/0 .text endBindEffect__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::endBindEffect() { + for (int i = 0; i < 4; i++) { + if (mBindEmitters[i] != NULL) { + mBindEmitters[i]->becomeInvalidEmitter(); + mBindEmitters[i]->quitImmortalEmitter(); + mBindEmitters[i] = NULL; + } + } +} + +/* 80D256B8-80D25758 001598 00A0+00 1/1 0/0 0/0 .text followSrcEffect__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::followSrcEffect() { + for (int i = 0; i < 1; i++) { + if (mDisappearEmitters[i] != NULL) { + mDisappearEmitters[i]->setGlobalRTMatrix(mModel1->getAnmMtx(mEffectJntNo)); + } + } + + for (int i = 0; i < 3; i++) { + if (mStartEmitters[i] != NULL) { + mStartEmitters[i]->setGlobalRTMatrix(mModel1->getAnmMtx(0)); + } + } +} + +/* 80D25758-80D257E4 001638 008C+00 1/1 0/0 0/0 .text endSrcEffect__14daObjVolcBom_cFv */ +void daObjVolcBom_c::endSrcEffect() { + for (int i = 0; i < 1; i++) { + if (mDisappearEmitters[i] != NULL) { + mDisappearEmitters[i]->becomeInvalidEmitter(); + mDisappearEmitters[i]->quitImmortalEmitter(); + mDisappearEmitters[i] = NULL; + } + } + + for (int i = 0; i < 3; i++) { + if (mStartEmitters[i] != NULL) { + mStartEmitters[i]->becomeInvalidEmitter(); + mStartEmitters[i]->quitImmortalEmitter(); + mStartEmitters[i] = NULL; + } + } +} + +/* 80D257E4-80D25914 0016C4 0130+00 1/1 0/0 0/0 .text event_proc_call__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::event_proc_call() { + static daObjVolcBom_c::actionFunc l_func[6] = { + &daObjVolcBom_c::actionWait, + &daObjVolcBom_c::actionOrderEvent, + &daObjVolcBom_c::actionTalkEvent, + &daObjVolcBom_c::actionWarpEvent, + &daObjVolcBom_c::actionOrderATalkEvent, + &daObjVolcBom_c::actionDead, + }; + + attention_info.flags = 0; + if (mNaviTimer != 0) { + mNaviTimer--; + } + + (this->*l_func[mAction])(); + if (!eventInfo.chkCondition(dEvtCnd_CANTALK_e)) { + field_0xa1a = false; + } +} + +/* 80D25914-80D25A08 0017F4 00F4+00 1/1 0/0 0/0 .text orderZHintEvent__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::orderZHintEvent() { + daMidna_c* midna = daPy_py_c::getMidnaActor(); + daPy_py_c* player = daPy_getPlayerActorClass(); + if (checkTalkDistance()) { + eventInfo.onCondition(dEvtCnd_CANTALK_e); + if (!player->checkPlayerFly()) { + dComIfGp_att_ZHintRequest(this, 0x1ff); + if (!field_0xa1a) { + field_0xa1a = true; + if (mNaviTimer == 0) { + mDoAud_seStart(Z2SE_NAVI_CALLVOICE, 0, 0, 0); + } + mNaviTimer = 60; + } + } + } +} + +/* 80D25A08-80D25B04 0018E8 00FC+00 1/0 0/0 0/0 .text actionWait__14daObjVolcBom_cFv */ +void daObjVolcBom_c::actionWait() { + if (checkTalkDistance() && dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[84])) { + setAction(ACTION_ORDER_EVENT); + actionOrderEvent(); + } + + daMidna_c* midna = daPy_py_c::getMidnaActor(); + daPy_py_c* player = (daPy_py_c*)daPy_getPlayerActorClass(); + + // Probably fake match since ebug calls different manager functions + dEvent_manager_c& evtMgr = g_dComIfG_gameInfo.play.getEvtManager(); + if (evtMgr.startCheck(mEventId)) { + if (strcmp(evtMgr.getRunEventName(), "PORTAL_WARP_BIGVOLC") == 0) { + player->onWarpObjDemo(); + dComIfGp_getEvent().setPt2(this); + mStaffId = evtMgr.getMyStaffId(l_staff_name, 0, 0); + setAction(ACTION_WARP_EVENT); + demoProc(); + } + } +} + +/* 80D25B04-80D25CA0 0019E4 019C+00 2/1 0/0 0/0 .text actionOrderEvent__14daObjVolcBom_cFv */ +void daObjVolcBom_c::actionOrderEvent() { + daMidna_c* midna = daPy_py_c::getMidnaActor(); + if (eventInfo.checkCommandTalk()) { + midna->onTagWaitPosPortalObj(mMidnaWaitPos); + if (midna->current.pos.abs(mMidnaWaitPos) < 5.0f) { + setAction(ACTION_TALK_EVENT); + mMsgFlow.init(this, getMsgID(), 0, NULL); + // Conversation demo for message ID + OS_REPORT("メッセージID<%d>の会話デモ\n", getMsgID()); + } + } else { + orderZHintEvent(); + } +} + +/* 80D25CA0-80D25DEC 001B80 014C+00 1/0 0/0 0/0 .text actionOrderATalkEvent__14daObjVolcBom_cFv */ +void daObjVolcBom_c::actionOrderATalkEvent() { + daMidna_c* midna = (daMidna_c*)daPy_py_c::getMidnaActor(); + daPy_py_c* player = daPy_getPlayerActorClass(); + + if (eventInfo.checkCommandTalk()) { + setAction(ACTION_TALK_EVENT); + mMsgFlow.init(this, getMsgID(), 0, NULL); + } else { + if (dComIfGp_evmng_startCheck(mEventId)) { + player->onWarpObjDemo(); + dComIfGp_getEvent().setPt2(this); + mStaffId = dComIfGp_evmng_getMyStaffId(l_staff_name, 0, 0); + setAction(ACTION_WARP_EVENT); + demoProc(); + } else { + if (checkTalkDistance()) { + midna->onTagWaitPosPortalObj(mMidnaWaitPos); + dComIfGp_TargetWarpPt_set(9); + eventInfo.onCondition(dEvtCnd_CANTALK_e); + attention_info.flags = 0xa; + } else { + midna->offTagWaitPos(); + setAction(ACTION_WAIT); + } + } + } +} + +/* 80D25DEC-80D25E78 001CCC 008C+00 1/0 0/0 0/0 .text actionTalkEvent__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::actionTalkEvent() { + if (mMsgFlow.doFlow(this, NULL, 0)) { + dComIfGp_event_reset(); + field_0x5c9 = true; + int dummy; + if (mMsgFlow.getEventId(&dummy) == 11) { + dMeter2Info_setPauseStatus(6); + } + setAction(ACTION_ORDER_A_TALK_EVENT); + } +} + +/* 80D25E78-80D25EE4 001D58 006C+00 1/0 0/0 0/0 .text actionWarpEvent__14daObjVolcBom_cFv + */ +void daObjVolcBom_c::actionWarpEvent() { + if (!dComIfGp_evmng_endCheck(mEventId)) { + dComIfGp_getEvent().setSkipProc(this, eventCallBack, 0); + demoProc(); + } +} + +/* 80D25EE4-80D25EE8 001DC4 0004+00 1/0 0/0 0/0 .text actionDead__14daObjVolcBom_cFv */ +void daObjVolcBom_c::actionDead() {} + +/* 80D25EE8-80D26468 001DC8 0580+00 3/3 0/0 0/0 .text demoProc__14daObjVolcBom_cFv */ +void daObjVolcBom_c::demoProc() { + static const char* action_table[4] = { + "WAIT", + "FLY", + "INIT", + "BEAM", + }; + + daPy_py_c* player = daPy_getPlayerActorClass(); + daMidna_c* midna = (daMidna_c*)daPy_py_c::getMidnaActor(); + int actIdx = dComIfGp_evmng_getMyActIdx(mStaffId, (char**)action_table, 4, 0, 0); + int* pTimer; + if (dComIfGp_evmng_getIsAddvance(mStaffId)) { + switch (actIdx) { + case 0: + pTimer = dComIfGp_evmng_getMyIntegerP(mStaffId, "Timer"); + if (pTimer == NULL) { + mDemoTimer = 1; + } else { + mDemoTimer = *pTimer; + } + break; + case 2: + mBtk1->setPlayMode(0); + break; + case 1: + shape_angle.setall(0); + field_0x5cb = true; + mBck1->setPlaySpeed(1.0f); + mBtk1->init(mModel1->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 21), 0, 2, 1.0f, 0, -1); + mBtk1->setFrame(0.0f); + mBtk1->setPlaySpeed(1.0f); + mBtk1->setPlayMode(J3DFrameCtrl::EMode_NONE); + setSrcEffect(); + fopAcM_seStart(this, Z2SE_OBJ_VOLC_LIFT_UP, 0); + break; + case 3: + fopAcM_seStart(this, Z2SE_MDN_WARP_MAGIC, 0); + setBindEffect(); + break; + + } + } + + cXyz cStack_4c; + cXyz cStack_58; + csXyz local_60; + switch (actIdx) { + case 0: + if (cLib_calcTimer(&mDemoTimer) == 0) { + dComIfGp_evmng_cutEnd(mStaffId); + } + break; + case 2: + if (mBtk1->isStop()) { + dComIfGp_evmng_cutEnd(mStaffId); + } + break; + case 1: + if (mBck1->getFrame() == 222.0f) { + calcObjPos(); + mDoAud_seStart(Z2SE_OBJ_VOLC_WARP_IN, &mWarpSEPos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + // Large volcanic bombs: warp SE + OS_REPORT("大火山弾:ワープSE\n"); + } + if (mBck1->play()) { + dComIfGp_evmng_cutEnd(mStaffId); + } + followSrcEffect(); + break; + case 3: { + mDoMtx_stack_c::copy(midna->getMtxHairTop()); + mDoMtx_stack_c::transM(-10.0f, -65.0f, 55.0f); + mDoMtx_stack_c::multVecZero(&cStack_58); + mDoMtx_stack_c::copy(mModel1->getAnmMtx(0)); + mDoMtx_stack_c::multVecZero(&cStack_4c); + local_60.y = cLib_targetAngleY(&cStack_4c, &cStack_58); + local_60.x = cLib_targetAngleX(&cStack_58, &cStack_4c); + local_60.z = 0; + f32 emitterScale = cStack_4c.abs(cStack_58); + JPABaseEmitter* pEmitter = + dComIfGp_particle_set(0x8b53, &cStack_4c, &local_60, 0, 0xff, 0, -1, 0, 0, 0); + pEmitter->setGlobalParticleHeightScale(emitterScale * 0.01f); + followBindEffect(); + dComIfGp_evmng_cutEnd(mStaffId); + break; + } + default: + dComIfGp_evmng_cutEnd(mStaffId); + break; + } +} + +/* 80D26468-80D264E8 002348 0080+00 1/1 0/0 0/0 .text calcObjPos__14daObjVolcBom_cFv */ +void daObjVolcBom_c::calcObjPos() { + J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 8); + JUT_ASSERT(1459, pbck != 0); + J3DTransformInfo info; + pbck->getTransform(0, &info); + mWarpSEPos.x = info.mTranslate.x; + mWarpSEPos.y = info.mTranslate.y; + mWarpSEPos.z = info.mTranslate.z; +} + +/* 80D264E8-80D266FC 0023C8 0214+00 1/0 0/0 0/0 .text Draw__14daObjVolcBom_cFv */ +int daObjVolcBom_c::Draw() { + if (misAppearing) { + return 1; + } + + g_env_light.settingTevStruct(0, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mModel1, &tevStr); + dComIfGd_setListBG(); + mBtk1->entry(mModel1->getModelData()); + mBrk1->entry(mModel1->getModelData()); + if (field_0x5cb) { + mBck1->entry(mModel1->getModelData()); + } + + if (!field_0x960) { + mDoExt_modelUpdateDL(mModel1); + } else { + mModel1->calc(); + } + + #ifdef DEBUG + if (l_HIO.field_0x34 != 0) + { + cXyz cStack_24; + mDoMtx_stack_c::copy(mModel1->getAnmMtx(0)); + mDoMtx_stack_c::multVecZero(&cStack_24); + dDbVw_drawSphereOpa(cStack_24, 30.0f, (GXColor) {0, 0, 0xff, 0xff}, 1); + field_0x960 = true; + return 1; + } + else + #endif + { + mDoExt_bckAnmRemove(mModel1->getModelData()); + mDoExt_btkAnmRemove(mModel1->getModelData()); + dComIfGd_setList(); + tevStr.mLightPosWorld.x = current.pos.x; + tevStr.mLightPosWorld.y = mLightPosWorld.y + KREG_F(11); + tevStr.mLightPosWorld.z = current.pos.z; + tevStr.field_0x344 = field_0x978; + mShadowID = dComIfGd_setShadow(mShadowID, 0, mModel1, ¤t.pos, + 4000.0f, 0.0f, mLightPosWorld.y, mAcch.GetGroundH(), mAcch.m_gnd, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + + if (field_0x95e) { + g_env_light.setLightTevColorType_MAJI(mModel2, &tevStr); + mBtk2->entry(mModel2->getModelData()); + mBrk2->entry(mModel2->getModelData()); + mDoExt_modelUpdateDL(mModel2); + } + } + + return 1; +} + +/* 80D266FC-80D26774 0025DC 0078+00 1/0 0/0 0/0 .text Delete__14daObjVolcBom_cFv */ +int daObjVolcBom_c::Delete() { + #ifdef DEBUG + if (l_HIO.field_0x04 != 0) { + fopAcM_offSwitch(this, getSwbit()); + } + #endif + + if (mSmokeEmitter != NULL) { + mSmokeEmitter->becomeInvalidEmitter(); + mSmokeEmitter = NULL; + } + + endSrcEffect(); + endBindEffect(); + dComIfG_resDelete(&mPhase, l_arcName); + + #ifdef DEBUG + l_HIO.removeHIO(); + #endif + + return 1; +} + +/* 80D26774-80D268A8 002654 0134+00 1/0 0/0 0/0 .text daObjVolcBom_create1st__FP14daObjVolcBom_c + */ +static int daObjVolcBom_create1st(daObjVolcBom_c* i_this) { + fopAcM_SetupActor(i_this, daObjVolcBom_c); + return ((daObjVolcBom_c*)i_this)->create1st(); +} + +/* 80D26A74-80D26A94 002954 0020+00 1/0 0/0 0/0 .text + * daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c */ +static int daObjVolcBom_MoveBGDelete(daObjVolcBom_c* i_this) { + return i_this->MoveBGDelete(); +} + +/* 80D26A94-80D26AB4 002974 0020+00 1/0 0/0 0/0 .text + * daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c */ +static int daObjVolcBom_MoveBGExecute(daObjVolcBom_c* i_this) { + return i_this->MoveBGExecute(); +} + +/* 80D26AB4-80D26AE0 002994 002C+00 1/0 0/0 0/0 .text daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c + */ +static int daObjVolcBom_MoveBGDraw(daObjVolcBom_c* i_this) { + return i_this->MoveBGDraw(); +} + /* 80D26DC4-80D26DE4 -00001 0020+00 1/0 0/0 0/0 .data daObjVolcBom_METHODS */ static actor_method_class daObjVolcBom_METHODS = { - (process_method_func)daObjVolcBom_create1st__FP14daObjVolcBom_c, - (process_method_func)daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c, - (process_method_func)daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c, - 0, - (process_method_func)daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c, + (process_method_func)daObjVolcBom_create1st, + (process_method_func)daObjVolcBom_MoveBGDelete, + (process_method_func)daObjVolcBom_MoveBGExecute, + NULL, + (process_method_func)daObjVolcBom_MoveBGDraw, }; /* 80D26DE4-80D26E14 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_VolcanicBomb */ @@ -506,545 +968,5 @@ extern actor_process_profile_definition g_profile_Obj_VolcanicBomb = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80D26E14-80D26E20 0001C0 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 80D26E20-80D26E2C 0001CC 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80D26E2C-80D26E38 0001D8 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80D26E38-80D26E44 0001E4 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80D26E44-80D26E50 0001F0 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80D26E50-80D26E74 0001FC 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80D26B4C, - (void*)NULL, - (void*)NULL, - (void*)func_80D26B44, -}; - -/* 80D26E74-80D26E80 000220 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80D244E0-80D248AC 0003C0 03CC+00 1/0 0/0 0/0 .text CreateHeap__14daObjVolcBom_cFv */ -void daObjVolcBom_c::CreateHeap() { - // NONMATCHING -} - -/* 80D248AC-80D248F4 00078C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80D248F4-80D249D0 0007D4 00DC+00 1/1 0/0 0/0 .text create1st__14daObjVolcBom_cFv */ -void daObjVolcBom_c::create1st() { - // NONMATCHING -} - -/* 80D249D0-80D24A2C 0008B0 005C+00 1/0 0/0 0/0 .text Execute__14daObjVolcBom_cFPPA3_A4_f - */ -void daObjVolcBom_c::Execute(f32 (**param_0)[3][4]) { - // NONMATCHING -} - -/* 80D24A2C-80D24B18 00090C 00EC+00 1/1 0/0 0/0 .text mode_proc_call__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::mode_proc_call() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26B90-80D26B94 000034 0004+00 1/2 0/0 0/0 .rodata @3958 */ -SECTION_RODATA static f32 const lit_3958 = 2000.0f; -COMPILER_STRIP_GATE(0x80D26B90, &lit_3958); - -/* 80D24B18-80D24B6C 0009F8 0054+00 1/1 0/0 0/0 .text init_modeWaitAppear__14daObjVolcBom_cFv */ -void daObjVolcBom_c::init_modeWaitAppear() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26B94-80D26B98 000038 0004+00 0/1 0/0 0/0 .rodata @3997 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3997 = 1.0f / 50.0f; -COMPILER_STRIP_GATE(0x80D26B94, &lit_3997); -#pragma pop - -/* 80D26B98-80D26B9C 00003C 0004+00 0/1 0/0 0/0 .rodata @3998 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3998 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80D26B98, &lit_3998); -#pragma pop - -/* 80D26B9C-80D26BA0 000040 0004+00 0/2 0/0 0/0 .rodata @3999 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3999 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x80D26B9C, &lit_3999); -#pragma pop - -/* 80D26BA0-80D26BA4 000044 0004+00 1/5 0/0 0/0 .rodata @4000 */ -SECTION_RODATA static f32 const lit_4000 = -1.0f; -COMPILER_STRIP_GATE(0x80D26BA0, &lit_4000); - -/* 80D26BA4-80D26BA8 000048 0004+00 0/1 0/0 0/0 .rodata @4001 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4001 = 15000.0f; -COMPILER_STRIP_GATE(0x80D26BA4, &lit_4001); -#pragma pop - -/* 80D26BA8-80D26BAC 00004C 0004+00 0/1 0/0 0/0 .rodata @4002 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4002 = -250.0f; -COMPILER_STRIP_GATE(0x80D26BA8, &lit_4002); -#pragma pop - -/* 80D24B6C-80D24D80 000A4C 0214+00 1/0 0/0 0/0 .text modeWaitAppear__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::modeWaitAppear() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26BAC-80D26BB0 000050 0004+00 0/1 0/0 0/0 .rodata @4022 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4022 = 0.5f; -COMPILER_STRIP_GATE(0x80D26BAC, &lit_4022); -#pragma pop - -/* 80D24D80-80D24E50 000C60 00D0+00 1/1 0/0 0/0 .text init_modeFall__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::init_modeFall() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26BB0-80D26BC0 000054 000E+02 0/1 0/0 0/0 .rodata l_effect_id$4032 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_effect_id[14 + 2 /* padding */] = { - 0x85, - 0xF7, - 0x85, - 0xF8, - 0x85, - 0xF9, - 0x85, - 0xFA, - 0x85, - 0xFB, - 0x85, - 0xFC, - 0x85, - 0xFD, - /* padding */ - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D26BB0, &l_effect_id); -#pragma pop - -/* 80D24E50-80D25024 000D30 01D4+00 1/0 0/0 0/0 .text modeFall__14daObjVolcBom_cFv */ -void daObjVolcBom_c::modeFall() { - // NONMATCHING -} - -/* 80D25024-80D25038 000F04 0014+00 1/1 0/0 0/0 .text init_modeWaitEndFallDemo__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::init_modeWaitEndFallDemo() { - // NONMATCHING -} - -/* 80D25038-80D25094 000F18 005C+00 1/0 0/0 0/0 .text modeWaitEndFallDemo__14daObjVolcBom_cFv */ -void daObjVolcBom_c::modeWaitEndFallDemo() { - // NONMATCHING -} - -/* 80D25094-80D25100 000F74 006C+00 2/2 0/0 0/0 .text init_modeWait__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::init_modeWait() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26BC0-80D26BC4 000064 0004+00 1/1 0/0 0/0 .rodata @4103 */ -SECTION_RODATA static f32 const lit_4103 = 750.0f; -COMPILER_STRIP_GATE(0x80D26BC0, &lit_4103); - -/* 80D25100-80D25178 000FE0 0078+00 1/0 0/0 0/0 .text modeWait__14daObjVolcBom_cFv */ -void daObjVolcBom_c::modeWait() { - // NONMATCHING -} - -/* 80D25178-80D251CC 001058 0054+00 1/1 0/0 0/0 .text clrDzb__14daObjVolcBom_cFv */ -void daObjVolcBom_c::clrDzb() { - // NONMATCHING -} - -/* 80D251CC-80D25224 0010AC 0058+00 1/1 0/0 0/0 .text setDzb__14daObjVolcBom_cFv */ -void daObjVolcBom_c::setDzb() { - // NONMATCHING -} - -/* 80D25224-80D25230 001104 000C+00 2/2 0/0 0/0 .text appear__14daObjVolcBom_cFv */ -void daObjVolcBom_c::appear() { - // NONMATCHING -} - -/* 80D25230-80D2523C 001110 000C+00 1/1 0/0 0/0 .text disappear__14daObjVolcBom_cFv */ -void daObjVolcBom_c::disappear() { - // NONMATCHING -} - -/* 80D2523C-80D252C8 00111C 008C+00 2/2 0/0 0/0 .text setSmoke__14daObjVolcBom_cFv */ -void daObjVolcBom_c::setSmoke() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26BC4-80D26BCC 000068 0004+04 1/1 0/0 0/0 .rodata @4162 */ -SECTION_RODATA static f32 const lit_4162[1 + 1 /* padding */] = { - 500.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80D26BC4, &lit_4162); - -/* 80D26BCC-80D26BD4 000070 0008+00 1/1 0/0 0/0 .rodata @4164 */ -SECTION_RODATA static u8 const lit_4164[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D26BCC, &lit_4164); - -/* 80D252C8-80D25364 0011A8 009C+00 3/3 0/0 0/0 .text checkTalkDistance__14daObjVolcBom_cFv */ -void daObjVolcBom_c::checkTalkDistance() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26BD4-80D26BD8 000078 0004+00 0/1 0/0 0/0 .rodata @4175 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4175 = 1000.0f; -COMPILER_STRIP_GATE(0x80D26BD4, &lit_4175); -#pragma pop - -/* 80D26BD8-80D26BDC 00007C 0004+00 0/1 0/0 0/0 .rodata @4176 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4176 = 250.0f; -COMPILER_STRIP_GATE(0x80D26BD8, &lit_4176); -#pragma pop - -/* 80D25364-80D253FC 001244 0098+00 1/1 0/0 0/0 .text calcMidnaWaitPos__14daObjVolcBom_cFv */ -void daObjVolcBom_c::calcMidnaWaitPos() { - // NONMATCHING -} - -/* 80D253FC-80D25528 0012DC 012C+00 1/1 0/0 0/0 .text setSrcEffect__14daObjVolcBom_cFv */ -void daObjVolcBom_c::setSrcEffect() { - // NONMATCHING -} - -/* 80D25528-80D255F4 001408 00CC+00 1/1 0/0 0/0 .text setBindEffect__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::setBindEffect() { - // NONMATCHING -} - -/* 80D255F4-80D25664 0014D4 0070+00 1/1 0/0 0/0 .text followBindEffect__14daObjVolcBom_cFv */ -void daObjVolcBom_c::followBindEffect() { - // NONMATCHING -} - -/* 80D25664-80D256B8 001544 0054+00 1/1 0/0 0/0 .text endBindEffect__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::endBindEffect() { - // NONMATCHING -} - -/* 80D256B8-80D25758 001598 00A0+00 1/1 0/0 0/0 .text followSrcEffect__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::followSrcEffect() { - // NONMATCHING -} - -/* 80D25758-80D257E4 001638 008C+00 1/1 0/0 0/0 .text endSrcEffect__14daObjVolcBom_cFv */ -void daObjVolcBom_c::endSrcEffect() { - // NONMATCHING -} - -/* 80D257E4-80D25914 0016C4 0130+00 1/1 0/0 0/0 .text event_proc_call__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::event_proc_call() { - // NONMATCHING -} - -/* 80D25914-80D25A08 0017F4 00F4+00 1/1 0/0 0/0 .text orderZHintEvent__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::orderZHintEvent() { - // NONMATCHING -} - -/* 80D25A08-80D25B04 0018E8 00FC+00 1/0 0/0 0/0 .text actionWait__14daObjVolcBom_cFv */ -void daObjVolcBom_c::actionWait() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26BDC-80D26BE4 000080 0008+00 0/2 0/0 0/0 .rodata @4470 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4470[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D26BDC, &lit_4470); -#pragma pop - -/* 80D26BE4-80D26BEC 000088 0008+00 0/2 0/0 0/0 .rodata @4471 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4471[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D26BE4, &lit_4471); -#pragma pop - -/* 80D26BEC-80D26BF4 000090 0008+00 0/2 0/0 0/0 .rodata @4472 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4472[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D26BEC, &lit_4472); -#pragma pop - -/* 80D26BF4-80D26BF8 000098 0004+00 0/1 0/0 0/0 .rodata @4473 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4473 = 5.0f; -COMPILER_STRIP_GATE(0x80D26BF4, &lit_4473); -#pragma pop - -/* 80D25B04-80D25CA0 0019E4 019C+00 2/1 0/0 0/0 .text actionOrderEvent__14daObjVolcBom_cFv */ -void daObjVolcBom_c::actionOrderEvent() { - // NONMATCHING -} - -/* 80D25CA0-80D25DEC 001B80 014C+00 1/0 0/0 0/0 .text actionOrderATalkEvent__14daObjVolcBom_cFv */ -void daObjVolcBom_c::actionOrderATalkEvent() { - // NONMATCHING -} - -/* 80D25DEC-80D25E78 001CCC 008C+00 1/0 0/0 0/0 .text actionTalkEvent__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::actionTalkEvent() { - // NONMATCHING -} - -/* 80D25E78-80D25EE4 001D58 006C+00 1/0 0/0 0/0 .text actionWarpEvent__14daObjVolcBom_cFv - */ -void daObjVolcBom_c::actionWarpEvent() { - // NONMATCHING -} - -/* 80D25EE4-80D25EE8 001DC4 0004+00 1/0 0/0 0/0 .text actionDead__14daObjVolcBom_cFv */ -void daObjVolcBom_c::actionDead() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 80D26BF8-80D26BFC 00009C 0004+00 0/1 0/0 0/0 .rodata @4715 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4715 = 222.0f; -COMPILER_STRIP_GATE(0x80D26BF8, &lit_4715); -#pragma pop - -/* 80D26BFC-80D26C00 0000A0 0004+00 0/1 0/0 0/0 .rodata @4716 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4716 = -10.0f; -COMPILER_STRIP_GATE(0x80D26BFC, &lit_4716); -#pragma pop - -/* 80D26C00-80D26C04 0000A4 0004+00 0/1 0/0 0/0 .rodata @4717 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4717 = -65.0f; -COMPILER_STRIP_GATE(0x80D26C00, &lit_4717); -#pragma pop - -/* 80D26C04-80D26C08 0000A8 0004+00 0/1 0/0 0/0 .rodata @4718 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4718 = 55.0f; -COMPILER_STRIP_GATE(0x80D26C04, &lit_4718); -#pragma pop - -/* 80D26C0C-80D26C0C 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D26C4E = "Timer"; -#pragma pop - -/* 80D25EE8-80D26468 001DC8 0580+00 3/3 0/0 0/0 .text demoProc__14daObjVolcBom_cFv */ -void daObjVolcBom_c::demoProc() { - // NONMATCHING -} - -/* 80D26468-80D264E8 002348 0080+00 1/1 0/0 0/0 .text calcObjPos__14daObjVolcBom_cFv */ -void daObjVolcBom_c::calcObjPos() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26C08-80D26C0C 0000AC 0004+00 0/1 0/0 0/0 .rodata @4828 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4828 = 4000.0f; -COMPILER_STRIP_GATE(0x80D26C08, &lit_4828); -#pragma pop - -/* 80D264E8-80D266FC 0023C8 0214+00 1/0 0/0 0/0 .text Draw__14daObjVolcBom_cFv */ -void daObjVolcBom_c::Draw() { - // NONMATCHING -} - -/* 80D266FC-80D26774 0025DC 0078+00 1/0 0/0 0/0 .text Delete__14daObjVolcBom_cFv */ -void daObjVolcBom_c::Delete() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D26E80-80D26EA8 00022C 0028+00 1/1 0/0 0/0 .data __vt__14daObjVolcBom_c */ -SECTION_DATA extern void* __vt__14daObjVolcBom_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__14daObjVolcBom_cFv, - (void*)Create__14daObjVolcBom_cFv, - (void*)Execute__14daObjVolcBom_cFPPA3_A4_f, - (void*)Draw__14daObjVolcBom_cFv, - (void*)Delete__14daObjVolcBom_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80D26774-80D268A8 002654 0134+00 1/0 0/0 0/0 .text daObjVolcBom_create1st__FP14daObjVolcBom_c - */ -static void daObjVolcBom_create1st(daObjVolcBom_c* param_0) { - // NONMATCHING -} - -/* 80D268A8-80D268F0 002788 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80D268F0-80D26938 0027D0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80D26938-80D26994 002818 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D26994-80D26A04 002874 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80D26A04-80D26A74 0028E4 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80D26A74-80D26A94 002954 0020+00 1/0 0/0 0/0 .text - * daObjVolcBom_MoveBGDelete__FP14daObjVolcBom_c */ -static void daObjVolcBom_MoveBGDelete(daObjVolcBom_c* param_0) { - // NONMATCHING -} - -/* 80D26A94-80D26AB4 002974 0020+00 1/0 0/0 0/0 .text - * daObjVolcBom_MoveBGExecute__FP14daObjVolcBom_c */ -static void daObjVolcBom_MoveBGExecute(daObjVolcBom_c* param_0) { - // NONMATCHING -} - -/* 80D26AB4-80D26AE0 002994 002C+00 1/0 0/0 0/0 .text daObjVolcBom_MoveBGDraw__FP14daObjVolcBom_c - */ -static void daObjVolcBom_MoveBGDraw(daObjVolcBom_c* param_0) { - // NONMATCHING -} - -/* 80D26AE0-80D26B28 0029C0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D26B28-80D26B44 002A08 001C+00 2/2 0/0 0/0 .text cLib_calcTimer__FPUc */ -extern "C" void func_80D26B28(void* _this, u8* param_0) { - // NONMATCHING -} - -/* 80D26B44-80D26B4C 002A24 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80D26B44() { - // NONMATCHING -} - -/* 80D26B4C-80D26B54 002A2C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80D26B4C() { - // NONMATCHING -} /* 80D26C0C-80D26C0C 0000B0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_wood_statue.cpp b/src/d/actor/d_a_obj_wood_statue.cpp index 5d9c2c8062b..d57a51f1fa2 100644 --- a/src/d/actor/d_a_obj_wood_statue.cpp +++ b/src/d/actor/d_a_obj_wood_statue.cpp @@ -477,7 +477,7 @@ int daObjWStatue_c::_delete() { DeleteBase(dItem_data::getFieldArc(m_itemNo)); #ifdef DEBUG - l_HIO.removeHIO(); + l_HIO.removeHIO(this); #endif return 1; diff --git a/src/f_pc/f_pc_base.cpp b/src/f_pc/f_pc_base.cpp index a422bea1a21..f9f73276aac 100644 --- a/src/f_pc/f_pc_base.cpp +++ b/src/f_pc/f_pc_base.cpp @@ -145,7 +145,7 @@ base_process_class* fpcBs_Create(s16 i_profname, fpc_ProcID i_procID, void* i_ap fpcPi_Init(&pprocess->priority, pprocess, pprofile->layer_id, pprofile->list_id, pprofile->list_priority); - pprocess->init_state = 0; + pprocess->state.init_state = 0; pprocess->unk_0xA = 0; pprocess->id = i_procID; pprocess->profname = i_profname; @@ -164,19 +164,19 @@ int fpcBs_SubCreate(base_process_class* i_proc) { case cPhs_NEXT_e: case cPhs_COMPLEATE_e: fpcBs_DeleteAppend(i_proc); - i_proc->create_phase = cPhs_NEXT_e; + i_proc->state.create_phase = cPhs_NEXT_e; return cPhs_NEXT_e; case cPhs_INIT_e: - case cPhs_LOADING_e: - i_proc->init_state = 1; - i_proc->create_phase = cPhs_INIT_e; +case cPhs_LOADING_e: + i_proc->state.init_state = 1; + i_proc->state.create_phase = cPhs_INIT_e; return cPhs_INIT_e; case cPhs_UNK3_e: - i_proc->create_phase = cPhs_UNK3_e; + i_proc->state.create_phase = cPhs_UNK3_e; return cPhs_UNK3_e; case cPhs_ERROR_e: default: - i_proc->create_phase = cPhs_ERROR_e; + i_proc->state.create_phase = cPhs_ERROR_e; return cPhs_ERROR_e; } } diff --git a/src/f_pc/f_pc_deletor.cpp b/src/f_pc/f_pc_deletor.cpp index e365371927c..8a2dff317cc 100644 --- a/src/f_pc/f_pc_deletor.cpp +++ b/src/f_pc/f_pc_deletor.cpp @@ -100,7 +100,7 @@ s32 fpcDt_ToDeleteQ(base_process_class* i_proc) { } } - i_proc->init_state = 3; + i_proc->state.init_state = 3; return 1; } @@ -124,7 +124,7 @@ s32 fpcDt_Delete(void* i_proc) { if (fpcCt_IsDoing(proc) == TRUE) return 0; - if (proc->init_state == 3) + if (proc->state.init_state == 3) return 0; int ret = fpcDt_ToDeleteQ(proc); diff --git a/src/f_pc/f_pc_executor.cpp b/src/f_pc/f_pc_executor.cpp index bf23306ac1e..f6a981ba068 100644 --- a/src/f_pc/f_pc_executor.cpp +++ b/src/f_pc/f_pc_executor.cpp @@ -33,7 +33,7 @@ BOOL fpcEx_IsExist(fpc_ProcID i_id) { /* 800213C4-80021418 0054+00 s=0 e=1 z=0 None .text fpcEx_Execute__FP18base_process_class */ s32 fpcEx_Execute(base_process_class* i_proc) { - if (i_proc->init_state != 2 || fpcPause_IsEnable(i_proc, 1) == TRUE) + if (i_proc->state.init_state != 2 || fpcPause_IsEnable(i_proc, 1) == TRUE) return 0; return fpcBs_Execute(i_proc); @@ -56,7 +56,7 @@ s32 fpcEx_ToLineQ(base_process_class* i_proc) { } #endif - i_proc->init_state = 2; + i_proc->state.init_state = 2; if (fpcBs_Is_JustOfType(g_fpcNd_type, i_proc->subtype)) { fpcLyIt_OnlyHere(&((process_node_class*)i_proc)->layer, (fpcLyIt_OnlyHereFunc)fpcEx_ToLineQ, i_proc); } @@ -71,7 +71,7 @@ s32 fpcEx_ToLineQ(base_process_class* i_proc) { */ s32 fpcEx_ExecuteQTo(base_process_class* i_proc) { if (fpcLyTg_QueueTo(&i_proc->layer_tag) == 1) { - i_proc->init_state = 3; + i_proc->state.init_state = 3; return 1; } diff --git a/src/f_pc/f_pc_leaf.cpp b/src/f_pc/f_pc_leaf.cpp index b1906bf7336..bb343afd348 100644 --- a/src/f_pc/f_pc_leaf.cpp +++ b/src/f_pc/f_pc_leaf.cpp @@ -57,7 +57,7 @@ int g_fpcLf_type; /* 80021B14-80021B88 0074+00 s=1 e=0 z=0 None .text fpcLf_Create__FP14leafdraw_class */ s32 fpcLf_Create(leafdraw_class* i_leaf) { - if (i_leaf->base.init_state == 0) { + if (i_leaf->base.state.init_state == 0) { leaf_process_profile_definition* pprofile = (leaf_process_profile_definition*)i_leaf->base.profile; i_leaf->leaf_methods = pprofile->sub_method; i_leaf->base.subtype = fpcBs_MakeOfType(&g_fpcLf_type); diff --git a/src/f_pc/f_pc_node.cpp b/src/f_pc/f_pc_node.cpp index 72828c79682..f5c326d20eb 100644 --- a/src/f_pc/f_pc_node.cpp +++ b/src/f_pc/f_pc_node.cpp @@ -105,7 +105,7 @@ s32 fpcNd_Create(process_node_class* i_procNode) { layer_class* save_layer; s32 ret; - if (procnode->base.init_state == 0) { + if (procnode->base.state.init_state == 0) { node_process_profile_definition* pprofile = (node_process_profile_definition*)procnode->base.profile; procnode->base.subtype = fpcBs_MakeOfType(&g_fpcNd_type); procnode->nodedraw_method = (nodedraw_method_class*)pprofile->sub_methods; diff --git a/src/f_pc/f_pc_priority.cpp b/src/f_pc/f_pc_priority.cpp index 8d7a4b3a63a..896a28b0289 100644 --- a/src/f_pc/f_pc_priority.cpp +++ b/src/f_pc/f_pc_priority.cpp @@ -85,7 +85,7 @@ s32 fpcPi_Change(process_priority_class* i_procPriority, fpc_ProcID i_layerID, u base_process_class* process = (base_process_class*)i_procPriority->base.mpTagData; BOOL changed = FALSE; - if (process->init_state == 3) + if (process->state.init_state == 3) return 0; if (!fpcPi_IsNormal(i_layerID, i_listID, i_priority)) @@ -108,7 +108,7 @@ s32 fpcPi_Change(process_priority_class* i_procPriority, fpc_ProcID i_layerID, u changed = TRUE; } - if (process->init_state == 0 || process->init_state == 1) { + if (process->state.init_state == 0 || process->state.init_state == 1) { i_procPriority->current_info = i_procPriority->queue_info; return 1; }