diff --git a/config/SOUE01/rels/d_a_obj_barrelNP/symbols.txt b/config/SOUE01/rels/d_a_obj_barrelNP/symbols.txt index f36e8ac5..fb0a78d8 100644 --- a/config/SOUE01/rels/d_a_obj_barrelNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_barrelNP/symbols.txt @@ -99,92 +99,92 @@ isSameName__27sFStateID_c<12dAcOBarrel_c>CFPCc = .text:0x00006500; // type:funct _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_293_rodata_0 = .rodata:0x00000000; // type:object size:0x38 data:float -lbl_293_rodata_38 = .rodata:0x00000038; // type:object size:0x4 align:4 data:float -lbl_293_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_40 = .rodata:0x00000040; // type:object size:0x4 align:4 data:float -lbl_293_rodata_44 = .rodata:0x00000044; // type:object size:0x4 align:4 data:float -lbl_293_rodata_48 = .rodata:0x00000048; // type:object size:0x4 align:4 data:float -lbl_293_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_50 = .rodata:0x00000050; // type:object size:0x4 align:4 data:float -lbl_293_rodata_54 = .rodata:0x00000054; // type:object size:0x4 align:4 data:float -lbl_293_rodata_58 = .rodata:0x00000058; // type:object size:0x4 align:4 data:float -lbl_293_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_60 = .rodata:0x00000060; // type:object size:0x4 align:4 data:float -lbl_293_rodata_64 = .rodata:0x00000064; // type:object size:0x4 align:4 data:float -lbl_293_rodata_68 = .rodata:0x00000068; // type:object size:0x4 align:4 data:float -lbl_293_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_70 = .rodata:0x00000070; // type:object size:0x4 align:4 data:float -lbl_293_rodata_78 = .rodata:0x00000078; // type:object size:0x8 align:8 data:double -lbl_293_rodata_80 = .rodata:0x00000080; // type:object size:0x4 align:4 data:float -lbl_293_rodata_84 = .rodata:0x00000084; // type:object size:0x4 align:4 data:float -lbl_293_rodata_88 = .rodata:0x00000088; // type:object size:0x4 align:4 data:float -lbl_293_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_90 = .rodata:0x00000090; // type:object size:0x4 align:4 data:float -lbl_293_rodata_94 = .rodata:0x00000094; // type:object size:0x4 align:4 data:float -lbl_293_rodata_98 = .rodata:0x00000098; // type:object size:0x4 align:4 data:float -lbl_293_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 align:4 data:float -lbl_293_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 align:4 data:float -lbl_293_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 align:4 data:float -lbl_293_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 align:4 data:float -lbl_293_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 align:4 data:float -lbl_293_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 align:4 data:float -lbl_293_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 align:4 data:float -lbl_293_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 align:4 data:float -lbl_293_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 align:4 data:float -lbl_293_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 align:4 data:float -lbl_293_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 align:4 data:float -lbl_293_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 align:4 data:float -lbl_293_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 align:4 data:float -lbl_293_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 align:4 data:float -lbl_293_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 align:4 data:float -lbl_293_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 align:4 data:float -lbl_293_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 align:4 data:float -lbl_293_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 align:4 data:float -lbl_293_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 align:4 data:float -lbl_293_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 align:4 data:float -lbl_293_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 align:4 data:float -lbl_293_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 align:4 data:float -lbl_293_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 align:4 data:float -lbl_293_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 align:4 data:float -lbl_293_rodata_100 = .rodata:0x00000100; // type:object size:0x4 align:4 data:float -lbl_293_rodata_104 = .rodata:0x00000104; // type:object size:0x4 align:4 data:float -lbl_293_rodata_108 = .rodata:0x00000108; // type:object size:0x4 align:4 data:float -lbl_293_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_110 = .rodata:0x00000110; // type:object size:0x4 align:4 data:float -lbl_293_rodata_114 = .rodata:0x00000114; // type:object size:0x4 align:4 data:float -lbl_293_rodata_118 = .rodata:0x00000118; // type:object size:0x4 align:4 data:float -lbl_293_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_120 = .rodata:0x00000120; // type:object size:0x4 align:4 data:float -lbl_293_rodata_124 = .rodata:0x00000124; // type:object size:0x4 align:4 data:float -lbl_293_rodata_128 = .rodata:0x00000128; // type:object size:0x4 align:4 data:float -lbl_293_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_130 = .rodata:0x00000130; // type:object size:0x4 align:4 data:float -lbl_293_rodata_134 = .rodata:0x00000134; // type:object size:0x4 align:4 data:float -lbl_293_rodata_138 = .rodata:0x00000138; // type:object size:0x4 align:4 data:float -lbl_293_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 align:4 data:float -lbl_293_rodata_140 = .rodata:0x00000140; // type:object size:0x4 align:4 data:float -lbl_293_rodata_144 = .rodata:0x00000144; // type:object size:0x4 align:4 data:float -lbl_293_rodata_148 = .rodata:0x00000148; // type:object size:0x30 -lbl_293_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte +lbl_293_rodata_0 = .rodata:0x00000000; // type:object size:0x38 scope:local data:float +lbl_293_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local align:8 data:double +lbl_293_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local align:4 data:float +lbl_293_rodata_148 = .rodata:0x00000148; // type:object size:0x30 scope:local +lbl_293_data_0 = .data:0x00000000; // type:object size:0x8 scope:local data:4byte g_profile_OBJ_BARREL = .data:0x00000008; // type:object size:0x6C -lbl_293_data_74 = .data:0x00000074; // type:object size:0x7 data:string -lbl_293_data_7C = .data:0x0000007C; // type:object size:0xB data:string -lbl_293_data_88 = .data:0x00000088; // type:object size:0x10 -lbl_293_data_98 = .data:0x00000098; // type:object size:0x2C -lbl_293_data_C4 = .data:0x000000C4; // type:object size:0xF data:string -lbl_293_data_D4 = .data:0x000000D4; // type:object size:0x10 -lbl_293_data_E4 = .data:0x000000E4; // type:object size:0x4 align:4 data:float -lbl_293_data_E8 = .data:0x000000E8; // type:object size:0x8 align:4 data:float -lbl_293_data_F0 = .data:0x000000F0; // type:object size:0x80 -lbl_293_data_170 = .data:0x00000170; // type:object size:0x30 -lbl_293_data_1A0 = .data:0x000001A0; // type:object size:0x30 -lbl_293_data_1D0 = .data:0x000001D0; // type:object size:0x18 -lbl_293_data_1E8 = .data:0x000001E8; // type:object size:0x18 -lbl_293_data_200 = .data:0x00000200; // type:object size:0xC -lbl_293_data_20C = .data:0x0000020C; // type:object size:0x2A8 -lbl_293_data_4B4 = .data:0x000004B4; // type:object size:0x34 +lbl_293_data_74 = .data:0x00000074; // type:object size:0x7 scope:local data:string +lbl_293_data_7C = .data:0x0000007C; // type:object size:0xB scope:local data:string +lbl_293_data_88 = .data:0x00000088; // type:object size:0x10 scope:local +lbl_293_data_98 = .data:0x00000098; // type:object size:0x2C scope:local +lbl_293_data_C4 = .data:0x000000C4; // type:object size:0xF scope:local data:string +lbl_293_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local +lbl_293_data_E4 = .data:0x000000E4; // type:object size:0x4 scope:local align:4 data:float +lbl_293_data_E8 = .data:0x000000E8; // type:object size:0x8 scope:local align:4 data:float +lbl_293_data_F0 = .data:0x000000F0; // type:object size:0x80 scope:local +lbl_293_data_170 = .data:0x00000170; // type:object size:0x30 scope:local +lbl_293_data_1A0 = .data:0x000001A0; // type:object size:0x30 scope:local +lbl_293_data_1D0 = .data:0x000001D0; // type:object size:0x18 scope:local +lbl_293_data_1E8 = .data:0x000001E8; // type:object size:0x18 scope:local +lbl_293_data_200 = .data:0x00000200; // type:object size:0xC scope:local +lbl_293_data_20C = .data:0x0000020C; // type:object size:0x2A8 scope:local +lbl_293_data_4B4 = .data:0x000004B4; // type:object size:0x34 scope:local __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @16558 = .bss:0x00000008; // type:object size:0xC scope:local data:4byte StateID_Wait__12dAcOBarrel_c = .bss:0x00000018; // type:object size:0x30 data:4byte @@ -206,7 +206,7 @@ StateID_Explode__12dAcOBarrel_c = .bss:0x000001D8; // type:object size:0x30 data StateID_KrakenBorn__12dAcOBarrel_c = .bss:0x00000218; // type:object size:0x30 data:4byte @16594 = .bss:0x00000248; // type:object size:0xC scope:local data:4byte StateID_Rebirth__12dAcOBarrel_c = .bss:0x00000258; // type:object size:0x30 data:4byte -lbl_293_bss_288 = .bss:0x00000288; // type:object size:0x8 data:byte -lbl_293_bss_290 = .bss:0x00000290; // type:object size:0x10 align:4 data:float -lbl_293_bss_2A0 = .bss:0x000002A0; // type:object size:0x1 data:byte -lbl_293_bss_2A4 = .bss:0x000002A4; // type:object size:0xC align:4 data:float +@GUARD@draw__12dAcOBarrel_cFv@shadow = .bss:0x00000288; // type:object size:0x1 scope:local data:byte +@LOCAL@draw__12dAcOBarrel_cFv@shadow = .bss:0x00000290; // type:object size:0x10 scope:local align:4 data:float +@GUARD@fn_293_5910__12dAcOBarrel_cFv@scale = .bss:0x000002A0; // type:object size:0x1 scope:local data:byte +@LOCAL@fn_293_5910__12dAcOBarrel_cFv@scale = .bss:0x000002A4; // type:object size:0xC scope:local align:4 data:float diff --git a/config/SOUE01/rels/d_a_obj_stage_sinkNP/symbols.txt b/config/SOUE01/rels/d_a_obj_stage_sinkNP/symbols.txt index 8f334956..61479d7c 100644 --- a/config/SOUE01/rels/d_a_obj_stage_sinkNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_stage_sinkNP/symbols.txt @@ -25,7 +25,7 @@ finalizeState_Wait__15dAcOstageSink_cFv = .text:0x00000AA0; // type:function siz initializeState_Move__15dAcOstageSink_cFv = .text:0x00000AB0; // type:function size:0x4 executeState_Move__15dAcOstageSink_cFv = .text:0x00000AC0; // type:function size:0x23C finalizeState_Move__15dAcOstageSink_cFv = .text:0x00000D00; // type:function size:0x4 -fn_383_D10 = .text:0x00000D10; // type:function size:0xC +GetInstance__15dAcOstageSink_cFv = .text:0x00000D10; // type:function size:0xC fn_383_D20 = .text:0x00000D20; // type:function size:0xA0 fn_383_DC0 = .text:0x00000DC0; // type:function size:0x18 __dt__15dAcOstageSink_cFv = .text:0x00000DE0; // type:function size:0x100 diff --git a/config/SOUE01/rels/d_t_barrelNP/symbols.txt b/config/SOUE01/rels/d_t_barrelNP/symbols.txt index a56a2e20..3d27630f 100644 --- a/config/SOUE01/rels/d_t_barrelNP/symbols.txt +++ b/config/SOUE01/rels/d_t_barrelNP/symbols.txt @@ -4,31 +4,31 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global __register_global_object = .text:0x00000070; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global dTgBarrel_c_classInit__Fv = .text:0x000000F0; // type:function size:0x100 -__dt__11dTgBarrel_cFv = .text:0x000001F0; // type:function size:0x58 +__dt__5dTg_cFv = .text:0x000001F0; // type:function size:0x58 __dt__24sFState_c<11dTgBarrel_c>Fv = .text:0x00000250; // type:function size:0x58 __dt__27sFStateFct_c<11dTgBarrel_c>Fv = .text:0x000002B0; // type:function size:0x6C __dt__80sStateMgr_c<11dTgBarrel_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000320; // type:function size:0xA0 __dt__50sFStateMgr_c<11dTgBarrel_c,20sStateMethodUsr_FI_c>Fv = .text:0x000003C0; // type:function size:0xA4 -fn_442_470 = .text:0x00000470; // type:function size:0x14 -fn_442_490 = .text:0x00000490; // type:function size:0x58 -fn_442_4F0 = .text:0x000004F0; // type:function size:0x14 -fn_442_510 = .text:0x00000510; // type:function size:0x58 -TgBarrel__init1 = .text:0x00000570; // type:function size:0xC0 +__ct__24dAcRef_c<12dAcOBarrel_c>Fv = .text:0x00000470; // type:function size:0x14 +__dt__24dAcRef_c<12dAcOBarrel_c>Fv = .text:0x00000490; // type:function size:0x58 +__ct__26dAcRef_c<14dTgBarrelPos_c>Fv = .text:0x000004F0; // type:function size:0x14 +__dt__26dAcRef_c<14dTgBarrelPos_c>Fv = .text:0x00000510; // type:function size:0x58 +actorCreate__11dTgBarrel_cFv = .text:0x00000570; // type:function size:0xC0 changeState__80sStateMgr_c<11dTgBarrel_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000630; // type:function size:0x10 -TgBarrel__init2 = .text:0x00000640; // type:function size:0x9C -fn_442_6E0 = .text:0x000006E0; // type:function size:0x8 -TgBarrel__update = .text:0x000006F0; // type:function size:0x30 +actorPostCreate__11dTgBarrel_cFv = .text:0x00000640; // type:function size:0x9C +doDelete__11dTgBarrel_cFv = .text:0x000006E0; // type:function size:0x8 +actorExecute__11dTgBarrel_cFv = .text:0x000006F0; // type:function size:0x30 executeState__80sStateMgr_c<11dTgBarrel_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000720; // type:function size:0x10 -fn_442_730 = .text:0x00000730; // type:function size:0x8 +draw__11dTgBarrel_cFv = .text:0x00000730; // type:function size:0x8 initializeState_Wait__11dTgBarrel_cFv = .text:0x00000740; // type:function size:0x4 executeState_Wait__11dTgBarrel_cFv = .text:0x00000750; // type:function size:0x2E0 -fn_442_A30 = .text:0x00000A30; // type:function size:0x1C +calcTimer__4sLibFPUc_Uc = .text:0x00000A30; // type:function size:0x1C finalizeState_Wait__11dTgBarrel_cFv = .text:0x00000A50; // type:function size:0x4 initializeState_Stop__11dTgBarrel_cFv = .text:0x00000A60; // type:function size:0x4 executeState_Stop__11dTgBarrel_cFv = .text:0x00000A70; // type:function size:0x74 finalizeState_Stop__11dTgBarrel_cFv = .text:0x00000AF0; // type:function size:0x4 -fn_442_B00 = .text:0x00000B00; // type:function size:0x21C -fn_442_D20 = .text:0x00000D20; // type:function size:0x108 +checkPlayerPos__11dTgBarrel_cFRC7mVec3_c = .text:0x00000B00; // type:function size:0x21C +__dt__11dTgBarrel_cFv = .text:0x00000D20; // type:function size:0x108 getStateID__80sStateMgr_c<11dTgBarrel_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000E30; // type:function size:0x10 build__27sFStateFct_c<11dTgBarrel_c>FRC12sStateIDIf_c = .text:0x00000E40; // type:function size:0x60 dispose__27sFStateFct_c<11dTgBarrel_c>FRP10sStateIf_c = .text:0x00000EA0; // type:function size:0xC @@ -50,15 +50,16 @@ isSameName__26sFStateID_c<11dTgBarrel_c>CFPCc = .text:0x00001220; // type:functi _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_442_rodata_0 = .rodata:0x00000000; // type:object size:0x14 data:float +lbl_442_rodata_0 = .rodata:0x00000000; // type:object size:0x14 scope:local data:float g_profile_TAG_BARREL = .data:0x00000000; // type:object size:0x10 data:4byte -TgBarrel__vtable = .data:0x00000010; // type:object size:0x78 -lbl_442_data_88 = .data:0x00000088; // type:object size:0x30 -lbl_442_data_B8 = .data:0x000000B8; // type:object size:0x30 -lbl_442_data_E8 = .data:0x000000E8; // type:object size:0x18 -lbl_442_data_100 = .data:0x00000100; // type:object size:0x10C -lbl_442_data_20C = .data:0x0000020C; // type:object size:0x34 +__vt__11dTgBarrel_c = .data:0x00000010; // type:object size:0x74 +lbl_442_data_88 = .data:0x00000088; // type:object size:0x30 scope:local +lbl_442_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_442_data_E8 = .data:0x000000E8; // type:object size:0x18 scope:local +lbl_442_data_100 = .data:0x00000100; // type:object size:0x10C scope:local +lbl_442_data_20C = .data:0x0000020C; // type:object size:0x34 scope:local __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_442_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte -TgBarrel__StateID_Wait = .bss:0x00000018; // type:object size:0x40 data:4byte -TgBarrel__StateID_Stop = .bss:0x00000058; // type:object size:0x30 data:4byte +@23673 = .bss:0x00000008; // type:object size:0xC scope:local data:4byte +StateID_Wait__11dTgBarrel_c = .bss:0x00000018; // type:object size:0x30 data:4byte +@23677 = .bss:0x00000048; // type:object size:0xC scope:local data:4byte +StateID_Stop__11dTgBarrel_c = .bss:0x00000058; // type:object size:0x30 data:4byte diff --git a/config/SOUE01/rels/d_t_barrel_posNP/symbols.txt b/config/SOUE01/rels/d_t_barrel_posNP/symbols.txt index 2b6313ec..b0bfb701 100644 --- a/config/SOUE01/rels/d_t_barrel_posNP/symbols.txt +++ b/config/SOUE01/rels/d_t_barrel_posNP/symbols.txt @@ -2,12 +2,12 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global dTgBarrelPos_c_classInit__Fv = .text:0x00000070; // type:function size:0x5C -TgBarrelPos__init = .text:0x000000D0; // type:function size:0x7C -fn_443_150 = .text:0x00000150; // type:function size:0x8 -fn_443_160 = .text:0x00000160; // type:function size:0xE0 -fn_443_240 = .text:0x00000240; // type:function size:0x8 +create__14dTgBarrelPos_cFv = .text:0x000000D0; // type:function size:0x7C +doDelete__14dTgBarrelPos_cFv = .text:0x00000150; // type:function size:0x8 +actorExecute__14dTgBarrelPos_cFv = .text:0x00000160; // type:function size:0xE0 +draw__14dTgBarrelPos_cFv = .text:0x00000240; // type:function size:0x8 __dt__14dTgBarrelPos_cFv = .text:0x00000250; // type:function size:0x74 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global g_profile_TAG_BARREL_POS = .data:0x00000000; // type:object size:0x10 -lbl_443_section4_10 = .data:0x00000010; // type:object size:0x74 +__vt__14dTgBarrelPos_c = .data:0x00000010; // type:object size:0x74 diff --git a/configure.py b/configure.py index 02365a0b..3e57bbf6 100644 --- a/configure.py +++ b/configure.py @@ -2878,7 +2878,7 @@ config.libs = [ Rel(NonMatching, "d_t_at0", "REL/d/t/d_t_at0.cpp"), Rel(NonMatching, "d_t_auto_message", "REL/d/t/d_t_auto_message.cpp"), Rel(NonMatching, "d_t_barrel", "REL/d/t/d_t_barrel.cpp"), - Rel(NonMatching, "d_t_barrel_pos", "REL/d/t/d_t_barrel_pos.cpp"), + Rel(Matching, "d_t_barrel_pos", "REL/d/t/d_t_barrel_pos.cpp"), Rel(NonMatching, "d_t_bb_quake", "REL/d/t/d_t_bb_quake.cpp"), Rel(NonMatching, "d_t_bcal_tag", "REL/d/t/d_t_bcal_tag.cpp"), Rel(NonMatching, "d_t_bcz", "REL/d/t/d_t_bcz.cpp"), diff --git a/include/d/a/obj/d_a_obj_stage_sink.h b/include/d/a/obj/d_a_obj_stage_sink.h index c8da109e..7a0340b4 100644 --- a/include/d/a/obj/d_a_obj_stage_sink.h +++ b/include/d/a/obj/d_a_obj_stage_sink.h @@ -3,7 +3,6 @@ #include "d/a/obj/d_a_obj_base.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" class dAcOstageSink_c : public dAcObjBase_c { public: @@ -13,8 +12,12 @@ public: STATE_FUNC_DECLARE(dAcOstageSink_c, Wait); STATE_FUNC_DECLARE(dAcOstageSink_c, Move); + static dAcOstageSink_c *GetInstance(); + private: /* 0x??? */ STATE_MGR_DECLARE(dAcOstageSink_c); + + static dAcOstageSink_c *sInstance; }; #endif diff --git a/include/d/t/d_t_barrel.h b/include/d/t/d_t_barrel.h index a1255eb4..3266d6d1 100644 --- a/include/d/t/d_t_barrel.h +++ b/include/d/t/d_t_barrel.h @@ -1,20 +1,45 @@ #ifndef D_T_BARREL_H #define D_T_BARREL_H +#include "common.h" #include "d/a/d_a_base.h" +#include "d/t/d_tg.h" +#include "m/m_vec.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" -class dTgBarrel_c : public dAcBase_c { +class dTgBarrelPos_c; +class dAcOBarrel_c; +class dAcOstageSink_c; + +class dTgBarrel_c : public dTg_c { public: dTgBarrel_c() : mStateMgr(*this, sStateID::null) {} virtual ~dTgBarrel_c() {} + virtual int doDelete() override; + virtual int draw() override; + virtual int actorCreate() override; + virtual int actorPostCreate() override; + virtual int actorExecute() override; + STATE_FUNC_DECLARE(dTgBarrel_c, Wait); STATE_FUNC_DECLARE(dTgBarrel_c, Stop); + bool checkPlayerPos(const mVec3_c &playerPos); + private: - /* 0x??? */ STATE_MGR_DECLARE(dTgBarrel_c); + /* 0x0FC */ STATE_MGR_DECLARE(dTgBarrel_c); + /* 0x138 */ dAcRef_c mStageRef; + /* 0x144 */ dAcRef_c mTgBarrelPosArr[10]; + /* 0x1BC */ dAcRef_c mBarrelArr[10]; + /* 0x234 */ mVec3_c mSpawnPosition; + /* 0x240 */ u8 mStopFlag; ///< Stop Sceneflag - Note there is no checking done to see if valid + /* 0x241 */ u8 mSpawnInterval; ///< Barrel Spawn Interval in Seconds + /* 0x242 */ u8 mSpawnTimer; ///< Barrel Spawn Timer + /* 0x243 */ u8 mBarrelPosCount; ///< Represents the index of the highest dTgBarrelPos_c in mTgBarrelPosArr + /* 0x244 */ u8 mBarrelPosIndex; ///< Rolling index to spawn dAcOBarrel_c from a dTgBarrelPos_c + /* 0x245 */ u8 mLinkId; ///< Link Id used to find correct dTgBarrelPos_c + /* 0x246 */ bool mSpawnActive; ///< Used to reset the spawn timer after the player has already entered the area }; #endif diff --git a/include/d/t/d_t_barrel_pos.h b/include/d/t/d_t_barrel_pos.h index 2c0ac8f0..8a3885c3 100644 --- a/include/d/t/d_t_barrel_pos.h +++ b/include/d/t/d_t_barrel_pos.h @@ -1,14 +1,33 @@ #ifndef D_T_BARREL_POS_H #define D_T_BARREL_POS_H -#include "d/a/d_a_base.h" +#include "d/t/d_tg.h" +#include "m/m_vec.h" -class dTgBarrelPos_c : public dAcBase_c { +class dAcOstageSink_c; + +class dTgBarrelPos_c : public dTg_c { public: dTgBarrelPos_c() {} virtual ~dTgBarrelPos_c() {} + virtual int create() override; + virtual int doDelete() override; + virtual int draw() override; + virtual int actorExecute() override; + + u8 getLinkIndex() const { + return mLinkIndex; + } + u8 getLinkId() const { + return mLinkId; + } + private: + /* 0x0FC */ dAcRef_c mStageRef; + /* 0x108 */ mVec3_c mSpawnPosition; + /* 0x114 */ u8 mLinkIndex; ///< Link Index used in dTgBarrel_c array + /* 0x115 */ u8 mLinkId; ///< Link Id used to find correct dTgBarrel_c }; #endif diff --git a/src/REL/d/t/d_t_barrel.cpp b/src/REL/d/t/d_t_barrel.cpp index 40a232ef..d6d81a89 100644 --- a/src/REL/d/t/d_t_barrel.cpp +++ b/src/REL/d/t/d_t_barrel.cpp @@ -1,13 +1,164 @@ #include "d/t/d_t_barrel.h" +#include "common.h" +#include "d/a/d_a_base.h" +#include "d/a/d_a_player.h" +#include "d/a/obj/d_a_obj_barrel.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/a/obj/d_a_obj_stage_sink.h" +#include "d/flag/sceneflag_manager.h" +#include "d/t/d_t_barrel_pos.h" +#include "f/f_base.h" +#include "f/f_manager.h" +#include "f/f_profile_name.h" +#include "m/m_angle.h" +#include "m/m_mtx.h" +#include "m/m_vec.h" +#include "s/s_Math.h" + SPECIAL_ACTOR_PROFILE(TAG_BARREL, dTgBarrel_c, fProfile::TAG_BARREL, 0x221, 0, 0); STATE_DEFINE(dTgBarrel_c, Wait); STATE_DEFINE(dTgBarrel_c, Stop); +// Weak function ordering issue of the ctor and dtor of the objects +// for the following in the member arrays +// dAcRef_c +// dAcRef_c + +int dTgBarrel_c::actorCreate() { + mStopFlag = getFromParams(0, 0xFF); + mLinkId = getFromParams(16, 0xF); + mSpawnInterval = getFromParams(8, 0xFF); + mSpawnTimer = 1; + + mStageRef.link(dAcOstageSink_c::GetInstance()); + mSpawnPosition = mPosition; + + for (int i = 0; i < (int)ARRAY_LENGTH(mBarrelArr); ++i) { + mBarrelArr[i].unlink(); + } + + mStateMgr.changeState(StateID_Wait); + + return SUCCEEDED; +} + +int dTgBarrel_c::actorPostCreate() { + dTgBarrelPos_c *pTgBarrelPos = nullptr; + do { + pTgBarrelPos = + static_cast(fManager_c::searchBaseByProfName(fProfile::TAG_BARREL_POS, pTgBarrelPos)); + + if (pTgBarrelPos != nullptr) { + u8 index = pTgBarrelPos->getLinkIndex(); + if (mLinkId == pTgBarrelPos->getLinkId()) { + mTgBarrelPosArr[index].link(pTgBarrelPos); + if (index >= mBarrelPosCount) { + mBarrelPosCount = index + 1; + } + } + } + + } while (pTgBarrelPos != nullptr); + + return SUCCEEDED; +} + +int dTgBarrel_c::doDelete() { + return SUCCEEDED; +} + +int dTgBarrel_c::actorExecute() { + mStateMgr.executeState(); + return SUCCEEDED; +} + +int dTgBarrel_c::draw() { + return SUCCEEDED; +} + void dTgBarrel_c::initializeState_Wait() {} -void dTgBarrel_c::executeState_Wait() {} +void dTgBarrel_c::executeState_Wait() { + if (SceneflagManager::sInstance->checkBoolFlag(mRoomID, mStopFlag)) { + mStateMgr.changeState(StateID_Stop); + return; + } + dAcOstageSink_c *pStage = mStageRef.get(); + + mVec3_c pos = pStage->mPosition; + mAng3_c rot = pStage->mRotation; + + mVec3_c stageDist = mSpawnPosition - pos; + mMtx_c m; + m.transS(pos); + m.ZXYrotM(rot); + m.multVecSR(stageDist, mPosition); + + mPosition += pos; + + if (checkPlayerPos(dAcPy_c::GetLink()->mPosition)) { + if (0 == sLib::calcTimer(&mSpawnTimer)) { + mSpawnActive = true; + + u8 idx = 0xFF; + for (int i = 0; i < (int)ARRAY_LENGTH(mBarrelArr); ++i) { + if (!mBarrelArr[i].isLinked()) { + idx = i; + // I think they forgor a break here + } + } + + if (idx != 0xFF) { + dTgBarrelPos_c *pTgBarrelPos = mTgBarrelPosArr[mBarrelPosIndex].get(); + if (pTgBarrelPos != nullptr) { + mVec3_c spawnPos = pTgBarrelPos->mPosition; + mAng3_c spawnRot(0, 0x4000, 0); + dAcObjBase_c *pObj = dAcObjBase_c::create( + fProfile::OBJ_BARREL, mRoomID, 0xFF00FF2, &spawnPos, &spawnRot, nullptr, 0xFFFFFFFF + ); + mBarrelArr[idx].link(static_cast(pObj)); + } + if (++mBarrelPosIndex >= mBarrelPosCount) { + mBarrelPosIndex = 0; + } + } + mSpawnTimer = mSpawnInterval * 30; + } + } else { + if (mSpawnActive) { + mSpawnTimer = mSpawnInterval * 30; + } + } +} void dTgBarrel_c::finalizeState_Wait() {} + void dTgBarrel_c::initializeState_Stop() {} -void dTgBarrel_c::executeState_Stop() {} +void dTgBarrel_c::executeState_Stop() { + if (!SceneflagManager::sInstance->checkBoolFlag(mRoomID, mStopFlag)) { + mStateMgr.changeState(StateID_Wait); + } +} void dTgBarrel_c::finalizeState_Stop() {} + +bool dTgBarrel_c::checkPlayerPos(const mVec3_c &playerPos) { + f32 scale = 0.5f; + + mVec3_c pos = playerPos - (mPosition + (mVec3_c::Ey * mScale.y * scale)); + mAng rot = mStageRef.get()->mRotation.z; + + pos.x = pos.x / mScale.x; + pos.y = pos.y / mScale.y; + pos.z = pos.z / mScale.z; + + f32 halfCos = rot.cos() * scale; + if (rot.cos() != 0.f) { + scale = mScale.x * ((pos.x * rot.sin()) / rot.cos()) / mScale.y; + } + + return ( + (pos.x <= halfCos && pos.x >= -halfCos) // + && pos.y <= scale + 0.5f + 1e-6f && pos.y >= scale + -0.5f - 1e-6f // + && pos.z <= 0.5f && pos.z >= -0.5f + ); +} diff --git a/src/REL/d/t/d_t_barrel_pos.cpp b/src/REL/d/t/d_t_barrel_pos.cpp index 05b28f67..d57a19f4 100644 --- a/src/REL/d/t/d_t_barrel_pos.cpp +++ b/src/REL/d/t/d_t_barrel_pos.cpp @@ -1,3 +1,47 @@ #include "d/t/d_t_barrel_pos.h" +#include "d/a/obj/d_a_obj_stage_sink.h" +#include "d/t/d_t_barrel.h" +#include "f/f_base.h" + SPECIAL_ACTOR_PROFILE(TAG_BARREL_POS, dTgBarrelPos_c, fProfile::TAG_BARREL_POS, 0x222, 0, 0); + +int dTgBarrelPos_c::create() { + mLinkIndex = getFromParams(0, 0xFF); + if (mLinkIndex == 0xFF) { + mLinkIndex = 0; + } + + mLinkId = getFromParams(8, 0xF); + + mStageRef.link(dAcOstageSink_c::GetInstance()); + + mSpawnPosition = mPosition; + + return SUCCEEDED; +} + +int dTgBarrelPos_c::doDelete() { + return SUCCEEDED; +} + +int dTgBarrelPos_c::actorExecute() { + dAcOstageSink_c *pStage = mStageRef.get(); + + mVec3_c pos = pStage->mPosition; + mAng3_c rot = pStage->mRotation; + + mVec3_c stageDist = mSpawnPosition - pos; + mMtx_c m; + m.transS(pos); + m.ZXYrotM(rot); + m.multVecSR(stageDist, mPosition); + + mPosition += pos; + + return SUCCEEDED; +} + +int dTgBarrelPos_c::draw() { + return SUCCEEDED; +}