diff --git a/config/SOUE01/rels/d_a_b_lastbossNP/symbols.txt b/config/SOUE01/rels/d_a_b_lastbossNP/symbols.txt index 859a0104..bc93a89d 100644 --- a/config/SOUE01/rels/d_a_b_lastbossNP/symbols.txt +++ b/config/SOUE01/rels/d_a_b_lastbossNP/symbols.txt @@ -82,8 +82,8 @@ forceSetAnm__14dAcBlastboss_cFPCcf = .text:0x00007360; // type:function size:0x5 setAnmRate__14dAcBlastboss_cFf = .text:0x000073B0; // type:function size:0x10 draw__14dAcBlastboss_cFv = .text:0x000073C0; // type:function size:0x60 checkForCloseRangeAttack__14dAcBlastboss_cFv = .text:0x00007420; // type:function size:0x17C -fn_143_75A0__14dAcBlastboss_cFv = .text:0x000075A0; // type:function size:0x218 -fn_143_77C0__14dAcBlastboss_cFv = .text:0x000077C0; // type:function size:0x338 +checkForRangeAttack__14dAcBlastboss_cFv = .text:0x000075A0; // type:function size:0x218 +checkForCounter__14dAcBlastboss_cFv = .text:0x000077C0; // type:function size:0x338 fn_143_7B00__14dAcBlastboss_cFv = .text:0x00007B00; // type:function size:0x478 fn_143_7F80__14dAcBlastboss_cFv = .text:0x00007F80; // type:function size:0x674 fn_143_8600 = .text:0x00008600; // type:function size:0x860 @@ -97,11 +97,11 @@ vt_0x84__11dAcEnBase_cFv = .text:0x0000A1E0; // type:function size:0x4 vt_0x80__11dAcEnBase_cFv = .text:0x0000A1F0; // type:function size:0x4 getObjectListEntry__11dAcEnBase_cFv = .text:0x0000A200; // type:function size:0x8 __dt__14dAcBlastboss_cFv = .text:0x0000A210; // type:function size:0x398 -fn_143_A5B0 = .text:0x0000A5B0; // type:function size:0x4 -fn_143_A5C0 = .text:0x0000A5C0; // type:function size:0x4 -fn_143_A5D0 = .text:0x0000A5D0; // type:function size:0x4 -fn_143_A5E0 = .text:0x0000A5E0; // type:function size:0x4 -fn_143_A5F0 = .text:0x0000A5F0; // type:function size:0x4 +ExecCallback_DRAW_XLU__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x0000A5B0; // type:function size:0x4 +ExecCallback_DRAW_OPA__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x0000A5C0; // type:function size:0x4 +ExecCallback_CALC_MAT__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x0000A5D0; // type:function size:0x4 +ExecCallback_CALC_WORLD__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x0000A5E0; // type:function size:0x4 +ExecCallback_CALC_VIEW__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x0000A5F0; // type:function size:0x4 build__30sFStateFct_c<14dAcBlastboss_c>FRC12sStateIDIf_c = .text:0x0000A600; // type:function size:0x60 dispose__30sFStateFct_c<14dAcBlastboss_c>FRP10sStateIf_c = .text:0x0000A660; // type:function size:0xC initialize__27sFState_c<14dAcBlastboss_c>Fv = .text:0x0000A670; // type:function size:0x1C @@ -126,19 +126,105 @@ _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_143_rodata_0 = .rodata:0x00000000; // type:object size:0xC data:float -lbl_143_rodata_C = .rodata:0x0000000C; // type:object size:0x64 align:4 data:float -lbl_143_rodata_70 = .rodata:0x00000070; // type:object size:0x20 align:4 data:float +lbl_143_rodata_C = .rodata:0x0000000C; // type:object size:0x4 align:4 data:float +lbl_143_rodata_10 = .rodata:0x00000010; // type:object size:0x4 align:4 data:float +lbl_143_rodata_14 = .rodata:0x00000014; // type:object size:0x4 align:4 data:float +lbl_143_rodata_18 = .rodata:0x00000018; // type:object size:0x4 +lbl_143_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 +lbl_143_rodata_20 = .rodata:0x00000020; // type:object size:0x4 +lbl_143_rodata_24 = .rodata:0x00000024; // type:object size:0x4 +lbl_143_rodata_28 = .rodata:0x00000028; // type:object size:0x4 +lbl_143_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_143_rodata_30 = .rodata:0x00000030; // type:object size:0x4 +lbl_143_rodata_38 = .rodata:0x00000038; // type:object size:0x10 +lbl_143_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_143_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 +lbl_143_rodata_50 = .rodata:0x00000050; // type:object size:0x4 +lbl_143_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_143_rodata_58 = .rodata:0x00000058; // type:object size:0x4 +lbl_143_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 +lbl_143_rodata_60 = .rodata:0x00000060; // type:object size:0x4 +lbl_143_rodata_64 = .rodata:0x00000064; // type:object size:0x4 +lbl_143_rodata_68 = .rodata:0x00000068; // type:object size:0x4 +lbl_143_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_143_rodata_70 = .rodata:0x00000070; // type:object size:0x4 align:4 data:float +lbl_143_rodata_74 = .rodata:0x00000074; // type:object size:0x4 +lbl_143_rodata_78 = .rodata:0x00000078; // type:object size:0x4 +lbl_143_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 +lbl_143_rodata_80 = .rodata:0x00000080; // type:object size:0x4 +lbl_143_rodata_84 = .rodata:0x00000084; // type:object size:0x4 +lbl_143_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_143_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float lbl_143_rodata_90 = .rodata:0x00000090; // type:object size:0x4 align:4 data:float -lbl_143_rodata_94 = .rodata:0x00000094; // type:object size:0x10 align:4 data:float -lbl_143_rodata_A4 = .rodata:0x000000A4; // type:object size:0x44 align:4 data:float -lbl_143_rodata_E8 = .rodata:0x000000E8; // type:object size:0x18 align:4 data:float -lbl_143_rodata_100 = .rodata:0x00000100; // type:object size:0x18 align:8 data:double -lbl_143_rodata_118 = .rodata:0x00000118; // type:object size:0xC align:4 data:float -lbl_143_rodata_124 = .rodata:0x00000124; // type:object size:0x10 align:4 data:float -lbl_143_rodata_134 = .rodata:0x00000134; // type:object size:0x7C align:4 data:float -lbl_143_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 align:4 data:float -lbl_143_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x10 align:4 data:float -lbl_143_rodata_1C8 = .rodata:0x000001C8; // type:object size:0xC align:4 data:float +lbl_143_rodata_94 = .rodata:0x00000094; // type:object size:0x4 align:4 data:float +lbl_143_rodata_98 = .rodata:0x00000098; // type:object size:0x4 align:4 data:float +lbl_143_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 align:4 data:float +lbl_143_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 +lbl_143_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 align:4 data:float +lbl_143_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 align:4 data:float +lbl_143_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 align:4 data:float +lbl_143_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_143_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_143_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_143_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_143_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_143_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_143_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_143_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_143_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_143_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_143_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_143_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_143_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_143_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_143_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 align:4 data:float +lbl_143_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 align:4 data:float +lbl_143_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 align:4 data:float +lbl_143_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 align:4 data:float +lbl_143_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 align:8 data:double +lbl_143_rodata_100 = .rodata:0x00000100; // type:object size:0x8 align:8 data:double +lbl_143_rodata_108 = .rodata:0x00000108; // type:object size:0x4 +lbl_143_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 +lbl_143_rodata_110 = .rodata:0x00000110; // type:object size:0x4 +lbl_143_rodata_114 = .rodata:0x00000114; // type:object size:0x4 +lbl_143_rodata_118 = .rodata:0x00000118; // type:object size:0x4 align:4 data:float +lbl_143_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 +lbl_143_rodata_120 = .rodata:0x00000120; // type:object size:0x4 +lbl_143_rodata_124 = .rodata:0x00000124; // type:object size:0x4 align:4 data:float +lbl_143_rodata_128 = .rodata:0x00000128; // type:object size:0x4 +lbl_143_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 +lbl_143_rodata_130 = .rodata:0x00000130; // type:object size:0x4 +lbl_143_rodata_134 = .rodata:0x00000134; // type:object size:0x4 align:4 data:float +lbl_143_rodata_138 = .rodata:0x00000138; // type:object size:0x4 align:4 data:float +lbl_143_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 align:4 data:float +lbl_143_rodata_140 = .rodata:0x00000140; // type:object size:0x4 +lbl_143_rodata_144 = .rodata:0x00000144; // type:object size:0x4 +lbl_143_rodata_148 = .rodata:0x00000148; // type:object size:0x4 +lbl_143_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 +lbl_143_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_143_rodata_154 = .rodata:0x00000154; // type:object size:0x4 +lbl_143_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_143_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_143_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_143_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_143_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_143_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_143_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_143_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_143_rodata_178 = .rodata:0x00000178; // type:object size:0x28 +lbl_143_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_143_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_143_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_143_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 +lbl_143_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 align:4 data:float +lbl_143_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 align:4 data:float lbl_143_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x3C align:4 data:float lbl_143_rodata_210 = .rodata:0x00000210; // type:object size:0x90 align:4 data:float g_profile_B_LASTBOSS = .data:0x00000000; // type:object size:0x10 data:4byte @@ -148,16 +234,39 @@ sSrcCyl3 = .data:0x00000070; // type:object size:0x30 sSrcSph1 = .data:0x000000A0; // type:object size:0x2C sSrcSph2 = .data:0x000000CC; // type:object size:0x2C sSrcSph = .data:0x000000F8; // type:object size:0x2C -lbl_143_data_124 = .data:0x00000124; // type:object size:0x7C +lbl_143_data_124 = .data:0x00000124; // type:object size:0xA data:string +lbl_143_data_130 = .data:0x00000130; // type:object size:0x9 data:string +lbl_143_data_13C = .data:0x0000013C; // type:object size:0x5 data:string +lbl_143_data_144 = .data:0x00000144; // type:object size:0x5 data:string +lbl_143_data_14C = .data:0x0000014C; // type:object size:0xE data:string +lbl_143_data_15C = .data:0x0000015C; // type:object size:0xD data:string +lbl_143_data_16C = .data:0x0000016C; // type:object size:0x1C data:string +lbl_143_data_188 = .data:0x00000188; // type:object size:0xC data:string +lbl_143_data_194 = .data:0x00000194; // type:object size:0xA data:string lbl_143_data_1A0 = .data:0x000001A0; // type:object size:0x10 data:string -lbl_143_data_1B0 = .data:0x000001B0; // type:object size:0x28 +lbl_143_data_1B0 = .data:0x000001B0; // type:object size:0x5 data:string +lbl_143_data_1B8 = .data:0x000001B8; // type:object size:0x5 data:string +lbl_143_data_1C0 = .data:0x000001C0; // type:object size:0x7 data:string +lbl_143_data_1C8 = .data:0x000001C8; // type:object size:0x6 data:string +lbl_143_data_1D0 = .data:0x000001D0; // type:object size:0x6 data:string lbl_143_data_1D8 = .data:0x000001D8; // type:object size:0xC data:string -lbl_143_data_1E4 = .data:0x000001E4; // type:object size:0x64 +lbl_143_data_1E8 = .data:0x000001E8; // type:object size:0x8 data:string +lbl_143_data_1F0 = .data:0x000001F0; // type:object size:0x8 data:string +lbl_143_data_1F8 = .data:0x000001F8; // type:object size:0x8 data:string +lbl_143_data_200 = .data:0x00000200; // type:object size:0x8 data:string +lbl_143_data_208 = .data:0x00000208; // type:object size:0xE data:string +lbl_143_data_218 = .data:0x00000218; // type:object size:0xA data:string +lbl_143_data_224 = .data:0x00000224; // type:object size:0xC data:string +lbl_143_data_230 = .data:0x00000230; // type:object size:0xC data:string +lbl_143_data_23C = .data:0x0000023C; // type:object size:0xC data:string lbl_143_data_248 = .data:0x00000248; // type:object size:0xE data:string lbl_143_data_258 = .data:0x00000258; // type:object size:0x4 data:4byte lbl_143_data_25C = .data:0x0000025C; // type:object size:0x7 data:string -lbl_143_data_264 = .data:0x00000264; // type:object size:0x14 -lbl_143_data_278 = .data:0x00000278; // type:object size:0x20 +lbl_143_data_264 = .data:0x00000264; // type:object size:0x4 +lbl_143_data_268 = .data:0x00000268; // type:object size:0x4 +lbl_143_data_26C = .data:0x0000026C; // type:object size:0xC +lbl_143_data_278 = .data:0x00000278; // type:object size:0x10 data:string +lbl_143_data_288 = .data:0x00000288; // type:object size:0xF data:string lbl_143_data_298 = .data:0x00000298; // type:object size:0x11 data:string lbl_143_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte lbl_143_data_2B0 = .data:0x000002B0; // type:object size:0x7 data:string @@ -169,17 +278,35 @@ lbl_143_data_2D8 = .data:0x000002D8; // type:object size:0x8 data:string lbl_143_data_2E0 = .data:0x000002E0; // type:object size:0x7 data:string lbl_143_data_2E8 = .data:0x000002E8; // type:object size:0x7 data:string lbl_143_data_2F0 = .data:0x000002F0; // type:object size:0x7 data:string -lbl_143_data_2F8 = .data:0x000002F8; // type:object size:0x58 +lbl_143_data_2F8 = .data:0x000002F8; // type:object size:0x7 data:string +lbl_143_data_300 = .data:0x00000300; // type:object size:0x28 +lbl_143_data_328 = .data:0x00000328; // type:object size:0xD data:string +lbl_143_data_338 = .data:0x00000338; // type:object size:0xD data:string +lbl_143_data_348 = .data:0x00000348; // type:object size:0x7 data:string lbl_143_data_350 = .data:0x00000350; // type:object size:0xB data:string lbl_143_data_35C = .data:0x0000035C; // type:object size:0xC data:string lbl_143_data_368 = .data:0x00000368; // type:object size:0x7 data:string -lbl_143_data_370 = .data:0x00000370; // type:object size:0x64 -lbl_143_data_3D4 = .data:0x000003D4; // type:object size:0x34 +lbl_143_data_370 = .data:0x00000370; // type:object size:0x7 data:string +lbl_143_data_378 = .data:0x00000378; // type:object size:0xB data:string +lbl_143_data_384 = .data:0x00000384; // type:object size:0xE data:string +lbl_143_data_394 = .data:0x00000394; // type:object size:0xE data:string +lbl_143_data_3A4 = .data:0x000003A4; // type:object size:0xE data:string +lbl_143_data_3B4 = .data:0x000003B4; // type:object size:0xE data:string +lbl_143_data_3C4 = .data:0x000003C4; // type:object size:0xE data:string +lbl_143_data_3D4 = .data:0x000003D4; // type:object size:0xB data:string +lbl_143_data_3E0 = .data:0x000003E0; // type:object size:0xA data:string +lbl_143_data_3EC = .data:0x000003EC; // type:object size:0x9 data:string +lbl_143_data_3F8 = .data:0x000003F8; // type:object size:0x9 data:string +lbl_143_data_404 = .data:0x00000404; // type:object size:0x4 data:string lbl_143_data_408 = .data:0x00000408; // type:object size:0x11 data:string jumptable_143_data_41C = .data:0x0000041C; // type:object size:0x58 scope:local lbl_143_data_474 = .data:0x00000474; // type:object size:0x9 data:string lbl_143_data_480 = .data:0x00000480; // type:object size:0xC data:string -lbl_143_data_48C = .data:0x0000048C; // type:object size:0x34 +lbl_143_data_48C = .data:0x0000048C; // type:object size:0x12 data:string +lbl_143_data_4A0 = .data:0x000004A0; // type:object size:0x4 +lbl_143_data_4A4 = .data:0x000004A4; // type:object size:0x4 +lbl_143_data_4A8 = .data:0x000004A8; // type:object size:0xC +lbl_143_data_4B4 = .data:0x000004B4; // type:object size:0xC lbl_143_data_4C0 = .data:0x000004C0; // type:object size:0x4 data:4byte lbl_143_data_4C4 = .data:0x000004C4; // type:object size:0x5C data:4byte __vt__14dAcBlastboss_c = .data:0x00000520; // type:object size:0x90 @@ -192,21 +319,33 @@ __vt__Q214dAcBlastboss_c10callback_c = .data:0x000006B0; // type:object size:0x1 __vt__15dCcD_Linked_Sph = .data:0x000006C8; // type:object size:0x70 __vt__16dEnemySwordMdl_c = .data:0x00000738; // type:object size:0x10 lbl_143_data_748 = .data:0x00000748; // type:object size:0x70 -__vt__26dSwordSwingEffectProcMgr_c = .data:0x000007B8; // type:object size:0x410 +__vt__26dSwordSwingEffectProcMgr_c = .data:0x000007B8; // type:object size:0xC +__vt__Q34nw4r3g3d15IScnObjCallback = .data:0x000007C8; // type:object size:0x20 +lbl_143_data_7E8 = .data:0x000007E8; // type:object size:0x3E0 __vt__29sFStateID_c<14dAcBlastboss_c> = .data:0x00000BC8; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global lbl_143_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte -StateID_Fight__14dAcBlastboss_c = .bss:0x00000018; // type:object size:0x40 data:4byte -StateID_Guard__14dAcBlastboss_c = .bss:0x00000058; // type:object size:0x40 data:4byte -StateID_GuardBreak__14dAcBlastboss_c = .bss:0x00000098; // type:object size:0x40 data:4byte -StateID_Attack__14dAcBlastboss_c = .bss:0x000000D8; // type:object size:0x40 data:4byte -StateID_CounterAttack__14dAcBlastboss_c = .bss:0x00000118; // type:object size:0x40 data:4byte -StateID_PunchAttack__14dAcBlastboss_c = .bss:0x00000158; // type:object size:0x40 data:4byte -StateID_DashAttack__14dAcBlastboss_c = .bss:0x00000198; // type:object size:0x40 data:4byte -StateID_SmallAttack__14dAcBlastboss_c = .bss:0x000001D8; // type:object size:0x40 data:4byte -StateID_ThunderAttack__14dAcBlastboss_c = .bss:0x00000218; // type:object size:0x40 data:4byte -StateID_Damage__14dAcBlastboss_c = .bss:0x00000258; // type:object size:0x40 data:4byte -StateID_SitDamage__14dAcBlastboss_c = .bss:0x00000298; // type:object size:0x40 data:4byte -StateID_Down__14dAcBlastboss_c = .bss:0x000002D8; // type:object size:0x40 data:4byte -StateID_Stun__14dAcBlastboss_c = .bss:0x00000318; // type:object size:0x40 data:4byte -StateID_ThunderWait__14dAcBlastboss_c = .bss:0x00000358; // type:object size:0x40 data:4byte +StateID_Fight__14dAcBlastboss_c = .bss:0x00000018; // type:object size:0x30 data:4byte +StateID_Guard__14dAcBlastboss_c = .bss:0x00000058; // type:object size:0x30 data:4byte +StateID_GuardBreak__14dAcBlastboss_c = .bss:0x00000098; // type:object size:0x30 data:4byte +StateID_Attack__14dAcBlastboss_c = .bss:0x000000D8; // type:object size:0x30 data:4byte +StateID_CounterAttack__14dAcBlastboss_c = .bss:0x00000118; // type:object size:0x30 data:4byte +StateID_PunchAttack__14dAcBlastboss_c = .bss:0x00000158; // type:object size:0x30 data:4byte +StateID_DashAttack__14dAcBlastboss_c = .bss:0x00000198; // type:object size:0x30 data:4byte +StateID_SmallAttack__14dAcBlastboss_c = .bss:0x000001D8; // type:object size:0x30 data:4byte +StateID_ThunderAttack__14dAcBlastboss_c = .bss:0x00000218; // type:object size:0x30 data:4byte +StateID_Damage__14dAcBlastboss_c = .bss:0x00000258; // type:object size:0x30 data:4byte +StateID_SitDamage__14dAcBlastboss_c = .bss:0x00000298; // type:object size:0x30 data:4byte +StateID_Down__14dAcBlastboss_c = .bss:0x000002D8; // type:object size:0x30 data:4byte +StateID_Stun__14dAcBlastboss_c = .bss:0x00000318; // type:object size:0x30 data:4byte +StateID_ThunderWait__14dAcBlastboss_c = .bss:0x00000358; // type:object size:0x30 data:4byte +lbl_143_bss_388 = .bss:0x00000388; // type:object size:0x1 data:byte +lbl_143_bss_38C = .bss:0x0000038C; // type:object size:0x6 +lbl_143_bss_392 = .bss:0x00000392; // type:object size:0x1 data:byte +lbl_143_bss_394 = .bss:0x00000394; // type:object size:0xC +lbl_143_bss_3A0 = .bss:0x000003A0; // type:object size:0x1 data:byte +lbl_143_bss_3A4 = .bss:0x000003A4; // type:object size:0x6 +lbl_143_bss_3AA = .bss:0x000003AA; // type:object size:0x1 data:byte +lbl_143_bss_3AC = .bss:0x000003AC; // type:object size:0xC +lbl_143_bss_3B8 = .bss:0x000003B8; // type:object size:0x1 data:byte +lbl_143_bss_3BC = .bss:0x000003BC; // type:object size:0xC diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index ee6830f9..c30b856b 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -1170,7 +1170,7 @@ fn_8002FBC0 = .text:0x8002FBC0; // type:function size:0x4 fn_8002FBD0 = .text:0x8002FBD0; // type:function size:0x18 fn_8002FBF0 = .text:0x8002FBF0; // type:function size:0x20 fn_8002FC10 = .text:0x8002FC10; // type:function size:0xF4 -someEnemyDamageCollisionStuffMaybe = .text:0x8002FD10; // type:function size:0x7C +someEnemyDamageCollisionStuffMaybe__11dAcEnBase_cFR19dColliderLinkedListPUs = .text:0x8002FD10; // type:function size:0x7C fn_8002FD90 = .text:0x8002FD90; // type:function size:0x4C fn_8002FDE0 = .text:0x8002FDE0; // type:function size:0x170 fn_8002FF50 = .text:0x8002FF50; // type:function size:0xD4 @@ -20536,7 +20536,7 @@ getNextInBgmSoundList__12dSndBgmMgr_cFQ212dSndBgmMgr_c14BgmSoundList_eP14dSndBgm getLastInBgmSoundList__12dSndBgmMgr_cFQ212dSndBgmMgr_c14BgmSoundList_e = .text:0x80372C20; // type:function size:0x28 fn_80372C50 = .text:0x80372C50; // type:function size:0x8C fn_80372CE0 = .text:0x80372CE0; // type:function size:0x8C -fn_80372D70 = .text:0x80372D70; // type:function size:0x74 +fn_80372D70__12dSndBgmMgr_cFi = .text:0x80372D70; // type:function size:0x74 fn_80372DF0 = .text:0x80372DF0; // type:function size:0x40 fn_80372E30 = .text:0x80372E30; // type:function size:0x40 fn_80372E70 = .text:0x80372E70; // type:function size:0xB0 diff --git a/include/d/a/b/d_a_b_lastboss.h b/include/d/a/b/d_a_b_lastboss.h index 39e75789..f38ace6c 100644 --- a/include/d/a/b/d_a_b_lastboss.h +++ b/include/d/a/b/d_a_b_lastboss.h @@ -264,8 +264,8 @@ private: bool checkDamage(); bool checkForCloseRangeAttack(); - bool fn_143_75A0(); - bool fn_143_77C0(); + bool checkForRangeAttack(); + bool checkForCounter(); void fn_143_7B00(); void fn_143_7F80(); bool fn_143_9420(); diff --git a/src/REL/d/a/b/d_a_b_lastboss.cpp b/src/REL/d/a/b/d_a_b_lastboss.cpp index 36b2956f..6d614d1f 100644 --- a/src/REL/d/a/b/d_a_b_lastboss.cpp +++ b/src/REL/d/a/b/d_a_b_lastboss.cpp @@ -1105,9 +1105,9 @@ void dAcBlastboss_c::executeState_Fight() { } if (field_0x117C == 0) { - if (!fn_143_75A0()) { + if (!checkForRangeAttack()) { checkForCloseRangeAttack(); - fn_143_77C0(); + checkForCounter(); } mCc1.SetTgFlag_0xA(0x1FF); } else { @@ -1208,7 +1208,7 @@ void dAcBlastboss_c::executeState_Attack() { mCc1.SetTgFlag_0xA(0x1); } } - fn_143_77C0(); + checkForCounter(); } void dAcBlastboss_c::finalizeState_Attack() {} @@ -1286,7 +1286,7 @@ void dAcBlastboss_c::executeState_CounterAttack() { } else if (b) { mCc1.SetTgFlag_0xA(0x1FF); field_0x1142 = 0; - fn_143_77C0(); + checkForCounter(); } if (mMdl.getAnm().isStop()) { @@ -1535,7 +1535,7 @@ void dAcBlastboss_c::executeState_Guard() { setAnm(sGuardNames[field_0x1144], 3.0f); mTimers[TIMER_0] = 14; } else { - setAnm(sGuardNames[field_0x1144], 3.0f); + forceSetAnm(sGuardNames[field_0x1144], 3.0f); } mSubState = SUB_STATE_1; // fall-through @@ -1558,7 +1558,7 @@ void dAcBlastboss_c::executeState_Guard() { } if (!link->isAttackingJumpSlash()) { - fn_143_77C0(); + checkForCounter(); } break; } @@ -1616,7 +1616,7 @@ void dAcBlastboss_c::executeState_Guard() { } mCc1.SetTgFlag_0xA(sGuardFlags[field_0x1144]); - fn_143_75A0(); + checkForRangeAttack(); } void dAcBlastboss_c::finalizeState_Guard() {} @@ -1654,7 +1654,7 @@ void dAcBlastboss_c::executeState_GuardBreak() { } sLib::addCalcScaled(&mSpeed, 1.0f, 4.0f); mCc1.SetTgFlag_0xA(0x1FF); - fn_143_77C0(); + checkForCounter(); } void dAcBlastboss_c::finalizeState_GuardBreak() {} @@ -1678,7 +1678,7 @@ void dAcBlastboss_c::executeState_Damage() { if (field_0x1149 == 0 && !link->isAttackingSpin()) { mCc1.SetTgFlag_0xA(0x1FF); } - fn_143_77C0(); + checkForCounter(); } void dAcBlastboss_c::finalizeState_Damage() {} @@ -1715,19 +1715,19 @@ void dAcBlastboss_c::executeState_SitDamage() { mStateMgr.changeState(StateID_Fight); mTimers[TIMER_4] = 15; } - fn_143_77C0(); + checkForCounter(); mCc1.SetTgFlag_0xA(0x1FF); return; } case SUB_STATE_5: { if (field_0x1137 == 0) { - setAnm("ChanceDamageU", 2.0f); + forceSetAnm("ChanceDamageU", 2.0f); } else if (field_0x1137 == 1) { - setAnm("ChanceDamageR", 2.0f); + forceSetAnm("ChanceDamageR", 2.0f); } else if (field_0x1137 == 2) { - setAnm("ChanceDamageL", 2.0f); + forceSetAnm("ChanceDamageL", 2.0f); } else { - setAnm("ChanceDamageD", 2.0f); + forceSetAnm("ChanceDamageD", 2.0f); } mSubState = SUB_STATE_6; break; @@ -1991,7 +1991,7 @@ void dAcBlastboss_c::executeState_Stun() { sLib::addCalcScaled(&mSpeed, 1.0f, 10.0f); if (mChanceAttackCounter >= 7) { mCc1.SetTgFlag_0xA(0x1FF); - fn_143_77C0(); + checkForCounter(); } else { if (field_0x1143 != 0) { mCc1.SetTgFlag_0xA(0x1FF); @@ -2046,7 +2046,7 @@ void dAcBlastboss_c::executeState_ThunderWait() { case SUB_STATE_5: { if (mMdl.getAnm().getFrame() >= 20.0f) { mCc1.SetTgFlag_0xA(0x1FF); - fn_143_77C0(); + checkForCounter(); } if (mMdl.getAnm().isStop()) { mStateMgr.changeState(StateID_Fight); @@ -2146,7 +2146,6 @@ bool dAcBlastboss_c::checkDamage() { if (fn_143_9570(attackDir) == fn_143_9570(mLastAttackDir)) { x = 1; } - // TODO the branches here are wrong if (field_0x1136 >= x || (field_0x11D8 >= 0 && (fn_143_9570(field_0x11D8) & 2) == (fn_143_9570(attackDir) & 2))) { mSubState = SUB_STATE_0; @@ -2425,7 +2424,7 @@ bool dAcBlastboss_c::checkForCloseRangeAttack() { return ret; } -bool dAcBlastboss_c::fn_143_75A0() { +bool dAcBlastboss_c::checkForRangeAttack() { dAcPy_c *link = dAcPy_c::GetLinkM(); bool ret = false; @@ -2469,7 +2468,73 @@ bool dAcBlastboss_c::fn_143_75A0() { return ret; } -bool dAcBlastboss_c::fn_143_77C0() {} +bool dAcBlastboss_c::checkForCounter() { + bool ret = false; + + if (field_0x113E != 0) { + return false; + } + + f32 attackRange = 450.0f; + if (dAcPy_c::GetLinkM()->isAttackingJumpSlash()) { + attackRange = 750.0f; + } + + if (mXZDistanceToLink < attackRange) { + dAcPy_c *link = dAcPy_c::GetLinkM(); + if (link->checkFlags0x354(0x04)) { + if (link->isAttackingSpin()) { + field_0x11A4 = 15.0f; + } else if (link->isAttacking()) { + field_0x11A4 = 7.0f; + } + + s32 attackDir = link->getSpecificAttackDirection(); + + if (mStateMgr.isState(StateID_Attack)) { + if (mpCurrentAnm == "AttackR" && + (attackDir == dAcPy_c::ATTACK_DIRECTION_RIGHT || attackDir == dAcPy_c::ATTACK_DIRECTION_UPRIGHT || + attackDir == dAcPy_c::ATTACK_DIRECTION_DOWNRIGHT)) { + field_0x1144 = 0; + } else if (mpCurrentAnm == "AttackL" && (attackDir == dAcPy_c::ATTACK_DIRECTION_LEFT || + attackDir == dAcPy_c::ATTACK_DIRECTION_UPLEFT || + attackDir == dAcPy_c::ATTACK_DIRECTION_DOWNLEFT)) { + field_0x1144 = 3; + } else if (mpCurrentAnm == "AttackU" && attackDir == daPlayerActBase_c::ATTACK_DIRECTION_DOWN) { + field_0x1144 = 6; + } else { + return false; + } + + mStateMgr.changeState(StateID_Guard); + mSubState = SUB_STATE_10; + } else { + if ((field_0x1149 > 0 || mXZDistanceToLink < 200.0f) && field_0x1135 < 1) { + field_0x1135 = 1; + } + + switch (attackDir) { + case daPlayerActBase_c::ATTACK_DIRECTION_DOWN: field_0x1144 = 6; break; + case daPlayerActBase_c::ATTACK_DIRECTION_LEFT: field_0x1144 = 3; break; + case daPlayerActBase_c::ATTACK_DIRECTION_DOWNLEFT: field_0x1144 = 4; break; + case daPlayerActBase_c::ATTACK_DIRECTION_UPLEFT: field_0x1144 = 5; break; + case daPlayerActBase_c::ATTACK_DIRECTION_RIGHT: field_0x1144 = 0; break; + case daPlayerActBase_c::ATTACK_DIRECTION_DOWNRIGHT: field_0x1144 = 1; break; + case daPlayerActBase_c::ATTACK_DIRECTION_UPRIGHT: field_0x1144 = 2; break; + case daPlayerActBase_c::ATTACK_DIRECTION_UP: field_0x1144 = 7; break; + default: field_0x1144 = 8; break; + } + if (!mStateMgr.isState(StateID_Guard)) { + mStateMgr.changeState(StateID_Guard); + } + + mSubState = SUB_STATE_0; + } + ret = true; + } + } + return ret; +} void dAcBlastboss_c::fn_143_7B00() {}