From 28bad24fbc2b3847fd3df937c4a7774b38d7b202 Mon Sep 17 00:00:00 2001 From: foxcam <118768446+thefoxcam@users.noreply.github.com> Date: Sat, 13 Jul 2024 16:04:22 +0000 Subject: [PATCH 1/3] Match `ftCa_SpecialHi`, partial `ftCa_SpecialLw` (#1396) * match some funcs * mark `ftCa_SpecialHi` as matching --- asm/melee/ft/chara/ftCaptain/ftCa_SpecialHi.s | 848 ------------------ configure.py | 2 +- obj_files.mk | 2 +- src/melee/ft/chara/ftCaptain/ftCa_SpecialHi.c | 59 +- src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.c | 166 ++-- src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.h | 1 + 6 files changed, 122 insertions(+), 956 deletions(-) delete mode 100644 asm/melee/ft/chara/ftCaptain/ftCa_SpecialHi.s diff --git a/asm/melee/ft/chara/ftCaptain/ftCa_SpecialHi.s b/asm/melee/ft/chara/ftCaptain/ftCa_SpecialHi.s deleted file mode 100644 index 38b0461dd4..0000000000 --- a/asm/melee/ft/chara/ftCaptain/ftCa_SpecialHi.s +++ /dev/null @@ -1,848 +0,0 @@ -.include "macros.inc" -.file "ftCa_SpecialHi.c" - -# 0x00000000 - 0x00000B58 -.text -.balign 4 - -.fn ftCa_SpecialHiThrow1_Coll, global -/* 00000000 00000040 7C 08 02 A6 */ mflr r0 -/* 00000004 00000044 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000008 00000048 94 21 FF F8 */ stwu r1, -0x8(r1) -/* 0000000C 0000004C 48 00 00 01 */ bl ftCo_AirCatchHit_Coll -/* 00000010 00000050 80 01 00 0C */ lwz r0, 0xc(r1) -/* 00000014 00000054 38 21 00 08 */ addi r1, r1, 0x8 -/* 00000018 00000058 7C 08 03 A6 */ mtlr r0 -/* 0000001C 0000005C 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiThrow1_Coll - -.fn ftCa_SpecialLw_800E49FC, local -/* 00000020 00000060 7C 08 02 A6 */ mflr r0 -/* 00000024 00000064 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000028 00000068 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 0000002C 0000006C 93 E1 00 24 */ stw r31, 0x24(r1) -/* 00000030 00000070 3B E0 00 00 */ li r31, 0x0 -/* 00000034 00000074 93 C1 00 20 */ stw r30, 0x20(r1) -/* 00000038 00000078 83 C3 00 2C */ lwz r30, 0x2c(r3) -/* 0000003C 0000007C 80 1E 01 68 */ lwz r0, 0x168(r30) -/* 00000040 00000080 80 7E 02 D4 */ lwz r3, 0x2d4(r30) -/* 00000044 00000084 98 1E 19 68 */ stb r0, 0x1968(r30) -/* 00000048 00000088 80 03 00 64 */ lwz r0, 0x64(r3) -/* 0000004C 0000008C B0 1E 23 40 */ sth r0, 0x2340(r30) -/* 00000050 00000090 93 FE 22 00 */ stw r31, 0x2200(r30) -/* 00000054 00000094 C0 23 00 5C */ lfs f1, 0x5c(r3) -/* 00000058 00000098 48 00 00 01 */ bl __cvt_fp2unsigned -/* 0000005C 0000009C 90 7E 22 04 */ stw r3, 0x2204(r30) -/* 00000060 000000A0 C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 00000064 000000A4 D0 1E 23 44 */ stfs f0, 0x2344(r30) -/* 00000068 000000A8 D0 1E 23 48 */ stfs f0, 0x2348(r30) -/* 0000006C 000000AC 88 1E 23 42 */ lbz r0, 0x2342(r30) -/* 00000070 000000B0 53 E0 3E 30 */ rlwimi r0, r31, 7, 24, 24 -/* 00000074 000000B4 98 1E 23 42 */ stb r0, 0x2342(r30) -/* 00000078 000000B8 88 1E 23 42 */ lbz r0, 0x2342(r30) -/* 0000007C 000000BC 53 E0 36 72 */ rlwimi r0, r31, 6, 25, 25 -/* 00000080 000000C0 98 1E 23 42 */ stb r0, 0x2342(r30) -/* 00000084 000000C4 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 00000088 000000C8 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 0000008C 000000CC 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 00000090 000000D0 38 21 00 28 */ addi r1, r1, 0x28 -/* 00000094 000000D4 7C 08 03 A6 */ mtlr r0 -/* 00000098 000000D8 4E 80 00 20 */ blr -.endfn ftCa_SpecialLw_800E49FC - -.fn ftCa_SpecialHi_Enter, global -/* 0000009C 000000DC 7C 08 02 A6 */ mflr r0 -/* 000000A0 000000E0 38 80 01 61 */ li r4, 0x161 -/* 000000A4 000000E4 90 01 00 04 */ stw r0, 0x4(r1) -/* 000000A8 000000E8 38 A0 00 00 */ li r5, 0x0 -/* 000000AC 000000EC 38 C0 00 00 */ li r6, 0x0 -/* 000000B0 000000F0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 000000B4 000000F4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 000000B8 000000F8 93 C1 00 10 */ stw r30, 0x10(r1) -/* 000000BC 000000FC 3B C3 00 00 */ addi r30, r3, 0x0 -/* 000000C0 00000100 3C 60 00 00 */ lis r3, ftCa_SpecialLw_800E49FC@ha -/* 000000C4 00000104 83 FE 00 2C */ lwz r31, 0x2c(r30) -/* 000000C8 00000108 38 03 00 00 */ addi r0, r3, ftCa_SpecialLw_800E49FC@l -/* 000000CC 0000010C 38 7E 00 00 */ addi r3, r30, 0x0 -/* 000000D0 00000110 90 1F 21 EC */ stw r0, 0x21ec(r31) -/* 000000D4 00000114 C0 20 00 00 */ lfs f1, ftCa_SpecialLw_804D9230@sda21(r0) -/* 000000D8 00000118 C0 40 00 00 */ lfs f2, ftCa_SpecialLw_804D9234@sda21(r0) -/* 000000DC 0000011C FC 60 08 90 */ fmr f3, f1 -/* 000000E0 00000120 48 00 00 01 */ bl Fighter_ChangeMotionState -/* 000000E4 00000124 3C 80 00 00 */ lis r4, ftCa_SpecialLw_800E5128@ha -/* 000000E8 00000128 3C 60 00 00 */ lis r3, ftCo_8009CA0C@ha -/* 000000EC 0000012C 38 A4 00 00 */ addi r5, r4, ftCa_SpecialLw_800E5128@l -/* 000000F0 00000130 38 E3 00 00 */ addi r7, r3, ftCo_8009CA0C@l -/* 000000F4 00000134 38 7F 00 00 */ addi r3, r31, 0x0 -/* 000000F8 00000138 38 80 00 02 */ li r4, 0x2 -/* 000000FC 0000013C 38 C0 00 00 */ li r6, 0x0 -/* 00000100 00000140 48 00 00 01 */ bl ftCommon_8007E2D0 -/* 00000104 00000144 7F C3 F3 78 */ mr r3, r30 -/* 00000108 00000148 48 00 00 01 */ bl ftAnim_8006EBA4 -/* 0000010C 0000014C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 00000110 00000150 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 00000114 00000154 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 00000118 00000158 38 21 00 18 */ addi r1, r1, 0x18 -/* 0000011C 0000015C 7C 08 03 A6 */ mtlr r0 -/* 00000120 00000160 4E 80 00 20 */ blr -.endfn ftCa_SpecialHi_Enter - -.fn ftCa_SpecialHi_Anim, global -/* 00000124 00000164 7C 08 02 A6 */ mflr r0 -/* 00000128 00000168 90 01 00 04 */ stw r0, 0x4(r1) -/* 0000012C 0000016C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 00000130 00000170 93 E1 00 24 */ stw r31, 0x24(r1) -/* 00000134 00000174 93 C1 00 20 */ stw r30, 0x20(r1) -/* 00000138 00000178 7C 7E 1B 78 */ mr r30, r3 -/* 0000013C 0000017C 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000140 00000180 83 E4 02 D4 */ lwz r31, 0x2d4(r4) -/* 00000144 00000184 48 00 00 01 */ bl ftAnim_IsFramesRemaining -/* 00000148 00000188 2C 03 00 00 */ cmpwi r3, 0x0 -/* 0000014C 0000018C 40 82 00 20 */ bne .L_0000016C -/* 00000150 00000190 C0 3F 00 48 */ lfs f1, 0x48(r31) -/* 00000154 00000194 7F C3 F3 78 */ mr r3, r30 -/* 00000158 00000198 C0 5F 00 4C */ lfs f2, 0x4c(r31) -/* 0000015C 0000019C 38 80 00 01 */ li r4, 0x1 -/* 00000160 000001A0 38 A0 00 01 */ li r5, 0x1 -/* 00000164 000001A4 38 C0 00 00 */ li r6, 0x0 -/* 00000168 000001A8 48 00 00 01 */ bl ftCo_80096900 -.L_0000016C: -/* 0000016C 000001AC 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 00000170 000001B0 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 00000174 000001B4 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 00000178 000001B8 38 21 00 28 */ addi r1, r1, 0x28 -/* 0000017C 000001BC 7C 08 03 A6 */ mtlr r0 -/* 00000180 000001C0 4E 80 00 20 */ blr -.endfn ftCa_SpecialHi_Anim - -.fn ftCa_SpecialHi_IASA, global -/* 00000184 000001C4 7C 08 02 A6 */ mflr r0 -/* 00000188 000001C8 90 01 00 04 */ stw r0, 0x4(r1) -/* 0000018C 000001CC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 00000190 000001D0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 00000194 000001D4 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 00000198 000001D8 80 03 22 00 */ lwz r0, 0x2200(r3) -/* 0000019C 000001DC 3B E3 00 00 */ addi r31, r3, 0x0 -/* 000001A0 000001E0 28 00 00 00 */ cmplwi r0, 0x0 -/* 000001A4 000001E4 41 82 00 64 */ beq .L_00000208 -/* 000001A8 000001E8 80 9F 02 D4 */ lwz r4, 0x2d4(r31) -/* 000001AC 000001EC 38 00 00 00 */ li r0, 0x0 -/* 000001B0 000001F0 38 60 00 01 */ li r3, 0x1 -/* 000001B4 000001F4 90 1F 22 00 */ stw r0, 0x2200(r31) -/* 000001B8 000001F8 88 1F 23 42 */ lbz r0, 0x2342(r31) -/* 000001BC 000001FC 50 60 36 72 */ rlwimi r0, r3, 6, 25, 25 -/* 000001C0 00000200 98 1F 23 42 */ stb r0, 0x2342(r31) -/* 000001C4 00000204 C0 3F 06 20 */ lfs f1, 0x620(r31) -/* 000001C8 00000208 C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 000001CC 0000020C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 000001D0 00000210 40 80 00 08 */ bge .L_000001D8 -/* 000001D4 00000214 FC 20 08 50 */ fneg f1, f1 -.L_000001D8: -/* 000001D8 00000218 C0 04 00 58 */ lfs f0, 0x58(r4) -/* 000001DC 0000021C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 000001E0 00000220 40 81 00 28 */ ble .L_00000208 -/* 000001E4 00000224 7F E3 FB 78 */ mr r3, r31 -/* 000001E8 00000228 48 00 00 01 */ bl ftCommon_8007D9FC -/* 000001EC 0000022C C8 20 00 00 */ lfd f1, ftCa_SpecialLw_804D9238@sda21(r0) -/* 000001F0 00000230 7F E3 FB 78 */ mr r3, r31 -/* 000001F4 00000234 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 000001F8 00000238 38 80 00 00 */ li r4, 0x0 -/* 000001FC 0000023C FC 21 00 32 */ fmul f1, f1, f0 -/* 00000200 00000240 FC 20 08 18 */ frsp f1, f1 -/* 00000204 00000244 48 00 00 01 */ bl ftParts_80075AF0 -.L_00000208: -/* 00000208 00000248 80 01 00 24 */ lwz r0, 0x24(r1) -/* 0000020C 0000024C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 00000210 00000250 38 21 00 20 */ addi r1, r1, 0x20 -/* 00000214 00000254 7C 08 03 A6 */ mtlr r0 -/* 00000218 00000258 4E 80 00 20 */ blr -.endfn ftCa_SpecialHi_IASA - -.fn ftCa_SpecialHi_Phys, global -/* 0000021C 0000025C 7C 08 02 A6 */ mflr r0 -/* 00000220 00000260 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000224 00000264 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 00000228 00000268 93 E1 00 24 */ stw r31, 0x24(r1) -/* 0000022C 0000026C 93 C1 00 20 */ stw r30, 0x20(r1) -/* 00000230 00000270 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 00000234 00000274 93 81 00 18 */ stw r28, 0x18(r1) -/* 00000238 00000278 7C 7C 1B 78 */ mr r28, r3 -/* 0000023C 0000027C 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 00000240 00000280 83 DF 02 D4 */ lwz r30, 0x2d4(r31) -/* 00000244 00000284 3B BF 01 10 */ addi r29, r31, 0x110 -/* 00000248 00000288 C0 1F 23 44 */ lfs f0, 0x2344(r31) -/* 0000024C 0000028C 7F E3 FB 78 */ mr r3, r31 -/* 00000250 00000290 D0 1F 00 80 */ stfs f0, 0x80(r31) -/* 00000254 00000294 C0 1F 23 48 */ lfs f0, 0x2348(r31) -/* 00000258 00000298 D0 1F 00 84 */ stfs f0, 0x84(r31) -/* 0000025C 0000029C C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 00000260 000002A0 D0 1F 00 88 */ stfs f0, 0x88(r31) -/* 00000264 000002A4 C0 3E 00 44 */ lfs f1, 0x44(r30) -/* 00000268 000002A8 C0 1F 01 7C */ lfs f0, 0x17c(r31) -/* 0000026C 000002AC EC 21 00 32 */ fmuls f1, f1, f0 -/* 00000270 000002B0 48 00 00 01 */ bl ftCommon_8007D050 -/* 00000274 000002B4 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000278 000002B8 40 82 00 2C */ bne .L_000002A4 -/* 0000027C 000002BC C0 3D 00 64 */ lfs f1, 0x64(r29) -/* 00000280 000002C0 7F E3 FB 78 */ mr r3, r31 -/* 00000284 000002C4 C0 1E 00 40 */ lfs f0, 0x40(r30) -/* 00000288 000002C8 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 0000028C 000002CC C0 7D 00 6C */ lfs f3, 0x6c(r29) -/* 00000290 000002D0 EC 41 00 32 */ fmuls f2, f1, f0 -/* 00000294 000002D4 C0 1E 00 44 */ lfs f0, 0x44(r30) -/* 00000298 000002D8 C0 24 02 58 */ lfs f1, 0x258(r4) -/* 0000029C 000002DC EC 63 00 32 */ fmuls f3, f3, f0 -/* 000002A0 000002E0 48 00 00 01 */ bl ftCommon_8007D3A8 -.L_000002A4: -/* 000002A4 000002E4 C0 3F 00 74 */ lfs f1, 0x74(r31) -/* 000002A8 000002E8 7F 83 E3 78 */ mr r3, r28 -/* 000002AC 000002EC C0 1F 00 80 */ lfs f0, 0x80(r31) -/* 000002B0 000002F0 EC 01 00 2A */ fadds f0, f1, f0 -/* 000002B4 000002F4 D0 1F 23 44 */ stfs f0, 0x2344(r31) -/* 000002B8 000002F8 C0 3F 00 78 */ lfs f1, 0x78(r31) -/* 000002BC 000002FC C0 1F 00 84 */ lfs f0, 0x84(r31) -/* 000002C0 00000300 EC 01 00 2A */ fadds f0, f1, f0 -/* 000002C4 00000304 D0 1F 23 48 */ stfs f0, 0x2348(r31) -/* 000002C8 00000308 48 00 00 01 */ bl ft_80085134 -/* 000002CC 0000030C C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 000002D0 00000310 D0 1F 00 78 */ stfs f0, 0x78(r31) -/* 000002D4 00000314 D0 1F 00 74 */ stfs f0, 0x74(r31) -/* 000002D8 00000318 C0 3F 00 80 */ lfs f1, 0x80(r31) -/* 000002DC 0000031C C0 1F 23 44 */ lfs f0, 0x2344(r31) -/* 000002E0 00000320 EC 01 00 2A */ fadds f0, f1, f0 -/* 000002E4 00000324 D0 1F 00 80 */ stfs f0, 0x80(r31) -/* 000002E8 00000328 C0 3F 00 84 */ lfs f1, 0x84(r31) -/* 000002EC 0000032C C0 1F 23 48 */ lfs f0, 0x2348(r31) -/* 000002F0 00000330 EC 01 00 2A */ fadds f0, f1, f0 -/* 000002F4 00000334 D0 1F 00 84 */ stfs f0, 0x84(r31) -/* 000002F8 00000338 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 000002FC 0000033C 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 00000300 00000340 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 00000304 00000344 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 00000308 00000348 83 81 00 18 */ lwz r28, 0x18(r1) -/* 0000030C 0000034C 38 21 00 28 */ addi r1, r1, 0x28 -/* 00000310 00000350 7C 08 03 A6 */ mtlr r0 -/* 00000314 00000354 4E 80 00 20 */ blr -.endfn ftCa_SpecialHi_Phys - -.fn ftCa_SpecialAirHi_Enter, global -/* 00000318 00000358 7C 08 02 A6 */ mflr r0 -/* 0000031C 0000035C 38 80 01 62 */ li r4, 0x162 -/* 00000320 00000360 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000324 00000364 38 A0 00 00 */ li r5, 0x0 -/* 00000328 00000368 38 C0 00 00 */ li r6, 0x0 -/* 0000032C 0000036C 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 00000330 00000370 93 E1 00 14 */ stw r31, 0x14(r1) -/* 00000334 00000374 93 C1 00 10 */ stw r30, 0x10(r1) -/* 00000338 00000378 3B C3 00 00 */ addi r30, r3, 0x0 -/* 0000033C 0000037C 3C 60 00 00 */ lis r3, ftCa_SpecialLw_800E49FC@ha -/* 00000340 00000380 83 FE 00 2C */ lwz r31, 0x2c(r30) -/* 00000344 00000384 38 03 00 00 */ addi r0, r3, ftCa_SpecialLw_800E49FC@l -/* 00000348 00000388 38 7E 00 00 */ addi r3, r30, 0x0 -/* 0000034C 0000038C 90 1F 21 EC */ stw r0, 0x21ec(r31) -/* 00000350 00000390 C0 20 00 00 */ lfs f1, ftCa_SpecialLw_804D9230@sda21(r0) -/* 00000354 00000394 C0 40 00 00 */ lfs f2, ftCa_SpecialLw_804D9234@sda21(r0) -/* 00000358 00000398 FC 60 08 90 */ fmr f3, f1 -/* 0000035C 0000039C 48 00 00 01 */ bl Fighter_ChangeMotionState -/* 00000360 000003A0 3C 80 00 00 */ lis r4, ftCa_SpecialLw_800E5128@ha -/* 00000364 000003A4 3C 60 00 00 */ lis r3, ftCo_8009CA0C@ha -/* 00000368 000003A8 38 A4 00 00 */ addi r5, r4, ftCa_SpecialLw_800E5128@l -/* 0000036C 000003AC 38 E3 00 00 */ addi r7, r3, ftCo_8009CA0C@l -/* 00000370 000003B0 38 7F 00 00 */ addi r3, r31, 0x0 -/* 00000374 000003B4 38 80 00 02 */ li r4, 0x2 -/* 00000378 000003B8 38 C0 00 00 */ li r6, 0x0 -/* 0000037C 000003BC 48 00 00 01 */ bl ftCommon_8007E2D0 -/* 00000380 000003C0 7F C3 F3 78 */ mr r3, r30 -/* 00000384 000003C4 48 00 00 01 */ bl ftAnim_8006EBA4 -/* 00000388 000003C8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 0000038C 000003CC 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 00000390 000003D0 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 00000394 000003D4 38 21 00 18 */ addi r1, r1, 0x18 -/* 00000398 000003D8 7C 08 03 A6 */ mtlr r0 -/* 0000039C 000003DC 4E 80 00 20 */ blr -.endfn ftCa_SpecialAirHi_Enter - -.fn doAirColl, local -/* 000003A0 000003E0 7C 08 02 A6 */ mflr r0 -/* 000003A4 000003E4 38 80 00 00 */ li r4, 0x0 -/* 000003A8 000003E8 90 01 00 04 */ stw r0, 0x4(r1) -/* 000003AC 000003EC 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 000003B0 000003F0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 000003B4 000003F4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 000003B8 000003F8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 000003BC 000003FC 7C 7D 1B 78 */ mr r29, r3 -/* 000003C0 00000400 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 000003C4 00000404 83 DF 02 D4 */ lwz r30, 0x2d4(r31) -/* 000003C8 00000408 48 00 00 01 */ bl ft_CheckGroundAndLedge -/* 000003CC 0000040C 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000003D0 00000410 41 82 00 30 */ beq .L_00000400 -/* 000003D4 00000414 88 1F 23 42 */ lbz r0, 0x2342(r31) -/* 000003D8 00000418 54 00 D7 FF */ extrwi. r0, r0, 1, 25 -/* 000003DC 0000041C 41 82 00 18 */ beq .L_000003F4 -/* 000003E0 00000420 C0 3E 00 4C */ lfs f1, 0x4c(r30) -/* 000003E4 00000424 38 7D 00 00 */ addi r3, r29, 0x0 -/* 000003E8 00000428 38 80 00 00 */ li r4, 0x0 -/* 000003EC 0000042C 48 00 00 01 */ bl ftCo_800D5CB0 -/* 000003F0 00000430 48 00 00 34 */ b .L_00000424 -.L_000003F4: -/* 000003F4 00000434 7F A3 EB 78 */ mr r3, r29 -/* 000003F8 00000438 48 00 00 01 */ bl ft_80083B68 -/* 000003FC 0000043C 48 00 00 28 */ b .L_00000424 -.L_00000400: -/* 00000400 00000440 88 1F 23 42 */ lbz r0, 0x2342(r31) -/* 00000404 00000444 54 00 D7 FF */ extrwi. r0, r0, 1, 25 -/* 00000408 00000448 41 82 00 1C */ beq .L_00000424 -/* 0000040C 0000044C 7F A3 EB 78 */ mr r3, r29 -/* 00000410 00000450 48 00 00 01 */ bl ftCliffCommon_80081298 -/* 00000414 00000454 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000418 00000458 41 82 00 0C */ beq .L_00000424 -/* 0000041C 0000045C 7F A3 EB 78 */ mr r3, r29 -/* 00000420 00000460 48 00 00 01 */ bl ftCliffCommon_80081370 -.L_00000424: -/* 00000424 00000464 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 00000428 00000468 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 0000042C 0000046C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 00000430 00000470 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 00000434 00000474 38 21 00 28 */ addi r1, r1, 0x28 -/* 00000438 00000478 7C 08 03 A6 */ mtlr r0 -/* 0000043C 0000047C 4E 80 00 20 */ blr -.endfn doAirColl - -.fn ftCa_SpecialHi_Coll, global -/* 00000440 00000480 7C 08 02 A6 */ mflr r0 -/* 00000444 00000484 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000448 00000488 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 0000044C 0000048C 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 00000450 00000490 93 C1 00 28 */ stw r30, 0x28(r1) -/* 00000454 00000494 93 A1 00 24 */ stw r29, 0x24(r1) -/* 00000458 00000498 7C 7D 1B 78 */ mr r29, r3 -/* 0000045C 0000049C 83 C3 00 2C */ lwz r30, 0x2c(r3) -/* 00000460 000004A0 80 1E 00 E0 */ lwz r0, 0xe0(r30) -/* 00000464 000004A4 2C 00 00 01 */ cmpwi r0, 0x1 -/* 00000468 000004A8 40 82 00 70 */ bne .L_000004D8 -/* 0000046C 000004AC 83 FE 02 D4 */ lwz r31, 0x2d4(r30) -/* 00000470 000004B0 38 7D 00 00 */ addi r3, r29, 0x0 -/* 00000474 000004B4 38 80 00 00 */ li r4, 0x0 -/* 00000478 000004B8 48 00 00 01 */ bl ft_CheckGroundAndLedge -/* 0000047C 000004BC 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000480 000004C0 41 82 00 30 */ beq .L_000004B0 -/* 00000484 000004C4 88 1E 23 42 */ lbz r0, 0x2342(r30) -/* 00000488 000004C8 54 00 D7 FF */ extrwi. r0, r0, 1, 25 -/* 0000048C 000004CC 41 82 00 18 */ beq .L_000004A4 -/* 00000490 000004D0 C0 3F 00 4C */ lfs f1, 0x4c(r31) -/* 00000494 000004D4 38 7D 00 00 */ addi r3, r29, 0x0 -/* 00000498 000004D8 38 80 00 00 */ li r4, 0x0 -/* 0000049C 000004DC 48 00 00 01 */ bl ftCo_800D5CB0 -/* 000004A0 000004E0 48 00 00 50 */ b .L_000004F0 -.L_000004A4: -/* 000004A4 000004E4 7F A3 EB 78 */ mr r3, r29 -/* 000004A8 000004E8 48 00 00 01 */ bl ft_80083B68 -/* 000004AC 000004EC 48 00 00 44 */ b .L_000004F0 -.L_000004B0: -/* 000004B0 000004F0 88 1E 23 42 */ lbz r0, 0x2342(r30) -/* 000004B4 000004F4 54 00 D7 FF */ extrwi. r0, r0, 1, 25 -/* 000004B8 000004F8 41 82 00 38 */ beq .L_000004F0 -/* 000004BC 000004FC 7F A3 EB 78 */ mr r3, r29 -/* 000004C0 00000500 48 00 00 01 */ bl ftCliffCommon_80081298 -/* 000004C4 00000504 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004C8 00000508 41 82 00 28 */ beq .L_000004F0 -/* 000004CC 0000050C 7F A3 EB 78 */ mr r3, r29 -/* 000004D0 00000510 48 00 00 01 */ bl ftCliffCommon_80081370 -/* 000004D4 00000514 48 00 00 1C */ b .L_000004F0 -.L_000004D8: -/* 000004D8 00000518 7F A3 EB 78 */ mr r3, r29 -/* 000004DC 0000051C 48 00 00 01 */ bl ft_80082708 -/* 000004E0 00000520 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004E4 00000524 40 82 00 0C */ bne .L_000004F0 -/* 000004E8 00000528 7F C3 F3 78 */ mr r3, r30 -/* 000004EC 0000052C 48 00 00 01 */ bl ftCommon_8007D5D4 -.L_000004F0: -/* 000004F0 00000530 80 01 00 34 */ lwz r0, 0x34(r1) -/* 000004F4 00000534 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 000004F8 00000538 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 000004FC 0000053C 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 00000500 00000540 38 21 00 30 */ addi r1, r1, 0x30 -/* 00000504 00000544 7C 08 03 A6 */ mtlr r0 -/* 00000508 00000548 4E 80 00 20 */ blr -.endfn ftCa_SpecialHi_Coll - -.fn ftCa_SpecialAirHi_Anim, global -/* 0000050C 0000054C 7C 08 02 A6 */ mflr r0 -/* 00000510 00000550 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000514 00000554 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 00000518 00000558 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 0000051C 0000055C 93 C1 00 28 */ stw r30, 0x28(r1) -/* 00000520 00000560 7C 7E 1B 78 */ mr r30, r3 -/* 00000524 00000564 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000528 00000568 83 E4 02 D4 */ lwz r31, 0x2d4(r4) -/* 0000052C 0000056C 48 00 00 01 */ bl ftAnim_IsFramesRemaining -/* 00000530 00000570 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000534 00000574 40 82 00 20 */ bne .L_00000554 -/* 00000538 00000578 C0 3F 00 48 */ lfs f1, 0x48(r31) -/* 0000053C 0000057C 7F C3 F3 78 */ mr r3, r30 -/* 00000540 00000580 C0 5F 00 4C */ lfs f2, 0x4c(r31) -/* 00000544 00000584 38 80 00 01 */ li r4, 0x1 -/* 00000548 00000588 38 A0 00 01 */ li r5, 0x1 -/* 0000054C 0000058C 38 C0 00 00 */ li r6, 0x0 -/* 00000550 00000590 48 00 00 01 */ bl ftCo_80096900 -.L_00000554: -/* 00000554 00000594 80 01 00 34 */ lwz r0, 0x34(r1) -/* 00000558 00000598 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 0000055C 0000059C 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 00000560 000005A0 38 21 00 30 */ addi r1, r1, 0x30 -/* 00000564 000005A4 7C 08 03 A6 */ mtlr r0 -/* 00000568 000005A8 4E 80 00 20 */ blr -.endfn ftCa_SpecialAirHi_Anim - -.fn ftCa_SpecialAirHi_IASA, global -/* 0000056C 000005AC 7C 08 02 A6 */ mflr r0 -/* 00000570 000005B0 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000574 000005B4 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 00000578 000005B8 93 E1 00 24 */ stw r31, 0x24(r1) -/* 0000057C 000005BC 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 00000580 000005C0 80 1F 22 00 */ lwz r0, 0x2200(r31) -/* 00000584 000005C4 28 00 00 00 */ cmplwi r0, 0x0 -/* 00000588 000005C8 41 82 00 64 */ beq .L_000005EC -/* 0000058C 000005CC 80 9F 02 D4 */ lwz r4, 0x2d4(r31) -/* 00000590 000005D0 38 00 00 00 */ li r0, 0x0 -/* 00000594 000005D4 38 60 00 01 */ li r3, 0x1 -/* 00000598 000005D8 90 1F 22 00 */ stw r0, 0x2200(r31) -/* 0000059C 000005DC 88 1F 23 42 */ lbz r0, 0x2342(r31) -/* 000005A0 000005E0 50 60 36 72 */ rlwimi r0, r3, 6, 25, 25 -/* 000005A4 000005E4 98 1F 23 42 */ stb r0, 0x2342(r31) -/* 000005A8 000005E8 C0 3F 06 20 */ lfs f1, 0x620(r31) -/* 000005AC 000005EC C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 000005B0 000005F0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 000005B4 000005F4 40 80 00 08 */ bge .L_000005BC -/* 000005B8 000005F8 FC 20 08 50 */ fneg f1, f1 -.L_000005BC: -/* 000005BC 000005FC C0 04 00 58 */ lfs f0, 0x58(r4) -/* 000005C0 00000600 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 000005C4 00000604 40 81 00 28 */ ble .L_000005EC -/* 000005C8 00000608 7F E3 FB 78 */ mr r3, r31 -/* 000005CC 0000060C 48 00 00 01 */ bl ftCommon_8007D9FC -/* 000005D0 00000610 C8 20 00 00 */ lfd f1, ftCa_SpecialLw_804D9238@sda21(r0) -/* 000005D4 00000614 7F E3 FB 78 */ mr r3, r31 -/* 000005D8 00000618 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 000005DC 0000061C 38 80 00 00 */ li r4, 0x0 -/* 000005E0 00000620 FC 21 00 32 */ fmul f1, f1, f0 -/* 000005E4 00000624 FC 20 08 18 */ frsp f1, f1 -/* 000005E8 00000628 48 00 00 01 */ bl ftParts_80075AF0 -.L_000005EC: -/* 000005EC 0000062C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 000005F0 00000630 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 000005F4 00000634 38 21 00 28 */ addi r1, r1, 0x28 -/* 000005F8 00000638 7C 08 03 A6 */ mtlr r0 -/* 000005FC 0000063C 4E 80 00 20 */ blr -.endfn ftCa_SpecialAirHi_IASA - -.fn ftCa_SpecialAirHi_Phys, global -/* 00000600 00000640 7C 08 02 A6 */ mflr r0 -/* 00000604 00000644 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000608 00000648 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 0000060C 0000064C 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 00000610 00000650 93 C1 00 38 */ stw r30, 0x38(r1) -/* 00000614 00000654 93 A1 00 34 */ stw r29, 0x34(r1) -/* 00000618 00000658 93 81 00 30 */ stw r28, 0x30(r1) -/* 0000061C 0000065C 7C 7C 1B 78 */ mr r28, r3 -/* 00000620 00000660 83 A3 00 2C */ lwz r29, 0x2c(r3) -/* 00000624 00000664 83 DD 02 D4 */ lwz r30, 0x2d4(r29) -/* 00000628 00000668 3B FD 01 10 */ addi r31, r29, 0x110 -/* 0000062C 0000066C C0 1D 23 44 */ lfs f0, 0x2344(r29) -/* 00000630 00000670 7F A3 EB 78 */ mr r3, r29 -/* 00000634 00000674 D0 1D 00 80 */ stfs f0, 0x80(r29) -/* 00000638 00000678 C0 1D 23 48 */ lfs f0, 0x2348(r29) -/* 0000063C 0000067C D0 1D 00 84 */ stfs f0, 0x84(r29) -/* 00000640 00000680 C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 00000644 00000684 D0 1D 00 88 */ stfs f0, 0x88(r29) -/* 00000648 00000688 C0 3E 00 44 */ lfs f1, 0x44(r30) -/* 0000064C 0000068C C0 1D 01 7C */ lfs f0, 0x17c(r29) -/* 00000650 00000690 EC 21 00 32 */ fmuls f1, f1, f0 -/* 00000654 00000694 48 00 00 01 */ bl ftCommon_8007D050 -/* 00000658 00000698 2C 03 00 00 */ cmpwi r3, 0x0 -/* 0000065C 0000069C 40 82 00 2C */ bne .L_00000688 -/* 00000660 000006A0 C0 3F 00 64 */ lfs f1, 0x64(r31) -/* 00000664 000006A4 7F A3 EB 78 */ mr r3, r29 -/* 00000668 000006A8 C0 1E 00 40 */ lfs f0, 0x40(r30) -/* 0000066C 000006AC 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 00000670 000006B0 C0 7F 00 6C */ lfs f3, 0x6c(r31) -/* 00000674 000006B4 EC 41 00 32 */ fmuls f2, f1, f0 -/* 00000678 000006B8 C0 1E 00 44 */ lfs f0, 0x44(r30) -/* 0000067C 000006BC C0 24 02 58 */ lfs f1, 0x258(r4) -/* 00000680 000006C0 EC 63 00 32 */ fmuls f3, f3, f0 -/* 00000684 000006C4 48 00 00 01 */ bl ftCommon_8007D3A8 -.L_00000688: -/* 00000688 000006C8 C0 3D 00 74 */ lfs f1, 0x74(r29) -/* 0000068C 000006CC 7F 83 E3 78 */ mr r3, r28 -/* 00000690 000006D0 C0 1D 00 80 */ lfs f0, 0x80(r29) -/* 00000694 000006D4 EC 01 00 2A */ fadds f0, f1, f0 -/* 00000698 000006D8 D0 1D 23 44 */ stfs f0, 0x2344(r29) -/* 0000069C 000006DC C0 3D 00 78 */ lfs f1, 0x78(r29) -/* 000006A0 000006E0 C0 1D 00 84 */ lfs f0, 0x84(r29) -/* 000006A4 000006E4 EC 01 00 2A */ fadds f0, f1, f0 -/* 000006A8 000006E8 D0 1D 23 48 */ stfs f0, 0x2348(r29) -/* 000006AC 000006EC 48 00 00 01 */ bl ft_80085134 -/* 000006B0 000006F0 C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 000006B4 000006F4 D0 1D 00 78 */ stfs f0, 0x78(r29) -/* 000006B8 000006F8 D0 1D 00 74 */ stfs f0, 0x74(r29) -/* 000006BC 000006FC C0 3D 00 80 */ lfs f1, 0x80(r29) -/* 000006C0 00000700 C0 1D 23 44 */ lfs f0, 0x2344(r29) -/* 000006C4 00000704 EC 01 00 2A */ fadds f0, f1, f0 -/* 000006C8 00000708 D0 1D 00 80 */ stfs f0, 0x80(r29) -/* 000006CC 0000070C C0 3D 00 84 */ lfs f1, 0x84(r29) -/* 000006D0 00000710 C0 1D 23 48 */ lfs f0, 0x2348(r29) -/* 000006D4 00000714 EC 01 00 2A */ fadds f0, f1, f0 -/* 000006D8 00000718 D0 1D 00 84 */ stfs f0, 0x84(r29) -/* 000006DC 0000071C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 000006E0 00000720 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 000006E4 00000724 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 000006E8 00000728 83 A1 00 34 */ lwz r29, 0x34(r1) -/* 000006EC 0000072C 83 81 00 30 */ lwz r28, 0x30(r1) -/* 000006F0 00000730 38 21 00 40 */ addi r1, r1, 0x40 -/* 000006F4 00000734 7C 08 03 A6 */ mtlr r0 -/* 000006F8 00000738 4E 80 00 20 */ blr -.endfn ftCa_SpecialAirHi_Phys - -.fn ftCa_SpecialAirHi_Coll, global -/* 000006FC 0000073C 7C 08 02 A6 */ mflr r0 -/* 00000700 00000740 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000704 00000744 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 00000708 00000748 93 E1 00 14 */ stw r31, 0x14(r1) -/* 0000070C 0000074C 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 00000710 00000750 80 1F 00 E0 */ lwz r0, 0xe0(r31) -/* 00000714 00000754 2C 00 00 01 */ cmpwi r0, 0x1 -/* 00000718 00000758 40 82 00 0C */ bne .L_00000724 -/* 0000071C 0000075C 48 00 00 01 */ bl doAirColl -/* 00000720 00000760 48 00 00 18 */ b .L_00000738 -.L_00000724: -/* 00000724 00000764 48 00 00 01 */ bl ft_80082708 -/* 00000728 00000768 2C 03 00 00 */ cmpwi r3, 0x0 -/* 0000072C 0000076C 40 82 00 0C */ bne .L_00000738 -/* 00000730 00000770 7F E3 FB 78 */ mr r3, r31 -/* 00000734 00000774 48 00 00 01 */ bl ftCommon_8007D5D4 -.L_00000738: -/* 00000738 00000778 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 0000073C 0000077C 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 00000740 00000780 38 21 00 18 */ addi r1, r1, 0x18 -/* 00000744 00000784 7C 08 03 A6 */ mtlr r0 -/* 00000748 00000788 4E 80 00 20 */ blr -.endfn ftCa_SpecialAirHi_Coll - -.fn ftCa_SpecialLw_800E5128, local -/* 0000074C 0000078C 7C 08 02 A6 */ mflr r0 -/* 00000750 00000790 38 80 01 63 */ li r4, 0x163 -/* 00000754 00000794 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000758 00000798 38 C0 00 00 */ li r6, 0x0 -/* 0000075C 0000079C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 00000760 000007A0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 00000764 000007A4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 00000768 000007A8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 0000076C 000007AC 93 81 00 18 */ stw r28, 0x18(r1) -/* 00000770 000007B0 7C 7C 1B 78 */ mr r28, r3 -/* 00000774 000007B4 83 A3 00 2C */ lwz r29, 0x2c(r3) -/* 00000778 000007B8 C0 20 00 00 */ lfs f1, ftCa_SpecialLw_804D9230@sda21(r0) -/* 0000077C 000007BC 80 BD 1A 58 */ lwz r5, 0x1a58(r29) -/* 00000780 000007C0 FC 60 08 90 */ fmr f3, f1 -/* 00000784 000007C4 C0 40 00 00 */ lfs f2, ftCa_SpecialLw_804D9234@sda21(r0) -/* 00000788 000007C8 83 C5 00 2C */ lwz r30, 0x2c(r5) -/* 0000078C 000007CC 38 A0 00 02 */ li r5, 0x2 -/* 00000790 000007D0 48 00 00 01 */ bl Fighter_ChangeMotionState -/* 00000794 000007D4 88 1D 22 22 */ lbz r0, 0x2222(r29) -/* 00000798 000007D8 3B E0 00 01 */ li r31, 0x1 -/* 0000079C 000007DC 53 E0 2E B4 */ rlwimi r0, r31, 5, 26, 26 -/* 000007A0 000007E0 98 1D 22 22 */ stb r0, 0x2222(r29) -/* 000007A4 000007E4 38 7D 00 00 */ addi r3, r29, 0x0 -/* 000007A8 000007E8 38 80 01 FF */ li r4, 0x1ff -/* 000007AC 000007EC 48 00 00 01 */ bl ftCommon_8007E2F4 -/* 000007B0 000007F0 7F 83 E3 78 */ mr r3, r28 -/* 000007B4 000007F4 48 00 00 01 */ bl ftCommon_8007E2FC -/* 000007B8 000007F8 80 1E 00 E0 */ lwz r0, 0xe0(r30) -/* 000007BC 000007FC 2C 00 00 01 */ cmpwi r0, 0x1 -/* 000007C0 00000800 40 82 00 18 */ bne .L_000007D8 -/* 000007C4 00000804 88 1D 22 1B */ lbz r0, 0x221b(r29) -/* 000007C8 00000808 38 60 00 00 */ li r3, 0x0 -/* 000007CC 0000080C 50 60 07 FE */ rlwimi r0, r3, 0, 31, 31 -/* 000007D0 00000810 98 1D 22 1B */ stb r0, 0x221b(r29) -/* 000007D4 00000814 48 00 00 28 */ b .L_000007FC -.L_000007D8: -/* 000007D8 00000818 38 7E 00 00 */ addi r3, r30, 0x0 -/* 000007DC 0000081C 38 9D 00 00 */ addi r4, r29, 0x0 -/* 000007E0 00000820 48 00 00 01 */ bl ftCo_800DB368 -/* 000007E4 00000824 88 1D 22 1B */ lbz r0, 0x221b(r29) -/* 000007E8 00000828 53 E0 07 FE */ rlwimi r0, r31, 0, 31, 31 -/* 000007EC 0000082C 3C 60 00 00 */ lis r3, ftCa_SpecialLw_800E550C@ha -/* 000007F0 00000830 98 1D 22 1B */ stb r0, 0x221b(r29) -/* 000007F4 00000834 38 03 00 00 */ addi r0, r3, ftCa_SpecialLw_800E550C@l -/* 000007F8 00000838 90 1D 21 BC */ stw r0, 0x21bc(r29) -.L_000007FC: -/* 000007FC 0000083C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 00000800 00000840 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 00000804 00000844 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 00000808 00000848 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 0000080C 0000084C 83 81 00 18 */ lwz r28, 0x18(r1) -/* 00000810 00000850 38 21 00 28 */ addi r1, r1, 0x28 -/* 00000814 00000854 7C 08 03 A6 */ mtlr r0 -/* 00000818 00000858 4E 80 00 20 */ blr -.endfn ftCa_SpecialLw_800E5128 - -.fn ftCa_SpecialHiCatch_Anim, global -/* 0000081C 0000085C 7C 08 02 A6 */ mflr r0 -/* 00000820 00000860 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000824 00000864 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 00000828 00000868 93 E1 00 14 */ stw r31, 0x14(r1) -/* 0000082C 0000086C 7C 7F 1B 78 */ mr r31, r3 -/* 00000830 00000870 48 00 00 01 */ bl ftAnim_IsFramesRemaining -/* 00000834 00000874 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000838 00000878 40 82 00 0C */ bne .L_00000844 -/* 0000083C 0000087C 7F E3 FB 78 */ mr r3, r31 -/* 00000840 00000880 48 00 00 01 */ bl doCatchAnim -.L_00000844: -/* 00000844 00000884 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 00000848 00000888 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 0000084C 0000088C 38 21 00 18 */ addi r1, r1, 0x18 -/* 00000850 00000890 7C 08 03 A6 */ mtlr r0 -/* 00000854 00000894 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiCatch_Anim - -.fn ftCa_SpecialHiCatch_IASA, global -/* 00000858 00000898 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiCatch_IASA - -.fn ftCa_SpecialHiCatch_Phys, global -/* 0000085C 0000089C 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiCatch_Phys - -.fn ftCa_SpecialHiCatch_Coll, global -/* 00000860 000008A0 7C 08 02 A6 */ mflr r0 -/* 00000864 000008A4 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000868 000008A8 94 21 FF F8 */ stwu r1, -0x8(r1) -/* 0000086C 000008AC 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000870 000008B0 88 04 22 1B */ lbz r0, 0x221b(r4) -/* 00000874 000008B4 54 00 07 FF */ clrlwi. r0, r0, 31 -/* 00000878 000008B8 40 82 00 08 */ bne .L_00000880 -/* 0000087C 000008BC 48 00 00 01 */ bl ft_80083B68 -.L_00000880: -/* 00000880 000008C0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 00000884 000008C4 38 21 00 08 */ addi r1, r1, 0x8 -/* 00000888 000008C8 7C 08 03 A6 */ mtlr r0 -/* 0000088C 000008CC 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiCatch_Coll - -.fn doCatchAnim, local -/* 00000890 000008D0 7C 08 02 A6 */ mflr r0 -/* 00000894 000008D4 3C 80 00 08 */ lis r4, 0x8 -/* 00000898 000008D8 90 01 00 04 */ stw r0, 0x4(r1) -/* 0000089C 000008DC 38 A4 00 02 */ addi r5, r4, 0x2 -/* 000008A0 000008E0 38 E0 00 00 */ li r7, 0x0 -/* 000008A4 000008E4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 000008A8 000008E8 38 80 01 64 */ li r4, 0x164 -/* 000008AC 000008EC 38 C0 00 00 */ li r6, 0x0 -/* 000008B0 000008F0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 000008B4 000008F4 93 C1 00 18 */ stw r30, 0x18(r1) -/* 000008B8 000008F8 93 A1 00 14 */ stw r29, 0x14(r1) -/* 000008BC 000008FC 7C 7D 1B 78 */ mr r29, r3 -/* 000008C0 00000900 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 000008C4 00000904 83 DF 1A 58 */ lwz r30, 0x1a58(r31) -/* 000008C8 00000908 90 FF 22 00 */ stw r7, 0x2200(r31) -/* 000008CC 0000090C 88 1F 23 42 */ lbz r0, 0x2342(r31) -/* 000008D0 00000910 50 E0 3E 30 */ rlwimi r0, r7, 7, 24, 24 -/* 000008D4 00000914 98 1F 23 42 */ stb r0, 0x2342(r31) -/* 000008D8 00000918 C0 20 00 00 */ lfs f1, ftCa_SpecialLw_804D9230@sda21(r0) -/* 000008DC 0000091C D0 3F 23 44 */ stfs f1, 0x2344(r31) -/* 000008E0 00000920 FC 60 08 90 */ fmr f3, f1 -/* 000008E4 00000924 D0 3F 23 48 */ stfs f1, 0x2348(r31) -/* 000008E8 00000928 C0 40 00 00 */ lfs f2, ftCa_SpecialLw_804D9234@sda21(r0) -/* 000008EC 0000092C 48 00 00 01 */ bl Fighter_ChangeMotionState -/* 000008F0 00000930 38 7F 00 00 */ addi r3, r31, 0x0 -/* 000008F4 00000934 38 80 00 00 */ li r4, 0x0 -/* 000008F8 00000938 48 00 00 01 */ bl ftCommon_8007E2F4 -/* 000008FC 0000093C 38 7D 00 00 */ addi r3, r29, 0x0 -/* 00000900 00000940 38 9E 00 00 */ addi r4, r30, 0x0 -/* 00000904 00000944 48 00 00 01 */ bl ftCo_800DE2A8 -/* 00000908 00000948 38 7E 00 00 */ addi r3, r30, 0x0 -/* 0000090C 0000094C 38 80 00 00 */ li r4, 0x0 -/* 00000910 00000950 38 A0 00 00 */ li r5, 0x0 -/* 00000914 00000954 48 00 00 01 */ bl ftCo_800DE7C0 -/* 00000918 00000958 80 01 00 24 */ lwz r0, 0x24(r1) -/* 0000091C 0000095C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 00000920 00000960 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 00000924 00000964 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 00000928 00000968 38 21 00 20 */ addi r1, r1, 0x20 -/* 0000092C 0000096C 7C 08 03 A6 */ mtlr r0 -/* 00000930 00000970 4E 80 00 20 */ blr -.endfn doCatchAnim - -.fn ftCa_SpecialHiThrow0_Anim, global -/* 00000934 00000974 7C 08 02 A6 */ mflr r0 -/* 00000938 00000978 90 01 00 04 */ stw r0, 0x4(r1) -/* 0000093C 0000097C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 00000940 00000980 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 00000944 00000984 93 C1 00 18 */ stw r30, 0x18(r1) -/* 00000948 00000988 7C 7E 1B 78 */ mr r30, r3 -/* 0000094C 0000098C 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 00000950 00000990 48 00 00 01 */ bl ftAnim_IsFramesRemaining -/* 00000954 00000994 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000958 00000998 40 82 00 0C */ bne .L_00000964 -/* 0000095C 0000099C 7F C3 F3 78 */ mr r3, r30 -/* 00000960 000009A0 48 00 00 01 */ bl ftCo_800CC730 -.L_00000964: -/* 00000964 000009A4 7F E3 FB 78 */ mr r3, r31 -/* 00000968 000009A8 48 00 00 01 */ bl ftCommon_8007D60C -/* 0000096C 000009AC 80 1F 22 00 */ lwz r0, 0x2200(r31) -/* 00000970 000009B0 28 00 00 00 */ cmplwi r0, 0x0 -/* 00000974 000009B4 41 82 00 1C */ beq .L_00000990 -/* 00000978 000009B8 38 00 00 00 */ li r0, 0x0 -/* 0000097C 000009BC 90 1F 22 00 */ stw r0, 0x2200(r31) -/* 00000980 000009C0 38 60 00 01 */ li r3, 0x1 -/* 00000984 000009C4 88 1F 23 42 */ lbz r0, 0x2342(r31) -/* 00000988 000009C8 50 60 3E 30 */ rlwimi r0, r3, 7, 24, 24 -/* 0000098C 000009CC 98 1F 23 42 */ stb r0, 0x2342(r31) -.L_00000990: -/* 00000990 000009D0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 00000994 000009D4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 00000998 000009D8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 0000099C 000009DC 38 21 00 20 */ addi r1, r1, 0x20 -/* 000009A0 000009E0 7C 08 03 A6 */ mtlr r0 -/* 000009A4 000009E4 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiThrow0_Anim - -.fn ftCa_SpecialHiThrow0_IASA, global -/* 000009A8 000009E8 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiThrow0_IASA - -.fn ftCa_SpecialHiThrow0_Phys, global -/* 000009AC 000009EC 7C 08 02 A6 */ mflr r0 -/* 000009B0 000009F0 90 01 00 04 */ stw r0, 0x4(r1) -/* 000009B4 000009F4 94 21 FF A8 */ stwu r1, -0x58(r1) -/* 000009B8 000009F8 DB E1 00 50 */ stfd f31, 0x50(r1) -/* 000009BC 000009FC BF 61 00 3C */ stmw r27, 0x3c(r1) -/* 000009C0 00000A00 7C 7B 1B 78 */ mr r27, r3 -/* 000009C4 00000A04 83 C3 00 2C */ lwz r30, 0x2c(r3) -/* 000009C8 00000A08 88 1E 23 42 */ lbz r0, 0x2342(r30) -/* 000009CC 00000A0C 7F DD F3 78 */ mr r29, r30 -/* 000009D0 00000A10 83 9E 02 D4 */ lwz r28, 0x2d4(r30) -/* 000009D4 00000A14 54 00 CF FF */ extrwi. r0, r0, 1, 24 -/* 000009D8 00000A18 41 82 00 E4 */ beq .L_00000ABC -/* 000009DC 00000A1C C0 1E 23 44 */ lfs f0, 0x2344(r30) -/* 000009E0 00000A20 3B FE 01 10 */ addi r31, r30, 0x110 -/* 000009E4 00000A24 38 7E 00 00 */ addi r3, r30, 0x0 -/* 000009E8 00000A28 D0 1E 00 80 */ stfs f0, 0x80(r30) -/* 000009EC 00000A2C C0 1E 23 48 */ lfs f0, 0x2348(r30) -/* 000009F0 00000A30 D0 1E 00 84 */ stfs f0, 0x84(r30) -/* 000009F4 00000A34 C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 000009F8 00000A38 D0 1E 00 88 */ stfs f0, 0x88(r30) -/* 000009FC 00000A3C C0 3C 00 44 */ lfs f1, 0x44(r28) -/* 00000A00 00000A40 C0 1E 01 7C */ lfs f0, 0x17c(r30) -/* 00000A04 00000A44 EC 21 00 32 */ fmuls f1, f1, f0 -/* 00000A08 00000A48 48 00 00 01 */ bl ftCommon_8007D050 -/* 00000A0C 00000A4C 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000A10 00000A50 40 82 00 2C */ bne .L_00000A3C -/* 00000A14 00000A54 C0 3F 00 64 */ lfs f1, 0x64(r31) -/* 00000A18 00000A58 7F C3 F3 78 */ mr r3, r30 -/* 00000A1C 00000A5C C0 1C 00 40 */ lfs f0, 0x40(r28) -/* 00000A20 00000A60 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 00000A24 00000A64 C0 7F 00 6C */ lfs f3, 0x6c(r31) -/* 00000A28 00000A68 EC 41 00 32 */ fmuls f2, f1, f0 -/* 00000A2C 00000A6C C0 1C 00 44 */ lfs f0, 0x44(r28) -/* 00000A30 00000A70 C0 24 02 58 */ lfs f1, 0x258(r4) -/* 00000A34 00000A74 EC 63 00 32 */ fmuls f3, f3, f0 -/* 00000A38 00000A78 48 00 00 01 */ bl ftCommon_8007D3A8 -.L_00000A3C: -/* 00000A3C 00000A7C C0 3E 00 74 */ lfs f1, 0x74(r30) -/* 00000A40 00000A80 7F 63 DB 78 */ mr r3, r27 -/* 00000A44 00000A84 C0 1E 00 80 */ lfs f0, 0x80(r30) -/* 00000A48 00000A88 EC 01 00 2A */ fadds f0, f1, f0 -/* 00000A4C 00000A8C D0 1E 23 44 */ stfs f0, 0x2344(r30) -/* 00000A50 00000A90 C0 3E 00 78 */ lfs f1, 0x78(r30) -/* 00000A54 00000A94 C0 1E 00 84 */ lfs f0, 0x84(r30) -/* 00000A58 00000A98 EC 01 00 2A */ fadds f0, f1, f0 -/* 00000A5C 00000A9C D0 1E 23 48 */ stfs f0, 0x2348(r30) -/* 00000A60 00000AA0 48 00 00 01 */ bl ft_80085134 -/* 00000A64 00000AA4 C0 00 00 00 */ lfs f0, ftCa_SpecialLw_804D9230@sda21(r0) -/* 00000A68 00000AA8 7F A3 EB 78 */ mr r3, r29 -/* 00000A6C 00000AAC D0 1E 00 78 */ stfs f0, 0x78(r30) -/* 00000A70 00000AB0 D0 1E 00 74 */ stfs f0, 0x74(r30) -/* 00000A74 00000AB4 C0 3E 00 80 */ lfs f1, 0x80(r30) -/* 00000A78 00000AB8 C0 1E 23 44 */ lfs f0, 0x2344(r30) -/* 00000A7C 00000ABC EC 01 00 2A */ fadds f0, f1, f0 -/* 00000A80 00000AC0 D0 1E 00 80 */ stfs f0, 0x80(r30) -/* 00000A84 00000AC4 C0 3E 00 84 */ lfs f1, 0x84(r30) -/* 00000A88 00000AC8 C0 1E 23 48 */ lfs f0, 0x2348(r30) -/* 00000A8C 00000ACC EC 01 00 2A */ fadds f0, f1, f0 -/* 00000A90 00000AD0 D0 1E 00 84 */ stfs f0, 0x84(r30) -/* 00000A94 00000AD4 C0 5D 00 84 */ lfs f2, 0x84(r29) -/* 00000A98 00000AD8 C0 1D 23 48 */ lfs f0, 0x2348(r29) -/* 00000A9C 00000ADC C0 3C 00 60 */ lfs f1, 0x60(r28) -/* 00000AA0 00000AE0 EF E2 00 28 */ fsubs f31, f2, f0 -/* 00000AA4 00000AE4 C0 5D 01 70 */ lfs f2, 0x170(r29) -/* 00000AA8 00000AE8 48 00 00 01 */ bl ftCommon_8007D494 -/* 00000AAC 00000AEC C0 1D 00 84 */ lfs f0, 0x84(r29) -/* 00000AB0 00000AF0 EC 00 F8 28 */ fsubs f0, f0, f31 -/* 00000AB4 00000AF4 D0 1D 23 48 */ stfs f0, 0x2348(r29) -/* 00000AB8 00000AF8 48 00 00 0C */ b .L_00000AC4 -.L_00000ABC: -/* 00000ABC 00000AFC 7F 63 DB 78 */ mr r3, r27 -/* 00000AC0 00000B00 48 00 00 01 */ bl ft_80085134 -.L_00000AC4: -/* 00000AC4 00000B04 BB 61 00 3C */ lmw r27, 0x3c(r1) -/* 00000AC8 00000B08 80 01 00 5C */ lwz r0, 0x5c(r1) -/* 00000ACC 00000B0C CB E1 00 50 */ lfd f31, 0x50(r1) -/* 00000AD0 00000B10 38 21 00 58 */ addi r1, r1, 0x58 -/* 00000AD4 00000B14 7C 08 03 A6 */ mtlr r0 -/* 00000AD8 00000B18 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiThrow0_Phys - -.fn ftCa_SpecialHiThrow0_Coll, global -/* 00000ADC 00000B1C 7C 08 02 A6 */ mflr r0 -/* 00000AE0 00000B20 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000AE4 00000B24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 00000AE8 00000B28 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 00000AEC 00000B2C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 00000AF0 00000B30 7C 7E 1B 78 */ mr r30, r3 -/* 00000AF4 00000B34 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000AF8 00000B38 83 E4 02 D4 */ lwz r31, 0x2d4(r4) -/* 00000AFC 00000B3C 48 00 00 01 */ bl ft_80081D0C -/* 00000B00 00000B40 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000B04 00000B44 41 82 00 14 */ beq .L_00000B18 -/* 00000B08 00000B48 C0 3F 00 4C */ lfs f1, 0x4c(r31) -/* 00000B0C 00000B4C 38 7E 00 00 */ addi r3, r30, 0x0 -/* 00000B10 00000B50 38 80 00 00 */ li r4, 0x0 -/* 00000B14 00000B54 48 00 00 01 */ bl ftCo_800D5CB0 -.L_00000B18: -/* 00000B18 00000B58 80 01 00 24 */ lwz r0, 0x24(r1) -/* 00000B1C 00000B5C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 00000B20 00000B60 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 00000B24 00000B64 38 21 00 20 */ addi r1, r1, 0x20 -/* 00000B28 00000B68 7C 08 03 A6 */ mtlr r0 -/* 00000B2C 00000B6C 4E 80 00 20 */ blr -.endfn ftCa_SpecialHiThrow0_Coll - -.fn ftCa_SpecialLw_800E550C, local -/* 00000B30 00000B70 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 00000B34 00000B74 80 65 1A 58 */ lwz r3, 0x1a58(r5) -/* 00000B38 00000B78 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000B3C 00000B7C 80 64 00 B0 */ lwz r3, 0xb0(r4) -/* 00000B40 00000B80 80 04 00 B4 */ lwz r0, 0xb4(r4) -/* 00000B44 00000B84 90 65 00 B0 */ stw r3, 0xb0(r5) -/* 00000B48 00000B88 90 05 00 B4 */ stw r0, 0xb4(r5) -/* 00000B4C 00000B8C 80 04 00 B8 */ lwz r0, 0xb8(r4) -/* 00000B50 00000B90 90 05 00 B8 */ stw r0, 0xb8(r5) -/* 00000B54 00000B94 4E 80 00 20 */ blr -.endfn ftCa_SpecialLw_800E550C - -# 0x00000000 - 0x00000010 -.section .sdata2, "a" -.balign 8 - -.obj ftCa_SpecialLw_804D9230, global - .4byte 0x00000000 -.endobj ftCa_SpecialLw_804D9230 - -.obj ftCa_SpecialLw_804D9234, global - .4byte 0x3F800000 -.endobj ftCa_SpecialLw_804D9234 - -.obj ftCa_SpecialLw_804D9238, global - .4byte 0x3FF921FB - .4byte 0x54442D18 -.endobj ftCa_SpecialLw_804D9238 diff --git a/configure.py b/configure.py index be44013da2..50cd9dfb26 100755 --- a/configure.py +++ b/configure.py @@ -560,7 +560,7 @@ def RuntimeLib(lib_name: str, objects: Objects) -> LibDict: Object(Matching, "melee/ft/chara/ftCaptain/ftCa_SpecialN.c"), Object(Matching, "melee/ft/chara/ftCaptain/ftCa_SpecialS.c"), Object(NonMatching, "melee/ft/chara/ftCaptain/ftCa_SpecialLw.c"), - Object(NonMatching, "melee/ft/chara/ftCaptain/ftCa_SpecialHi.c"), + Object(Matching, "melee/ft/chara/ftCaptain/ftCa_SpecialHi.c"), # Fox Object(Matching, "melee/ft/chara/ftFox/ftFx_Init.c"), Object(Matching, "melee/ft/chara/ftFox/ftFx_AppealS.c"), diff --git a/obj_files.mk b/obj_files.mk index a764cea83a..f04bfde9aa 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -227,7 +227,7 @@ TEXT_O_FILES +=\ $(BUILD_DIR)/src/melee/ft/chara/ftCaptain/ftCa_SpecialN.c.o\ $(BUILD_DIR)/src/melee/ft/chara/ftCaptain/ftCa_SpecialS.c.o\ $(BUILD_DIR)/asm/melee/ft/chara/ftCaptain/ftCa_SpecialLw.s.o\ - $(BUILD_DIR)/asm/melee/ft/chara/ftCaptain/ftCa_SpecialHi.s.o\ + $(BUILD_DIR)/src/melee/ft/chara/ftCaptain/ftCa_SpecialHi.c.o\ TEXT_O_FILES +=\ $(BUILD_DIR)/src/melee/ft/chara/ftFox/ftFx_Init.c.o\ diff --git a/src/melee/ft/chara/ftCaptain/ftCa_SpecialHi.c b/src/melee/ft/chara/ftCaptain/ftCa_SpecialHi.c index 9441a4bc00..a20db8fb76 100644 --- a/src/melee/ft/chara/ftCaptain/ftCa_SpecialHi.c +++ b/src/melee/ft/chara/ftCaptain/ftCa_SpecialHi.c @@ -20,10 +20,6 @@ #include -/* literal */ float const ftCa_SpecialLw_804D9230 = 0; -/* literal */ float const ftCa_SpecialLw_804D9234 = 1; -/* literal */ double const ftCa_SpecialLw_804D9238 = M_PI_2; - void ftCa_SpecialHiThrow1_Coll(HSD_GObj* gobj) { ftCo_AirCatchHit_Coll(gobj); @@ -98,9 +94,7 @@ void ftCa_SpecialHi_Phys(HSD_GObj* gobj) fp->self_vel.x = fp->mv.ca.specialhi.vel.x; fp->self_vel.y = fp->mv.ca.specialhi.vel.y; fp->self_vel.z = 0; - if (!ftCommon_8007D050(fp, da->specialhi_horz_vel * - fp->co_attrs.air_drift_max)) - { + if (!ftCommon_8007D050(fp, da->specialhi_horz_vel * ca->air_drift_max)) { ftCommon_8007D3A8(fp, p_ftCommonData->x258, ca->air_drift_stick_mul * da->specialhi_air_friction_mul, @@ -189,35 +183,13 @@ void ftCa_SpecialAirHi_IASA(HSD_GObj* gobj) void ftCa_SpecialAirHi_Phys(HSD_GObj* gobj) { - u8 _[28]; - Fighter* fp = GET_FIGHTER(gobj); - ftCaptain_DatAttrs* da = fp->dat_attrs; - ftCo_DatAttrs* ca = &fp->co_attrs; - fp->self_vel.x = fp->mv.ca.specialhi.vel.x; - fp->self_vel.y = fp->mv.ca.specialhi.vel.y; - fp->self_vel.z = 0; - if (!ftCommon_8007D050(fp, da->specialhi_horz_vel * ca->air_drift_max)) { - ftCommon_8007D3A8(fp, p_ftCommonData->x258, - ca->air_drift_stick_mul * - da->specialhi_air_friction_mul, - ca->air_drift_max * da->specialhi_horz_vel); - } - fp->mv.ca.specialhi.vel.x = fp->x74_anim_vel.x + fp->self_vel.x; - fp->mv.ca.specialhi.vel.y = fp->x74_anim_vel.y + fp->self_vel.y; - ft_80085134(gobj); - fp->x74_anim_vel.x = fp->x74_anim_vel.y = 0; - fp->self_vel.x = fp->self_vel.x + fp->mv.ca.specialhi.vel.x; - fp->self_vel.y = fp->self_vel.y + fp->mv.ca.specialhi.vel.y; + PAD_STACK(28); + ftCa_SpecialHi_Phys(gobj); } void ftCa_SpecialAirHi_Coll(HSD_GObj* gobj) { - Fighter* fp = GET_FIGHTER(gobj); - if (fp->ground_or_air == GA_Air) { - doAirColl(gobj); - } else if (ft_80082708(gobj)) { - ftCommon_8007D5D4(fp); - } + ftCa_SpecialHi_Coll(gobj); } static void ftCa_SpecialLw_800E550C(HSD_GObj*); @@ -294,24 +266,11 @@ void ftCa_SpecialHiThrow0_Phys(HSD_GObj* gobj) { Fighter* fp = GET_FIGHTER(gobj); ftCaptain_DatAttrs* da = fp->dat_attrs; - if (fp->mv.ca.specialhi.x2_b2) { - ftCo_DatAttrs* ca = &fp->co_attrs; - fp->self_vel.x = fp->mv.ca.specialhi.vel.x; - fp->self_vel.y = fp->mv.ca.specialhi.vel.y; - fp->self_vel.z = 0; - if (!ftCommon_8007D050(fp, da->specialhi_horz_vel * ca->air_drift_max)) - { - ftCommon_8007D3A8(fp, p_ftCommonData->x258, - ca->air_drift_stick_mul * - da->specialhi_air_friction_mul, - ca->air_drift_max * da->specialhi_horz_vel); - } - fp->mv.ca.specialhi.vel.x = fp->x74_anim_vel.x + fp->self_vel.x; - fp->mv.ca.specialhi.vel.y = fp->x74_anim_vel.y + fp->self_vel.y; - ft_80085134(gobj); - fp->x74_anim_vel.x = fp->x74_anim_vel.y = 0; - fp->self_vel.x = fp->self_vel.x + fp->mv.ca.specialhi.vel.x; - fp->self_vel.y = fp->self_vel.y + fp->mv.ca.specialhi.vel.y; + ftCo_DatAttrs* ca; + PAD_STACK(32); + if (fp->mv.ca.specialhi.x2_b0) { + ftCa_SpecialHi_Phys(gobj); + ca = &fp->co_attrs; { float vel_y = fp->self_vel.y - fp->mv.ca.specialhi.vel.y; ftCommon_8007D494(fp, da->specialhi_catch_grav, ca->terminal_vel); diff --git a/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.c b/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.c index f49e1829a6..e3d66325f1 100644 --- a/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.c +++ b/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.c @@ -1,16 +1,20 @@ + #include #include "ftCaptain/forward.h" #include #include "ftCaptain/ftCa_SpecialLw.h" +#include "ef/efasync.h" #include "ef/eflib.h" +#include "ft/chara/ftCommon/inlines.h" #include "ft/fighter.h" #include "ft/ft_081B.h" #include "ft/ft_0892.h" #include "ft/ft_0C88.h" #include "ft/ftanim.h" #include "ft/ftcommon.h" +#include "ft/ftlib.h" #include "ft/ftparts.h" #include "ft/types.h" #include "ftCaptain/types.h" @@ -18,14 +22,62 @@ #include #include -/* literal */ float const ftCa_SpecialHi_804D9220 = 0; -/* literal */ float const ftCa_SpecialHi_804D9224 = 0.01745329238474369f; -/* literal */ float const ftCa_SpecialHi_804D9228 = 1; -/* literal */ float const ftCa_SpecialHi_804D922C = -1; +// /* literal */ float const ftCa_SpecialHi_804D9220 = 0.0F; +// /* literal */ float const ftCa_SpecialHi_804D9224 = 0.01745329238474369f; +// /* literal */ float const ftCa_SpecialHi_804D9228 = 1; +// /* literal */ float const ftCa_SpecialHi_804D922C = -1; + +static inline bool ftCa_Special_Inline_Check_Flag(Fighter* fp) +{ + if (fp->throw_flags_b1) { + fp->throw_flags_b1 = 0; + return 1; + } else { + return 0; + } +} + +static inline void ftCa_Special_Inline_SetFlags(HSD_GObj* gobj) +{ + Fighter* fp = GET_FIGHTER(gobj); + fp->cmd_vars[2] = 0; + fp->cmd_vars[1] = 0; + fp->cmd_vars[0] = 0; +} -static void ftCa_SpecialHi_800E3EAC(HSD_GObj* gobj) +void ftCa_SpecialHi_800E3EAC(HSD_GObj* gobj) { - NOT_IMPLEMENTED; + f32 sp1C; + enum Fighter_Part var_r29; + + // var_r29 = saved_reg_r29; + Fighter* fp = GET_FIGHTER(gobj); + ftCaptain_DatAttrs* da = fp->dat_attrs; + PAD_STACK(12); + if (ftCa_Special_Inline_Check_Flag(fp) != 0) { + if (!fp->x2219_b0) { + if (fp->motion_id == 0x165) { + sp1C = 0.0F; + var_r29 = ftParts_8007500C(fp, FtPart_RFootJA); + } else if (fp->motion_id == 0x167) { + sp1C = 0.017453292f * da->speciallw_flame_particle_angle; + var_r29 = ftParts_8007500C(fp, FtPart_LFootJA); + } + switch (ftLib_800872A4(gobj)) { + case FTKIND_CAPTAIN: + efAsync_Spawn(gobj, &GET_FIGHTER(gobj)->x60C, 3U, 0x490U, + fp->parts[var_r29].joint, &sp1C); + break; + case FTKIND_GANON: + efAsync_Spawn(gobj, &GET_FIGHTER(gobj)->x60C, 3U, 0x50CU, + fp->parts[var_r29].joint, &sp1C); + break; + } + fp->x2219_b0 = 1; + return; + } + ftCommon_8007DB24((Fighter_GObj*) gobj); + } } static void ftCa_SpecialHi_800E400C(HSD_GObj* gobj) @@ -46,10 +98,10 @@ void ftCa_SpecialLw_Enter(HSD_GObj* gobj) fp->cmd_vars[1] = 0; fp->cmd_vars[0] = 0; fp->throw_flags = 0; - fp->mv.ca.speciallw.x0 = 0; - fp->mv.ca.speciallw.friction = 1; - Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialLw, Ft_MF_None, 0, 1, 0, - NULL); + fp->mv.ca.speciallw.x0 = 0.0F; + fp->mv.ca.speciallw.friction = 1.0F; + Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialLw, Ft_MF_None, 0.0F, 1.0F, + 0.0F, NULL); ftAnim_8006EBA4(gobj); fp->deal_dmg_cb = ftCa_SpecialHi_800E400C; fp->pre_hitlag_cb = efLib_PauseAll; @@ -71,35 +123,36 @@ void ftCa_SpecialAirLw_Enter(HSD_GObj* gobj) fp->post_hitlag_cb = efLib_ResumeAll; } +static inline void ftCa_SpecialLw_Anim_inline(HSD_GObj* gobj, s32 condition) +{ + Fighter* fp = GET_FIGHTER(gobj); + ftCaptain_DatAttrs* da = fp->dat_attrs; + fp->cmd_vars[2] = 0; + fp->cmd_vars[1] = 0; + fp->cmd_vars[0] = 0; + fp->throw_flags = 0; + if (condition == 0) { + ftCommon_8007D7FC(fp); + Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialLwEnd, Ft_MF_None, 0, + da->speciallw_ground_lag_mul, 0, NULL); + } else { + ftCommon_8007D5D4(fp); + Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialLwEndAir, Ft_MF_None, 0, + 1, 0, NULL); + } + fp->pre_hitlag_cb = efLib_PauseAll; + fp->post_hitlag_cb = efLib_ResumeAll; +} + void ftCa_SpecialLw_Anim(HSD_GObj* gobj) { - u8 _[32]; Fighter* fp = GET_FIGHTER(gobj); + PAD_STACK(24); if (!ftAnim_IsFramesRemaining(gobj)) { if (fp->ground_or_air == GA_Ground) { - Fighter* fp = GET_FIGHTER(gobj); - ftCaptain_DatAttrs* da = fp->dat_attrs; - fp->cmd_vars[2] = 0; - fp->cmd_vars[1] = 0; - fp->cmd_vars[0] = 0; - fp->throw_flags = 0; - ftCommon_8007D7FC(fp); - Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialLwEnd, Ft_MF_None, - 0, da->speciallw_ground_lag_mul, 0, - NULL); - fp->pre_hitlag_cb = efLib_PauseAll; - fp->post_hitlag_cb = efLib_ResumeAll; + ftCa_SpecialLw_Anim_inline(gobj, 0); } else { - Fighter* fp = GET_FIGHTER(gobj); - fp->cmd_vars[2] = 0; - fp->cmd_vars[1] = 0; - fp->cmd_vars[0] = 0; - fp->throw_flags = 0; - ftCommon_8007D5D4(fp); - Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialLwEndAir, - Ft_MF_None, 0, 1, 0, NULL); - fp->pre_hitlag_cb = efLib_PauseAll; - fp->post_hitlag_cb = efLib_ResumeAll; + ftCa_SpecialLw_Anim_inline(gobj, 1); } } } @@ -118,15 +171,20 @@ void ftCa_SpecialLwEndAir_Anim(HSD_GObj* gobj) } } +static inline void ftCa_SpecialAirLw_Anim_inline(HSD_GObj* gobj) +{ + Fighter* fp = GET_FIGHTER(gobj); + fp->cmd_vars[2] = 0; + fp->cmd_vars[1] = 0; + fp->cmd_vars[0] = 0; + fp->throw_flags = 0; +} + void ftCa_SpecialAirLw_Anim(HSD_GObj* gobj) { - u8 _[8]; if (!ftAnim_IsFramesRemaining(gobj)) { Fighter* fp = GET_FIGHTER(gobj); - fp->cmd_vars[2] = 0; - fp->cmd_vars[1] = 0; - fp->cmd_vars[0] = 0; - fp->throw_flags = 0; + ftCa_SpecialAirLw_Anim_inline(gobj); ftCommon_8007D5D4(fp); Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialAirLwEndAir, Ft_MF_None, 0, 1, 0, NULL); @@ -154,6 +212,13 @@ void ftCa_SpecialHiThrow1_Anim(HSD_GObj* gobj) } } +static inline void ftCa_Special_Inline_Friction(Fighter* fp) +{ + float friction = fp->mv.ca.speciallw.friction; + fp->self_vel.x *= friction; + fp->self_vel.y *= friction; +} + void ftCa_SpecialLw_Phys(HSD_GObj* gobj) { Fighter* fp = GET_FIGHTER(gobj); @@ -164,11 +229,7 @@ void ftCa_SpecialLw_Phys(HSD_GObj* gobj) ftParts_80075CB4((Fighter*) fp, 0, 0); ft_80085134(gobj); } - { - float friction = fp->mv.ca.speciallw.friction; - fp->self_vel.x *= friction; - fp->self_vel.y *= friction; - } + ftCa_Special_Inline_Friction(fp); ftCa_SpecialHi_800E3EAC(gobj); } @@ -187,14 +248,10 @@ void ftCa_SpecialLwEnd_Phys(HSD_GObj* gobj) ft_80084F3C(gobj); } } else { - ftParts_80075CB4(fp, 0, 0); + ftParts_80075CB4(fp, 0, 0.0F); ft_80084EEC(gobj); } - { - float friction = fp->mv.ca.speciallw.friction; - fp->self_vel.x *= friction; - fp->self_vel.y *= friction; - } + ftCa_Special_Inline_Friction(fp); } void ftCa_SpecialLwEndAir_Phys(HSD_GObj* gobj) @@ -256,18 +313,15 @@ void ftCa_SpecialLw_Coll(HSD_GObj* gobj) ftCommon_8007D7FC((Fighter*) fp); } { - float facing_dir; if ((fp->cmd_vars[0] != 0) && /// @todo Pull out these check functions - (((facing_dir = fp->facing_dir, ((facing_dir == -1) != 0)) && + (((((fp->facing_dir == -1) != 0)) && (fp->coll_data.env_flags & MPCOLL_FLAGS_B11)) || - (facing_dir == +1 && + (fp->facing_dir == +1 && (fp->coll_data.env_flags & MPCOLL_FLAGS_B05)))) { - Fighter* fp = GET_FIGHTER(gobj); - fp->cmd_vars[2] = 0; - fp->cmd_vars[1] = 0; - fp->cmd_vars[0] = 0; + fp = GET_FIGHTER(gobj); + ftCa_Special_Inline_SetFlags(gobj); fp->throw_flags = 0; ftCommon_8007D5D4(fp); Fighter_ChangeMotionState(gobj, ftCa_MS_SpecialHiThrow1, diff --git a/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.h b/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.h index 90c42aa496..aa41f70519 100644 --- a/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.h +++ b/src/melee/ft/chara/ftCaptain/ftCa_SpecialLw.h @@ -3,6 +3,7 @@ #include +/* 0E3EAC */ void ftCa_SpecialHi_800E3EAC(HSD_GObj* gobj); /* 0E4040 */ void ftCa_SpecialLw_Enter(HSD_GObj* gobj); /* 0E40D8 */ void ftCa_SpecialAirLw_Enter(HSD_GObj* gobj); /* 0E415C */ void ftCa_SpecialLw_Anim(HSD_GObj* gobj); From b4b7414e3baceb2476676856c01e2ae336af9112 Mon Sep 17 00:00:00 2001 From: foxcam <118768446+thefoxcam@users.noreply.github.com> Date: Sat, 13 Jul 2024 16:44:16 +0000 Subject: [PATCH 2/3] Match `itheiho`, partial `itfoods` (#1395) * match all functions * clean up * correct protos * mark as matching --- asm/melee/it/items/itheiho.s | 1551 ----------------- config/GALE01/symbols.txt | 68 +- configure.py | 2 +- obj_files.mk | 2 +- .../ft/chara/ftGameWatch/ftGw_SpecialS.c | 1 + src/melee/gr/grstory.c | 3 +- src/melee/it/itCommonItems.h | 49 + src/melee/it/it_266F.h | 1 + src/melee/it/it_26B1.c | 1 + src/melee/it/it_2725.h | 10 +- src/melee/it/items/it_27CF.h | 3 - src/melee/it/items/itfoods.c | 171 ++ src/melee/it/items/itfoods.h | 12 +- src/melee/it/items/itfreeze.h | 3 + src/melee/it/items/itheiho.c | 431 +++++ src/melee/it/items/itheiho.h | 9 + src/melee/it/items/itmsbomb.h | 1 + src/melee/it/types.h | 2 + 18 files changed, 721 insertions(+), 1599 deletions(-) delete mode 100644 asm/melee/it/items/itheiho.s diff --git a/asm/melee/it/items/itheiho.s b/asm/melee/it/items/itheiho.s deleted file mode 100644 index 772b73d8a7..0000000000 --- a/asm/melee/it/items/itheiho.s +++ /dev/null @@ -1,1551 +0,0 @@ -.include "macros.inc" - -.section .text - -.global it_802D8618 -it_802D8618: -/* 802D8618 002D51F8 7C 08 02 A6 */ mflr r0 -/* 802D861C 002D51FC 38 E0 00 01 */ li r7, 1 -/* 802D8620 002D5200 90 01 00 04 */ stw r0, 4(r1) -/* 802D8624 002D5204 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D8628 002D5208 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 802D862C 002D520C 3B E6 00 00 */ addi r31, r6, 0 -/* 802D8630 002D5210 38 C0 00 00 */ li r6, 0 -/* 802D8634 002D5214 93 C1 00 28 */ stw r30, 0x28(r1) -/* 802D8638 002D5218 3B C5 00 00 */ addi r30, r5, 0 -/* 802D863C 002D521C 38 A0 00 00 */ li r5, 0 -/* 802D8640 002D5220 93 A1 00 24 */ stw r29, 0x24(r1) -/* 802D8644 002D5224 3B A3 00 00 */ addi r29, r3, 0 -/* 802D8648 002D5228 38 60 00 D2 */ li r3, 0xd2 -/* 802D864C 002D522C 4B FA 2F 65 */ bl it_8027B5B0 -/* 802D8650 002D5230 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 802D8654 002D5234 7F A4 07 74 */ extsb r4, r29 -/* 802D8658 002D5238 7F C0 07 74 */ extsb r0, r30 -/* 802D865C 002D523C 98 85 0D F4 */ stb r4, 0xdf4(r5) -/* 802D8660 002D5240 98 05 0D F5 */ stb r0, 0xdf5(r5) -/* 802D8664 002D5244 93 E5 0D F8 */ stw r31, 0xdf8(r5) -/* 802D8668 002D5248 48 00 02 2D */ bl it_802D8894 -/* 802D866C 002D524C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D8670 002D5250 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 802D8674 002D5254 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 802D8678 002D5258 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 802D867C 002D525C 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D8680 002D5260 7C 08 03 A6 */ mtlr r0 -/* 802D8684 002D5264 4E 80 00 20 */ blr - -.global it_802D8688 -it_802D8688: -/* 802D8688 002D5268 7C 08 02 A6 */ mflr r0 -/* 802D868C 002D526C 90 01 00 04 */ stw r0, 4(r1) -/* 802D8690 002D5270 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D8694 002D5274 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D8698 002D5278 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D869C 002D527C 7C 7E 1B 78 */ mr r30, r3 -/* 802D86A0 002D5280 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 802D86A4 002D5284 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 802D86A8 002D5288 4B FA 30 89 */ bl it_8027B730 -/* 802D86AC 002D528C 38 A0 00 00 */ li r5, 0 -/* 802D86B0 002D5290 90 BF 0D 5C */ stw r5, 0xd5c(r31) -/* 802D86B4 002D5294 38 9F 00 4C */ addi r4, r31, 0x4c -/* 802D86B8 002D5298 38 60 00 00 */ li r3, 0 -/* 802D86BC 002D529C 88 1F 0D CC */ lbz r0, 0xdcc(r31) -/* 802D86C0 002D52A0 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b -/* 802D86C4 002D52A4 98 1F 0D CC */ stb r0, 0xdcc(r31) -/* 802D86C8 002D52A8 4B FB 74 2D */ bl it_8028FAF4 -/* 802D86CC 002D52AC 90 7F 0E 28 */ stw r3, 0xe28(r31) -/* 802D86D0 002D52B0 80 7F 0E 28 */ lwz r3, 0xe28(r31) -/* 802D86D4 002D52B4 28 03 00 00 */ cmplwi r3, 0 -/* 802D86D8 002D52B8 41 82 00 20 */ beq .L_802D86F8 -/* 802D86DC 002D52BC 4B FB 72 8D */ bl it_8028F968 -/* 802D86E0 002D52C0 80 7F 0E 28 */ lwz r3, 0xe28(r31) -/* 802D86E4 002D52C4 38 9F 00 4C */ addi r4, r31, 0x4c -/* 802D86E8 002D52C8 C0 22 DB D8 */ lfs f1, it_804DD5B8@sda21(r2) -/* 802D86EC 002D52CC 4B FB 72 ED */ bl it_8028F9D8 -/* 802D86F0 002D52D0 80 7F 0E 28 */ lwz r3, 0xe28(r31) -/* 802D86F4 002D52D4 4B FB 76 89 */ bl it_8028FD7C -.L_802D86F8: -/* 802D86F8 002D52D8 38 00 00 00 */ li r0, 0 -/* 802D86FC 002D52DC 90 1F 0E 00 */ stw r0, 0xe00(r31) -/* 802D8700 002D52E0 7F E3 FB 78 */ mr r3, r31 -/* 802D8704 002D52E4 98 1F 0D F6 */ stb r0, 0xdf6(r31) -/* 802D8708 002D52E8 C0 02 DB DC */ lfs f0, it_804DD5BC@sda21(r2) -/* 802D870C 002D52EC D0 1F 00 54 */ stfs f0, 0x54(r31) -/* 802D8710 002D52F0 4B F9 DB AD */ bl it_802762BC -/* 802D8714 002D52F4 C0 3F 00 4C */ lfs f1, 0x4c(r31) -/* 802D8718 002D52F8 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D871C 002D52FC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802D8720 002D5300 40 80 00 A8 */ bge .L_802D87C8 -/* 802D8724 002D5304 C0 02 DB D8 */ lfs f0, it_804DD5B8@sda21(r2) -/* 802D8728 002D5308 D0 1F 00 2C */ stfs f0, 0x2c(r31) -/* 802D872C 002D530C 83 BE 00 28 */ lwz r29, 0x28(r30) -/* 802D8730 002D5310 28 1D 00 00 */ cmplwi r29, 0 -/* 802D8734 002D5314 40 82 00 14 */ bne .L_802D8748 -/* 802D8738 002D5318 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D873C 002D531C 38 80 02 94 */ li r4, 0x294 -/* 802D8740 002D5320 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8744 002D5324 48 0A FA DD */ bl __assert -.L_802D8748: -/* 802D8748 002D5328 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D874C 002D532C 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D8750 002D5330 41 82 00 18 */ beq .L_802D8768 -/* 802D8754 002D5334 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D8758 002D5338 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D875C 002D533C 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8760 002D5340 38 80 02 95 */ li r4, 0x295 -/* 802D8764 002D5344 48 0A FA BD */ bl __assert -.L_802D8768: -/* 802D8768 002D5348 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D876C 002D534C D0 1D 00 20 */ stfs f0, 0x20(r29) -/* 802D8770 002D5350 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D8774 002D5354 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D8778 002D5358 40 82 00 F0 */ bne .L_802D8868 -/* 802D877C 002D535C 28 1D 00 00 */ cmplwi r29, 0 -/* 802D8780 002D5360 41 82 00 E8 */ beq .L_802D8868 -/* 802D8784 002D5364 40 82 00 14 */ bne .L_802D8798 -/* 802D8788 002D5368 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D878C 002D536C 38 80 02 34 */ li r4, 0x234 -/* 802D8790 002D5370 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8794 002D5374 48 0A FA 8D */ bl __assert -.L_802D8798: -/* 802D8798 002D5378 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 802D879C 002D537C 38 60 00 00 */ li r3, 0 -/* 802D87A0 002D5380 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D87A4 002D5384 40 82 00 10 */ bne .L_802D87B4 -/* 802D87A8 002D5388 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D87AC 002D538C 41 82 00 08 */ beq .L_802D87B4 -/* 802D87B0 002D5390 38 60 00 01 */ li r3, 1 -.L_802D87B4: -/* 802D87B4 002D5394 2C 03 00 00 */ cmpwi r3, 0 -/* 802D87B8 002D5398 40 82 00 B0 */ bne .L_802D8868 -/* 802D87BC 002D539C 7F A3 EB 78 */ mr r3, r29 -/* 802D87C0 002D53A0 48 09 AB 29 */ bl HSD_JObjSetMtxDirtySub -/* 802D87C4 002D53A4 48 00 00 A4 */ b .L_802D8868 -.L_802D87C8: -/* 802D87C8 002D53A8 C0 02 DB E4 */ lfs f0, it_804DD5C4@sda21(r2) -/* 802D87CC 002D53AC D0 1F 00 2C */ stfs f0, 0x2c(r31) -/* 802D87D0 002D53B0 83 BE 00 28 */ lwz r29, 0x28(r30) -/* 802D87D4 002D53B4 28 1D 00 00 */ cmplwi r29, 0 -/* 802D87D8 002D53B8 40 82 00 14 */ bne .L_802D87EC -/* 802D87DC 002D53BC 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D87E0 002D53C0 38 80 02 94 */ li r4, 0x294 -/* 802D87E4 002D53C4 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D87E8 002D53C8 48 0A FA 39 */ bl __assert -.L_802D87EC: -/* 802D87EC 002D53CC 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D87F0 002D53D0 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D87F4 002D53D4 41 82 00 18 */ beq .L_802D880C -/* 802D87F8 002D53D8 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D87FC 002D53DC 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D8800 002D53E0 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8804 002D53E4 38 80 02 95 */ li r4, 0x295 -/* 802D8808 002D53E8 48 0A FA 19 */ bl __assert -.L_802D880C: -/* 802D880C 002D53EC C0 02 DB E8 */ lfs f0, it_804DD5C8@sda21(r2) -/* 802D8810 002D53F0 D0 1D 00 20 */ stfs f0, 0x20(r29) -/* 802D8814 002D53F4 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D8818 002D53F8 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D881C 002D53FC 40 82 00 4C */ bne .L_802D8868 -/* 802D8820 002D5400 28 1D 00 00 */ cmplwi r29, 0 -/* 802D8824 002D5404 41 82 00 44 */ beq .L_802D8868 -/* 802D8828 002D5408 40 82 00 14 */ bne .L_802D883C -/* 802D882C 002D540C 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8830 002D5410 38 80 02 34 */ li r4, 0x234 -/* 802D8834 002D5414 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8838 002D5418 48 0A F9 E9 */ bl __assert -.L_802D883C: -/* 802D883C 002D541C 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 802D8840 002D5420 38 60 00 00 */ li r3, 0 -/* 802D8844 002D5424 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D8848 002D5428 40 82 00 10 */ bne .L_802D8858 -/* 802D884C 002D542C 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D8850 002D5430 41 82 00 08 */ beq .L_802D8858 -/* 802D8854 002D5434 38 60 00 01 */ li r3, 1 -.L_802D8858: -/* 802D8858 002D5438 2C 03 00 00 */ cmpwi r3, 0 -/* 802D885C 002D543C 40 82 00 0C */ bne .L_802D8868 -/* 802D8860 002D5440 7F A3 EB 78 */ mr r3, r29 -/* 802D8864 002D5444 48 09 AA 85 */ bl HSD_JObjSetMtxDirtySub -.L_802D8868: -/* 802D8868 002D5448 C0 02 DB D8 */ lfs f0, it_804DD5B8@sda21(r2) -/* 802D886C 002D544C 7F C3 F3 78 */ mr r3, r30 -/* 802D8870 002D5450 D0 1F 00 30 */ stfs f0, 0x30(r31) -/* 802D8874 002D5454 48 00 00 21 */ bl it_802D8894 -/* 802D8878 002D5458 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D887C 002D545C 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D8880 002D5460 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D8884 002D5464 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 802D8888 002D5468 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D888C 002D546C 7C 08 03 A6 */ mtlr r0 -/* 802D8890 002D5470 4E 80 00 20 */ blr - -.global it_802D8894 -it_802D8894: -/* 802D8894 002D5474 7C 08 02 A6 */ mflr r0 -/* 802D8898 002D5478 38 80 00 00 */ li r4, 0 -/* 802D889C 002D547C 90 01 00 04 */ stw r0, 4(r1) -/* 802D88A0 002D5480 38 A0 00 02 */ li r5, 2 -/* 802D88A4 002D5484 94 21 FF F8 */ stwu r1, -8(r1) -/* 802D88A8 002D5488 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D88AC 002D548C 80 C3 00 2C */ lwz r6, 0x2c(r3) -/* 802D88B0 002D5490 D0 06 00 44 */ stfs f0, 0x44(r6) -/* 802D88B4 002D5494 D0 06 00 40 */ stfs f0, 0x40(r6) -/* 802D88B8 002D5498 4B F9 05 A5 */ bl Item_80268E5C -/* 802D88BC 002D549C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D88C0 002D54A0 38 21 00 08 */ addi r1, r1, 8 -/* 802D88C4 002D54A4 7C 08 03 A6 */ mtlr r0 -/* 802D88C8 002D54A8 4E 80 00 20 */ blr - -.global it_802D88CC -it_802D88CC: -/* 802D88CC 002D54AC 38 60 00 00 */ li r3, 0 -/* 802D88D0 002D54B0 4E 80 00 20 */ blr - -.global it_802D88D4 -it_802D88D4: -/* 802D88D4 002D54B4 7C 08 02 A6 */ mflr r0 -/* 802D88D8 002D54B8 90 01 00 04 */ stw r0, 4(r1) -/* 802D88DC 002D54BC 94 21 FF F8 */ stwu r1, -8(r1) -/* 802D88E0 002D54C0 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 802D88E4 002D54C4 80 85 0D F8 */ lwz r4, 0xdf8(r5) -/* 802D88E8 002D54C8 2C 04 00 00 */ cmpwi r4, 0 -/* 802D88EC 002D54CC 40 82 00 0C */ bne .L_802D88F8 -/* 802D88F0 002D54D0 48 00 00 29 */ bl it_802D8918 -/* 802D88F4 002D54D4 48 00 00 0C */ b .L_802D8900 -.L_802D88F8: -/* 802D88F8 002D54D8 38 04 FF FF */ addi r0, r4, -1 -/* 802D88FC 002D54DC 90 05 0D F8 */ stw r0, 0xdf8(r5) -.L_802D8900: -/* 802D8900 002D54E0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D8904 002D54E4 38 21 00 08 */ addi r1, r1, 8 -/* 802D8908 002D54E8 7C 08 03 A6 */ mtlr r0 -/* 802D890C 002D54EC 4E 80 00 20 */ blr - -.global it_802D8910 -it_802D8910: -/* 802D8910 002D54F0 38 60 00 00 */ li r3, 0 -/* 802D8914 002D54F4 4E 80 00 20 */ blr - -.global it_802D8918 -it_802D8918: -/* 802D8918 002D54F8 7C 08 02 A6 */ mflr r0 -/* 802D891C 002D54FC 90 01 00 04 */ stw r0, 4(r1) -/* 802D8920 002D5500 38 00 00 00 */ li r0, 0 -/* 802D8924 002D5504 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 802D8928 002D5508 93 E1 00 14 */ stw r31, 0x14(r1) -/* 802D892C 002D550C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 802D8930 002D5510 7C 7E 1B 78 */ mr r30, r3 -/* 802D8934 002D5514 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 802D8938 002D5518 90 1F 0D F8 */ stw r0, 0xdf8(r31) -/* 802D893C 002D551C 48 00 0F 71 */ bl it_802D98AC -/* 802D8940 002D5520 38 7E 00 00 */ addi r3, r30, 0 -/* 802D8944 002D5524 38 80 00 01 */ li r4, 1 -/* 802D8948 002D5528 38 A0 00 02 */ li r5, 2 -/* 802D894C 002D552C 4B F9 05 11 */ bl Item_80268E5C -/* 802D8950 002D5530 80 7F 0B BC */ lwz r3, 0xbbc(r31) -/* 802D8954 002D5534 7F E4 FB 78 */ mr r4, r31 -/* 802D8958 002D5538 80 63 00 04 */ lwz r3, 4(r3) -/* 802D895C 002D553C 48 00 0F 69 */ bl it_802D98C4 -/* 802D8960 002D5540 3C 60 80 2E */ lis r3, it_802D96B0@ha -/* 802D8964 002D5544 38 03 96 B0 */ addi r0, r3, it_802D96B0@l -/* 802D8968 002D5548 90 1F 0D 20 */ stw r0, 0xd20(r31) -/* 802D896C 002D554C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 802D8970 002D5550 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 802D8974 002D5554 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 802D8978 002D5558 38 21 00 18 */ addi r1, r1, 0x18 -/* 802D897C 002D555C 7C 08 03 A6 */ mtlr r0 -/* 802D8980 002D5560 4E 80 00 20 */ blr - -.global it_802D8984 -it_802D8984: -/* 802D8984 002D5564 7C 08 02 A6 */ mflr r0 -/* 802D8988 002D5568 90 01 00 04 */ stw r0, 4(r1) -/* 802D898C 002D556C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D8990 002D5570 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D8994 002D5574 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D8998 002D5578 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 802D899C 002D557C 93 81 00 18 */ stw r28, 0x18(r1) -/* 802D89A0 002D5580 7C 7C 1B 78 */ mr r28, r3 -/* 802D89A4 002D5584 80 63 00 28 */ lwz r3, 0x28(r3) -/* 802D89A8 002D5588 83 BC 00 2C */ lwz r29, 0x2c(r28) -/* 802D89AC 002D558C 28 03 00 00 */ cmplwi r3, 0 -/* 802D89B0 002D5590 40 82 00 0C */ bne .L_802D89BC -/* 802D89B4 002D5594 3B E0 00 00 */ li r31, 0 -/* 802D89B8 002D5598 48 00 00 08 */ b .L_802D89C0 -.L_802D89BC: -/* 802D89BC 002D559C 83 E3 00 10 */ lwz r31, 0x10(r3) -.L_802D89C0: -/* 802D89C0 002D55A0 80 7D 0B BC */ lwz r3, 0xbbc(r29) -/* 802D89C4 002D55A4 7F A4 EB 78 */ mr r4, r29 -/* 802D89C8 002D55A8 80 63 00 04 */ lwz r3, 4(r3) -/* 802D89CC 002D55AC 48 00 0E F9 */ bl it_802D98C4 -/* 802D89D0 002D55B0 7F 83 E3 78 */ mr r3, r28 -/* 802D89D4 002D55B4 4B F9 A2 99 */ bl it_80272C6C -/* 802D89D8 002D55B8 2C 03 00 00 */ cmpwi r3, 0 -/* 802D89DC 002D55BC 40 82 00 3C */ bne .L_802D8A18 -/* 802D89E0 002D55C0 83 DC 00 2C */ lwz r30, 0x2c(r28) -/* 802D89E4 002D55C4 38 00 00 00 */ li r0, 0 -/* 802D89E8 002D55C8 38 7C 00 00 */ addi r3, r28, 0 -/* 802D89EC 002D55CC 90 1E 0D F8 */ stw r0, 0xdf8(r30) -/* 802D89F0 002D55D0 38 80 00 01 */ li r4, 1 -/* 802D89F4 002D55D4 38 A0 00 02 */ li r5, 2 -/* 802D89F8 002D55D8 4B F9 04 65 */ bl Item_80268E5C -/* 802D89FC 002D55DC 80 7E 0B BC */ lwz r3, 0xbbc(r30) -/* 802D8A00 002D55E0 7F C4 F3 78 */ mr r4, r30 -/* 802D8A04 002D55E4 80 63 00 04 */ lwz r3, 4(r3) -/* 802D8A08 002D55E8 48 00 0E BD */ bl it_802D98C4 -/* 802D8A0C 002D55EC 3C 60 80 2E */ lis r3, it_802D96B0@ha -/* 802D8A10 002D55F0 38 03 96 B0 */ addi r0, r3, it_802D96B0@l -/* 802D8A14 002D55F4 90 1E 0D 20 */ stw r0, 0xd20(r30) -.L_802D8A18: -/* 802D8A18 002D55F8 80 1D 0E 00 */ lwz r0, 0xe00(r29) -/* 802D8A1C 002D55FC 2C 00 03 C0 */ cmpwi r0, 0x3c0 -/* 802D8A20 002D5600 40 81 00 10 */ ble .L_802D8A30 -/* 802D8A24 002D5604 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 802D8A28 002D5608 3C 80 10 00 */ lis r4, 0x1000 -/* 802D8A2C 002D560C 48 08 B5 F1 */ bl HSD_AObjSetFlags -.L_802D8A30: -/* 802D8A30 002D5610 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D8A34 002D5614 38 60 00 00 */ li r3, 0 -/* 802D8A38 002D5618 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D8A3C 002D561C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D8A40 002D5620 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 802D8A44 002D5624 83 81 00 18 */ lwz r28, 0x18(r1) -/* 802D8A48 002D5628 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D8A4C 002D562C 7C 08 03 A6 */ mtlr r0 -/* 802D8A50 002D5630 4E 80 00 20 */ blr - -.global it_802D8A54 -it_802D8A54: -/* 802D8A54 002D5634 7C 08 02 A6 */ mflr r0 -/* 802D8A58 002D5638 90 01 00 04 */ stw r0, 4(r1) -/* 802D8A5C 002D563C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D8A60 002D5640 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D8A64 002D5644 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D8A68 002D5648 7C 7E 1B 78 */ mr r30, r3 -/* 802D8A6C 002D564C 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 802D8A70 002D5650 80 7F 00 C4 */ lwz r3, 0xc4(r31) -/* 802D8A74 002D5654 88 1F 0D F5 */ lbz r0, 0xdf5(r31) -/* 802D8A78 002D5658 80 63 00 04 */ lwz r3, 4(r3) -/* 802D8A7C 002D565C 7C 00 07 74 */ extsb r0, r0 -/* 802D8A80 002D5660 C0 3F 00 2C */ lfs f1, 0x2c(r31) -/* 802D8A84 002D5664 54 00 10 3A */ slwi r0, r0, 2 -/* 802D8A88 002D5668 7C 63 02 14 */ add r3, r3, r0 -/* 802D8A8C 002D566C C0 03 00 04 */ lfs f0, 4(r3) -/* 802D8A90 002D5670 EC 01 00 32 */ fmuls f0, f1, f0 -/* 802D8A94 002D5674 D0 1F 00 40 */ stfs f0, 0x40(r31) -/* 802D8A98 002D5678 80 1F 0E 00 */ lwz r0, 0xe00(r31) -/* 802D8A9C 002D567C 2C 00 03 C0 */ cmpwi r0, 0x3c0 -/* 802D8AA0 002D5680 40 81 00 28 */ ble .L_802D8AC8 -/* 802D8AA4 002D5684 C0 5F 00 40 */ lfs f2, 0x40(r31) -/* 802D8AA8 002D5688 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D8AAC 002D568C FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 802D8AB0 002D5690 40 80 00 08 */ bge .L_802D8AB8 -/* 802D8AB4 002D5694 FC 40 10 50 */ fneg f2, f2 -.L_802D8AB8: -/* 802D8AB8 002D5698 C0 22 DB EC */ lfs f1, it_804DD5CC@sda21(r2) -/* 802D8ABC 002D569C C0 1F 00 44 */ lfs f0, 0x44(r31) -/* 802D8AC0 002D56A0 EC 01 00 BC */ fnmsubs f0, f1, f2, f0 -/* 802D8AC4 002D56A4 D0 1F 00 44 */ stfs f0, 0x44(r31) -.L_802D8AC8: -/* 802D8AC8 002D56A8 7F C3 F3 78 */ mr r3, r30 -/* 802D8ACC 002D56AC 48 00 0C 49 */ bl it_802D9714 -/* 802D8AD0 002D56B0 80 1F 0D F8 */ lwz r0, 0xdf8(r31) -/* 802D8AD4 002D56B4 2C 00 00 00 */ cmpwi r0, 0 -/* 802D8AD8 002D56B8 41 82 00 94 */ beq .L_802D8B6C -/* 802D8ADC 002D56BC 83 DE 00 28 */ lwz r30, 0x28(r30) -/* 802D8AE0 002D56C0 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8AE4 002D56C4 40 82 00 14 */ bne .L_802D8AF8 -/* 802D8AE8 002D56C8 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8AEC 002D56CC 38 80 04 11 */ li r4, 0x411 -/* 802D8AF0 002D56D0 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8AF4 002D56D4 48 0A F7 2D */ bl __assert -.L_802D8AF8: -/* 802D8AF8 002D56D8 C0 3E 00 20 */ lfs f1, 0x20(r30) -/* 802D8AFC 002D56DC C0 02 DB F0 */ lfs f0, it_804DD5D0@sda21(r2) -/* 802D8B00 002D56E0 EC 01 00 2A */ fadds f0, f1, f0 -/* 802D8B04 002D56E4 D0 1E 00 20 */ stfs f0, 0x20(r30) -/* 802D8B08 002D56E8 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D8B0C 002D56EC 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D8B10 002D56F0 40 82 00 4C */ bne .L_802D8B5C -/* 802D8B14 002D56F4 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8B18 002D56F8 41 82 00 44 */ beq .L_802D8B5C -/* 802D8B1C 002D56FC 40 82 00 14 */ bne .L_802D8B30 -/* 802D8B20 002D5700 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8B24 002D5704 38 80 02 34 */ li r4, 0x234 -/* 802D8B28 002D5708 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8B2C 002D570C 48 0A F6 F5 */ bl __assert -.L_802D8B30: -/* 802D8B30 002D5710 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802D8B34 002D5714 38 60 00 00 */ li r3, 0 -/* 802D8B38 002D5718 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D8B3C 002D571C 40 82 00 10 */ bne .L_802D8B4C -/* 802D8B40 002D5720 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D8B44 002D5724 41 82 00 08 */ beq .L_802D8B4C -/* 802D8B48 002D5728 38 60 00 01 */ li r3, 1 -.L_802D8B4C: -/* 802D8B4C 002D572C 2C 03 00 00 */ cmpwi r3, 0 -/* 802D8B50 002D5730 40 82 00 0C */ bne .L_802D8B5C -/* 802D8B54 002D5734 7F C3 F3 78 */ mr r3, r30 -/* 802D8B58 002D5738 48 09 A7 91 */ bl HSD_JObjSetMtxDirtySub -.L_802D8B5C: -/* 802D8B5C 002D573C 80 7F 0D F8 */ lwz r3, 0xdf8(r31) -/* 802D8B60 002D5740 38 03 FF FF */ addi r0, r3, -1 -/* 802D8B64 002D5744 90 1F 0D F8 */ stw r0, 0xdf8(r31) -/* 802D8B68 002D5748 48 00 01 48 */ b .L_802D8CB0 -.L_802D8B6C: -/* 802D8B6C 002D574C C0 22 DB E4 */ lfs f1, it_804DD5C4@sda21(r2) -/* 802D8B70 002D5750 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 802D8B74 002D5754 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 802D8B78 002D5758 40 82 00 A0 */ bne .L_802D8C18 -/* 802D8B7C 002D575C 83 DE 00 28 */ lwz r30, 0x28(r30) -/* 802D8B80 002D5760 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8B84 002D5764 40 82 00 14 */ bne .L_802D8B98 -/* 802D8B88 002D5768 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8B8C 002D576C 38 80 02 94 */ li r4, 0x294 -/* 802D8B90 002D5770 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8B94 002D5774 48 0A F6 8D */ bl __assert -.L_802D8B98: -/* 802D8B98 002D5778 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D8B9C 002D577C 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D8BA0 002D5780 41 82 00 18 */ beq .L_802D8BB8 -/* 802D8BA4 002D5784 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D8BA8 002D5788 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D8BAC 002D578C 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8BB0 002D5790 38 80 02 95 */ li r4, 0x295 -/* 802D8BB4 002D5794 48 0A F6 6D */ bl __assert -.L_802D8BB8: -/* 802D8BB8 002D5798 C0 02 DB E8 */ lfs f0, it_804DD5C8@sda21(r2) -/* 802D8BBC 002D579C D0 1E 00 20 */ stfs f0, 0x20(r30) -/* 802D8BC0 002D57A0 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D8BC4 002D57A4 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D8BC8 002D57A8 40 82 00 E8 */ bne .L_802D8CB0 -/* 802D8BCC 002D57AC 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8BD0 002D57B0 41 82 00 E0 */ beq .L_802D8CB0 -/* 802D8BD4 002D57B4 40 82 00 14 */ bne .L_802D8BE8 -/* 802D8BD8 002D57B8 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8BDC 002D57BC 38 80 02 34 */ li r4, 0x234 -/* 802D8BE0 002D57C0 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8BE4 002D57C4 48 0A F6 3D */ bl __assert -.L_802D8BE8: -/* 802D8BE8 002D57C8 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802D8BEC 002D57CC 38 60 00 00 */ li r3, 0 -/* 802D8BF0 002D57D0 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D8BF4 002D57D4 40 82 00 10 */ bne .L_802D8C04 -/* 802D8BF8 002D57D8 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D8BFC 002D57DC 41 82 00 08 */ beq .L_802D8C04 -/* 802D8C00 002D57E0 38 60 00 01 */ li r3, 1 -.L_802D8C04: -/* 802D8C04 002D57E4 2C 03 00 00 */ cmpwi r3, 0 -/* 802D8C08 002D57E8 40 82 00 A8 */ bne .L_802D8CB0 -/* 802D8C0C 002D57EC 7F C3 F3 78 */ mr r3, r30 -/* 802D8C10 002D57F0 48 09 A6 D9 */ bl HSD_JObjSetMtxDirtySub -/* 802D8C14 002D57F4 48 00 00 9C */ b .L_802D8CB0 -.L_802D8C18: -/* 802D8C18 002D57F8 83 DE 00 28 */ lwz r30, 0x28(r30) -/* 802D8C1C 002D57FC 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8C20 002D5800 40 82 00 14 */ bne .L_802D8C34 -/* 802D8C24 002D5804 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8C28 002D5808 38 80 02 94 */ li r4, 0x294 -/* 802D8C2C 002D580C 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8C30 002D5810 48 0A F5 F1 */ bl __assert -.L_802D8C34: -/* 802D8C34 002D5814 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D8C38 002D5818 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D8C3C 002D581C 41 82 00 18 */ beq .L_802D8C54 -/* 802D8C40 002D5820 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D8C44 002D5824 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D8C48 002D5828 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8C4C 002D582C 38 80 02 95 */ li r4, 0x295 -/* 802D8C50 002D5830 48 0A F5 D1 */ bl __assert -.L_802D8C54: -/* 802D8C54 002D5834 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D8C58 002D5838 D0 1E 00 20 */ stfs f0, 0x20(r30) -/* 802D8C5C 002D583C 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D8C60 002D5840 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D8C64 002D5844 40 82 00 4C */ bne .L_802D8CB0 -/* 802D8C68 002D5848 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8C6C 002D584C 41 82 00 44 */ beq .L_802D8CB0 -/* 802D8C70 002D5850 40 82 00 14 */ bne .L_802D8C84 -/* 802D8C74 002D5854 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8C78 002D5858 38 80 02 34 */ li r4, 0x234 -/* 802D8C7C 002D585C 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8C80 002D5860 48 0A F5 A1 */ bl __assert -.L_802D8C84: -/* 802D8C84 002D5864 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802D8C88 002D5868 38 60 00 00 */ li r3, 0 -/* 802D8C8C 002D586C 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D8C90 002D5870 40 82 00 10 */ bne .L_802D8CA0 -/* 802D8C94 002D5874 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D8C98 002D5878 41 82 00 08 */ beq .L_802D8CA0 -/* 802D8C9C 002D587C 38 60 00 01 */ li r3, 1 -.L_802D8CA0: -/* 802D8CA0 002D5880 2C 03 00 00 */ cmpwi r3, 0 -/* 802D8CA4 002D5884 40 82 00 0C */ bne .L_802D8CB0 -/* 802D8CA8 002D5888 7F C3 F3 78 */ mr r3, r30 -/* 802D8CAC 002D588C 48 09 A6 3D */ bl HSD_JObjSetMtxDirtySub -.L_802D8CB0: -/* 802D8CB0 002D5890 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D8CB4 002D5894 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D8CB8 002D5898 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D8CBC 002D589C 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D8CC0 002D58A0 7C 08 03 A6 */ mtlr r0 -/* 802D8CC4 002D58A4 4E 80 00 20 */ blr - -.global it_802D8CC8 -it_802D8CC8: -/* 802D8CC8 002D58A8 7C 08 02 A6 */ mflr r0 -/* 802D8CCC 002D58AC 90 01 00 04 */ stw r0, 4(r1) -/* 802D8CD0 002D58B0 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D8CD4 002D58B4 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D8CD8 002D58B8 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D8CDC 002D58BC 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 802D8CE0 002D58C0 93 81 00 18 */ stw r28, 0x18(r1) -/* 802D8CE4 002D58C4 7C 7C 1B 78 */ mr r28, r3 -/* 802D8CE8 002D58C8 83 C3 00 2C */ lwz r30, 0x2c(r3) -/* 802D8CEC 002D58CC 80 9E 00 C4 */ lwz r4, 0xc4(r30) -/* 802D8CF0 002D58D0 83 A4 00 04 */ lwz r29, 4(r4) -/* 802D8CF4 002D58D4 4B F9 4D 7D */ bl it_8026DA70 -/* 802D8CF8 002D58D8 80 1E 0D F8 */ lwz r0, 0xdf8(r30) -/* 802D8CFC 002D58DC 3B E3 00 00 */ addi r31, r3, 0 -/* 802D8D00 002D58E0 2C 00 00 00 */ cmpwi r0, 0 -/* 802D8D04 002D58E4 40 82 00 4C */ bne .L_802D8D50 -/* 802D8D08 002D58E8 7F 83 E3 78 */ mr r3, r28 -/* 802D8D0C 002D58EC 4B F9 D5 FD */ bl it_80276308 -/* 802D8D10 002D58F0 2C 03 00 00 */ cmpwi r3, 0 -/* 802D8D14 002D58F4 41 82 00 3C */ beq .L_802D8D50 -/* 802D8D18 002D58F8 C0 1E 00 2C */ lfs f0, 0x2c(r30) -/* 802D8D1C 002D58FC 38 00 00 14 */ li r0, 0x14 -/* 802D8D20 002D5900 FC 00 00 50 */ fneg f0, f0 -/* 802D8D24 002D5904 D0 1E 00 2C */ stfs f0, 0x2c(r30) -/* 802D8D28 002D5908 88 7E 0D F5 */ lbz r3, 0xdf5(r30) -/* 802D8D2C 002D590C C0 3E 00 2C */ lfs f1, 0x2c(r30) -/* 802D8D30 002D5910 7C 63 07 74 */ extsb r3, r3 -/* 802D8D34 002D5914 54 63 10 3A */ slwi r3, r3, 2 -/* 802D8D38 002D5918 7C 7D 1A 14 */ add r3, r29, r3 -/* 802D8D3C 002D591C C0 03 00 04 */ lfs f0, 4(r3) -/* 802D8D40 002D5920 EC 01 00 32 */ fmuls f0, f1, f0 -/* 802D8D44 002D5924 D0 1E 00 40 */ stfs f0, 0x40(r30) -/* 802D8D48 002D5928 90 1E 0D F8 */ stw r0, 0xdf8(r30) -/* 802D8D4C 002D592C 48 00 00 44 */ b .L_802D8D90 -.L_802D8D50: -/* 802D8D50 002D5930 2C 1F 00 01 */ cmpwi r31, 1 -/* 802D8D54 002D5934 40 82 00 3C */ bne .L_802D8D90 -/* 802D8D58 002D5938 83 FC 00 2C */ lwz r31, 0x2c(r28) -/* 802D8D5C 002D593C 38 00 00 00 */ li r0, 0 -/* 802D8D60 002D5940 38 7C 00 00 */ addi r3, r28, 0 -/* 802D8D64 002D5944 90 1F 0D F8 */ stw r0, 0xdf8(r31) -/* 802D8D68 002D5948 38 80 00 01 */ li r4, 1 -/* 802D8D6C 002D594C 38 A0 00 02 */ li r5, 2 -/* 802D8D70 002D5950 4B F9 00 ED */ bl Item_80268E5C -/* 802D8D74 002D5954 80 7F 0B BC */ lwz r3, 0xbbc(r31) -/* 802D8D78 002D5958 7F E4 FB 78 */ mr r4, r31 -/* 802D8D7C 002D595C 80 63 00 04 */ lwz r3, 4(r3) -/* 802D8D80 002D5960 48 00 0B 45 */ bl it_802D98C4 -/* 802D8D84 002D5964 3C 60 80 2E */ lis r3, it_802D96B0@ha -/* 802D8D88 002D5968 38 03 96 B0 */ addi r0, r3, it_802D96B0@l -/* 802D8D8C 002D596C 90 1F 0D 20 */ stw r0, 0xd20(r31) -.L_802D8D90: -/* 802D8D90 002D5970 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D8D94 002D5974 38 60 00 00 */ li r3, 0 -/* 802D8D98 002D5978 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D8D9C 002D597C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D8DA0 002D5980 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 802D8DA4 002D5984 83 81 00 18 */ lwz r28, 0x18(r1) -/* 802D8DA8 002D5988 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D8DAC 002D598C 7C 08 03 A6 */ mtlr r0 -/* 802D8DB0 002D5990 4E 80 00 20 */ blr - -.global it_802D8DB4 -it_802D8DB4: -/* 802D8DB4 002D5994 38 60 00 00 */ li r3, 0 -/* 802D8DB8 002D5998 4E 80 00 20 */ blr - -.global it_802D8DBC -it_802D8DBC: -/* 802D8DBC 002D599C 7C 08 02 A6 */ mflr r0 -/* 802D8DC0 002D59A0 90 01 00 04 */ stw r0, 4(r1) -/* 802D8DC4 002D59A4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D8DC8 002D59A8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D8DCC 002D59AC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802D8DD0 002D59B0 7C 7E 1B 78 */ mr r30, r3 -/* 802D8DD4 002D59B4 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 802D8DD8 002D59B8 80 9F 00 CC */ lwz r4, 0xcc(r31) -/* 802D8DDC 002D59BC C0 24 00 10 */ lfs f1, 0x10(r4) -/* 802D8DE0 002D59C0 C0 44 00 14 */ lfs f2, 0x14(r4) -/* 802D8DE4 002D59C4 4B F9 9A 7D */ bl it_80272860 -/* 802D8DE8 002D59C8 38 60 00 03 */ li r3, 3 -/* 802D8DEC 002D59CC 48 0A 77 95 */ bl HSD_Randi -/* 802D8DF0 002D59D0 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802D8DF4 002D59D4 C8 42 DC 08 */ lfd f2, it_804DD5E8@sda21(r2) -/* 802D8DF8 002D59D8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D8DFC 002D59DC 3C 00 43 30 */ lis r0, 0x4330 -/* 802D8E00 002D59E0 C0 62 DC 00 */ lfs f3, it_804DD5E0@sda21(r2) -/* 802D8E04 002D59E4 7F C3 F3 78 */ mr r3, r30 -/* 802D8E08 002D59E8 90 01 00 10 */ stw r0, 0x10(r1) -/* 802D8E0C 002D59EC C0 02 DB D8 */ lfs f0, it_804DD5B8@sda21(r2) -/* 802D8E10 002D59F0 C8 21 00 10 */ lfd f1, 0x10(r1) -/* 802D8E14 002D59F4 C0 82 DB FC */ lfs f4, it_804DD5DC@sda21(r2) -/* 802D8E18 002D59F8 EC 21 10 28 */ fsubs f1, f1, f2 -/* 802D8E1C 002D59FC EC 03 00 7A */ fmadds f0, f3, f1, f0 -/* 802D8E20 002D5A00 EC 04 00 32 */ fmuls f0, f4, f0 -/* 802D8E24 002D5A04 D0 1F 0D 3C */ stfs f0, 0xd3c(r31) -/* 802D8E28 002D5A08 4B F9 BC 3D */ bl it_80274A64 -/* 802D8E2C 002D5A0C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D8E30 002D5A10 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D8E34 002D5A14 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 802D8E38 002D5A18 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D8E3C 002D5A1C 7C 08 03 A6 */ mtlr r0 -/* 802D8E40 002D5A20 4E 80 00 20 */ blr - -.global it_802D8E44 -it_802D8E44: -/* 802D8E44 002D5A24 38 60 00 00 */ li r3, 0 -/* 802D8E48 002D5A28 4E 80 00 20 */ blr - -.global it_802D8E4C -it_802D8E4C: -/* 802D8E4C 002D5A2C 38 60 00 00 */ li r3, 0 -/* 802D8E50 002D5A30 4E 80 00 20 */ blr - -.global it_802D8E54 -it_802D8E54: -/* 802D8E54 002D5A34 7C 08 02 A6 */ mflr r0 -/* 802D8E58 002D5A38 90 01 00 04 */ stw r0, 4(r1) -/* 802D8E5C 002D5A3C 94 21 FF F8 */ stwu r1, -8(r1) -/* 802D8E60 002D5A40 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 802D8E64 002D5A44 80 85 00 CC */ lwz r4, 0xcc(r5) -/* 802D8E68 002D5A48 C0 25 00 44 */ lfs f1, 0x44(r5) -/* 802D8E6C 002D5A4C C0 04 00 10 */ lfs f0, 0x10(r4) -/* 802D8E70 002D5A50 EC 01 00 28 */ fsubs f0, f1, f0 -/* 802D8E74 002D5A54 D0 05 00 44 */ stfs f0, 0x44(r5) -/* 802D8E78 002D5A58 80 85 0D F8 */ lwz r4, 0xdf8(r5) -/* 802D8E7C 002D5A5C 2C 04 00 00 */ cmpwi r4, 0 -/* 802D8E80 002D5A60 41 82 00 10 */ beq .L_802D8E90 -/* 802D8E84 002D5A64 38 04 FF FF */ addi r0, r4, -1 -/* 802D8E88 002D5A68 90 05 0D F8 */ stw r0, 0xdf8(r5) -/* 802D8E8C 002D5A6C 48 00 00 08 */ b .L_802D8E94 -.L_802D8E90: -/* 802D8E90 002D5A70 48 00 02 D9 */ bl it_802D9168 -.L_802D8E94: -/* 802D8E94 002D5A74 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D8E98 002D5A78 38 21 00 08 */ addi r1, r1, 8 -/* 802D8E9C 002D5A7C 7C 08 03 A6 */ mtlr r0 -/* 802D8EA0 002D5A80 4E 80 00 20 */ blr - -.global it_802D8EA4 -it_802D8EA4: -/* 802D8EA4 002D5A84 7C 08 02 A6 */ mflr r0 -/* 802D8EA8 002D5A88 90 01 00 04 */ stw r0, 4(r1) -/* 802D8EAC 002D5A8C 94 21 FF F8 */ stwu r1, -8(r1) -/* 802D8EB0 002D5A90 4B F9 4B C1 */ bl it_8026DA70 -/* 802D8EB4 002D5A94 38 60 00 00 */ li r3, 0 -/* 802D8EB8 002D5A98 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D8EBC 002D5A9C 38 21 00 08 */ addi r1, r1, 8 -/* 802D8EC0 002D5AA0 7C 08 03 A6 */ mtlr r0 -/* 802D8EC4 002D5AA4 4E 80 00 20 */ blr - -.global it_802D8EC8 -it_802D8EC8: -/* 802D8EC8 002D5AA8 7C 08 02 A6 */ mflr r0 -/* 802D8ECC 002D5AAC 90 01 00 04 */ stw r0, 4(r1) -/* 802D8ED0 002D5AB0 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 802D8ED4 002D5AB4 93 E1 00 4C */ stw r31, 0x4c(r1) -/* 802D8ED8 002D5AB8 7C 7F 1B 78 */ mr r31, r3 -/* 802D8EDC 002D5ABC 93 C1 00 48 */ stw r30, 0x48(r1) -/* 802D8EE0 002D5AC0 93 A1 00 44 */ stw r29, 0x44(r1) -/* 802D8EE4 002D5AC4 83 A3 00 2C */ lwz r29, 0x2c(r3) -/* 802D8EE8 002D5AC8 80 7D 0E 28 */ lwz r3, 0xe28(r29) -/* 802D8EEC 002D5ACC 80 9D 00 C4 */ lwz r4, 0xc4(r29) -/* 802D8EF0 002D5AD0 28 03 00 00 */ cmplwi r3, 0 -/* 802D8EF4 002D5AD4 83 C4 00 04 */ lwz r30, 4(r4) -/* 802D8EF8 002D5AD8 41 82 00 18 */ beq .L_802D8F10 -/* 802D8EFC 002D5ADC 4B FB 69 E9 */ bl it_8028F8E4 -/* 802D8F00 002D5AE0 80 7D 0E 28 */ lwz r3, 0xe28(r29) -/* 802D8F04 002D5AE4 4B FB 6D 59 */ bl it_8028FC5C -/* 802D8F08 002D5AE8 38 00 00 00 */ li r0, 0 -/* 802D8F0C 002D5AEC 90 1D 0E 28 */ stw r0, 0xe28(r29) -.L_802D8F10: -/* 802D8F10 002D5AF0 88 1D 0D CC */ lbz r0, 0xdcc(r29) -/* 802D8F14 002D5AF4 38 60 00 01 */ li r3, 1 -/* 802D8F18 002D5AF8 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b -/* 802D8F1C 002D5AFC 98 1D 0D CC */ stb r0, 0xdcc(r29) -/* 802D8F20 002D5B00 3C 00 43 30 */ lis r0, 0x4330 -/* 802D8F24 002D5B04 80 7E 00 00 */ lwz r3, 0(r30) -/* 802D8F28 002D5B08 C8 22 DC 08 */ lfd f1, it_804DD5E8@sda21(r2) -/* 802D8F2C 002D5B0C 80 63 00 00 */ lwz r3, 0(r3) -/* 802D8F30 002D5B10 C0 42 DC 10 */ lfs f2, it_804DD5F0@sda21(r2) -/* 802D8F34 002D5B14 6C 63 80 00 */ xoris r3, r3, 0x8000 -/* 802D8F38 002D5B18 80 9D 0C 9C */ lwz r4, 0xc9c(r29) -/* 802D8F3C 002D5B1C 90 61 00 3C */ stw r3, 0x3c(r1) -/* 802D8F40 002D5B20 90 01 00 38 */ stw r0, 0x38(r1) -/* 802D8F44 002D5B24 C8 01 00 38 */ lfd f0, 0x38(r1) -/* 802D8F48 002D5B28 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802D8F4C 002D5B2C EC 02 00 32 */ fmuls f0, f2, f0 -/* 802D8F50 002D5B30 FC 00 00 1E */ fctiwz f0, f0 -/* 802D8F54 002D5B34 D8 01 00 30 */ stfd f0, 0x30(r1) -/* 802D8F58 002D5B38 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D8F5C 002D5B3C 7C 04 00 00 */ cmpw r4, r0 -/* 802D8F60 002D5B40 40 81 01 A8 */ ble .L_802D9108 -/* 802D8F64 002D5B44 7F E3 FB 78 */ mr r3, r31 -/* 802D8F68 002D5B48 4B FA 3E DD */ bl it_8027CE44 -/* 802D8F6C 002D5B4C 83 BF 00 2C */ lwz r29, 0x2c(r31) -/* 802D8F70 002D5B50 80 7D 00 C4 */ lwz r3, 0xc4(r29) -/* 802D8F74 002D5B54 83 C3 00 04 */ lwz r30, 4(r3) -/* 802D8F78 002D5B58 48 0A 75 B1 */ bl HSD_Randf -/* 802D8F7C 002D5B5C C0 02 DB F4 */ lfs f0, it_804DD5D4@sda21(r2) -/* 802D8F80 002D5B60 C0 42 DB DC */ lfs f2, it_804DD5BC@sda21(r2) -/* 802D8F84 002D5B64 EC 61 00 28 */ fsubs f3, f1, f0 -/* 802D8F88 002D5B68 C0 3E 00 14 */ lfs f1, 0x14(r30) -/* 802D8F8C 002D5B6C C0 1D 00 40 */ lfs f0, 0x40(r29) -/* 802D8F90 002D5B70 EC 62 00 F2 */ fmuls f3, f2, f3 -/* 802D8F94 002D5B74 EC 01 00 FA */ fmadds f0, f1, f3, f0 -/* 802D8F98 002D5B78 D0 1D 00 40 */ stfs f0, 0x40(r29) -/* 802D8F9C 002D5B7C D0 5D 00 44 */ stfs f2, 0x44(r29) -/* 802D8FA0 002D5B80 C0 02 DB F8 */ lfs f0, it_804DD5D8@sda21(r2) -/* 802D8FA4 002D5B84 D0 1D 00 48 */ stfs f0, 0x48(r29) -/* 802D8FA8 002D5B88 C0 22 DB E4 */ lfs f1, it_804DD5C4@sda21(r2) -/* 802D8FAC 002D5B8C C0 1D 00 2C */ lfs f0, 0x2c(r29) -/* 802D8FB0 002D5B90 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 802D8FB4 002D5B94 40 82 00 A0 */ bne .L_802D9054 -/* 802D8FB8 002D5B98 83 BF 00 28 */ lwz r29, 0x28(r31) -/* 802D8FBC 002D5B9C 28 1D 00 00 */ cmplwi r29, 0 -/* 802D8FC0 002D5BA0 40 82 00 14 */ bne .L_802D8FD4 -/* 802D8FC4 002D5BA4 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8FC8 002D5BA8 38 80 02 94 */ li r4, 0x294 -/* 802D8FCC 002D5BAC 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D8FD0 002D5BB0 48 0A F2 51 */ bl __assert -.L_802D8FD4: -/* 802D8FD4 002D5BB4 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D8FD8 002D5BB8 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D8FDC 002D5BBC 41 82 00 18 */ beq .L_802D8FF4 -/* 802D8FE0 002D5BC0 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D8FE4 002D5BC4 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D8FE8 002D5BC8 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D8FEC 002D5BCC 38 80 02 95 */ li r4, 0x295 -/* 802D8FF0 002D5BD0 48 0A F2 31 */ bl __assert -.L_802D8FF4: -/* 802D8FF4 002D5BD4 C0 02 DB E8 */ lfs f0, it_804DD5C8@sda21(r2) -/* 802D8FF8 002D5BD8 D0 1D 00 20 */ stfs f0, 0x20(r29) -/* 802D8FFC 002D5BDC 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D9000 002D5BE0 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D9004 002D5BE4 40 82 00 E8 */ bne .L_802D90EC -/* 802D9008 002D5BE8 28 1D 00 00 */ cmplwi r29, 0 -/* 802D900C 002D5BEC 41 82 00 E0 */ beq .L_802D90EC -/* 802D9010 002D5BF0 40 82 00 14 */ bne .L_802D9024 -/* 802D9014 002D5BF4 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9018 002D5BF8 38 80 02 34 */ li r4, 0x234 -/* 802D901C 002D5BFC 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D9020 002D5C00 48 0A F2 01 */ bl __assert -.L_802D9024: -/* 802D9024 002D5C04 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 802D9028 002D5C08 38 60 00 00 */ li r3, 0 -/* 802D902C 002D5C0C 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D9030 002D5C10 40 82 00 10 */ bne .L_802D9040 -/* 802D9034 002D5C14 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D9038 002D5C18 41 82 00 08 */ beq .L_802D9040 -/* 802D903C 002D5C1C 38 60 00 01 */ li r3, 1 -.L_802D9040: -/* 802D9040 002D5C20 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9044 002D5C24 40 82 00 A8 */ bne .L_802D90EC -/* 802D9048 002D5C28 7F A3 EB 78 */ mr r3, r29 -/* 802D904C 002D5C2C 48 09 A2 9D */ bl HSD_JObjSetMtxDirtySub -/* 802D9050 002D5C30 48 00 00 9C */ b .L_802D90EC -.L_802D9054: -/* 802D9054 002D5C34 83 BF 00 28 */ lwz r29, 0x28(r31) -/* 802D9058 002D5C38 28 1D 00 00 */ cmplwi r29, 0 -/* 802D905C 002D5C3C 40 82 00 14 */ bne .L_802D9070 -/* 802D9060 002D5C40 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9064 002D5C44 38 80 02 94 */ li r4, 0x294 -/* 802D9068 002D5C48 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D906C 002D5C4C 48 0A F1 B5 */ bl __assert -.L_802D9070: -/* 802D9070 002D5C50 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D9074 002D5C54 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D9078 002D5C58 41 82 00 18 */ beq .L_802D9090 -/* 802D907C 002D5C5C 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D9080 002D5C60 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D9084 002D5C64 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9088 002D5C68 38 80 02 95 */ li r4, 0x295 -/* 802D908C 002D5C6C 48 0A F1 95 */ bl __assert -.L_802D9090: -/* 802D9090 002D5C70 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D9094 002D5C74 D0 1D 00 20 */ stfs f0, 0x20(r29) -/* 802D9098 002D5C78 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802D909C 002D5C7C 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D90A0 002D5C80 40 82 00 4C */ bne .L_802D90EC -/* 802D90A4 002D5C84 28 1D 00 00 */ cmplwi r29, 0 -/* 802D90A8 002D5C88 41 82 00 44 */ beq .L_802D90EC -/* 802D90AC 002D5C8C 40 82 00 14 */ bne .L_802D90C0 -/* 802D90B0 002D5C90 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D90B4 002D5C94 38 80 02 34 */ li r4, 0x234 -/* 802D90B8 002D5C98 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D90BC 002D5C9C 48 0A F1 65 */ bl __assert -.L_802D90C0: -/* 802D90C0 002D5CA0 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 802D90C4 002D5CA4 38 60 00 00 */ li r3, 0 -/* 802D90C8 002D5CA8 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D90CC 002D5CAC 40 82 00 10 */ bne .L_802D90DC -/* 802D90D0 002D5CB0 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D90D4 002D5CB4 41 82 00 08 */ beq .L_802D90DC -/* 802D90D8 002D5CB8 38 60 00 01 */ li r3, 1 -.L_802D90DC: -/* 802D90DC 002D5CBC 2C 03 00 00 */ cmpwi r3, 0 -/* 802D90E0 002D5CC0 40 82 00 0C */ bne .L_802D90EC -/* 802D90E4 002D5CC4 7F A3 EB 78 */ mr r3, r29 -/* 802D90E8 002D5CC8 48 09 A2 01 */ bl HSD_JObjSetMtxDirtySub -.L_802D90EC: -/* 802D90EC 002D5CCC 7F E3 FB 78 */ mr r3, r31 -/* 802D90F0 002D5CD0 48 00 07 BD */ bl it_802D98AC -/* 802D90F4 002D5CD4 38 7F 00 00 */ addi r3, r31, 0 -/* 802D90F8 002D5CD8 38 80 00 02 */ li r4, 2 -/* 802D90FC 002D5CDC 38 A0 00 02 */ li r5, 2 -/* 802D9100 002D5CE0 4B F8 FD 5D */ bl Item_80268E5C -/* 802D9104 002D5CE4 48 00 00 44 */ b .L_802D9148 -.L_802D9108: -/* 802D9108 002D5CE8 83 BF 00 2C */ lwz r29, 0x2c(r31) -/* 802D910C 002D5CEC 38 7F 00 00 */ addi r3, r31, 0 -/* 802D9110 002D5CF0 38 9D 00 40 */ addi r4, r29, 0x40 -/* 802D9114 002D5CF4 4B FA 26 85 */ bl it_8027B798 -/* 802D9118 002D5CF8 2C 03 00 00 */ cmpwi r3, 0 -/* 802D911C 002D5CFC 41 82 00 0C */ beq .L_802D9128 -/* 802D9120 002D5D00 7F A3 EB 78 */ mr r3, r29 -/* 802D9124 002D5D04 4B F9 D1 99 */ bl it_802762BC -.L_802D9128: -/* 802D9128 002D5D08 38 00 00 0C */ li r0, 0xc -/* 802D912C 002D5D0C 90 1D 0D F8 */ stw r0, 0xdf8(r29) -/* 802D9130 002D5D10 7F E3 FB 78 */ mr r3, r31 -/* 802D9134 002D5D14 48 00 07 79 */ bl it_802D98AC -/* 802D9138 002D5D18 38 7F 00 00 */ addi r3, r31, 0 -/* 802D913C 002D5D1C 38 80 00 03 */ li r4, 3 -/* 802D9140 002D5D20 38 A0 00 02 */ li r5, 2 -/* 802D9144 002D5D24 4B F8 FD 19 */ bl Item_80268E5C -.L_802D9148: -/* 802D9148 002D5D28 80 01 00 54 */ lwz r0, 0x54(r1) -/* 802D914C 002D5D2C 38 60 00 00 */ li r3, 0 -/* 802D9150 002D5D30 83 E1 00 4C */ lwz r31, 0x4c(r1) -/* 802D9154 002D5D34 83 C1 00 48 */ lwz r30, 0x48(r1) -/* 802D9158 002D5D38 83 A1 00 44 */ lwz r29, 0x44(r1) -/* 802D915C 002D5D3C 38 21 00 50 */ addi r1, r1, 0x50 -/* 802D9160 002D5D40 7C 08 03 A6 */ mtlr r0 -/* 802D9164 002D5D44 4E 80 00 20 */ blr - -.global it_802D9168 -it_802D9168: -/* 802D9168 002D5D48 7C 08 02 A6 */ mflr r0 -/* 802D916C 002D5D4C 90 01 00 04 */ stw r0, 4(r1) -/* 802D9170 002D5D50 38 00 00 00 */ li r0, 0 -/* 802D9174 002D5D54 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 802D9178 002D5D58 93 E1 00 34 */ stw r31, 0x34(r1) -/* 802D917C 002D5D5C 93 C1 00 30 */ stw r30, 0x30(r1) -/* 802D9180 002D5D60 93 A1 00 2C */ stw r29, 0x2c(r1) -/* 802D9184 002D5D64 7C 7D 1B 78 */ mr r29, r3 -/* 802D9188 002D5D68 83 C3 00 2C */ lwz r30, 0x2c(r3) -/* 802D918C 002D5D6C 83 E3 00 28 */ lwz r31, 0x28(r3) -/* 802D9190 002D5D70 38 61 00 14 */ addi r3, r1, 0x14 -/* 802D9194 002D5D74 90 1E 0D F8 */ stw r0, 0xdf8(r30) -/* 802D9198 002D5D78 4B F4 BA 61 */ bl Stage_UnkSetVec3TCam_Offset -/* 802D919C 002D5D7C C0 3E 00 4C */ lfs f1, 0x4c(r30) -/* 802D91A0 002D5D80 C0 01 00 14 */ lfs f0, 0x14(r1) -/* 802D91A4 002D5D84 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802D91A8 002D5D88 40 80 00 40 */ bge .L_802D91E8 -/* 802D91AC 002D5D8C 28 1F 00 00 */ cmplwi r31, 0 -/* 802D91B0 002D5D90 40 82 00 14 */ bne .L_802D91C4 -/* 802D91B4 002D5D94 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D91B8 002D5D98 38 80 02 DA */ li r4, 0x2da -/* 802D91BC 002D5D9C 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D91C0 002D5DA0 48 0A F0 61 */ bl __assert -.L_802D91C4: -/* 802D91C4 002D5DA4 C0 3F 00 20 */ lfs f1, 0x20(r31) -/* 802D91C8 002D5DA8 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D91CC 002D5DAC FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 802D91D0 002D5DB0 40 82 00 0C */ bne .L_802D91DC -/* 802D91D4 002D5DB4 38 00 00 14 */ li r0, 0x14 -/* 802D91D8 002D5DB8 90 1E 0D F8 */ stw r0, 0xdf8(r30) -.L_802D91DC: -/* 802D91DC 002D5DBC C0 02 DB E4 */ lfs f0, it_804DD5C4@sda21(r2) -/* 802D91E0 002D5DC0 D0 1E 00 2C */ stfs f0, 0x2c(r30) -/* 802D91E4 002D5DC4 48 00 00 40 */ b .L_802D9224 -.L_802D91E8: -/* 802D91E8 002D5DC8 40 81 00 3C */ ble .L_802D9224 -/* 802D91EC 002D5DCC 28 1F 00 00 */ cmplwi r31, 0 -/* 802D91F0 002D5DD0 40 82 00 14 */ bne .L_802D9204 -/* 802D91F4 002D5DD4 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D91F8 002D5DD8 38 80 02 DA */ li r4, 0x2da -/* 802D91FC 002D5DDC 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D9200 002D5DE0 48 0A F0 21 */ bl __assert -.L_802D9204: -/* 802D9204 002D5DE4 C0 3F 00 20 */ lfs f1, 0x20(r31) -/* 802D9208 002D5DE8 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D920C 002D5DEC FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 802D9210 002D5DF0 41 82 00 0C */ beq .L_802D921C -/* 802D9214 002D5DF4 38 00 00 14 */ li r0, 0x14 -/* 802D9218 002D5DF8 90 1E 0D F8 */ stw r0, 0xdf8(r30) -.L_802D921C: -/* 802D921C 002D5DFC C0 02 DB D8 */ lfs f0, it_804DD5B8@sda21(r2) -/* 802D9220 002D5E00 D0 1E 00 2C */ stfs f0, 0x2c(r30) -.L_802D9224: -/* 802D9224 002D5E04 7F A3 EB 78 */ mr r3, r29 -/* 802D9228 002D5E08 48 00 06 85 */ bl it_802D98AC -/* 802D922C 002D5E0C 38 7D 00 00 */ addi r3, r29, 0 -/* 802D9230 002D5E10 38 80 00 04 */ li r4, 4 -/* 802D9234 002D5E14 38 A0 00 02 */ li r5, 2 -/* 802D9238 002D5E18 4B F8 FC 25 */ bl Item_80268E5C -/* 802D923C 002D5E1C 80 7E 0B BC */ lwz r3, 0xbbc(r30) -/* 802D9240 002D5E20 7F C4 F3 78 */ mr r4, r30 -/* 802D9244 002D5E24 80 63 00 04 */ lwz r3, 4(r3) -/* 802D9248 002D5E28 48 00 06 7D */ bl it_802D98C4 -/* 802D924C 002D5E2C 3C 60 80 2E */ lis r3, it_802D96B0@ha -/* 802D9250 002D5E30 38 03 96 B0 */ addi r0, r3, it_802D96B0@l -/* 802D9254 002D5E34 90 1E 0D 20 */ stw r0, 0xd20(r30) -/* 802D9258 002D5E38 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 802D925C 002D5E3C 83 E1 00 34 */ lwz r31, 0x34(r1) -/* 802D9260 002D5E40 83 C1 00 30 */ lwz r30, 0x30(r1) -/* 802D9264 002D5E44 83 A1 00 2C */ lwz r29, 0x2c(r1) -/* 802D9268 002D5E48 38 21 00 38 */ addi r1, r1, 0x38 -/* 802D926C 002D5E4C 7C 08 03 A6 */ mtlr r0 -/* 802D9270 002D5E50 4E 80 00 20 */ blr - -.global it_802D9274 -it_802D9274: -/* 802D9274 002D5E54 7C 08 02 A6 */ mflr r0 -/* 802D9278 002D5E58 90 01 00 04 */ stw r0, 4(r1) -/* 802D927C 002D5E5C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D9280 002D5E60 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D9284 002D5E64 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D9288 002D5E68 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 802D928C 002D5E6C 93 81 00 18 */ stw r28, 0x18(r1) -/* 802D9290 002D5E70 7C 7C 1B 78 */ mr r28, r3 -/* 802D9294 002D5E74 83 A3 00 2C */ lwz r29, 0x2c(r3) -/* 802D9298 002D5E78 83 C3 00 28 */ lwz r30, 0x28(r3) -/* 802D929C 002D5E7C 80 7D 0B BC */ lwz r3, 0xbbc(r29) -/* 802D92A0 002D5E80 7F A4 EB 78 */ mr r4, r29 -/* 802D92A4 002D5E84 80 63 00 04 */ lwz r3, 4(r3) -/* 802D92A8 002D5E88 48 00 06 1D */ bl it_802D98C4 -/* 802D92AC 002D5E8C 7F 83 E3 78 */ mr r3, r28 -/* 802D92B0 002D5E90 4B F9 99 BD */ bl it_80272C6C -/* 802D92B4 002D5E94 2C 03 00 00 */ cmpwi r3, 0 -/* 802D92B8 002D5E98 40 82 00 3C */ bne .L_802D92F4 -/* 802D92BC 002D5E9C 83 FC 00 2C */ lwz r31, 0x2c(r28) -/* 802D92C0 002D5EA0 38 00 00 00 */ li r0, 0 -/* 802D92C4 002D5EA4 38 7C 00 00 */ addi r3, r28, 0 -/* 802D92C8 002D5EA8 90 1F 0D F8 */ stw r0, 0xdf8(r31) -/* 802D92CC 002D5EAC 38 80 00 04 */ li r4, 4 -/* 802D92D0 002D5EB0 38 A0 00 02 */ li r5, 2 -/* 802D92D4 002D5EB4 4B F8 FB 89 */ bl Item_80268E5C -/* 802D92D8 002D5EB8 80 7F 0B BC */ lwz r3, 0xbbc(r31) -/* 802D92DC 002D5EBC 7F E4 FB 78 */ mr r4, r31 -/* 802D92E0 002D5EC0 80 63 00 04 */ lwz r3, 4(r3) -/* 802D92E4 002D5EC4 48 00 05 E1 */ bl it_802D98C4 -/* 802D92E8 002D5EC8 3C 60 80 2E */ lis r3, it_802D96B0@ha -/* 802D92EC 002D5ECC 38 03 96 B0 */ addi r0, r3, it_802D96B0@l -/* 802D92F0 002D5ED0 90 1F 0D 20 */ stw r0, 0xd20(r31) -.L_802D92F4: -/* 802D92F4 002D5ED4 28 1E 00 00 */ cmplwi r30, 0 -/* 802D92F8 002D5ED8 40 82 00 0C */ bne .L_802D9304 -/* 802D92FC 002D5EDC 3B E0 00 00 */ li r31, 0 -/* 802D9300 002D5EE0 48 00 00 08 */ b .L_802D9308 -.L_802D9304: -/* 802D9304 002D5EE4 83 FE 00 10 */ lwz r31, 0x10(r30) -.L_802D9308: -/* 802D9308 002D5EE8 80 1D 0E 00 */ lwz r0, 0xe00(r29) -/* 802D930C 002D5EEC 2C 00 03 C0 */ cmpwi r0, 0x3c0 -/* 802D9310 002D5EF0 40 81 00 10 */ ble .L_802D9320 -/* 802D9314 002D5EF4 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 802D9318 002D5EF8 3C 80 10 00 */ lis r4, 0x1000 -/* 802D931C 002D5EFC 48 08 AD 01 */ bl HSD_AObjSetFlags -.L_802D9320: -/* 802D9320 002D5F00 80 1D 0E 00 */ lwz r0, 0xe00(r29) -/* 802D9324 002D5F04 2C 00 03 C0 */ cmpwi r0, 0x3c0 -/* 802D9328 002D5F08 40 81 00 14 */ ble .L_802D933C -/* 802D932C 002D5F0C 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 802D9330 002D5F10 3C 80 10 00 */ lis r4, 0x1000 -/* 802D9334 002D5F14 48 08 AC E9 */ bl HSD_AObjSetFlags -/* 802D9338 002D5F18 48 00 00 10 */ b .L_802D9348 -.L_802D933C: -/* 802D933C 002D5F1C 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 802D9340 002D5F20 C0 22 DB DC */ lfs f1, it_804DD5BC@sda21(r2) -/* 802D9344 002D5F24 48 08 BF C9 */ bl HSD_AObjSetRate -.L_802D9348: -/* 802D9348 002D5F28 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 802D934C 002D5F2C C0 22 DB DC */ lfs f1, it_804DD5BC@sda21(r2) -/* 802D9350 002D5F30 80 63 00 08 */ lwz r3, 8(r3) -/* 802D9354 002D5F34 80 63 00 08 */ lwz r3, 8(r3) -/* 802D9358 002D5F38 80 63 00 64 */ lwz r3, 0x64(r3) -/* 802D935C 002D5F3C 48 08 BF B1 */ bl HSD_AObjSetRate -/* 802D9360 002D5F40 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D9364 002D5F44 38 60 00 00 */ li r3, 0 -/* 802D9368 002D5F48 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D936C 002D5F4C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D9370 002D5F50 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 802D9374 002D5F54 83 81 00 18 */ lwz r28, 0x18(r1) -/* 802D9378 002D5F58 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D937C 002D5F5C 7C 08 03 A6 */ mtlr r0 -/* 802D9380 002D5F60 4E 80 00 20 */ blr - -.global it_802D9384 -it_802D9384: -/* 802D9384 002D5F64 7C 08 02 A6 */ mflr r0 -/* 802D9388 002D5F68 90 01 00 04 */ stw r0, 4(r1) -/* 802D938C 002D5F6C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D9390 002D5F70 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D9394 002D5F74 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D9398 002D5F78 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 802D939C 002D5F7C C0 42 DB F8 */ lfs f2, it_804DD5D8@sda21(r2) -/* 802D93A0 002D5F80 80 9F 00 C4 */ lwz r4, 0xc4(r31) -/* 802D93A4 002D5F84 88 1F 0D F5 */ lbz r0, 0xdf5(r31) -/* 802D93A8 002D5F88 80 84 00 04 */ lwz r4, 4(r4) -/* 802D93AC 002D5F8C 7C 00 07 74 */ extsb r0, r0 -/* 802D93B0 002D5F90 C0 3F 00 2C */ lfs f1, 0x2c(r31) -/* 802D93B4 002D5F94 54 00 10 3A */ slwi r0, r0, 2 -/* 802D93B8 002D5F98 7C 84 02 14 */ add r4, r4, r0 -/* 802D93BC 002D5F9C C0 04 00 04 */ lfs f0, 4(r4) -/* 802D93C0 002D5FA0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 802D93C4 002D5FA4 EC 02 00 32 */ fmuls f0, f2, f0 -/* 802D93C8 002D5FA8 D0 1F 00 40 */ stfs f0, 0x40(r31) -/* 802D93CC 002D5FAC 80 1F 0E 00 */ lwz r0, 0xe00(r31) -/* 802D93D0 002D5FB0 2C 00 03 C0 */ cmpwi r0, 0x3c0 -/* 802D93D4 002D5FB4 40 81 00 28 */ ble .L_802D93FC -/* 802D93D8 002D5FB8 C0 5F 00 40 */ lfs f2, 0x40(r31) -/* 802D93DC 002D5FBC C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D93E0 002D5FC0 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 802D93E4 002D5FC4 40 80 00 08 */ bge .L_802D93EC -/* 802D93E8 002D5FC8 FC 40 10 50 */ fneg f2, f2 -.L_802D93EC: -/* 802D93EC 002D5FCC C0 22 DB EC */ lfs f1, it_804DD5CC@sda21(r2) -/* 802D93F0 002D5FD0 C0 1F 00 44 */ lfs f0, 0x44(r31) -/* 802D93F4 002D5FD4 EC 01 00 BC */ fnmsubs f0, f1, f2, f0 -/* 802D93F8 002D5FD8 D0 1F 00 44 */ stfs f0, 0x44(r31) -.L_802D93FC: -/* 802D93FC 002D5FDC 80 1F 0D F8 */ lwz r0, 0xdf8(r31) -/* 802D9400 002D5FE0 2C 00 00 00 */ cmpwi r0, 0 -/* 802D9404 002D5FE4 41 82 00 94 */ beq .L_802D9498 -/* 802D9408 002D5FE8 83 C3 00 28 */ lwz r30, 0x28(r3) -/* 802D940C 002D5FEC 28 1E 00 00 */ cmplwi r30, 0 -/* 802D9410 002D5FF0 40 82 00 14 */ bne .L_802D9424 -/* 802D9414 002D5FF4 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9418 002D5FF8 38 80 04 11 */ li r4, 0x411 -/* 802D941C 002D5FFC 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D9420 002D6000 48 0A EE 01 */ bl __assert -.L_802D9424: -/* 802D9424 002D6004 C0 3E 00 20 */ lfs f1, 0x20(r30) -/* 802D9428 002D6008 C0 02 DB F0 */ lfs f0, it_804DD5D0@sda21(r2) -/* 802D942C 002D600C EC 01 00 2A */ fadds f0, f1, f0 -/* 802D9430 002D6010 D0 1E 00 20 */ stfs f0, 0x20(r30) -/* 802D9434 002D6014 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D9438 002D6018 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D943C 002D601C 40 82 00 4C */ bne .L_802D9488 -/* 802D9440 002D6020 28 1E 00 00 */ cmplwi r30, 0 -/* 802D9444 002D6024 41 82 00 44 */ beq .L_802D9488 -/* 802D9448 002D6028 40 82 00 14 */ bne .L_802D945C -/* 802D944C 002D602C 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9450 002D6030 38 80 02 34 */ li r4, 0x234 -/* 802D9454 002D6034 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D9458 002D6038 48 0A ED C9 */ bl __assert -.L_802D945C: -/* 802D945C 002D603C 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802D9460 002D6040 38 60 00 00 */ li r3, 0 -/* 802D9464 002D6044 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D9468 002D6048 40 82 00 10 */ bne .L_802D9478 -/* 802D946C 002D604C 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D9470 002D6050 41 82 00 08 */ beq .L_802D9478 -/* 802D9474 002D6054 38 60 00 01 */ li r3, 1 -.L_802D9478: -/* 802D9478 002D6058 2C 03 00 00 */ cmpwi r3, 0 -/* 802D947C 002D605C 40 82 00 0C */ bne .L_802D9488 -/* 802D9480 002D6060 7F C3 F3 78 */ mr r3, r30 -/* 802D9484 002D6064 48 09 9E 65 */ bl HSD_JObjSetMtxDirtySub -.L_802D9488: -/* 802D9488 002D6068 80 7F 0D F8 */ lwz r3, 0xdf8(r31) -/* 802D948C 002D606C 38 03 FF FF */ addi r0, r3, -1 -/* 802D9490 002D6070 90 1F 0D F8 */ stw r0, 0xdf8(r31) -/* 802D9494 002D6074 48 00 01 48 */ b .L_802D95DC -.L_802D9498: -/* 802D9498 002D6078 C0 22 DB E4 */ lfs f1, it_804DD5C4@sda21(r2) -/* 802D949C 002D607C C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 802D94A0 002D6080 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 802D94A4 002D6084 40 82 00 A0 */ bne .L_802D9544 -/* 802D94A8 002D6088 83 C3 00 28 */ lwz r30, 0x28(r3) -/* 802D94AC 002D608C 28 1E 00 00 */ cmplwi r30, 0 -/* 802D94B0 002D6090 40 82 00 14 */ bne .L_802D94C4 -/* 802D94B4 002D6094 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D94B8 002D6098 38 80 02 94 */ li r4, 0x294 -/* 802D94BC 002D609C 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D94C0 002D60A0 48 0A ED 61 */ bl __assert -.L_802D94C4: -/* 802D94C4 002D60A4 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D94C8 002D60A8 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D94CC 002D60AC 41 82 00 18 */ beq .L_802D94E4 -/* 802D94D0 002D60B0 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D94D4 002D60B4 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D94D8 002D60B8 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D94DC 002D60BC 38 80 02 95 */ li r4, 0x295 -/* 802D94E0 002D60C0 48 0A ED 41 */ bl __assert -.L_802D94E4: -/* 802D94E4 002D60C4 C0 02 DB E8 */ lfs f0, it_804DD5C8@sda21(r2) -/* 802D94E8 002D60C8 D0 1E 00 20 */ stfs f0, 0x20(r30) -/* 802D94EC 002D60CC 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D94F0 002D60D0 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D94F4 002D60D4 40 82 00 E8 */ bne .L_802D95DC -/* 802D94F8 002D60D8 28 1E 00 00 */ cmplwi r30, 0 -/* 802D94FC 002D60DC 41 82 00 E0 */ beq .L_802D95DC -/* 802D9500 002D60E0 40 82 00 14 */ bne .L_802D9514 -/* 802D9504 002D60E4 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9508 002D60E8 38 80 02 34 */ li r4, 0x234 -/* 802D950C 002D60EC 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D9510 002D60F0 48 0A ED 11 */ bl __assert -.L_802D9514: -/* 802D9514 002D60F4 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802D9518 002D60F8 38 60 00 00 */ li r3, 0 -/* 802D951C 002D60FC 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D9520 002D6100 40 82 00 10 */ bne .L_802D9530 -/* 802D9524 002D6104 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D9528 002D6108 41 82 00 08 */ beq .L_802D9530 -/* 802D952C 002D610C 38 60 00 01 */ li r3, 1 -.L_802D9530: -/* 802D9530 002D6110 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9534 002D6114 40 82 00 A8 */ bne .L_802D95DC -/* 802D9538 002D6118 7F C3 F3 78 */ mr r3, r30 -/* 802D953C 002D611C 48 09 9D AD */ bl HSD_JObjSetMtxDirtySub -/* 802D9540 002D6120 48 00 00 9C */ b .L_802D95DC -.L_802D9544: -/* 802D9544 002D6124 83 C3 00 28 */ lwz r30, 0x28(r3) -/* 802D9548 002D6128 28 1E 00 00 */ cmplwi r30, 0 -/* 802D954C 002D612C 40 82 00 14 */ bne .L_802D9560 -/* 802D9550 002D6130 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9554 002D6134 38 80 02 94 */ li r4, 0x294 -/* 802D9558 002D6138 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D955C 002D613C 48 0A EC C5 */ bl __assert -.L_802D9560: -/* 802D9560 002D6140 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D9564 002D6144 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 802D9568 002D6148 41 82 00 18 */ beq .L_802D9580 -/* 802D956C 002D614C 3C 60 80 40 */ lis r3, it_803F8440@ha -/* 802D9570 002D6150 38 A3 84 40 */ addi r5, r3, it_803F8440@l -/* 802D9574 002D6154 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D9578 002D6158 38 80 02 95 */ li r4, 0x295 -/* 802D957C 002D615C 48 0A EC A5 */ bl __assert -.L_802D9580: -/* 802D9580 002D6160 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D9584 002D6164 D0 1E 00 20 */ stfs f0, 0x20(r30) -/* 802D9588 002D6168 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D958C 002D616C 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D9590 002D6170 40 82 00 4C */ bne .L_802D95DC -/* 802D9594 002D6174 28 1E 00 00 */ cmplwi r30, 0 -/* 802D9598 002D6178 41 82 00 44 */ beq .L_802D95DC -/* 802D959C 002D617C 40 82 00 14 */ bne .L_802D95B0 -/* 802D95A0 002D6180 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D95A4 002D6184 38 80 02 34 */ li r4, 0x234 -/* 802D95A8 002D6188 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D95AC 002D618C 48 0A EC 75 */ bl __assert -.L_802D95B0: -/* 802D95B0 002D6190 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802D95B4 002D6194 38 60 00 00 */ li r3, 0 -/* 802D95B8 002D6198 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D95BC 002D619C 40 82 00 10 */ bne .L_802D95CC -/* 802D95C0 002D61A0 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D95C4 002D61A4 41 82 00 08 */ beq .L_802D95CC -/* 802D95C8 002D61A8 38 60 00 01 */ li r3, 1 -.L_802D95CC: -/* 802D95CC 002D61AC 2C 03 00 00 */ cmpwi r3, 0 -/* 802D95D0 002D61B0 40 82 00 0C */ bne .L_802D95DC -/* 802D95D4 002D61B4 7F C3 F3 78 */ mr r3, r30 -/* 802D95D8 002D61B8 48 09 9D 11 */ bl HSD_JObjSetMtxDirtySub -.L_802D95DC: -/* 802D95DC 002D61BC 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D95E0 002D61C0 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D95E4 002D61C4 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D95E8 002D61C8 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D95EC 002D61CC 7C 08 03 A6 */ mtlr r0 -/* 802D95F0 002D61D0 4E 80 00 20 */ blr - -.global it_802D95F4 -it_802D95F4: -/* 802D95F4 002D61D4 7C 08 02 A6 */ mflr r0 -/* 802D95F8 002D61D8 90 01 00 04 */ stw r0, 4(r1) -/* 802D95FC 002D61DC 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D9600 002D61E0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D9604 002D61E4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D9608 002D61E8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 802D960C 002D61EC 93 81 00 18 */ stw r28, 0x18(r1) -/* 802D9610 002D61F0 7C 7C 1B 78 */ mr r28, r3 -/* 802D9614 002D61F4 83 C3 00 2C */ lwz r30, 0x2c(r3) -/* 802D9618 002D61F8 80 9E 00 C4 */ lwz r4, 0xc4(r30) -/* 802D961C 002D61FC 83 A4 00 04 */ lwz r29, 4(r4) -/* 802D9620 002D6200 4B F9 44 51 */ bl it_8026DA70 -/* 802D9624 002D6204 80 1E 0D F8 */ lwz r0, 0xdf8(r30) -/* 802D9628 002D6208 3B E3 00 00 */ addi r31, r3, 0 -/* 802D962C 002D620C 2C 00 00 00 */ cmpwi r0, 0 -/* 802D9630 002D6210 40 82 00 4C */ bne .L_802D967C -/* 802D9634 002D6214 7F 83 E3 78 */ mr r3, r28 -/* 802D9638 002D6218 4B F9 CC D1 */ bl it_80276308 -/* 802D963C 002D621C 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9640 002D6220 41 82 00 3C */ beq .L_802D967C -/* 802D9644 002D6224 C0 1E 00 2C */ lfs f0, 0x2c(r30) -/* 802D9648 002D6228 38 00 00 14 */ li r0, 0x14 -/* 802D964C 002D622C FC 00 00 50 */ fneg f0, f0 -/* 802D9650 002D6230 D0 1E 00 2C */ stfs f0, 0x2c(r30) -/* 802D9654 002D6234 88 7E 0D F5 */ lbz r3, 0xdf5(r30) -/* 802D9658 002D6238 C0 3E 00 2C */ lfs f1, 0x2c(r30) -/* 802D965C 002D623C 7C 63 07 74 */ extsb r3, r3 -/* 802D9660 002D6240 54 63 10 3A */ slwi r3, r3, 2 -/* 802D9664 002D6244 7C 7D 1A 14 */ add r3, r29, r3 -/* 802D9668 002D6248 C0 03 00 04 */ lfs f0, 4(r3) -/* 802D966C 002D624C EC 01 00 32 */ fmuls f0, f1, f0 -/* 802D9670 002D6250 D0 1E 00 40 */ stfs f0, 0x40(r30) -/* 802D9674 002D6254 90 1E 0D F8 */ stw r0, 0xdf8(r30) -/* 802D9678 002D6258 48 00 00 14 */ b .L_802D968C -.L_802D967C: -/* 802D967C 002D625C 2C 1F 00 01 */ cmpwi r31, 1 -/* 802D9680 002D6260 40 82 00 0C */ bne .L_802D968C -/* 802D9684 002D6264 7F 83 E3 78 */ mr r3, r28 -/* 802D9688 002D6268 4B FF FA E1 */ bl it_802D9168 -.L_802D968C: -/* 802D968C 002D626C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D9690 002D6270 38 60 00 00 */ li r3, 0 -/* 802D9694 002D6274 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D9698 002D6278 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D969C 002D627C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 802D96A0 002D6280 83 81 00 18 */ lwz r28, 0x18(r1) -/* 802D96A4 002D6284 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D96A8 002D6288 7C 08 03 A6 */ mtlr r0 -/* 802D96AC 002D628C 4E 80 00 20 */ blr - -.global it_802D96B0 -it_802D96B0: -/* 802D96B0 002D6290 7C 08 02 A6 */ mflr r0 -/* 802D96B4 002D6294 90 01 00 04 */ stw r0, 4(r1) -/* 802D96B8 002D6298 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D96BC 002D629C 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 802D96C0 002D62A0 80 05 0E 28 */ lwz r0, 0xe28(r5) -/* 802D96C4 002D62A4 28 00 00 00 */ cmplwi r0, 0 -/* 802D96C8 002D62A8 41 82 00 3C */ beq .L_802D9704 -/* 802D96CC 002D62AC 80 65 00 4C */ lwz r3, 0x4c(r5) -/* 802D96D0 002D62B0 38 81 00 10 */ addi r4, r1, 0x10 -/* 802D96D4 002D62B4 80 05 00 50 */ lwz r0, 0x50(r5) -/* 802D96D8 002D62B8 C0 22 DC 14 */ lfs f1, it_804DD5F4@sda21(r2) -/* 802D96DC 002D62BC 90 61 00 10 */ stw r3, 0x10(r1) -/* 802D96E0 002D62C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D96E4 002D62C4 80 05 00 54 */ lwz r0, 0x54(r5) -/* 802D96E8 002D62C8 90 01 00 18 */ stw r0, 0x18(r1) -/* 802D96EC 002D62CC C0 05 00 2C */ lfs f0, 0x2c(r5) -/* 802D96F0 002D62D0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 802D96F4 002D62D4 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 802D96F8 002D62D8 80 65 0E 28 */ lwz r3, 0xe28(r5) -/* 802D96FC 002D62DC C0 25 00 2C */ lfs f1, 0x2c(r5) -/* 802D9700 002D62E0 4B FB 62 D9 */ bl it_8028F9D8 -.L_802D9704: -/* 802D9704 002D62E4 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D9708 002D62E8 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D970C 002D62EC 7C 08 03 A6 */ mtlr r0 -/* 802D9710 002D62F0 4E 80 00 20 */ blr - -.global it_802D9714 -it_802D9714: -/* 802D9714 002D62F4 7C 08 02 A6 */ mflr r0 -/* 802D9718 002D62F8 90 01 00 04 */ stw r0, 4(r1) -/* 802D971C 002D62FC 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 802D9720 002D6300 93 E1 00 24 */ stw r31, 0x24(r1) -/* 802D9724 002D6304 93 C1 00 20 */ stw r30, 0x20(r1) -/* 802D9728 002D6308 7C 7E 1B 78 */ mr r30, r3 -/* 802D972C 002D630C 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 802D9730 002D6310 88 1F 0D F6 */ lbz r0, 0xdf6(r31) -/* 802D9734 002D6314 7C 00 07 75 */ extsb. r0, r0 -/* 802D9738 002D6318 40 82 00 40 */ bne .L_802D9778 -/* 802D973C 002D631C 4B F4 B4 15 */ bl Stage_GetBlastZoneLeftOffset -/* 802D9740 002D6320 C0 42 DC 18 */ lfs f2, it_804DD5F8@sda21(r2) -/* 802D9744 002D6324 C0 1F 00 4C */ lfs f0, 0x4c(r31) -/* 802D9748 002D6328 EC 22 08 2A */ fadds f1, f2, f1 -/* 802D974C 002D632C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802D9750 002D6330 40 81 01 44 */ ble .L_802D9894 -/* 802D9754 002D6334 4B F4 B3 E5 */ bl Stage_GetBlastZoneRightOffset -/* 802D9758 002D6338 C0 42 DC 18 */ lfs f2, it_804DD5F8@sda21(r2) -/* 802D975C 002D633C C0 1F 00 4C */ lfs f0, 0x4c(r31) -/* 802D9760 002D6340 EC 21 10 28 */ fsubs f1, f1, f2 -/* 802D9764 002D6344 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802D9768 002D6348 40 80 01 2C */ bge .L_802D9894 -/* 802D976C 002D634C 38 00 00 01 */ li r0, 1 -/* 802D9770 002D6350 98 1F 0D F6 */ stb r0, 0xdf6(r31) -/* 802D9774 002D6354 48 00 01 20 */ b .L_802D9894 -.L_802D9778: -/* 802D9778 002D6358 4B F4 B3 C1 */ bl Stage_GetBlastZoneRightOffset -/* 802D977C 002D635C C0 42 DC 18 */ lfs f2, it_804DD5F8@sda21(r2) -/* 802D9780 002D6360 C0 1F 00 4C */ lfs f0, 0x4c(r31) -/* 802D9784 002D6364 EC 22 08 2A */ fadds f1, f2, f1 -/* 802D9788 002D6368 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802D978C 002D636C 40 81 00 34 */ ble .L_802D97C0 -/* 802D9790 002D6370 83 FE 00 2C */ lwz r31, 0x2c(r30) -/* 802D9794 002D6374 38 60 00 01 */ li r3, 1 -/* 802D9798 002D6378 88 1F 0D CC */ lbz r0, 0xdcc(r31) -/* 802D979C 002D637C 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b -/* 802D97A0 002D6380 98 1F 0D CC */ stb r0, 0xdcc(r31) -/* 802D97A4 002D6384 80 7F 0E 28 */ lwz r3, 0xe28(r31) -/* 802D97A8 002D6388 28 03 00 00 */ cmplwi r3, 0 -/* 802D97AC 002D638C 41 82 00 E8 */ beq .L_802D9894 -/* 802D97B0 002D6390 4B FB 62 09 */ bl it_8028F9B8 -/* 802D97B4 002D6394 38 00 00 00 */ li r0, 0 -/* 802D97B8 002D6398 90 1F 0E 28 */ stw r0, 0xe28(r31) -/* 802D97BC 002D639C 48 00 00 D8 */ b .L_802D9894 -.L_802D97C0: -/* 802D97C0 002D63A0 4B F4 B3 91 */ bl Stage_GetBlastZoneLeftOffset -/* 802D97C4 002D63A4 C0 42 DC 18 */ lfs f2, it_804DD5F8@sda21(r2) -/* 802D97C8 002D63A8 C0 1F 00 4C */ lfs f0, 0x4c(r31) -/* 802D97CC 002D63AC EC 21 10 28 */ fsubs f1, f1, f2 -/* 802D97D0 002D63B0 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802D97D4 002D63B4 40 80 00 34 */ bge .L_802D9808 -/* 802D97D8 002D63B8 83 FE 00 2C */ lwz r31, 0x2c(r30) -/* 802D97DC 002D63BC 38 60 00 01 */ li r3, 1 -/* 802D97E0 002D63C0 88 1F 0D CC */ lbz r0, 0xdcc(r31) -/* 802D97E4 002D63C4 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b -/* 802D97E8 002D63C8 98 1F 0D CC */ stb r0, 0xdcc(r31) -/* 802D97EC 002D63CC 80 7F 0E 28 */ lwz r3, 0xe28(r31) -/* 802D97F0 002D63D0 28 03 00 00 */ cmplwi r3, 0 -/* 802D97F4 002D63D4 41 82 00 A0 */ beq .L_802D9894 -/* 802D97F8 002D63D8 4B FB 61 C1 */ bl it_8028F9B8 -/* 802D97FC 002D63DC 38 00 00 00 */ li r0, 0 -/* 802D9800 002D63E0 90 1F 0E 28 */ stw r0, 0xe28(r31) -/* 802D9804 002D63E4 48 00 00 90 */ b .L_802D9894 -.L_802D9808: -/* 802D9808 002D63E8 4B F4 B3 61 */ bl Stage_GetBlastZoneTopOffset -/* 802D980C 002D63EC C0 42 DC 18 */ lfs f2, it_804DD5F8@sda21(r2) -/* 802D9810 002D63F0 C0 1F 00 50 */ lfs f0, 0x50(r31) -/* 802D9814 002D63F4 EC 22 08 2A */ fadds f1, f2, f1 -/* 802D9818 002D63F8 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802D981C 002D63FC 40 81 00 34 */ ble .L_802D9850 -/* 802D9820 002D6400 83 FE 00 2C */ lwz r31, 0x2c(r30) -/* 802D9824 002D6404 38 60 00 01 */ li r3, 1 -/* 802D9828 002D6408 88 1F 0D CC */ lbz r0, 0xdcc(r31) -/* 802D982C 002D640C 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b -/* 802D9830 002D6410 98 1F 0D CC */ stb r0, 0xdcc(r31) -/* 802D9834 002D6414 80 7F 0E 28 */ lwz r3, 0xe28(r31) -/* 802D9838 002D6418 28 03 00 00 */ cmplwi r3, 0 -/* 802D983C 002D641C 41 82 00 58 */ beq .L_802D9894 -/* 802D9840 002D6420 4B FB 61 79 */ bl it_8028F9B8 -/* 802D9844 002D6424 38 00 00 00 */ li r0, 0 -/* 802D9848 002D6428 90 1F 0E 28 */ stw r0, 0xe28(r31) -/* 802D984C 002D642C 48 00 00 48 */ b .L_802D9894 -.L_802D9850: -/* 802D9850 002D6430 4B F4 B3 31 */ bl Stage_GetBlastZoneBottomOffset -/* 802D9854 002D6434 C0 42 DC 18 */ lfs f2, it_804DD5F8@sda21(r2) -/* 802D9858 002D6438 C0 1F 00 50 */ lfs f0, 0x50(r31) -/* 802D985C 002D643C EC 21 10 28 */ fsubs f1, f1, f2 -/* 802D9860 002D6440 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802D9864 002D6444 40 80 00 30 */ bge .L_802D9894 -/* 802D9868 002D6448 83 FE 00 2C */ lwz r31, 0x2c(r30) -/* 802D986C 002D644C 38 60 00 01 */ li r3, 1 -/* 802D9870 002D6450 88 1F 0D CC */ lbz r0, 0xdcc(r31) -/* 802D9874 002D6454 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b -/* 802D9878 002D6458 98 1F 0D CC */ stb r0, 0xdcc(r31) -/* 802D987C 002D645C 80 7F 0E 28 */ lwz r3, 0xe28(r31) -/* 802D9880 002D6460 28 03 00 00 */ cmplwi r3, 0 -/* 802D9884 002D6464 41 82 00 10 */ beq .L_802D9894 -/* 802D9888 002D6468 4B FB 61 31 */ bl it_8028F9B8 -/* 802D988C 002D646C 38 00 00 00 */ li r0, 0 -/* 802D9890 002D6470 90 1F 0E 28 */ stw r0, 0xe28(r31) -.L_802D9894: -/* 802D9894 002D6474 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 802D9898 002D6478 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802D989C 002D647C 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802D98A0 002D6480 38 21 00 28 */ addi r1, r1, 0x28 -/* 802D98A4 002D6484 7C 08 03 A6 */ mtlr r0 -/* 802D98A8 002D6488 4E 80 00 20 */ blr - -.global it_802D98AC -it_802D98AC: -/* 802D98AC 002D648C 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 802D98B0 002D6490 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D98B4 002D6494 D0 03 0E 10 */ stfs f0, 0xe10(r3) -/* 802D98B8 002D6498 D0 03 0E 14 */ stfs f0, 0xe14(r3) -/* 802D98BC 002D649C D0 03 0E 18 */ stfs f0, 0xe18(r3) -/* 802D98C0 002D64A0 4E 80 00 20 */ blr - -.global it_802D98C4 -it_802D98C4: -/* 802D98C4 002D64A4 7C 08 02 A6 */ mflr r0 -/* 802D98C8 002D64A8 90 01 00 04 */ stw r0, 4(r1) -/* 802D98CC 002D64AC 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D98D0 002D64B0 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 802D98D4 002D64B4 3B E4 00 00 */ addi r31, r4, 0 -/* 802D98D8 002D64B8 93 C1 00 28 */ stw r30, 0x28(r1) -/* 802D98DC 002D64BC 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D98E0 002D64C0 41 82 01 14 */ beq .L_802D99F4 -/* 802D98E4 002D64C4 C0 02 DB E0 */ lfs f0, it_804DD5C0@sda21(r2) -/* 802D98E8 002D64C8 D0 01 00 24 */ stfs f0, 0x24(r1) -/* 802D98EC 002D64CC D0 01 00 20 */ stfs f0, 0x20(r1) -/* 802D98F0 002D64D0 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 802D98F4 002D64D4 40 82 00 14 */ bne .L_802D9908 -/* 802D98F8 002D64D8 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D98FC 002D64DC 38 80 03 D3 */ li r4, 0x3d3 -/* 802D9900 002D64E0 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D9904 002D64E4 48 0A E9 1D */ bl __assert -.L_802D9908: -/* 802D9908 002D64E8 80 7E 00 38 */ lwz r3, 0x38(r30) -/* 802D990C 002D64EC 28 1E 00 00 */ cmplwi r30, 0 -/* 802D9910 002D64F0 80 1E 00 3C */ lwz r0, 0x3c(r30) -/* 802D9914 002D64F4 90 61 00 10 */ stw r3, 0x10(r1) -/* 802D9918 002D64F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D991C 002D64FC 80 1E 00 40 */ lwz r0, 0x40(r30) -/* 802D9920 002D6500 90 01 00 18 */ stw r0, 0x18(r1) -/* 802D9924 002D6504 C0 21 00 18 */ lfs f1, 0x18(r1) -/* 802D9928 002D6508 C0 1F 0E 18 */ lfs f0, 0xe18(r31) -/* 802D992C 002D650C C0 5F 00 2C */ lfs f2, 0x2c(r31) -/* 802D9930 002D6510 EC 01 00 28 */ fsubs f0, f1, f0 -/* 802D9934 002D6514 EC 02 00 32 */ fmuls f0, f2, f0 -/* 802D9938 002D6518 D0 1F 00 40 */ stfs f0, 0x40(r31) -/* 802D993C 002D651C C0 21 00 14 */ lfs f1, 0x14(r1) -/* 802D9940 002D6520 C0 1F 0E 14 */ lfs f0, 0xe14(r31) -/* 802D9944 002D6524 EC 01 00 28 */ fsubs f0, f1, f0 -/* 802D9948 002D6528 D0 1F 00 44 */ stfs f0, 0x44(r31) -/* 802D994C 002D652C C0 21 00 10 */ lfs f1, 0x10(r1) -/* 802D9950 002D6530 C0 1F 0E 10 */ lfs f0, 0xe10(r31) -/* 802D9954 002D6534 EC 01 00 28 */ fsubs f0, f1, f0 -/* 802D9958 002D6538 D0 1F 00 48 */ stfs f0, 0x48(r31) -/* 802D995C 002D653C 80 61 00 10 */ lwz r3, 0x10(r1) -/* 802D9960 002D6540 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D9964 002D6544 90 7F 0E 10 */ stw r3, 0xe10(r31) -/* 802D9968 002D6548 90 1F 0E 14 */ stw r0, 0xe14(r31) -/* 802D996C 002D654C 80 01 00 18 */ lwz r0, 0x18(r1) -/* 802D9970 002D6550 90 1F 0E 18 */ stw r0, 0xe18(r31) -/* 802D9974 002D6554 40 82 00 14 */ bne .L_802D9988 -/* 802D9978 002D6558 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D997C 002D655C 38 80 03 94 */ li r4, 0x394 -/* 802D9980 002D6560 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D9984 002D6564 48 0A E8 9D */ bl __assert -.L_802D9988: -/* 802D9988 002D6568 80 61 00 1C */ lwz r3, 0x1c(r1) -/* 802D998C 002D656C 80 01 00 20 */ lwz r0, 0x20(r1) -/* 802D9990 002D6570 90 7E 00 38 */ stw r3, 0x38(r30) -/* 802D9994 002D6574 90 1E 00 3C */ stw r0, 0x3c(r30) -/* 802D9998 002D6578 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D999C 002D657C 90 1E 00 40 */ stw r0, 0x40(r30) -/* 802D99A0 002D6580 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D99A4 002D6584 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802D99A8 002D6588 40 82 00 4C */ bne .L_802D99F4 -/* 802D99AC 002D658C 28 1E 00 00 */ cmplwi r30, 0 -/* 802D99B0 002D6590 41 82 00 44 */ beq .L_802D99F4 -/* 802D99B4 002D6594 40 82 00 14 */ bne .L_802D99C8 -/* 802D99B8 002D6598 38 6D 9F A0 */ addi r3, r13, it_804D5640@sda21 -/* 802D99BC 002D659C 38 80 02 34 */ li r4, 0x234 -/* 802D99C0 002D65A0 38 AD 9F A8 */ addi r5, r13, it_804D5648@sda21 -/* 802D99C4 002D65A4 48 0A E8 5D */ bl __assert -.L_802D99C8: -/* 802D99C8 002D65A8 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802D99CC 002D65AC 38 60 00 00 */ li r3, 0 -/* 802D99D0 002D65B0 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802D99D4 002D65B4 40 82 00 10 */ bne .L_802D99E4 -/* 802D99D8 002D65B8 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 802D99DC 002D65BC 41 82 00 08 */ beq .L_802D99E4 -/* 802D99E0 002D65C0 38 60 00 01 */ li r3, 1 -.L_802D99E4: -/* 802D99E4 002D65C4 2C 03 00 00 */ cmpwi r3, 0 -/* 802D99E8 002D65C8 40 82 00 0C */ bne .L_802D99F4 -/* 802D99EC 002D65CC 7F C3 F3 78 */ mr r3, r30 -/* 802D99F0 002D65D0 48 09 98 F9 */ bl HSD_JObjSetMtxDirtySub -.L_802D99F4: -/* 802D99F4 002D65D4 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D99F8 002D65D8 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 802D99FC 002D65DC 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 802D9A00 002D65E0 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D9A04 002D65E4 7C 08 03 A6 */ mtlr r0 -/* 802D9A08 002D65E8 4E 80 00 20 */ blr - -.global it_802D9A0C -it_802D9A0C: -/* 802D9A0C 002D65EC 7C 08 02 A6 */ mflr r0 -/* 802D9A10 002D65F0 90 01 00 04 */ stw r0, 4(r1) -/* 802D9A14 002D65F4 94 21 FF F8 */ stwu r1, -8(r1) -/* 802D9A18 002D65F8 4B F9 1E 7D */ bl it_8026B894 -/* 802D9A1C 002D65FC 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D9A20 002D6600 38 21 00 08 */ addi r1, r1, 8 -/* 802D9A24 002D6604 7C 08 03 A6 */ mtlr r0 -/* 802D9A28 002D6608 4E 80 00 20 */ blr - - -.section .data - .balign 8 -.global it_803F83F0 -it_803F83F0: - .4byte -1 - .4byte it_802D88CC - .4byte it_802D88D4 - .4byte it_802D8910 - .4byte 0 - .4byte it_802D8984 - .4byte it_802D8A54 - .4byte it_802D8CC8 - .4byte -1 - .4byte it_802D8DB4 - .4byte it_802D8DBC - .4byte it_802D8E44 - .4byte -1 - .4byte it_802D8E4C - .4byte it_802D8E54 - .4byte it_802D8EA4 - .4byte 2 - .4byte it_802D9274 - .4byte it_802D9384 - .4byte it_802D95F4 -.global it_803F8440 -it_803F8440: - .asciz "!(jobj->flags & JOBJ_USE_QUATERNION)" - - -.section .sdata - .balign 8 -.global it_804D5640 -it_804D5640: - .asciz "jobj.h" - .balign 4 -.global it_804D5648 -it_804D5648: - .asciz "jobj" - - -.section .sdata2 - .balign 8 -.global it_804DD5B8 -it_804DD5B8: - .4byte 0x3F800000 -.global it_804DD5BC -it_804DD5BC: - .4byte 0x40000000 -.global it_804DD5C0 -it_804DD5C0: - .4byte 0x00000000 -.global it_804DD5C4 -it_804DD5C4: - .4byte 0xBF800000 -.global it_804DD5C8 -it_804DD5C8: - .4byte 0x40490FDB -.global it_804DD5CC -it_804DD5CC: - .4byte 0xBD23D70A -.global it_804DD5D0 -it_804DD5D0: - .4byte 0x3E20D97C -.global it_804DD5D4 -it_804DD5D4: - .4byte 0x3F000000 -.global it_804DD5D8 -it_804DD5D8: - .4byte 0x3FC00000 -.global it_804DD5DC -it_804DD5DC: - .4byte 0x3C8EFA35 -.global it_804DD5E0 -it_804DD5E0: - .4byte 0x41000000 - .balign 8 -.global it_804DD5E8 -it_804DD5E8: - .4byte 0x43300000 - .4byte 0x80000000 -.global it_804DD5F0 -it_804DD5F0: - .4byte 0x3F4CCCCD -.global it_804DD5F4 -it_804DD5F4: - .4byte 0xC0000000 -.global it_804DD5F8 -it_804DD5F8: - .4byte 0x41A00000 diff --git a/config/GALE01/symbols.txt b/config/GALE01/symbols.txt index 53fa378a8f..2b80b765d7 100644 --- a/config/GALE01/symbols.txt +++ b/config/GALE01/symbols.txt @@ -14273,20 +14273,20 @@ it_8028F9D8 = .text:0x8028F9D8; // type:function size:0x11C scope:global it_8028FAF4 = .text:0x8028FAF4; // type:function size:0xF0 scope:global it_8028FBE4 = .text:0x8028FBE4; // type:function size:0x78 scope:global it_8028FC5C = .text:0x8028FC5C; // type:function size:0x28 scope:global -it_8028FC84 = .text:0x8028FC84; // type:function size:0x8 scope:global -it_8028FC8C = .text:0x8028FC8C; // type:function size:0x30 scope:global -it_8028FCBC = .text:0x8028FCBC; // type:function size:0x2C scope:global -it_8028FCE8 = .text:0x8028FCE8; // type:function size:0x5C scope:global -it_8028FD44 = .text:0x8028FD44; // type:function size:0x8 scope:global -it_8028FD4C = .text:0x8028FD4C; // type:function size:0x4 scope:global -it_8028FD50 = .text:0x8028FD50; // type:function size:0x2C scope:global +it_8028FC84 = .text:0x8028FC84; // type:function size:0x8 scope:local +it_8028FC8C = .text:0x8028FC8C; // type:function size:0x30 scope:local +it_8028FCBC = .text:0x8028FCBC; // type:function size:0x2C scope:local +it_8028FCE8 = .text:0x8028FCE8; // type:function size:0x5C scope:local +it_8028FD44 = .text:0x8028FD44; // type:function size:0x8 scope:local +it_8028FD4C = .text:0x8028FD4C; // type:function size:0x4 scope:local +it_8028FD50 = .text:0x8028FD50; // type:function size:0x2C scope:local it_8028FD7C = .text:0x8028FD7C; // type:function size:0x5C scope:global -it_8028FDD8 = .text:0x8028FDD8; // type:function size:0x8 scope:global -it_8028FDE0 = .text:0x8028FDE0; // type:function size:0x4 scope:global +it_8028FDD8 = .text:0x8028FDD8; // type:function size:0x8 scope:local +it_8028FDE0 = .text:0x8028FDE0; // type:function size:0x4 scope:local it_8028FDE4 = .text:0x8028FDE4; // type:function size:0x28 scope:global -it_8028FE0C = .text:0x8028FE0C; // type:function size:0x8 scope:global -it_8028FE14 = .text:0x8028FE14; // type:function size:0x30 scope:global -it_8028FE44 = .text:0x8028FE44; // type:function size:0x2C scope:global +it_8028FE0C = .text:0x8028FE0C; // type:function size:0x8 scope:local +it_8028FE14 = .text:0x8028FE14; // type:function size:0x30 scope:local +it_8028FE44 = .text:0x8028FE44; // type:function size:0x2C scope:local it_8028FE70 = .text:0x8028FE70; // type:function size:0x20 scope:global it_8028FE90 = .text:0x8028FE90; // type:function size:0x44 scope:global it_8028FED4 = .text:0x8028FED4; // type:function size:0x48 scope:global @@ -16593,29 +16593,29 @@ it_802D85EC = .text:0x802D85EC; // type:function size:0x8 scope:global it_802D85F4 = .text:0x802D85F4; // type:function size:0x24 scope:global it_802D8618 = .text:0x802D8618; // type:function size:0x70 scope:global it_802D8688 = .text:0x802D8688; // type:function size:0x20C scope:global -it_802D8894 = .text:0x802D8894; // type:function size:0x38 scope:global -it_802D88CC = .text:0x802D88CC; // type:function size:0x8 scope:global -it_802D88D4 = .text:0x802D88D4; // type:function size:0x3C scope:global -it_802D8910 = .text:0x802D8910; // type:function size:0x8 scope:global -it_802D8918 = .text:0x802D8918; // type:function size:0x6C scope:global -it_802D8984 = .text:0x802D8984; // type:function size:0xD0 scope:global -it_802D8A54 = .text:0x802D8A54; // type:function size:0x274 scope:global -it_802D8CC8 = .text:0x802D8CC8; // type:function size:0xEC scope:global -it_802D8DB4 = .text:0x802D8DB4; // type:function size:0x8 scope:global -it_802D8DBC = .text:0x802D8DBC; // type:function size:0x88 scope:global -it_802D8E44 = .text:0x802D8E44; // type:function size:0x8 scope:global -it_802D8E4C = .text:0x802D8E4C; // type:function size:0x8 scope:global -it_802D8E54 = .text:0x802D8E54; // type:function size:0x50 scope:global -it_802D8EA4 = .text:0x802D8EA4; // type:function size:0x24 scope:global +it_802D8894 = .text:0x802D8894; // type:function size:0x38 scope:local +it_802D88CC = .text:0x802D88CC; // type:function size:0x8 scope:local +it_802D88D4 = .text:0x802D88D4; // type:function size:0x3C scope:local +it_802D8910 = .text:0x802D8910; // type:function size:0x8 scope:local +it_802D8918 = .text:0x802D8918; // type:function size:0x6C scope:local +it_802D8984 = .text:0x802D8984; // type:function size:0xD0 scope:local +it_802D8A54 = .text:0x802D8A54; // type:function size:0x274 scope:local +it_802D8CC8 = .text:0x802D8CC8; // type:function size:0xEC scope:local +it_802D8DB4 = .text:0x802D8DB4; // type:function size:0x8 scope:local +it_802D8DBC = .text:0x802D8DBC; // type:function size:0x88 scope:local +it_802D8E44 = .text:0x802D8E44; // type:function size:0x8 scope:local +it_802D8E4C = .text:0x802D8E4C; // type:function size:0x8 scope:local +it_802D8E54 = .text:0x802D8E54; // type:function size:0x50 scope:local +it_802D8EA4 = .text:0x802D8EA4; // type:function size:0x24 scope:local it_802D8EC8 = .text:0x802D8EC8; // type:function size:0x2A0 scope:global -it_802D9168 = .text:0x802D9168; // type:function size:0x10C scope:global -it_802D9274 = .text:0x802D9274; // type:function size:0x110 scope:global -it_802D9384 = .text:0x802D9384; // type:function size:0x270 scope:global -it_802D95F4 = .text:0x802D95F4; // type:function size:0xBC scope:global -it_802D96B0 = .text:0x802D96B0; // type:function size:0x64 scope:global -it_802D9714 = .text:0x802D9714; // type:function size:0x198 scope:global -it_802D98AC = .text:0x802D98AC; // type:function size:0x18 scope:global -it_802D98C4 = .text:0x802D98C4; // type:function size:0x148 scope:global +it_802D9168 = .text:0x802D9168; // type:function size:0x10C scope:local +it_802D9274 = .text:0x802D9274; // type:function size:0x110 scope:local +it_802D9384 = .text:0x802D9384; // type:function size:0x270 scope:local +it_802D95F4 = .text:0x802D95F4; // type:function size:0xBC scope:local +it_802D96B0 = .text:0x802D96B0; // type:function size:0x64 scope:local +it_802D9714 = .text:0x802D9714; // type:function size:0x198 scope:local +it_802D98AC = .text:0x802D98AC; // type:function size:0x18 scope:local +it_802D98C4 = .text:0x802D98C4; // type:function size:0x148 scope:local it_802D9A0C = .text:0x802D9A0C; // type:function size:0x20 scope:global it_802D9A2C = .text:0x802D9A2C; // type:function size:0x14C scope:global it_802D9B78 = .text:0x802D9B78; // type:function size:0x30 scope:global diff --git a/configure.py b/configure.py index 50cd9dfb26..15a44f5ef4 100755 --- a/configure.py +++ b/configure.py @@ -1024,7 +1024,7 @@ def RuntimeLib(lib_name: str, objects: Objects) -> LibDict: # Indivudal items Object(NonMatching, "melee/it/items/itoldkuri.c"), Object(Matching, "melee/it/items/itmato.c"), - Object(NonMatching, "melee/it/items/itheiho.c"), + Object(Matching, "melee/it/items/itheiho.c"), Object(NonMatching, "melee/it/items/itlikelike.c"), Object(NonMatching, "melee/it/items/itnokonoko.c"), Object(NonMatching, "melee/it/items/itzgshell.c"), diff --git a/obj_files.mk b/obj_files.mk index f04bfde9aa..edc03359d9 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -706,7 +706,7 @@ TEXT_O_FILES +=\ TEXT_O_FILES +=\ $(BUILD_DIR)/asm/melee/it/items/itoldkuri.s.o\ $(BUILD_DIR)/src/melee/it/items/itmato.c.o\ - $(BUILD_DIR)/asm/melee/it/items/itheiho.s.o\ + $(BUILD_DIR)/src/melee/it/items/itheiho.c.o\ $(BUILD_DIR)/asm/melee/it/items/itlikelike.s.o\ $(BUILD_DIR)/asm/melee/it/items/itnokonoko.s.o\ $(BUILD_DIR)/asm/melee/it/items/itzgshell.s.o\ diff --git a/src/melee/ft/chara/ftGameWatch/ftGw_SpecialS.c b/src/melee/ft/chara/ftGameWatch/ftGw_SpecialS.c index 02b297cf30..3ee3ca73eb 100644 --- a/src/melee/ft/chara/ftGameWatch/ftGw_SpecialS.c +++ b/src/melee/ft/chara/ftGameWatch/ftGw_SpecialS.c @@ -14,6 +14,7 @@ #include "ft/ftparts.h" #include "ft/types.h" #include "it/items/it_27CF.h" +#include "it/items/itfoods.h" #include "lb/lb_00B0.h" #include diff --git a/src/melee/gr/grstory.c b/src/melee/gr/grstory.c index d4d4e3c861..0d20b37c29 100644 --- a/src/melee/gr/grstory.c +++ b/src/melee/gr/grstory.c @@ -12,7 +12,7 @@ #include "gr/grzakogenerator.h" #include "gr/types.h" #include "it/it_26B1.h" -#include "it/items/it_27CF.h" +#include "it/items/itheiho.h" #include "lb/lb_00B0.h" #include "lb/lb_00F9.h" @@ -278,6 +278,7 @@ void grStory_801E3418(HSD_GObj* gobj) } for (i = 0; i < gp->xC4; i++) { it_802D8618(i, &pos, temp_r29, 25.0f * i); + // it_802D8618(i, temp_r29, 0, 0); // Jitter the vertical position of the each subsequent shy guy pos.y = 3.0f * frand_amp1() + grSt_804D69B8->vars[spawn_pattern]; } diff --git a/src/melee/it/itCommonItems.h b/src/melee/it/itCommonItems.h index 94f8e2ab3b..f0bd94eead 100644 --- a/src/melee/it/itCommonItems.h +++ b/src/melee/it/itCommonItems.h @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -131,6 +132,54 @@ typedef struct EggVars { /* +60 */ int heal_amount; } EggVars; +typedef struct itHeiHoVars { + f32 x0; + f32 x4; + UnkFlagStruct x8; + f32 xC; + f32 x10; + f32 x14; + f32 x18; + f32 x1C; + s8 x20; + s8 x21; + s8 x22; + s8 x23; + s32 x24; + f32 x28; + s32 x2C; + f32 x30; + f32 x34; + f32 x38; + Vec3 x3C; + f32 x48; + f32 x4C; + f32 x50; + HSD_GObj* x54; + f32 x58; + f32 x5C; + f32 x6C; + f32 x60; + f32 x64; + f32 x68; + f32 x7C; + f32 x70; + f32 x74; + f32 x78; +} itHeiHoVars; + +typedef struct itFoodsVars { + s32 x0; + s32 x4; +} itFoodsVars; + +typedef struct itFoodsAttributes { + s32 x0; + HSD_Joint* x4; + s32 x8; + s32 xC; +} itFoodsAttributes; + typedef struct WhispyAppleVars { s32 xDD4_heal; } WhispyAppleVars; diff --git a/src/melee/it/it_266F.h b/src/melee/it/it_266F.h index 798c2dc7c6..a5c44e20b3 100644 --- a/src/melee/it/it_266F.h +++ b/src/melee/it/it_266F.h @@ -17,6 +17,7 @@ /* 26D62C */ void it_8026D62C(Item_GObj*, HSD_GObjEvent); /* 26D9A0 */ bool it_8026D9A0(Item_GObj*); /* 26DA08 */ bool it_8026DA08(Item_GObj*); +/* 26DA70 */ s32 it_8026DA70(HSD_GObj*); /* 26DF34 */ bool it_8026DF34(void); /* 26DFB0 */ bool it_8026DFB0(void); /* 26E0F4 */ void it_8026E0F4(Item_GObj*); diff --git a/src/melee/it/it_26B1.c b/src/melee/it/it_26B1.c index 56a4d247ea..16453f1115 100644 --- a/src/melee/it/it_26B1.c +++ b/src/melee/it/it_26B1.c @@ -13,6 +13,7 @@ #include "it/items/itbat.h" #include "it/items/itfflower.h" #include "it/items/itmarumine.h" +#include "it/items/itmsbomb.h" #include "it/items/itsword.h" #include "it/types.h" diff --git a/src/melee/it/it_2725.h b/src/melee/it/it_2725.h index f876a8794f..2b1f36bfcd 100644 --- a/src/melee/it/it_2725.h +++ b/src/melee/it/it_2725.h @@ -12,14 +12,15 @@ /* 272980 */ void it_80272980(Item_GObj*, f32); /* 272CC0 */ HSD_JObj* it_80272CC0(Item_GObj*, enum_t); +/* 273318 */ void it_80273318(Item_GObj*, HSD_Joint*, s32); /* 273408 */ void it_80273408(Item_GObj* gobj); /* 273670 */ void it_80273670(HSD_GObj*, int, float); /* 274250 */ void it_80274250(Item_GObj*, Vec3*); /* 274C88 */ void it_80274C88(Item_GObj* gobj); /* 274ECC */ void it_80274ECC(Item_GObj* gobj, bool); -/* 274F48 */ void it_80274F48(Item_GObj* gobj, int bone_attach_id, HSD_GObj*, - Fighter_Part); -/* 275070 */ void it_80275070(Item_GObj* gobj, int bone_attach_id); +/* 274ED8 */ void it_80274ED8(void); +/* 274F48 */ void it_80274F48(Item_GObj*, s32, HSD_GObj*, Fighter_Part); +/* 275070 */ void it_80275070(Item_GObj*, s32); /* 2750F8 */ void it_802750F8(Item_GObj*); /* 276214 */ bool it_80276214(Item_GObj*); /* 276CB8 */ void it_80276CB8(Item_GObj* gobj); @@ -32,8 +33,9 @@ /* 27A13C */ void it_8027A13C(Item_GObj*); /* 27ADEC */ M2C_UNK it_8027ADEC(M2C_UNK, Item_GObj*, HSD_JObj*, f32); /* 27B070 */ void it_8027B070(Item_GObj* gobj, Fighter_GObj* owner_gobj); +/* 27B730 */ void it_8027B730(void); /* 27B378 */ void it_8027B378(Fighter_GObj*, Item_GObj*, float); -/* 27B798 */ UNK_T it_8027B798(Item_GObj*, Vec3*); +/* 27B798 */ s32 it_8027B798(Item_GObj*, Vec3*); /* 27C56C */ void it_8027C56C(Item_GObj*, f32); /* 27C8B0 */ void it_8027C8B0(Item_GObj*); /* 27CBFC */ f32 it_8027CBFC(Item_GObj*); diff --git a/src/melee/it/items/it_27CF.h b/src/melee/it/items/it_27CF.h index 87784f6eed..399abf7a69 100644 --- a/src/melee/it/items/it_27CF.h +++ b/src/melee/it/items/it_27CF.h @@ -18,8 +18,6 @@ /* 28428C */ void it_8028428C(Item_GObj*); /* 286088 */ HSD_GObj* it_80286088(HSD_GObj*); /* 2896CC */ HSD_GObj* it_802896CC(Vec3*); -/* 28FAF4 */ void it_8028FAF4(Item_GObj*, Vec3*); -/* 28FE90 */ void it_8028FE90(Item_GObj*); /* 290938 */ HSD_GObj* it_80290938(HSD_JObj*); /* 291BE0 */ HSD_GObj* it_80291BE0(Vec3*); /* 294DC0 */ HSD_GObj* it_80294DC0(Vec3*); @@ -159,7 +157,6 @@ /* 2C837C */ HSD_GObj* it_802C837C(Item_GObj*, Vec3*, enum_t, u32, float); /* 2C8B28 */ HSD_GObj* it_802C8B28(Item_GObj*, Vec3*, u32, float); /* 2C8C34 */ void it_802C8C34(Item_GObj*); -/* 2D8618 */ void it_802D8618(s32, Vec3*, s32, s32); /* 2E5F8C */ s32 it_802E5F8C(Item_GObj*, Vec3*, s32, bool, float, float); /* 2F0340 */ u32 it_802F0340(Item_GObj*, Vec3*, Vec3*, u32, u32, float); /* 2F046C */ void it_802F046C(s32); diff --git a/src/melee/it/items/itfoods.c b/src/melee/it/items/itfoods.c index 8b13789179..b13f9c726d 100644 --- a/src/melee/it/items/itfoods.c +++ b/src/melee/it/items/itfoods.c @@ -1 +1,172 @@ +#include "it/items/itfoods.h" +#include "it/it_266F.h" +#include "it/it_26B1.h" +#include "it/it_2725.h" +#include "it/item.h" +#include "it/items/types.h" +#include "sysdolphin/baselib/random.h" + +#include + +/* 28FC84 */ int it_8028FC84(Item_GObj* arg0); +/* 28FC8C */ void it_8028FC8C(Item_GObj* arg0); +/* 28FCBC */ int it_8028FCBC(Item_GObj* arg0); +/* 28FCE8 */ void it_8028FCE8(HSD_GObj* gobj); +/* 28FD44 */ int it_8028FD44(Item_GObj* arg0); +/* 28FD4C */ void it_8028FD4C(Item_GObj* arg0); +/* 28FD50 */ int it_8028FD50(Item_GObj* arg0); +/* 28FDD8 */ int it_8028FDD8(Item_GObj* arg0); +/* 28FDE0 */ void it_8028FDE0(Item_GObj* arg0); +/* 28FE0C */ int it_8028FE0C(Item_GObj* arg0); +/* 28FE14 */ void it_8028FE14(Item_GObj* arg0); +/* 28FE44 */ int it_8028FE44(Item_GObj* arg0); + +ItemStateTable it_803F83F0[] = { { -1, it_8028FC84, it_8028FC8C, it_8028FCBC }, + { -1, it_8028FD44, it_8028FD4C, it_8028FD50 }, + { -1, it_8028FDD8, it_8028FDE0, NULL }, + { -1, it_8028FE0C, it_8028FE14, + it_8028FE44 } }; + +void it_8028F9D8(Item_GObj* arg0, Vec3* arg1, f32 arg8) +{ + Item* temp_r30 = GET_ITEM(arg0); + Vec4* temp_r6 = temp_r30->xC4_article_data->x4_specialAttributes; + f32 var_2; + temp_r30->pos.x = + arg1->x + (arg8 * temp_r6[temp_r30->xDD4_itemVar.foods.x0].w); + var_2 = temp_r6[temp_r30->xDD4_itemVar.foods.x0 + 1].x; + temp_r30->pos.y = var_2 + arg1->y; + temp_r30->pos.z = arg1->z; + HSD_JObjSetTranslate(arg0->hsd_obj, &temp_r30->pos); +} + +HSD_GObj* it_8028FAF4(Item_GObj* arg0, Vec3* arg1) +{ + SpawnItem spawn; + HSD_GObj* gobj; + if (it_8026D324(0x12) == 0) { + return NULL; + } + spawn.kind = 0x12; + spawn.prev_pos = *arg1; + if (arg0 != NULL) { + it_8026BB68(arg0, &spawn.pos); + } else { + spawn.pos = spawn.prev_pos; + } + spawn.facing_dir = -1.0F; + spawn.vel.x = spawn.vel.y = spawn.vel.z = 0.0F; + spawn.x3C_damage = 0; + spawn.x0_parent_gobj = NULL; + spawn.x4_parent_gobj2 = NULL; + spawn.x44_flag.bits.b0 = true; + spawn.x40 = 0.0F; + gobj = Item_80268B18(&spawn); + if (gobj != NULL) { + it_80274ED8(); + } + return gobj; +} + +void it_8028FBE4(Item_GObj* arg0) +{ + Item* ip = GET_ITEM(arg0); + itFoodsAttributes* attr = ip->xC4_article_data->x4_specialAttributes; + s32 rand = HSD_Randi(*(s32*) ip->xC4_article_data->x4_specialAttributes); + PAD_STACK(12); + ip->xDD4_itemVar.foods.x4 = attr[rand].x8; + ip->xDD4_itemVar.foods.x0 = rand; + it_80273318(arg0, attr[rand].x4, rand); + it_8028FC5C((HSD_GObj*) arg0); +} + +void it_8028FC5C(HSD_GObj* arg0) +{ + Item_80268E5C(arg0, 0, ITEM_ANIM_UPDATE); +} + +int it_8028FC84(Item_GObj* arg0) +{ + return 0; +} + +void it_8028FC8C(Item_GObj* arg0) +{ + ItemAttr* temp_r4; + + Item* item = GET_ITEM(arg0); + temp_r4 = item->xCC_item_attr; + it_80272860(arg0, temp_r4->x10_fall_speed, temp_r4->x14_fall_speed_max); +} + +int it_8028FCBC(Item_GObj* arg0) +{ + it_8026E414(arg0, it_8028FCE8); + return 0; +} + +void it_8028FCE8(HSD_GObj* gobj) +{ + Item* item = GET_ITEM(gobj); + PAD_STACK(12); + item->x40_vel.x = item->x40_vel.y = item->x40_vel.z = 0.0F; + Item_8026AE84(item, 0x107, 0x7F, 0x40); + Item_80268E5C(gobj, 1, ITEM_ANIM_UPDATE); +} + +int it_8028FD44(Item_GObj* gobj) +{ + return 0; +} + +void it_8028FD4C(Item_GObj* gobj) {} + +int it_8028FD50(Item_GObj* gobj) +{ + it_8026D62C(gobj, it_8028FC5C); + return 0; +} + +void it_8028FD7C(Item_GObj* gobj) +{ + HSD_JObj* jobj = HSD_GObjGetHSDObj(gobj); + HSD_JObj* child = HSD_JObjGetChild(jobj); + HSD_JObjClearFlagsAll(child, 0x10U); + Item_80268E5C(gobj, 2, ITEM_ANIM_UPDATE); +} + +int it_8028FDD8(Item_GObj* gobj) +{ + return 0; +} + +void it_8028FDE0(Item_GObj* gobj) {} + +void it_8028FDE4(Item_GObj* gobj) +{ + Item_80268E5C((HSD_GObj*) gobj, 3, 6); +} + +int it_8028FE0C(Item_GObj* gobj) +{ + return 0; +} + +void it_8028FE14(Item_GObj* gobj) +{ + Item* item = GET_ITEM(gobj); + ItemAttr* temp_r4 = item->xCC_item_attr; + it_80272860(gobj, temp_r4->x10_fall_speed, temp_r4->x14_fall_speed_max); +} + +int it_8028FE44(Item_GObj* gobj) +{ + it_8026E414(gobj, it_8028FCE8); + return 0; +} + +void it_8028FE70(Item_GObj* gobj, Item_GObj* arg1) +{ + it_8026B894(gobj, (HSD_GObj*) arg1); +} diff --git a/src/melee/it/items/itfoods.h b/src/melee/it/items/itfoods.h index 4084d6c156..0c9fbe7cf4 100644 --- a/src/melee/it/items/itfoods.h +++ b/src/melee/it/items/itfoods.h @@ -3,12 +3,16 @@ #include "it/forward.h" +#include "it/inlines.h" #include "it/items/types.h" -/* 28FBE4 */ void it_8028FBE4(Item_GObj*); -/* 28FD7C */ void it_8028FD7C(Item_GObj*); -/* 28FDE4 */ void it_8028FDE4(Item_GObj*); -/* 28FE70 */ void it_8028FE70(Item_GObj*, Item_GObj*); +/* 28F9D8 */ void it_8028F9D8(Item_GObj* arg0, Vec3* arg1, f32 arg8); +/* 28FAF4 */ HSD_GObj* it_8028FAF4(Item_GObj* arg0, Vec3* arg1); +/* 28FBE4 */ void it_8028FBE4(Item_GObj* arg0); +/* 28FC5C */ void it_8028FC5C(HSD_GObj* arg0); +/* 28FD7C */ void it_8028FD7C(Item_GObj* arg0); +/* 28FDE4 */ void it_8028FDE4(Item_GObj* arg0); +/* 28FE70 */ void it_8028FE70(Item_GObj* arg0, Item_GObj* arg1); /* 3F5DB0 */ extern ItemStateTable it_803F5DB0[]; #endif diff --git a/src/melee/it/items/itfreeze.h b/src/melee/it/items/itfreeze.h index 06b8e545a4..6bfe5f669e 100644 --- a/src/melee/it/items/itfreeze.h +++ b/src/melee/it/items/itfreeze.h @@ -19,6 +19,9 @@ /* 28F40C */ bool it_8028F40C(Item_GObj*); /* 28F42C */ bool it_8028F42C(Item_GObj*); /* 28F8C4 */ void it_8028F8C4(Item_GObj*, Item_GObj*); +/* 28F8E4 */ void it_8028F8E4(Item_GObj*); +/* 28F968 */ void it_8028F968(Item_GObj*); +/* 28F9B8 */ void it_8028F9B8(Item_GObj*); /* 3F5D28 */ extern ItemStateTable it_803F5D28[]; #endif diff --git a/src/melee/it/items/itheiho.c b/src/melee/it/items/itheiho.c index 8b13789179..61573e145f 100644 --- a/src/melee/it/items/itheiho.c +++ b/src/melee/it/items/itheiho.c @@ -1 +1,432 @@ +#include "it/items/itheiho.h" +#include "gr/stage.h" +#include "it/inlines.h" +#include "it/it_266F.h" +#include "it/it_26B1.h" +#include "it/it_2725.h" +#include "it/items/itfoods.h" +#include "it/items/itfreeze.h" +#include "it/items/types.h" +#include "MSL/math.h" + +#include +#include +#include + +/* 2D8894 */ void it_802D8894(Item_GObj*); +/* 2D88CC */ int it_802D88CC(Item_GObj*); +/* 2D88D4 */ void it_802D88D4(Item_GObj*); +/* 2D8910 */ int it_802D8910(Item_GObj*); +/* 2D8918 */ void it_802D8918(Item_GObj*); +/* 2D8984 */ int it_802D8984(Item_GObj*); +/* 2D8A54 */ void it_802D8A54(Item_GObj*); +/* 2D8CC8 */ int it_802D8CC8(Item_GObj*); +/* 2D8DB4 */ int it_802D8DB4(Item_GObj*); +/* 2D8DBC */ void it_802D8DBC(Item_GObj*); +/* 2D8E44 */ int it_802D8E44(Item_GObj*); +/* 2D8E4C */ int it_802D8E4C(Item_GObj*); +/* 2D8E54 */ void it_802D8E54(Item_GObj*); +/* 2D8EA4 */ int it_802D8EA4(Item_GObj*); +/* 2D9168 */ void it_802D9168(Item_GObj*); +/* 2D9274 */ int it_802D9274(Item_GObj*); +/* 2D9384 */ void it_802D9384(Item_GObj*); +/* 2D95F4 */ int it_802D95F4(Item_GObj*); +/* 2D96B0 */ void it_802D96B0(HSD_GObj* gobj); +/* 2D9714 */ void it_802D9714(Item_GObj*); +/* 2D98AC */ void it_802D98AC(Item_GObj*); +/* 2D98C4 */ void it_802D98C4(HSD_JObj*, Item*); + +ItemStateTable it_803F83F0[] = { { -1, it_802D88CC, it_802D88D4, it_802D8910 }, + { 0, it_802D8984, it_802D8A54, it_802D8CC8 }, + { -1, it_802D8DB4, it_802D8DBC, it_802D8E44 }, + { -1, it_802D8E4C, it_802D8E54, it_802D8EA4 }, + { 2, it_802D9274, it_802D9384, + it_802D95F4 } }; + +void it_802D8618(s32 arg0, Vec3* arg1, s32 arg2, s32 arg3) +{ + Item_GObj* gobj = it_8027B5B0(0xD2, (s32) arg1, NULL, NULL, 1); + Item* ip = GET_ITEM(gobj); + ip->xDD4_itemVar.heiho.x20 = (s8) arg0; + ip->xDD4_itemVar.heiho.x21 = (s8) arg2; + ip->xDD4_itemVar.heiho.x24 = arg3; + it_802D8894(gobj); +} + +void it_802D8688(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + PAD_STACK(4); + it_8027B730(); + ip->xD5C = 0; + ip->xDCC_flag.b3 = 0; + ip->xDD4_itemVar.heiho.x54 = it_8028FAF4(NULL, &ip->pos); + if (ip->xDD4_itemVar.heiho.x54 != NULL) { + it_8028F968(ip->xDD4_itemVar.heiho.x54); + it_8028F9D8(ip->xDD4_itemVar.heiho.x54, &ip->pos, 1.0F); + it_8028FD7C(ip->xDD4_itemVar.heiho.x54); + } + ip->xDD4_itemVar.heiho.x2C = 0; + ip->xDD4_itemVar.heiho.x22 = 0; + ip->pos.z = 2.0F; + it_802762BC(ip); + if (ip->pos.x < 0.0F) { + ip->facing_dir = 1.0F; + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 0.0F); + } else { + ip->facing_dir = -1.0F; + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 3.1415927F); + } + ip->init_facing_dir = 1.0F; + it_802D8894(gobj); +} + +void it_802D8894(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + ip->x40_vel.y = 0.0F; + ip->x40_vel.x = 0.0F; + Item_80268E5C((HSD_GObj*) gobj, 0, ITEM_ANIM_UPDATE); +} + +int it_802D88CC(Item_GObj* gobj) +{ + return 0; +} + +void it_802D88D4(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + if (ip->xDD4_itemVar.heiho.x24 == 0) { + it_802D8918(gobj); + return; + } + ip->xDD4_itemVar.heiho.x24 = ip->xDD4_itemVar.heiho.x24 - 1; +} + +int it_802D8910(Item_GObj* gobj) +{ + return 0; +} + +void it_802D8918(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + ip->xDD4_itemVar.heiho.x24 = 0; + it_802D98AC(gobj); + Item_80268E5C(gobj, 1, ITEM_ANIM_UPDATE); + it_802D98C4(ip->xBBC_dynamicBoneTable->bones[1], ip); + ip->on_accessory = it_802D96B0; +} + +static inline void it_802D8984_inline(Item_GObj* gobj, int i) +{ + Item* ip = GET_ITEM(gobj); + ip->xDD4_itemVar.heiho.x24 = 0; + Item_80268E5C(gobj, i, ITEM_ANIM_UPDATE); + it_802D98C4(ip->xBBC_dynamicBoneTable->bones[1], ip); + ip->on_accessory = it_802D96B0; +} + +int it_802D8984(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + HSD_JObj* jobj = HSD_GObjGetHSDObj(gobj); + HSD_JObj* child = HSD_JObjGetChild(jobj); + it_802D98C4(ip->xBBC_dynamicBoneTable->bones[1], ip); + if (it_80272C6C(gobj) == 0) { + it_802D8984_inline(gobj, 1); + } + if (ip->xDD4_itemVar.heiho.x2C > 0x3C0) { + HSD_AObjSetFlags(child->aobj, 0x10000000U); + } + return 0; +} + +void it_802D8A54(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + f32* attr = ip->xC4_article_data->x4_specialAttributes; + PAD_STACK(8); + ip->x40_vel.x = ip->facing_dir * attr[ip->xDD4_itemVar.heiho.x21 + 1]; + if (ip->xDD4_itemVar.heiho.x2C > 960) { + ip->x40_vel.y = + -((-0.04f * fabs_inline(ip->x40_vel.x)) - ip->x40_vel.y); + } + it_802D9714(gobj); + if (ip->xDD4_itemVar.heiho.x24 != 0) { + HSD_JObjAddRotationY(HSD_GObjGetHSDObj(gobj), 0.15707964f); + ip->xDD4_itemVar.heiho.x24 -= 1; + return; + } + if (ip->facing_dir == -1.0F) { + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 3.1415927F); + } else { + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 0); + } +} + +int it_802D8CC8(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + Article* article = ip->xC4_article_data; + f32* attr = article->x4_specialAttributes; + s32 temp_r31 = it_8026DA70(gobj); + if ((ip->xDD4_itemVar.heiho.x24 == 0) && (it_80276308(gobj) != 0)) { + ip->facing_dir = -ip->facing_dir; + ip->x40_vel.x = ip->facing_dir * attr[ip->xDD4_itemVar.heiho.x21 + 1]; + ip->xDD4_itemVar.heiho.x24 = 0x14; + } else if (temp_r31 == 1) { + it_802D8984_inline(gobj, 1); + } + return 0; +} + +int it_802D8DB4(Item_GObj* gobj) +{ + return 0; +} + +static void it_802D8EC8_inline(Item_GObj* gobj) +{ + Item* ip = gobj->user_data; + f32* attr = ip->xC4_article_data->x4_specialAttributes; + f32 rand = 2.0f * (HSD_Randf() - 0.5F); + ip->x40_vel.x += attr[5] * rand; + ip->x40_vel.y = 2.0F; + ip->x40_vel.z = 1.5f; + if (ip->facing_dir == -1.0F) { + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 3.1415927F); + } else { + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 0); + } +} + +void it_802D8DBC(Item_GObj* gobj) +{ + Item* ip = gobj->user_data; + ItemAttr* it_attr = ip->xCC_item_attr; + s32 rand; + it_80272860(gobj, it_attr->x10_fall_speed, it_attr->x14_fall_speed_max); + rand = HSD_Randi(3); + ip->xD3C_spinSpeed = 0.017453292F * ((8.0F * rand) + 1.0F); + it_80274A64(gobj); +} + +int it_802D8E44(Item_GObj* gobj) +{ + return 0; +} + +int it_802D8E4C(Item_GObj* gobj) +{ + return 0; +} + +void it_802D8E54(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + ip->x40_vel.y -= ip->xCC_item_attr->x10_fall_speed; + if (ip->xDD4_itemVar.heiho.x24 != 0) { + ip->xDD4_itemVar.heiho.x24 -= 1; + return; + } + it_802D9168(gobj); +} + +int it_802D8EA4(Item_GObj* gobj) +{ + it_8026DA70(gobj); + return 0; +} + +int it_802D8EC8(Item_GObj* gobj) +{ + Item* ip = gobj->user_data; + s32** attr = ip->xC4_article_data->x4_specialAttributes; + PAD_STACK(32); + if (ip->xDD4_itemVar.heiho.x54 != NULL) { + it_8028F8E4(ip->xDD4_itemVar.heiho.x54); + it_8028FC5C(ip->xDD4_itemVar.heiho.x54); + ip->xDD4_itemVar.heiho.x54 = NULL; + } + ip->xDCC_flag.b3 = 1; + if (ip->xC9C > (s32) (**attr * 0.8F)) { + it_8027CE44(gobj); + it_802D8EC8_inline(gobj); + it_802D98AC(gobj); + Item_80268E5C((HSD_GObj*) gobj, 2, ITEM_ANIM_UPDATE); + } else { + ip = gobj->user_data; + if (it_8027B798(gobj, &ip->x40_vel) != 0) { + it_802762BC(ip); + } + ip->xDD4_itemVar.heiho.x24 = 0xC; + it_802D98AC(gobj); + Item_80268E5C((HSD_GObj*) gobj, 3, ITEM_ANIM_UPDATE); + } + return 0; +} + +void it_802D9168(Item_GObj* gobj) +{ + f32 zero = 0.0F; + Vec3 sp14; + Item* ip = GET_ITEM(gobj); + HSD_JObj* jobj = HSD_GObjGetHSDObj(gobj); + ip->xDD4_itemVar.heiho.x24 = 0; + Stage_UnkSetVec3TCam_Offset(&sp14); + + if (ip->pos.x < sp14.x) { + HSD_JObjGetRotationY(jobj); + if (jobj->rotate.y == zero) { + ip->xDD4_itemVar.heiho.x24 = 0x14; + } + ip->facing_dir = -1.0F; + } else if (ip->pos.x > sp14.x) { + HSD_JObjGetRotationY(jobj); + if (jobj->rotate.y != zero) { + ip->xDD4_itemVar.heiho.x24 = 0x14; + } + ip->facing_dir = 1.0F; + } + + it_802D98AC(gobj); + Item_80268E5C(gobj, 4, ITEM_ANIM_UPDATE); + it_802D98C4(ip->xBBC_dynamicBoneTable->bones[1], ip); + ip->on_accessory = it_802D96B0; +} + +int it_802D9274(Item_GObj* gobj) +{ + HSD_JObj* child; + Item* ip = GET_ITEM(gobj); + HSD_JObj* jobj = HSD_GObjGetHSDObj(gobj); + it_802D98C4(ip->xBBC_dynamicBoneTable->bones[1], ip); + if (it_80272C6C(gobj) == 0) { + it_802D8984_inline(gobj, 4); + } + child = HSD_JObjGetChild(jobj); + if (ip->xDD4_itemVar.heiho.x2C > 0x3C0) { + HSD_AObjSetFlags(child->aobj, 0x10000000U); + } + if (ip->xDD4_itemVar.heiho.x2C > 0x3C0) { + HSD_AObjSetFlags(child->aobj, 0x10000000U); + } else { + HSD_AObjSetRate(child->aobj, 2.0F); + } + HSD_AObjSetRate(child->u.dobj->mobj->tobj->aobj, 2.0F); + return 0; +} + +void it_802D9384(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + f32* attr = ip->xC4_article_data->x4_specialAttributes; + PAD_STACK(8); + ip->x40_vel.x = + 1.5F * (ip->facing_dir * attr[ip->xDD4_itemVar.heiho.x21 + 1]); + if (ip->xDD4_itemVar.heiho.x2C > 960) { + ip->x40_vel.y = + -((-0.04f * fabs_inline(ip->x40_vel.x)) - ip->x40_vel.y); + } + if (ip->xDD4_itemVar.heiho.x24 != 0) { + HSD_JObjAddRotationY(HSD_GObjGetHSDObj(gobj), 0.15707964f); + ip->xDD4_itemVar.heiho.x24 -= 1; + return; + } + if (ip->facing_dir == -1.0F) { + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 3.1415927F); + } else { + HSD_JObjSetRotationY(HSD_GObjGetHSDObj(gobj), 0); + } +} + +int it_802D95F4(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + Article* article = ip->xC4_article_data; + f32* attr = article->x4_specialAttributes; + s32 temp_r31 = it_8026DA70(gobj); + PAD_STACK(4); + if ((ip->xDD4_itemVar.heiho.x24 == 0) && (it_80276308(gobj) != 0)) { + ip->facing_dir = -ip->facing_dir; + ip->x40_vel.x = ip->facing_dir * attr[ip->xDD4_itemVar.heiho.x21 + 1]; + ip->xDD4_itemVar.heiho.x24 = 0x14; + } else if (temp_r31 == 1) { + it_802D9168(gobj); + } + return 0; +} + +void it_802D96B0(Item_GObj* gobj) +{ + f32 pad[2]; + Vec3 vec; + Item* ip = GET_ITEM(gobj); + if (ip->xDD4_itemVar.heiho.x54 != NULL) { + vec = ip->pos; + vec.z = -2.0F * ip->facing_dir; + it_8028F9D8(ip->xDD4_itemVar.heiho.x54, &vec, ip->facing_dir); + } +} + +static void inline it_802D9714_inline(Item_GObj* gobj) +{ + Item* ip = GET_ITEM(gobj); + ip->xDCC_flag.b3 = 1; + if (ip->xDD4_itemVar.heiho.x54 != NULL) { + it_8028F9B8(ip->xDD4_itemVar.heiho.x54); + ip->xDD4_itemVar.heiho.x54 = NULL; + } +} + +void it_802D9714(Item_GObj* gobj) +{ + Item* ip = gobj->user_data; + if ((s8) (u8) ip->xDD4_itemVar.heiho.x22 == 0) { + if ((ip->pos.x > (20.0F + Stage_GetBlastZoneLeftOffset())) && + (ip->pos.x < (Stage_GetBlastZoneRightOffset() - 20.0F))) + { + ip->xDD4_itemVar.heiho.x22 = 1; + } + } else if (ip->pos.x > (20.0F + Stage_GetBlastZoneRightOffset())) { + it_802D9714_inline(gobj); + } else if (ip->pos.x < (Stage_GetBlastZoneLeftOffset() - 20.0F)) { + it_802D9714_inline(gobj); + } else if (ip->pos.y > (20.0F + Stage_GetBlastZoneTopOffset())) { + it_802D9714_inline(gobj); + } else if (ip->pos.y < (Stage_GetBlastZoneBottomOffset() - 20.0F)) { + it_802D9714_inline(gobj); + } +} + +void it_802D98AC(Item_GObj* arg0) +{ + Item* ip = arg0->user_data; + ip->xDD4_itemVar.heiho.x3C.x = 0.0F; + ip->xDD4_itemVar.heiho.x3C.y = 0.0F; + ip->xDD4_itemVar.heiho.x3C.z = 0.0F; +} + +void it_802D98C4(HSD_JObj* jobj, Item* arg1) +{ + Vec3 vec; + Vec3 vec2; + if (jobj != NULL) { + vec.x = vec.y = vec.z = 0.0F; + HSD_JObjGetTranslation(jobj, &vec2); + arg1->x40_vel.x = + arg1->facing_dir * (vec2.z - arg1->xDD4_itemVar.heiho.x3C.z); + arg1->x40_vel.y = vec2.y - arg1->xDD4_itemVar.heiho.x3C.y; + arg1->x40_vel.z = vec2.x - arg1->xDD4_itemVar.heiho.x3C.x; + arg1->xDD4_itemVar.heiho.x3C = vec2; + HSD_JObjSetTranslate(jobj, &vec); + } +} + +void it_802D9A0C(Item_GObj* jobj, HSD_GObj* arg1) +{ + it_8026B894(jobj, arg1); +} diff --git a/src/melee/it/items/itheiho.h b/src/melee/it/items/itheiho.h index 8b13789179..1c9aa38277 100644 --- a/src/melee/it/items/itheiho.h +++ b/src/melee/it/items/itheiho.h @@ -1 +1,10 @@ +#include "it/forward.h" +#include "it/item.h" +#include "it/items/types.h" + +/* 2D8618 */ void it_802D8618(s32, Vec3*, s32, s32); +/* 2D8688 */ void it_802D8688(Item_GObj*); +/* 2D8EC8 */ int it_802D8EC8(Item_GObj*); +/* 2D9A0C */ void it_802D9A0C(Item_GObj*, HSD_GObj*); +/* 3F83F0 */ extern ItemStateTable it_803F83F0[]; diff --git a/src/melee/it/items/itmsbomb.h b/src/melee/it/items/itmsbomb.h index 78bc64a88c..ef0342f82e 100644 --- a/src/melee/it/items/itmsbomb.h +++ b/src/melee/it/items/itmsbomb.h @@ -7,6 +7,7 @@ #include "it/items/types.h" /* 28FED4 */ void it_8028FED4(Item_GObj*); +/* 28FE90 */ void it_8028FE90(Item_GObj*); /* 2900CC */ void it_802900CC(Item_GObj*); /* 2900F4 */ void it_802900F4(Item_GObj*); /* 290114 */ void it_80290114(Item_GObj*); diff --git a/src/melee/it/types.h b/src/melee/it/types.h index 1976ef016f..659d2cde50 100644 --- a/src/melee/it/types.h +++ b/src/melee/it/types.h @@ -548,11 +548,13 @@ struct Item { ItStarVars star; itSword_ItemVars sword; ItMatoVars mato; + itFoodsVars foods; BobOmbVars BobOmb; HeartContainerVars HeartContainer; MaximTomatoVars MaximTomato; FoodVars Food; EggVars egg; + itHeiHoVars heiho; WhispyAppleVars WhispyApple; PKFlashVars PKFlash; PKFlashExplVars PKFlashExpl; From c7f52f412743cc72f910053f72541a4217db82a7 Mon Sep 17 00:00:00 2001 From: foxcam <118768446+thefoxcam@users.noreply.github.com> Date: Mon, 15 Jul 2024 02:02:35 +0000 Subject: [PATCH 3/3] Match some `ftCommon` functions (#1397) * partial matches * fix padding on `ftNs_AttackHi4_YoyoCheckEnvColl` * mark as matching * fix incorrect .sdata2 --- asm/melee/ft/chara/ftCommon/ftCo_0C35.s | 393 -------------- .../ft/chara/ftCommon/ftCo_PassiveWall.s | 498 ------------------ configure.py | 4 +- obj_files.mk | 4 +- src/melee/ft/chara/ftCommon/ftCo_0C35.c | 14 +- src/melee/ft/chara/ftCommon/ftCo_AirCatch.c | 38 +- .../ft/chara/ftCommon/ftCo_PassiveWall.c | 20 +- src/melee/ft/chara/ftNess/ftNs_AttackHi4.c | 2 + src/melee/ft/fighter.c | 6 +- src/melee/ft/ft_081B.c | 2 +- src/melee/ft/ftcommon.c | 10 +- src/melee/ft/types.h | 1 + src/melee/it/item.c | 10 +- src/melee/it/types.h | 2 + src/melee/lb/types.h | 1 - 15 files changed, 45 insertions(+), 960 deletions(-) delete mode 100644 asm/melee/ft/chara/ftCommon/ftCo_0C35.s delete mode 100644 asm/melee/ft/chara/ftCommon/ftCo_PassiveWall.s diff --git a/asm/melee/ft/chara/ftCommon/ftCo_0C35.s b/asm/melee/ft/chara/ftCommon/ftCo_0C35.s deleted file mode 100644 index 5ac24fedf4..0000000000 --- a/asm/melee/ft/chara/ftCommon/ftCo_0C35.s +++ /dev/null @@ -1,393 +0,0 @@ -.include "macros.inc" -.file "ftCo_0C35.c" - -# 0x00000000 - 0x0000047C -.text -.balign 4 - -.fn ftCo_800C3598, global -/* 00000000 00000040 7C 08 02 A6 */ mflr r0 -/* 00000004 00000044 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000008 00000048 3C 00 43 30 */ lis r0, 0x4330 -/* 0000000C 0000004C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 00000010 00000050 DB E1 00 38 */ stfd f31, 0x38(r1) -/* 00000014 00000054 DB C1 00 30 */ stfd f30, 0x30(r1) -/* 00000018 00000058 DB A1 00 28 */ stfd f29, 0x28(r1) -/* 0000001C 0000005C 93 E1 00 24 */ stw r31, 0x24(r1) -/* 00000020 00000060 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 00000024 00000064 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 00000028 00000068 80 84 06 48 */ lwz r4, 0x648(r4) -/* 0000002C 0000006C 7C BF 2B 78 */ mr r31, r5 -/* 00000030 00000070 90 85 18 F4 */ stw r4, 0x18f4(r5) -/* 00000034 00000074 80 85 18 F4 */ lwz r4, 0x18f4(r5) -/* 00000038 00000078 C8 40 00 00 */ lfd f2, ftCo_804D8CD0@sda21(r0) -/* 0000003C 0000007C 6C 84 80 00 */ xoris r4, r4, 0x8000 -/* 00000040 00000080 C0 05 19 54 */ lfs f0, 0x1954(r5) -/* 00000044 00000084 90 81 00 1C */ stw r4, 0x1c(r1) -/* 00000048 00000088 90 01 00 18 */ stw r0, 0x18(r1) -/* 0000004C 0000008C C8 21 00 18 */ lfd f1, 0x18(r1) -/* 00000050 00000090 EC 21 10 28 */ fsubs f1, f1, f2 -/* 00000054 00000094 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 00000058 00000098 40 81 00 18 */ ble .L_00000070 -/* 0000005C 0000009C 90 81 00 1C */ stw r4, 0x1c(r1) -/* 00000060 000000A0 90 01 00 18 */ stw r0, 0x18(r1) -/* 00000064 000000A4 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 00000068 000000A8 EC 00 10 28 */ fsubs f0, f0, f2 -/* 0000006C 000000AC D0 05 19 54 */ stfs f0, 0x1954(r5) -.L_00000070: -/* 00000070 000000B0 88 05 22 20 */ lbz r0, 0x2220(r5) -/* 00000074 000000B4 38 80 00 01 */ li r4, 0x1 -/* 00000078 000000B8 50 80 1F 38 */ rlwimi r0, r4, 3, 28, 28 -/* 0000007C 000000BC 98 05 22 20 */ stb r0, 0x2220(r5) -/* 00000080 000000C0 48 00 00 01 */ bl Fighter_UnkRecursiveFunc_8006D044 -/* 00000084 000000C4 80 1F 00 E0 */ lwz r0, 0xe0(r31) -/* 00000088 000000C8 2C 00 00 01 */ cmpwi r0, 0x1 -/* 0000008C 000000CC 40 82 00 10 */ bne .L_0000009C -/* 00000090 000000D0 80 60 00 00 */ lwz r3, p_ftCommonData@sda21(r0) -/* 00000094 000000D4 C3 E3 06 4C */ lfs f31, 0x64c(r3) -/* 00000098 000000D8 48 00 00 0C */ b .L_000000A4 -.L_0000009C: -/* 0000009C 000000DC 80 60 00 00 */ lwz r3, p_ftCommonData@sda21(r0) -/* 000000A0 000000E0 C3 E3 06 50 */ lfs f31, 0x650(r3) -.L_000000A4: -/* 000000A4 000000E4 7F E3 FB 78 */ mr r3, r31 -/* 000000A8 000000E8 C0 3F 18 50 */ lfs f1, 0x1850(r31) -/* 000000AC 000000EC 48 00 00 01 */ bl ftCo_Damage_CalcAngle -/* 000000B0 000000F0 FF C0 08 90 */ fmr f30, f1 -/* 000000B4 000000F4 48 00 00 01 */ bl cosf -/* 000000B8 000000F8 EF BF 00 72 */ fmuls f29, f31, f1 -/* 000000BC 000000FC FC 20 F0 90 */ fmr f1, f30 -/* 000000C0 00000100 48 00 00 01 */ bl sinf -/* 000000C4 00000104 80 1F 00 E0 */ lwz r0, 0xe0(r31) -/* 000000C8 00000108 EC 5F 00 72 */ fmuls f2, f31, f1 -/* 000000CC 0000010C 2C 00 00 01 */ cmpwi r0, 0x1 -/* 000000D0 00000110 40 82 00 20 */ bne .L_000000F0 -/* 000000D4 00000114 C0 1F 18 44 */ lfs f0, 0x1844(r31) -/* 000000D8 00000118 7F E3 FB 78 */ mr r3, r31 -/* 000000DC 0000011C EC 3D 00 32 */ fmuls f1, f29, f0 -/* 000000E0 00000120 48 00 00 01 */ bl ftCo_Damage_CalcVel -/* 000000E4 00000124 C0 00 00 00 */ lfs f0, ftCo_804D8CD8@sda21(r0) -/* 000000E8 00000128 D0 1F 00 F0 */ stfs f0, 0xf0(r31) -/* 000000EC 0000012C 48 00 00 30 */ b .L_0000011C -.L_000000F0: -/* 000000F0 00000130 C0 1F 18 44 */ lfs f0, 0x1844(r31) -/* 000000F4 00000134 7F E3 FB 78 */ mr r3, r31 -/* 000000F8 00000138 EC 1D 00 32 */ fmuls f0, f29, f0 -/* 000000FC 0000013C D0 1F 00 F0 */ stfs f0, 0xf0(r31) -/* 00000100 00000140 C0 1F 08 44 */ lfs f0, 0x844(r31) -/* 00000104 00000144 C0 5F 00 F0 */ lfs f2, 0xf0(r31) -/* 00000108 00000148 FC 00 00 50 */ fneg f0, f0 -/* 0000010C 0000014C C0 3F 08 48 */ lfs f1, 0x848(r31) -/* 00000110 00000150 EC 21 00 B2 */ fmuls f1, f1, f2 -/* 00000114 00000154 EC 40 00 B2 */ fmuls f2, f0, f2 -/* 00000118 00000158 48 00 00 01 */ bl ftCo_Damage_CalcVel -.L_0000011C: -/* 0000011C 0000015C 7F E3 FB 78 */ mr r3, r31 -/* 00000120 00000160 48 00 00 01 */ bl ftCommon_800804FC -/* 00000124 00000164 80 01 00 44 */ lwz r0, 0x44(r1) -/* 00000128 00000168 CB E1 00 38 */ lfd f31, 0x38(r1) -/* 0000012C 0000016C CB C1 00 30 */ lfd f30, 0x30(r1) -/* 00000130 00000170 CB A1 00 28 */ lfd f29, 0x28(r1) -/* 00000134 00000174 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 00000138 00000178 38 21 00 40 */ addi r1, r1, 0x40 -/* 0000013C 0000017C 7C 08 03 A6 */ mtlr r0 -/* 00000140 00000180 4E 80 00 20 */ blr -.endfn ftCo_800C3598 - -.fn ftCo_800C36DC, global -/* 00000144 00000184 7C 08 02 A6 */ mflr r0 -/* 00000148 00000188 90 01 00 04 */ stw r0, 0x4(r1) -/* 0000014C 0000018C 3C 00 43 30 */ lis r0, 0x4330 -/* 00000150 00000190 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 00000154 00000194 93 E1 00 24 */ stw r31, 0x24(r1) -/* 00000158 00000198 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 0000015C 0000019C 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 00000160 000001A0 80 84 06 48 */ lwz r4, 0x648(r4) -/* 00000164 000001A4 7C BF 2B 78 */ mr r31, r5 -/* 00000168 000001A8 90 85 18 F4 */ stw r4, 0x18f4(r5) -/* 0000016C 000001AC 80 85 18 F4 */ lwz r4, 0x18f4(r5) -/* 00000170 000001B0 C8 40 00 00 */ lfd f2, ftCo_804D8CD0@sda21(r0) -/* 00000174 000001B4 6C 84 80 00 */ xoris r4, r4, 0x8000 -/* 00000178 000001B8 C0 05 19 54 */ lfs f0, 0x1954(r5) -/* 0000017C 000001BC 90 81 00 1C */ stw r4, 0x1c(r1) -/* 00000180 000001C0 90 01 00 18 */ stw r0, 0x18(r1) -/* 00000184 000001C4 C8 21 00 18 */ lfd f1, 0x18(r1) -/* 00000188 000001C8 EC 21 10 28 */ fsubs f1, f1, f2 -/* 0000018C 000001CC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 00000190 000001D0 40 81 00 18 */ ble .L_000001A8 -/* 00000194 000001D4 90 81 00 1C */ stw r4, 0x1c(r1) -/* 00000198 000001D8 90 01 00 18 */ stw r0, 0x18(r1) -/* 0000019C 000001DC C8 01 00 18 */ lfd f0, 0x18(r1) -/* 000001A0 000001E0 EC 00 10 28 */ fsubs f0, f0, f2 -/* 000001A4 000001E4 D0 05 19 54 */ stfs f0, 0x1954(r5) -.L_000001A8: -/* 000001A8 000001E8 88 05 22 20 */ lbz r0, 0x2220(r5) -/* 000001AC 000001EC 38 80 00 01 */ li r4, 0x1 -/* 000001B0 000001F0 50 80 1F 38 */ rlwimi r0, r4, 3, 28, 28 -/* 000001B4 000001F4 98 05 22 20 */ stb r0, 0x2220(r5) -/* 000001B8 000001F8 48 00 00 01 */ bl Fighter_UnkRecursiveFunc_8006D044 -/* 000001BC 000001FC C0 1F 19 AC */ lfs f0, 0x19ac(r31) -/* 000001C0 00000200 7F E3 FB 78 */ mr r3, r31 -/* 000001C4 00000204 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 000001C8 00000208 FC 00 00 50 */ fneg f0, f0 -/* 000001CC 0000020C C0 24 06 54 */ lfs f1, 0x654(r4) -/* 000001D0 00000210 EC 01 00 32 */ fmuls f0, f1, f0 -/* 000001D4 00000214 D0 1F 00 F0 */ stfs f0, 0xf0(r31) -/* 000001D8 00000218 C0 1F 08 44 */ lfs f0, 0x844(r31) -/* 000001DC 0000021C C0 5F 00 F0 */ lfs f2, 0xf0(r31) -/* 000001E0 00000220 FC 00 00 50 */ fneg f0, f0 -/* 000001E4 00000224 C0 3F 08 48 */ lfs f1, 0x848(r31) -/* 000001E8 00000228 EC 21 00 B2 */ fmuls f1, f1, f2 -/* 000001EC 0000022C EC 40 00 B2 */ fmuls f2, f0, f2 -/* 000001F0 00000230 48 00 00 01 */ bl ftCo_Damage_CalcVel -/* 000001F4 00000234 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 000001F8 00000238 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 000001FC 0000023C 38 21 00 28 */ addi r1, r1, 0x28 -/* 00000200 00000240 7C 08 03 A6 */ mtlr r0 -/* 00000204 00000244 4E 80 00 20 */ blr -.endfn ftCo_800C36DC - -.fn ftCo_800C37A0, global -/* 00000208 00000248 7C 08 02 A6 */ mflr r0 -/* 0000020C 0000024C 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000210 00000250 94 21 FF C8 */ stwu r1, -0x38(r1) -/* 00000214 00000254 DB E1 00 30 */ stfd f31, 0x30(r1) -/* 00000218 00000258 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 0000021C 0000025C 93 C1 00 28 */ stw r30, 0x28(r1) -/* 00000220 00000260 93 A1 00 24 */ stw r29, 0x24(r1) -/* 00000224 00000264 93 81 00 20 */ stw r28, 0x20(r1) -/* 00000228 00000268 7C 7C 1B 78 */ mr r28, r3 -/* 0000022C 0000026C 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 00000230 00000270 80 03 18 F4 */ lwz r0, 0x18f4(r3) -/* 00000234 00000274 3B E3 00 00 */ addi r31, r3, 0x0 -/* 00000238 00000278 2C 00 00 00 */ cmpwi r0, 0x0 -/* 0000023C 0000027C 41 82 02 1C */ beq .L_00000458 -/* 00000240 00000280 38 7F 00 00 */ addi r3, r31, 0x0 -/* 00000244 00000284 38 80 00 01 */ li r4, 0x1 -/* 00000248 00000288 48 00 00 01 */ bl ftParts_8007500C -/* 0000024C 0000028C 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 00000250 00000290 7C 7E 1B 78 */ mr r30, r3 -/* 00000254 00000294 80 BF 18 F4 */ lwz r5, 0x18f4(r31) -/* 00000258 00000298 80 64 06 48 */ lwz r3, 0x648(r4) -/* 0000025C 0000029C 3C 80 43 30 */ lis r4, 0x4330 -/* 00000260 000002A0 C8 40 00 00 */ lfd f2, ftCo_804D8CD0@sda21(r0) -/* 00000264 000002A4 7C 05 18 50 */ subf r0, r5, r3 -/* 00000268 000002A8 C8 60 00 00 */ lfd f3, ftCo_804D8CE0@sda21(r0) -/* 0000026C 000002AC 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 00000270 000002B0 80 DF 05 E8 */ lwz r6, 0x5e8(r31) -/* 00000274 000002B4 90 01 00 1C */ stw r0, 0x1c(r1) -/* 00000278 000002B8 6C 63 80 00 */ xoris r3, r3, 0x8000 -/* 0000027C 000002BC 57 C0 20 36 */ slwi r0, r30, 4 -/* 00000280 000002C0 90 81 00 18 */ stw r4, 0x18(r1) -/* 00000284 000002C4 7C C6 02 14 */ add r6, r6, r0 -/* 00000288 000002C8 83 A6 00 04 */ lwz r29, 0x4(r6) -/* 0000028C 000002CC 38 05 FF FF */ subi r0, r5, 0x1 -/* 00000290 000002D0 90 61 00 14 */ stw r3, 0x14(r1) -/* 00000294 000002D4 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 00000298 000002D8 7F E3 FB 78 */ mr r3, r31 -/* 0000029C 000002DC 90 81 00 10 */ stw r4, 0x10(r1) -/* 000002A0 000002E0 7F C4 F3 78 */ mr r4, r30 -/* 000002A4 000002E4 EC 20 10 28 */ fsubs f1, f0, f2 -/* 000002A8 000002E8 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 000002AC 000002EC 90 1F 18 F4 */ stw r0, 0x18f4(r31) -/* 000002B0 000002F0 FC 23 00 72 */ fmul f1, f3, f1 -/* 000002B4 000002F4 EC 00 10 28 */ fsubs f0, f0, f2 -/* 000002B8 000002F8 FF E1 00 24 */ fdiv f31, f1, f0 -/* 000002BC 000002FC FF E0 F8 18 */ frsp f31, f31 -/* 000002C0 00000300 FC 20 F8 90 */ fmr f1, f31 -/* 000002C4 00000304 48 00 00 01 */ bl ftParts_80075AF0 -/* 000002C8 00000308 28 1D 00 00 */ cmplwi r29, 0x0 -/* 000002CC 0000030C 40 82 00 14 */ bne .L_000002E0 -/* 000002D0 00000310 38 60 00 00 */ li r3, ftCo_804D3C38@sda21 -/* 000002D4 00000314 38 80 02 94 */ li r4, 0x294 -/* 000002D8 00000318 38 A0 00 00 */ li r5, ftCo_804D3C40@sda21 -/* 000002DC 0000031C 48 00 00 01 */ bl __assert -.L_000002E0: -/* 000002E0 00000320 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 000002E4 00000324 54 00 03 9D */ rlwinm. r0, r0, 0, 14, 14 -/* 000002E8 00000328 41 82 00 18 */ beq .L_00000300 -/* 000002EC 0000032C 3C 60 00 00 */ lis r3, lbl_803C6CA8@ha -/* 000002F0 00000330 38 A3 00 00 */ addi r5, r3, lbl_803C6CA8@l -/* 000002F4 00000334 38 60 00 00 */ li r3, ftCo_804D3C38@sda21 -/* 000002F8 00000338 38 80 02 95 */ li r4, 0x295 -/* 000002FC 0000033C 48 00 00 01 */ bl __assert -.L_00000300: -/* 00000300 00000340 D3 FD 00 20 */ stfs f31, 0x20(r29) -/* 00000304 00000344 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 00000308 00000348 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 0000030C 0000034C 40 82 00 4C */ bne .L_00000358 -/* 00000310 00000350 28 1D 00 00 */ cmplwi r29, 0x0 -/* 00000314 00000354 41 82 00 44 */ beq .L_00000358 -/* 00000318 00000358 40 82 00 14 */ bne .L_0000032C -/* 0000031C 0000035C 38 60 00 00 */ li r3, ftCo_804D3C38@sda21 -/* 00000320 00000360 38 80 02 34 */ li r4, 0x234 -/* 00000324 00000364 38 A0 00 00 */ li r5, ftCo_804D3C40@sda21 -/* 00000328 00000368 48 00 00 01 */ bl __assert -.L_0000032C: -/* 0000032C 0000036C 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 00000330 00000370 38 60 00 00 */ li r3, 0x0 -/* 00000334 00000374 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 00000338 00000378 40 82 00 10 */ bne .L_00000348 -/* 0000033C 0000037C 54 80 06 73 */ rlwinm. r0, r4, 0, 25, 25 -/* 00000340 00000380 41 82 00 08 */ beq .L_00000348 -/* 00000344 00000384 38 60 00 01 */ li r3, 0x1 -.L_00000348: -/* 00000348 00000388 2C 03 00 00 */ cmpwi r3, 0x0 -/* 0000034C 0000038C 40 82 00 0C */ bne .L_00000358 -/* 00000350 00000390 7F A3 EB 78 */ mr r3, r29 -/* 00000354 00000394 48 00 00 01 */ bl HSD_JObjSetMtxDirtySub -.L_00000358: -/* 00000358 00000398 80 1F 18 F4 */ lwz r0, 0x18f4(r31) -/* 0000035C 0000039C 2C 00 00 00 */ cmpwi r0, 0x0 -/* 00000360 000003A0 40 82 00 F8 */ bne .L_00000458 -/* 00000364 000003A4 88 1F 22 20 */ lbz r0, 0x2220(r31) -/* 00000368 000003A8 38 60 00 00 */ li r3, 0x0 -/* 0000036C 000003AC 50 60 1F 38 */ rlwimi r0, r3, 3, 28, 28 -/* 00000370 000003B0 98 1F 22 20 */ stb r0, 0x2220(r31) -/* 00000374 000003B4 38 7F 00 00 */ addi r3, r31, 0x0 -/* 00000378 000003B8 38 80 00 00 */ li r4, 0x0 -/* 0000037C 000003BC C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 00000380 000003C0 FC 00 00 50 */ fneg f0, f0 -/* 00000384 000003C4 D0 1F 00 2C */ stfs f0, 0x2c(r31) -/* 00000388 000003C8 C8 20 00 00 */ lfd f1, ftCo_804D8CE8@sda21(r0) -/* 0000038C 000003CC C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 00000390 000003D0 FC 21 00 32 */ fmul f1, f1, f0 -/* 00000394 000003D4 FC 20 08 18 */ frsp f1, f1 -/* 00000398 000003D8 48 00 00 01 */ bl ftParts_80075AF0 -/* 0000039C 000003DC C0 20 00 00 */ lfs f1, ftCo_804D8CD8@sda21(r0) -/* 000003A0 000003E0 38 7F 00 00 */ addi r3, r31, 0x0 -/* 000003A4 000003E4 38 9E 00 00 */ addi r4, r30, 0x0 -/* 000003A8 000003E8 48 00 00 01 */ bl ftParts_80075AF0 -/* 000003AC 000003EC 28 1D 00 00 */ cmplwi r29, 0x0 -/* 000003B0 000003F0 40 82 00 14 */ bne .L_000003C4 -/* 000003B4 000003F4 38 60 00 00 */ li r3, ftCo_804D3C38@sda21 -/* 000003B8 000003F8 38 80 02 94 */ li r4, 0x294 -/* 000003BC 000003FC 38 A0 00 00 */ li r5, ftCo_804D3C40@sda21 -/* 000003C0 00000400 48 00 00 01 */ bl __assert -.L_000003C4: -/* 000003C4 00000404 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 000003C8 00000408 54 00 03 9D */ rlwinm. r0, r0, 0, 14, 14 -/* 000003CC 0000040C 41 82 00 18 */ beq .L_000003E4 -/* 000003D0 00000410 3C 60 00 00 */ lis r3, lbl_803C6CA8@ha -/* 000003D4 00000414 38 A3 00 00 */ addi r5, r3, lbl_803C6CA8@l -/* 000003D8 00000418 38 60 00 00 */ li r3, ftCo_804D3C38@sda21 -/* 000003DC 0000041C 38 80 02 95 */ li r4, 0x295 -/* 000003E0 00000420 48 00 00 01 */ bl __assert -.L_000003E4: -/* 000003E4 00000424 C0 00 00 00 */ lfs f0, ftCo_804D8CD8@sda21(r0) -/* 000003E8 00000428 D0 1D 00 20 */ stfs f0, 0x20(r29) -/* 000003EC 0000042C 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 000003F0 00000430 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 000003F4 00000434 40 82 00 4C */ bne .L_00000440 -/* 000003F8 00000438 28 1D 00 00 */ cmplwi r29, 0x0 -/* 000003FC 0000043C 41 82 00 44 */ beq .L_00000440 -/* 00000400 00000440 40 82 00 14 */ bne .L_00000414 -/* 00000404 00000444 38 60 00 00 */ li r3, ftCo_804D3C38@sda21 -/* 00000408 00000448 38 80 02 34 */ li r4, 0x234 -/* 0000040C 0000044C 38 A0 00 00 */ li r5, ftCo_804D3C40@sda21 -/* 00000410 00000450 48 00 00 01 */ bl __assert -.L_00000414: -/* 00000414 00000454 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 00000418 00000458 38 60 00 00 */ li r3, 0x0 -/* 0000041C 0000045C 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 00000420 00000460 40 82 00 10 */ bne .L_00000430 -/* 00000424 00000464 54 80 06 73 */ rlwinm. r0, r4, 0, 25, 25 -/* 00000428 00000468 41 82 00 08 */ beq .L_00000430 -/* 0000042C 0000046C 38 60 00 01 */ li r3, 0x1 -.L_00000430: -/* 00000430 00000470 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000434 00000474 40 82 00 0C */ bne .L_00000440 -/* 00000438 00000478 7F A3 EB 78 */ mr r3, r29 -/* 0000043C 0000047C 48 00 00 01 */ bl HSD_JObjSetMtxDirtySub -.L_00000440: -/* 00000440 00000480 81 9F 21 F8 */ lwz r12, 0x21f8(r31) -/* 00000444 00000484 28 0C 00 00 */ cmplwi r12, 0x0 -/* 00000448 00000488 41 82 00 10 */ beq .L_00000458 -/* 0000044C 0000048C 7D 88 03 A6 */ mtlr r12 -/* 00000450 00000490 38 7C 00 00 */ addi r3, r28, 0x0 -/* 00000454 00000494 4E 80 00 21 */ blrl -.L_00000458: -/* 00000458 00000498 80 01 00 3C */ lwz r0, 0x3c(r1) -/* 0000045C 0000049C CB E1 00 30 */ lfd f31, 0x30(r1) -/* 00000460 000004A0 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 00000464 000004A4 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 00000468 000004A8 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 0000046C 000004AC 83 81 00 20 */ lwz r28, 0x20(r1) -/* 00000470 000004B0 38 21 00 38 */ addi r1, r1, 0x38 -/* 00000474 000004B4 7C 08 03 A6 */ mtlr r0 -/* 00000478 000004B8 4E 80 00 20 */ blr -.endfn ftCo_800C37A0 - -# 0x00000000 - 0x00000028 -.data -.balign 8 - -.obj lbl_803C6CA8, global - .4byte 0x21286A6F - .4byte 0x626A2D3E - .4byte 0x666C6167 - .4byte 0x73202620 - .4byte 0x4A4F424A - .4byte 0x5F555345 - .4byte 0x5F515541 - .4byte 0x5445524E - .4byte 0x494F4E29 - .byte 0x00 -.endobj lbl_803C6CA8 - -.obj gap_07_803C6CCD_data, global -.hidden gap_07_803C6CCD_data - .byte 0x00, 0x00, 0x00 -.endobj gap_07_803C6CCD_data - -# 0x00000000 - 0x00000010 -.section .sdata, "wa" -.balign 8 - -.obj ftCo_804D3C38, global - .4byte 0x6A6F626A - .byte 0x2E, 0x68, 0x00 -.endobj ftCo_804D3C38 - -.obj gap_09_804D3C3F_sdata, global -.hidden gap_09_804D3C3F_sdata - .byte 0x00 -.endobj gap_09_804D3C3F_sdata - -.obj ftCo_804D3C40, global - .4byte 0x6A6F626A - .byte 0x00 -.endobj ftCo_804D3C40 - -.obj gap_09_804D3C45_sdata, global -.hidden gap_09_804D3C45_sdata - .byte 0x00, 0x00, 0x00 -.endobj gap_09_804D3C45_sdata - -# 0x00000000 - 0x00000020 -.section .sdata2, "a" -.balign 8 - -.obj ftCo_804D8CD0, global - .4byte 0x43300000 - .4byte 0x80000000 -.endobj ftCo_804D8CD0 - -.obj ftCo_804D8CD8, global - .4byte 0x00000000 -.endobj ftCo_804D8CD8 - -.obj gap_11_804D8CDC_sdata2, global -.hidden gap_11_804D8CDC_sdata2 - .4byte 0x00000000 -.endobj gap_11_804D8CDC_sdata2 - -.obj ftCo_804D8CE0, global - .4byte 0x400921FB - .4byte 0x54442D18 -.endobj ftCo_804D8CE0 - -.obj ftCo_804D8CE8, global - .4byte 0x3FF921FB - .4byte 0x54442D18 -.endobj ftCo_804D8CE8 diff --git a/asm/melee/ft/chara/ftCommon/ftCo_PassiveWall.s b/asm/melee/ft/chara/ftCommon/ftCo_PassiveWall.s deleted file mode 100644 index 31d330e533..0000000000 --- a/asm/melee/ft/chara/ftCommon/ftCo_PassiveWall.s +++ /dev/null @@ -1,498 +0,0 @@ -.include "macros.inc" -.file "ftCo_PassiveWall.c" - -# 0x00000000 - 0x00000668 -.text -.balign 4 - -.fn ftCo_800C1D38, global -/* 00000000 00000040 7C 08 02 A6 */ mflr r0 -/* 00000004 00000044 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000008 00000048 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 0000000C 0000004C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 00000010 00000050 93 C1 00 18 */ stw r30, 0x18(r1) -/* 00000014 00000054 93 A1 00 14 */ stw r29, 0x14(r1) -/* 00000018 00000058 7C 7D 1B 78 */ mr r29, r3 -/* 0000001C 0000005C 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000020 00000060 80 64 08 24 */ lwz r3, 0x824(r4) -/* 00000024 00000064 3B E4 06 F0 */ addi r31, r4, 0x6f0 -/* 00000028 00000068 3B C4 00 00 */ addi r30, r4, 0x0 -/* 0000002C 0000006C 54 60 05 29 */ rlwinm. r0, r3, 0, 20, 20 -/* 00000030 00000070 40 82 00 0C */ bne .L_0000003C -/* 00000034 00000074 54 60 06 B5 */ rlwinm. r0, r3, 0, 26, 26 -/* 00000038 00000078 41 82 00 7C */ beq .L_000000B4 -.L_0000003C: -/* 0000003C 0000007C 7F A3 EB 78 */ mr r3, r29 -/* 00000040 00000080 48 00 00 01 */ bl ftCo_800986B0 -/* 00000044 00000084 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000048 00000088 41 82 00 6C */ beq .L_000000B4 -/* 0000004C 0000008C 7F C3 F3 78 */ mr r3, r30 -/* 00000050 00000090 48 00 00 01 */ bl ftCo_800C1E0C -/* 00000054 00000094 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000058 00000098 41 82 00 0C */ beq .L_00000064 -/* 0000005C 0000009C 38 60 00 CB */ li r3, 0xcb -/* 00000060 000000A0 48 00 00 08 */ b .L_00000068 -.L_00000064: -/* 00000064 000000A4 38 60 00 CA */ li r3, 0xca -.L_00000068: -/* 00000068 000000A8 80 1F 01 34 */ lwz r0, 0x134(r31) -/* 0000006C 000000AC 38 83 00 00 */ addi r4, r3, 0x0 -/* 00000070 000000B0 54 00 05 29 */ rlwinm. r0, r0, 0, 20, 20 -/* 00000074 000000B4 41 82 00 20 */ beq .L_00000094 -/* 00000078 000000B8 80 A0 00 00 */ lwz r5, p_ftCommonData@sda21(r0) -/* 0000007C 000000BC 7F A3 EB 78 */ mr r3, r29 -/* 00000080 000000C0 C0 20 00 00 */ lfs f1, ftCo_804D8C60@sda21(r0) -/* 00000084 000000C4 38 C0 00 00 */ li r6, 0x0 -/* 00000088 000000C8 80 A5 07 60 */ lwz r5, 0x760(r5) -/* 0000008C 000000CC 48 00 00 01 */ bl ftCo_800C1E64 -/* 00000090 000000D0 48 00 00 1C */ b .L_000000AC -.L_00000094: -/* 00000094 000000D4 80 A0 00 00 */ lwz r5, p_ftCommonData@sda21(r0) -/* 00000098 000000D8 7F A3 EB 78 */ mr r3, r29 -/* 0000009C 000000DC C0 20 00 00 */ lfs f1, ftCo_804D8C64@sda21(r0) -/* 000000A0 000000E0 38 C0 00 00 */ li r6, 0x0 -/* 000000A4 000000E4 80 A5 07 60 */ lwz r5, 0x760(r5) -/* 000000A8 000000E8 48 00 00 01 */ bl ftCo_800C1E64 -.L_000000AC: -/* 000000AC 000000EC 38 60 00 01 */ li r3, 0x1 -/* 000000B0 000000F0 48 00 00 08 */ b .L_000000B8 -.L_000000B4: -/* 000000B4 000000F4 38 60 00 00 */ li r3, 0x0 -.L_000000B8: -/* 000000B8 000000F8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 000000BC 000000FC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 000000C0 00000100 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 000000C4 00000104 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 000000C8 00000108 38 21 00 20 */ addi r1, r1, 0x20 -/* 000000CC 0000010C 7C 08 03 A6 */ mtlr r0 -/* 000000D0 00000110 4E 80 00 20 */ blr -.endfn ftCo_800C1D38 - -.fn ftCo_800C1E0C, global -/* 000000D4 00000114 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 000000D8 00000118 3C 00 43 30 */ lis r0, 0x4330 -/* 000000DC 0000011C 88 83 06 7E */ lbz r4, 0x67e(r3) -/* 000000E0 00000120 80 A0 00 00 */ lwz r5, p_ftCommonData@sda21(r0) -/* 000000E4 00000124 90 81 00 14 */ stw r4, 0x14(r1) -/* 000000E8 00000128 C8 40 00 00 */ lfd f2, ftCo_804D8C68@sda21(r0) -/* 000000EC 0000012C 90 01 00 10 */ stw r0, 0x10(r1) -/* 000000F0 00000130 C0 05 02 50 */ lfs f0, 0x250(r5) -/* 000000F4 00000134 C8 21 00 10 */ lfd f1, 0x10(r1) -/* 000000F8 00000138 EC 21 10 28 */ fsubs f1, f1, f2 -/* 000000FC 0000013C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 00000100 00000140 41 80 00 18 */ blt .L_00000118 -/* 00000104 00000144 C0 23 06 24 */ lfs f1, 0x624(r3) -/* 00000108 00000148 C0 05 00 70 */ lfs f0, 0x70(r5) -/* 0000010C 0000014C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 00000110 00000150 4C 41 13 82 */ cror eq, gt, eq -/* 00000114 00000154 40 82 00 0C */ bne .L_00000120 -.L_00000118: -/* 00000118 00000158 38 60 00 01 */ li r3, 0x1 -/* 0000011C 0000015C 48 00 00 08 */ b .L_00000124 -.L_00000120: -/* 00000120 00000160 38 60 00 00 */ li r3, 0x0 -.L_00000124: -/* 00000124 00000164 38 21 00 18 */ addi r1, r1, 0x18 -/* 00000128 00000168 4E 80 00 20 */ blr -.endfn ftCo_800C1E0C - -.fn ftCo_800C1E64, global -/* 0000012C 0000016C 7C 08 02 A6 */ mflr r0 -/* 00000130 00000170 FC 00 08 50 */ fneg f0, f1 -/* 00000134 00000174 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000138 00000178 38 00 00 01 */ li r0, 0x1 -/* 0000013C 0000017C 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 00000140 00000180 DB E1 00 58 */ stfd f31, 0x58(r1) -/* 00000144 00000184 BF 41 00 40 */ stmw r26, 0x40(r1) -/* 00000148 00000188 7C 7A 1B 78 */ mr r26, r3 -/* 0000014C 0000018C 3B 64 00 00 */ addi r27, r4, 0x0 -/* 00000150 00000190 7C BC 2B 78 */ mr r28, r5 -/* 00000154 00000194 3B A6 00 00 */ addi r29, r6, 0x0 -/* 00000158 00000198 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 0000015C 0000019C 90 1F 22 00 */ stw r0, 0x2200(r31) -/* 00000160 000001A0 3B DF 06 F0 */ addi r30, r31, 0x6f0 -/* 00000164 000001A4 D0 1F 00 2C */ stfs f0, 0x2c(r31) -/* 00000168 000001A8 48 00 00 01 */ bl ftCommon_8007E2FC -/* 0000016C 000001AC 80 1F 08 24 */ lwz r0, 0x824(r31) -/* 00000170 000001B0 54 00 05 29 */ rlwinm. r0, r0, 0, 20, 20 -/* 00000174 000001B4 41 82 00 20 */ beq .L_00000194 -/* 00000178 000001B8 C0 3E 00 BC */ lfs f1, 0xbc(r30) -/* 0000017C 000001BC C0 00 00 00 */ lfs f0, ftCo_804D8C70@sda21(r0) -/* 00000180 000001C0 D0 21 00 30 */ stfs f1, 0x30(r1) -/* 00000184 000001C4 C0 3E 00 C0 */ lfs f1, 0xc0(r30) -/* 00000188 000001C8 D0 21 00 34 */ stfs f1, 0x34(r1) -/* 0000018C 000001CC D0 01 00 38 */ stfs f0, 0x38(r1) -/* 00000190 000001D0 48 00 00 1C */ b .L_000001AC -.L_00000194: -/* 00000194 000001D4 C0 3E 00 B4 */ lfs f1, 0xb4(r30) -/* 00000198 000001D8 C0 00 00 00 */ lfs f0, ftCo_804D8C70@sda21(r0) -/* 0000019C 000001DC D0 21 00 30 */ stfs f1, 0x30(r1) -/* 000001A0 000001E0 C0 3E 00 B8 */ lfs f1, 0xb8(r30) -/* 000001A4 000001E4 D0 21 00 34 */ stfs f1, 0x34(r1) -/* 000001A8 000001E8 D0 01 00 38 */ stfs f0, 0x38(r1) -.L_000001AC: -/* 000001AC 000001EC 38 7A 00 00 */ addi r3, r26, 0x0 -/* 000001B0 000001F0 38 81 00 30 */ addi r4, r1, 0x30 -/* 000001B4 000001F4 48 00 00 01 */ bl ftKb_SpecialN_800F1F1C -/* 000001B8 000001F8 2C 1C 00 00 */ cmpwi r28, 0x0 -/* 000001BC 000001FC 41 82 00 0C */ beq .L_000001C8 -/* 000001C0 00000200 C0 40 00 00 */ lfs f2, ftCo_804D8C70@sda21(r0) -/* 000001C4 00000204 48 00 00 08 */ b .L_000001CC -.L_000001C8: -/* 000001C8 00000208 C0 40 00 00 */ lfs f2, ftCo_804D8C64@sda21(r0) -.L_000001CC: -/* 000001CC 0000020C C0 20 00 00 */ lfs f1, ftCo_804D8C70@sda21(r0) -/* 000001D0 00000210 7F 43 D3 78 */ mr r3, r26 -/* 000001D4 00000214 38 9B 00 00 */ addi r4, r27, 0x0 -/* 000001D8 00000218 FC 60 08 90 */ fmr f3, f1 -/* 000001DC 0000021C 38 A0 00 00 */ li r5, 0x0 -/* 000001E0 00000220 38 C0 00 00 */ li r6, 0x0 -/* 000001E4 00000224 48 00 00 01 */ bl Fighter_ChangeMotionState -/* 000001E8 00000228 38 80 00 FE */ li r4, 0xfe -/* 000001EC 0000022C 4C C6 31 82 */ crclr cr1eq -/* 000001F0 00000230 98 9F 06 70 */ stb r4, 0x670(r31) -/* 000001F4 00000234 38 00 00 00 */ li r0, 0x0 -/* 000001F8 00000238 38 7A 00 00 */ addi r3, r26, 0x0 -/* 000001FC 0000023C 98 9F 06 71 */ stb r4, 0x671(r31) -/* 00000200 00000240 39 01 00 24 */ addi r8, r1, 0x24 -/* 00000204 00000244 38 A0 00 02 */ li r5, 0x2 -/* 00000208 00000248 93 9F 23 40 */ stw r28, 0x2340(r31) -/* 0000020C 0000024C 38 C0 04 1D */ li r6, 0x41d -/* 00000210 00000250 38 E0 00 00 */ li r7, 0x0 -/* 00000214 00000254 90 1F 23 44 */ stw r0, 0x2344(r31) -/* 00000218 00000258 90 1F 23 48 */ stw r0, 0x2348(r31) -/* 0000021C 0000025C 93 BF 23 4C */ stw r29, 0x234c(r31) -/* 00000220 00000260 C0 5F 00 B0 */ lfs f2, 0xb0(r31) -/* 00000224 00000264 C0 21 00 30 */ lfs f1, 0x30(r1) -/* 00000228 00000268 C0 01 00 34 */ lfs f0, 0x34(r1) -/* 0000022C 0000026C EF E2 08 2A */ fadds f31, f2, f1 -/* 00000230 00000270 D3 E1 00 24 */ stfs f31, 0x24(r1) -/* 00000234 00000274 C0 3F 00 B4 */ lfs f1, 0xb4(r31) -/* 00000238 00000278 EC 01 00 2A */ fadds f0, f1, f0 -/* 0000023C 0000027C D0 01 00 28 */ stfs f0, 0x28(r1) -/* 00000240 00000280 C0 1F 00 B8 */ lfs f0, 0xb8(r31) -/* 00000244 00000284 D0 01 00 2C */ stfs f0, 0x2c(r1) -/* 00000248 00000288 80 9A 00 2C */ lwz r4, 0x2c(r26) -/* 0000024C 0000028C 38 84 06 0C */ addi r4, r4, 0x60c -/* 00000250 00000290 48 00 00 01 */ bl efAsync_Spawn -/* 00000254 00000294 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 00000258 00000298 7F 43 D3 78 */ mr r3, r26 -/* 0000025C 0000029C C0 3F 06 94 */ lfs f1, 0x694(r31) -/* 00000260 000002A0 FC 00 00 50 */ fneg f0, f0 -/* 00000264 000002A4 EC 01 F8 3C */ fnmsubs f0, f1, f0, f31 -/* 00000268 000002A8 D0 1F 00 B0 */ stfs f0, 0xb0(r31) -/* 0000026C 000002AC 48 00 00 01 */ bl ft_80081F2C -/* 00000270 000002B0 80 9F 01 0C */ lwz r4, 0x10c(r31) -/* 00000274 000002B4 38 7F 00 00 */ addi r3, r31, 0x0 -/* 00000278 000002B8 38 A0 00 7F */ li r5, 0x7f -/* 0000027C 000002BC 80 84 00 4C */ lwz r4, 0x4c(r4) -/* 00000280 000002C0 38 C0 00 40 */ li r6, 0x40 -/* 00000284 000002C4 80 84 00 24 */ lwz r4, 0x24(r4) -/* 00000288 000002C8 48 00 00 01 */ bl ft_800881D8 -/* 0000028C 000002CC 38 7F 00 00 */ addi r3, r31, 0x0 -/* 00000290 000002D0 38 80 00 0C */ li r4, 0xc -/* 00000294 000002D4 38 A0 00 00 */ li r5, 0x0 -/* 00000298 000002D8 48 00 00 01 */ bl ftCommon_8007EBAC -/* 0000029C 000002DC 2C 1C 00 00 */ cmpwi r28, 0x0 -/* 000002A0 000002E0 40 82 00 18 */ bne .L_000002B8 -/* 000002A4 000002E4 38 7F 00 00 */ addi r3, r31, 0x0 -/* 000002A8 000002E8 38 80 00 03 */ li r4, 0x3 -/* 000002AC 000002EC 38 A0 00 7F */ li r5, 0x7f -/* 000002B0 000002F0 38 C0 00 40 */ li r6, 0x40 -/* 000002B4 000002F4 48 00 00 01 */ bl ft_80088148 -.L_000002B8: -/* 000002B8 000002F8 38 7F 00 00 */ addi r3, r31, 0x0 -/* 000002BC 000002FC 38 80 00 78 */ li r4, 0x78 -/* 000002C0 00000300 38 A0 00 00 */ li r5, 0x0 -/* 000002C4 00000304 48 00 00 01 */ bl ftCo_800BFFD0 -/* 000002C8 00000308 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 000002CC 0000030C 7F 43 D3 78 */ mr r3, r26 -/* 000002D0 00000310 80 84 07 64 */ lwz r4, 0x764(r4) -/* 000002D4 00000314 48 00 00 01 */ bl ftColl_8007B760 -/* 000002D8 00000318 BB 41 00 40 */ lmw r26, 0x40(r1) -/* 000002DC 0000031C 80 01 00 64 */ lwz r0, 0x64(r1) -/* 000002E0 00000320 CB E1 00 58 */ lfd f31, 0x58(r1) -/* 000002E4 00000324 38 21 00 60 */ addi r1, r1, 0x60 -/* 000002E8 00000328 7C 08 03 A6 */ mtlr r0 -/* 000002EC 0000032C 4E 80 00 20 */ blr -.endfn ftCo_800C1E64 - -.fn ftCo_PassiveWall_Anim, global -/* 000002F0 00000330 7C 08 02 A6 */ mflr r0 -/* 000002F4 00000334 90 01 00 04 */ stw r0, 0x4(r1) -/* 000002F8 00000338 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 000002FC 0000033C 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 00000300 00000340 93 C1 00 38 */ stw r30, 0x38(r1) -/* 00000304 00000344 93 A1 00 34 */ stw r29, 0x34(r1) -/* 00000308 00000348 7C 7D 1B 78 */ mr r29, r3 -/* 0000030C 0000034C 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000310 00000350 80 64 23 40 */ lwz r3, 0x2340(r4) -/* 00000314 00000354 3B C4 00 00 */ addi r30, r4, 0x0 -/* 00000318 00000358 2C 03 00 00 */ cmpwi r3, 0x0 -/* 0000031C 0000035C 41 82 00 F8 */ beq .L_00000414 -/* 00000320 00000360 38 03 FF FF */ subi r0, r3, 0x1 -/* 00000324 00000364 90 1E 23 40 */ stw r0, 0x2340(r30) -/* 00000328 00000368 80 1E 23 40 */ lwz r0, 0x2340(r30) -/* 0000032C 0000036C 2C 00 00 00 */ cmpwi r0, 0x0 -/* 00000330 00000370 40 82 00 E4 */ bne .L_00000414 -/* 00000334 00000374 38 7E 00 00 */ addi r3, r30, 0x0 -/* 00000338 00000378 38 80 00 08 */ li r4, 0x8 -/* 0000033C 0000037C 38 A0 00 7F */ li r5, 0x7f -/* 00000340 00000380 38 C0 00 40 */ li r6, 0x40 -/* 00000344 00000384 48 00 00 01 */ bl ft_80088148 -/* 00000348 00000388 80 1E 23 48 */ lwz r0, 0x2348(r30) -/* 0000034C 0000038C 2C 00 00 00 */ cmpwi r0, 0x0 -/* 00000350 00000390 41 82 00 3C */ beq .L_0000038C -/* 00000354 00000394 83 FD 00 2C */ lwz r31, 0x2c(r29) -/* 00000358 00000398 7F A3 EB 78 */ mr r3, r29 -/* 0000035C 0000039C C0 40 00 00 */ lfs f2, ftCo_804D8C64@sda21(r0) -/* 00000360 000003A0 38 80 00 CB */ li r4, 0xcb -/* 00000364 000003A4 C0 3F 08 94 */ lfs f1, 0x894(r31) -/* 00000368 000003A8 C0 60 00 00 */ lfs f3, ftCo_804D8C70@sda21(r0) -/* 0000036C 000003AC 38 A0 00 00 */ li r5, 0x0 -/* 00000370 000003B0 38 C0 00 00 */ li r6, 0x0 -/* 00000374 000003B4 48 00 00 01 */ bl Fighter_ChangeMotionState -/* 00000378 000003B8 38 00 00 FE */ li r0, 0xfe -/* 0000037C 000003BC 98 1F 06 71 */ stb r0, 0x671(r31) -/* 00000380 000003C0 38 00 00 00 */ li r0, 0x0 -/* 00000384 000003C4 90 1F 23 40 */ stw r0, 0x2340(r31) -/* 00000388 000003C8 48 00 00 10 */ b .L_00000398 -.L_0000038C: -/* 0000038C 000003CC 7F A3 EB 78 */ mr r3, r29 -/* 00000390 000003D0 C0 20 00 00 */ lfs f1, ftCo_804D8C64@sda21(r0) -/* 00000394 000003D4 48 00 00 01 */ bl ftAnim_SetAnimRate -.L_00000398: -/* 00000398 000003D8 80 1E 00 10 */ lwz r0, 0x10(r30) -/* 0000039C 000003DC 2C 00 00 CA */ cmpwi r0, 0xca -/* 000003A0 000003E0 40 82 00 18 */ bne .L_000003B8 -/* 000003A4 000003E4 C0 3E 00 2C */ lfs f1, 0x2c(r30) -/* 000003A8 000003E8 C0 1E 02 10 */ lfs f0, 0x210(r30) -/* 000003AC 000003EC EC 01 00 32 */ fmuls f0, f1, f0 -/* 000003B0 000003F0 D0 1E 00 80 */ stfs f0, 0x80(r30) -/* 000003B4 000003F4 48 00 00 60 */ b .L_00000414 -.L_000003B8: -/* 000003B8 000003F8 C0 3E 00 2C */ lfs f1, 0x2c(r30) -/* 000003BC 000003FC C0 1E 02 14 */ lfs f0, 0x214(r30) -/* 000003C0 00000400 EC 01 00 32 */ fmuls f0, f1, f0 -/* 000003C4 00000404 D0 1E 00 80 */ stfs f0, 0x80(r30) -/* 000003C8 00000408 C0 1E 02 18 */ lfs f0, 0x218(r30) -/* 000003CC 0000040C D0 1E 00 84 */ stfs f0, 0x84(r30) -/* 000003D0 00000410 88 1E 19 69 */ lbz r0, 0x1969(r30) -/* 000003D4 00000414 28 00 00 00 */ cmplwi r0, 0x0 -/* 000003D8 00000418 41 82 00 3C */ beq .L_00000414 -/* 000003DC 0000041C 80 7E 23 4C */ lwz r3, 0x234c(r30) -/* 000003E0 00000420 3C 00 43 30 */ lis r0, 0x4330 -/* 000003E4 00000424 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 000003E8 00000428 6C 63 80 00 */ xoris r3, r3, 0x8000 -/* 000003EC 0000042C C8 40 00 00 */ lfd f2, ftCo_804D8C78@sda21(r0) -/* 000003F0 00000430 90 61 00 2C */ stw r3, 0x2c(r1) -/* 000003F4 00000434 C0 24 07 78 */ lfs f1, 0x778(r4) -/* 000003F8 00000438 90 01 00 28 */ stw r0, 0x28(r1) -/* 000003FC 0000043C C8 01 00 28 */ lfd f0, 0x28(r1) -/* 00000400 00000440 EC 40 10 28 */ fsubs f2, f0, f2 -/* 00000404 00000444 48 00 00 01 */ bl powf -/* 00000408 00000448 C0 1E 00 84 */ lfs f0, 0x84(r30) -/* 0000040C 0000044C EC 00 00 72 */ fmuls f0, f0, f1 -/* 00000410 00000450 D0 1E 00 84 */ stfs f0, 0x84(r30) -.L_00000414: -/* 00000414 00000454 7F A3 EB 78 */ mr r3, r29 -/* 00000418 00000458 48 00 00 01 */ bl ftAnim_IsFramesRemaining -/* 0000041C 0000045C 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000420 00000460 40 82 00 0C */ bne .L_0000042C -/* 00000424 00000464 7F A3 EB 78 */ mr r3, r29 -/* 00000428 00000468 48 00 00 01 */ bl ftCo_800CC730 -.L_0000042C: -/* 0000042C 0000046C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 00000430 00000470 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 00000434 00000474 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 00000438 00000478 83 A1 00 34 */ lwz r29, 0x34(r1) -/* 0000043C 0000047C 38 21 00 40 */ addi r1, r1, 0x40 -/* 00000440 00000480 7C 08 03 A6 */ mtlr r0 -/* 00000444 00000484 4E 80 00 20 */ blr -.endfn ftCo_PassiveWall_Anim - -.fn ftCo_PassiveWall_IASA, global -/* 00000448 00000488 7C 08 02 A6 */ mflr r0 -/* 0000044C 0000048C 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000450 00000490 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 00000454 00000494 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 00000458 00000498 93 C1 00 18 */ stw r30, 0x18(r1) -/* 0000045C 0000049C 7C 7E 1B 78 */ mr r30, r3 -/* 00000460 000004A0 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 00000464 000004A4 80 1F 23 40 */ lwz r0, 0x2340(r31) -/* 00000468 000004A8 2C 00 00 00 */ cmpwi r0, 0x0 -/* 0000046C 000004AC 40 82 00 A8 */ bne .L_00000514 -/* 00000470 000004B0 7F C3 F3 78 */ mr r3, r30 -/* 00000474 000004B4 48 00 00 01 */ bl ftCo_SpecialAir_CheckInput -/* 00000478 000004B8 2C 03 00 00 */ cmpwi r3, 0x0 -/* 0000047C 000004BC 40 82 00 F4 */ bne .L_00000570 -/* 00000480 000004C0 38 7E 00 00 */ addi r3, r30, 0x0 -/* 00000484 000004C4 38 80 00 00 */ li r4, 0x0 -/* 00000488 000004C8 48 00 00 01 */ bl ftCo_80095328 -/* 0000048C 000004CC 2C 03 00 00 */ cmpwi r3, 0x0 -/* 00000490 000004D0 40 82 00 E0 */ bne .L_00000570 -/* 00000494 000004D4 7F C3 F3 78 */ mr r3, r30 -/* 00000498 000004D8 48 00 00 01 */ bl ftCo_800D7100 -/* 0000049C 000004DC 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004A0 000004E0 40 82 00 D0 */ bne .L_00000570 -/* 000004A4 000004E4 7F C3 F3 78 */ mr r3, r30 -/* 000004A8 000004E8 48 00 00 01 */ bl ftCo_800C3B10 -/* 000004AC 000004EC 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004B0 000004F0 40 82 00 C0 */ bne .L_00000570 -/* 000004B4 000004F4 7F C3 F3 78 */ mr r3, r30 -/* 000004B8 000004F8 48 00 00 01 */ bl ftCo_80099A58 -/* 000004BC 000004FC 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004C0 00000500 40 82 00 B0 */ bne .L_00000570 -/* 000004C4 00000504 7F C3 F3 78 */ mr r3, r30 -/* 000004C8 00000508 48 00 00 01 */ bl ftCo_AttackAir_CheckItemThrowInput -/* 000004CC 0000050C 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004D0 00000510 40 82 00 A0 */ bne .L_00000570 -/* 000004D4 00000514 7F C3 F3 78 */ mr r3, r30 -/* 000004D8 00000518 48 00 00 01 */ bl ftCo_800D705C -/* 000004DC 0000051C 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004E0 00000520 40 82 00 90 */ bne .L_00000570 -/* 000004E4 00000524 7F C3 F3 78 */ mr r3, r30 -/* 000004E8 00000528 48 00 00 01 */ bl ftCo_800CB870 -/* 000004EC 0000052C 2C 03 00 00 */ cmpwi r3, 0x0 -/* 000004F0 00000530 40 82 00 80 */ bne .L_00000570 -/* 000004F4 00000534 80 1F 22 00 */ lwz r0, 0x2200(r31) -/* 000004F8 00000538 28 00 00 00 */ cmplwi r0, 0x0 -/* 000004FC 0000053C 41 82 00 74 */ beq .L_00000570 -/* 00000500 00000540 7F C3 F3 78 */ mr r3, r30 -/* 00000504 00000544 48 00 00 01 */ bl ftCo_800CEE70 -/* 00000508 00000548 2C 03 00 00 */ cmpwi r3, 0x0 -/* 0000050C 0000054C 41 82 00 64 */ beq .L_00000570 -/* 00000510 00000550 48 00 00 60 */ b .L_00000570 -.L_00000514: -/* 00000514 00000554 88 7F 06 7E */ lbz r3, 0x67e(r31) -/* 00000518 00000558 3C 00 43 30 */ lis r0, 0x4330 -/* 0000051C 0000055C 80 80 00 00 */ lwz r4, p_ftCommonData@sda21(r0) -/* 00000520 00000560 90 61 00 14 */ stw r3, 0x14(r1) -/* 00000524 00000564 C8 40 00 00 */ lfd f2, ftCo_804D8C68@sda21(r0) -/* 00000528 00000568 90 01 00 10 */ stw r0, 0x10(r1) -/* 0000052C 0000056C C0 04 02 50 */ lfs f0, 0x250(r4) -/* 00000530 00000570 C8 21 00 10 */ lfd f1, 0x10(r1) -/* 00000534 00000574 EC 21 10 28 */ fsubs f1, f1, f2 -/* 00000538 00000578 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 0000053C 0000057C 41 80 00 18 */ blt .L_00000554 -/* 00000540 00000580 C0 3F 06 24 */ lfs f1, 0x624(r31) -/* 00000544 00000584 C0 04 00 70 */ lfs f0, 0x70(r4) -/* 00000548 00000588 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 0000054C 0000058C 4C 41 13 82 */ cror eq, gt, eq -/* 00000550 00000590 40 82 00 0C */ bne .L_0000055C -.L_00000554: -/* 00000554 00000594 38 00 00 01 */ li r0, 0x1 -/* 00000558 00000598 48 00 00 08 */ b .L_00000560 -.L_0000055C: -/* 0000055C 0000059C 38 00 00 00 */ li r0, 0x0 -.L_00000560: -/* 00000560 000005A0 2C 00 00 00 */ cmpwi r0, 0x0 -/* 00000564 000005A4 41 82 00 0C */ beq .L_00000570 -/* 00000568 000005A8 38 00 00 01 */ li r0, 0x1 -/* 0000056C 000005AC 90 1F 23 48 */ stw r0, 0x2348(r31) -.L_00000570: -/* 00000570 000005B0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 00000574 000005B4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 00000578 000005B8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 0000057C 000005BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 00000580 000005C0 7C 08 03 A6 */ mtlr r0 -/* 00000584 000005C4 4E 80 00 20 */ blr -.endfn ftCo_PassiveWall_IASA - -.fn ftCo_PassiveWall_Phys, global -/* 00000588 000005C8 7C 08 02 A6 */ mflr r0 -/* 0000058C 000005CC 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000590 000005D0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 00000594 000005D4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 00000598 000005D8 93 C1 00 18 */ stw r30, 0x18(r1) -/* 0000059C 000005DC 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 000005A0 000005E0 80 03 23 40 */ lwz r0, 0x2340(r3) -/* 000005A4 000005E4 3B E3 00 00 */ addi r31, r3, 0x0 -/* 000005A8 000005E8 2C 00 00 00 */ cmpwi r0, 0x0 -/* 000005AC 000005EC 40 82 00 4C */ bne .L_000005F8 -/* 000005B0 000005F0 3B DF 01 10 */ addi r30, r31, 0x110 -/* 000005B4 000005F4 38 7F 00 00 */ addi r3, r31, 0x0 -/* 000005B8 000005F8 48 00 00 01 */ bl ftCommon_8007D528 -/* 000005BC 000005FC 88 1F 22 1A */ lbz r0, 0x221a(r31) -/* 000005C0 00000600 54 00 EF FF */ extrwi. r0, r0, 1, 28 -/* 000005C4 00000604 41 82 00 10 */ beq .L_000005D4 -/* 000005C8 00000608 7F E3 FB 78 */ mr r3, r31 -/* 000005CC 0000060C 48 00 00 01 */ bl ftCommon_8007D4E4 -/* 000005D0 00000610 48 00 00 14 */ b .L_000005E4 -.L_000005D4: -/* 000005D4 00000614 C0 3E 00 5C */ lfs f1, 0x5c(r30) -/* 000005D8 00000618 7F E3 FB 78 */ mr r3, r31 -/* 000005DC 0000061C C0 5E 00 60 */ lfs f2, 0x60(r30) -/* 000005E0 00000620 48 00 00 01 */ bl ftCommon_8007D494 -.L_000005E4: -/* 000005E4 00000624 C0 20 00 00 */ lfs f1, ftCo_804D8C70@sda21(r0) -/* 000005E8 00000628 7F E3 FB 78 */ mr r3, r31 -/* 000005EC 0000062C C0 7F 01 80 */ lfs f3, 0x180(r31) -/* 000005F0 00000630 FC 40 08 90 */ fmr f2, f1 -/* 000005F4 00000634 48 00 00 01 */ bl ftCommon_8007D140 -.L_000005F8: -/* 000005F8 00000638 80 01 00 24 */ lwz r0, 0x24(r1) -/* 000005FC 0000063C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 00000600 00000640 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 00000604 00000644 38 21 00 20 */ addi r1, r1, 0x20 -/* 00000608 00000648 7C 08 03 A6 */ mtlr r0 -/* 0000060C 0000064C 4E 80 00 20 */ blr -.endfn ftCo_PassiveWall_Phys - -.fn ftCo_PassiveWall_Coll, global -/* 00000610 00000650 7C 08 02 A6 */ mflr r0 -/* 00000614 00000654 90 01 00 04 */ stw r0, 0x4(r1) -/* 00000618 00000658 94 21 FF F8 */ stwu r1, -0x8(r1) -/* 0000061C 0000065C 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 00000620 00000660 80 04 23 40 */ lwz r0, 0x2340(r4) -/* 00000624 00000664 2C 00 00 00 */ cmpwi r0, 0x0 -/* 00000628 00000668 41 82 00 1C */ beq .L_00000644 -/* 0000062C 0000066C 3C 80 00 00 */ lis r4, ftCo_80096CC8@ha -/* 00000630 00000670 3C A0 00 00 */ lis r5, ft_80082B1C@ha -/* 00000634 00000674 38 84 00 00 */ addi r4, r4, ftCo_80096CC8@l -/* 00000638 00000678 38 A5 00 00 */ addi r5, r5, ft_80082B1C@l -/* 0000063C 0000067C 48 00 00 01 */ bl ft_80083318 -/* 00000640 00000680 48 00 00 18 */ b .L_00000658 -.L_00000644: -/* 00000644 00000684 3C 80 00 00 */ lis r4, ftCo_80096CC8@ha -/* 00000648 00000688 3C A0 00 00 */ lis r5, ft_80082B1C@ha -/* 0000064C 0000068C 38 84 00 00 */ addi r4, r4, ftCo_80096CC8@l -/* 00000650 00000690 38 A5 00 00 */ addi r5, r5, ft_80082B1C@l -/* 00000654 00000694 48 00 00 01 */ bl ft_800831CC -.L_00000658: -/* 00000658 00000698 80 01 00 0C */ lwz r0, 0xc(r1) -/* 0000065C 0000069C 38 21 00 08 */ addi r1, r1, 0x8 -/* 00000660 000006A0 7C 08 03 A6 */ mtlr r0 -/* 00000664 000006A4 4E 80 00 20 */ blr -.endfn ftCo_PassiveWall_Coll - -# 0x00000000 - 0x00000020 -.section .sdata2, "a" -.balign 8 - -.obj ftCo_804D8C60, global - .4byte 0xBF800000 -.endobj ftCo_804D8C60 - -.obj ftCo_804D8C64, global - .4byte 0x3F800000 -.endobj ftCo_804D8C64 - -.obj ftCo_804D8C68, global - .4byte 0x43300000 - .4byte 0x00000000 -.endobj ftCo_804D8C68 - -.obj ftCo_804D8C70, global - .4byte 0x00000000 -.endobj ftCo_804D8C70 - -.obj gap_11_804D8C74_sdata2, global -.hidden gap_11_804D8C74_sdata2 - .4byte 0x00000000 -.endobj gap_11_804D8C74_sdata2 - -.obj ftCo_804D8C78, global - .4byte 0x43300000 - .4byte 0x80000000 -.endobj ftCo_804D8C78 diff --git a/configure.py b/configure.py index 15a44f5ef4..dc80acd00f 100755 --- a/configure.py +++ b/configure.py @@ -510,11 +510,11 @@ def RuntimeLib(lib_name: str, objects: Objects) -> LibDict: Object(NonMatching, "melee/ft/ftdevice.c"), Object(NonMatching, "melee/ft/chara/ftCommon/ftCo_Bury.c"), Object(NonMatching, "melee/ft/chara/ftCommon/ftCo_FlyReflect.c"), - Object(NonMatching, "melee/ft/chara/ftCommon/ftCo_PassiveWall.c"), + Object(Matching, "melee/ft/chara/ftCommon/ftCo_PassiveWall.c"), Object(Matching, "melee/ft/chara/ftCommon/ftCo_PassiveCeil.c"), Object(NonMatching, "melee/ft/ftafterimage.c"), Object(Matching, "melee/ft/chara/ftCommon/ftCo_DamageSong.c"), - Object(NonMatching, "melee/ft/chara/ftCommon/ftCo_0C35.c"), + Object(Matching, "melee/ft/chara/ftCommon/ftCo_0C35.c"), Object(NonMatching, "melee/ft/chara/ftCommon/ftCo_AirCatch.c"), Object(Matching, "melee/ft/chara/ftCommon/ftCo_DamageBind.c"), Object(NonMatching, "melee/ft/chara/ftCommon/ftCo_WarpStar.c"), diff --git a/obj_files.mk b/obj_files.mk index edc03359d9..79cb7d5370 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -174,11 +174,11 @@ TEXT_O_FILES +=\ $(BUILD_DIR)/asm/melee/ft/ftdevice.s.o\ $(BUILD_DIR)/asm/melee/ft/chara/ftCommon/ftCo_Bury.s.o\ $(BUILD_DIR)/asm/melee/ft/chara/ftCommon/ftCo_FlyReflect.s.o\ - $(BUILD_DIR)/asm/melee/ft/chara/ftCommon/ftCo_PassiveWall.s.o\ + $(BUILD_DIR)/src/melee/ft/chara/ftCommon/ftCo_PassiveWall.c.o\ $(BUILD_DIR)/src/melee/ft/chara/ftCommon/ftCo_PassiveCeil.c.o\ $(BUILD_DIR)/asm/melee/ft/ftafterimage.s.o\ $(BUILD_DIR)/src/melee/ft/chara/ftCommon/ftCo_DamageSong.c.o\ - $(BUILD_DIR)/asm/melee/ft/chara/ftCommon/ftCo_0C35.s.o\ + $(BUILD_DIR)/src/melee/ft/chara/ftCommon/ftCo_0C35.c.o\ $(BUILD_DIR)/asm/melee/ft/chara/ftCommon/ftCo_AirCatch.s.o\ $(BUILD_DIR)/src/melee/ft/chara/ftCommon/ftCo_DamageBind.c.o\ $(BUILD_DIR)/asm/melee/ft/chara/ftCommon/ftCo_WarpStar.s.o\ diff --git a/src/melee/ft/chara/ftCommon/ftCo_0C35.c b/src/melee/ft/chara/ftCommon/ftCo_0C35.c index be03f3a2a3..ba10fb6bff 100644 --- a/src/melee/ft/chara/ftCommon/ftCo_0C35.c +++ b/src/melee/ft/chara/ftCommon/ftCo_0C35.c @@ -16,17 +16,7 @@ #include #include -#pragma force_active on - -/* literal */ double const ftCo_804D8CD0 = S32_TO_F32; -/* literal */ float const ftCo_804D8CD8 = 0; -/* literal */ double const ftCo_804D8CE0 = M_PI; -/* literal */ double const ftCo_804D8CE8 = M_PI_2; -/* literal */ SDATA char ftCo_804D3C38[] = "jobj.h"; -/* literal */ SDATA char ftCo_804D3C40[] = "jobj"; -/* literal */ char lbl_803C6CA8[] = "!(jobj->flags & JOBJ_USE_QUATERNION)"; - -static inline void inlineA0(ftCo_GObj* gobj) +static void inlineA0(ftCo_GObj* gobj) { Fighter* fp = GET_FIGHTER(gobj); fp->dmg.x18F4 = p_ftCommonData->x648; @@ -79,11 +69,11 @@ void ftCo_800C37A0(ftCo_GObj* gobj) if (fp->dmg.x18F4 != 0) { Fighter_Part part = ftParts_8007500C(fp, FtPart_TransN); HSD_JObj* jobj = fp->parts[part].x4_jobj2; - --fp->dmg.x18F4; { float rot_y = M_PI * (float) (p_ftCommonData->x648 - fp->dmg.x18F4) / (float) p_ftCommonData->x648; + fp->dmg.x18F4 -= 1; ftParts_80075AF0(fp, part, rot_y); HSD_JObjSetRotationY(jobj, rot_y); if (fp->dmg.x18F4 == 0) { diff --git a/src/melee/ft/chara/ftCommon/ftCo_AirCatch.c b/src/melee/ft/chara/ftCommon/ftCo_AirCatch.c index 5658f68bd3..16cb7a5476 100644 --- a/src/melee/ft/chara/ftCommon/ftCo_AirCatch.c +++ b/src/melee/ft/chara/ftCommon/ftCo_AirCatch.c @@ -47,23 +47,12 @@ bool ftCo_800C3A14(ftCo_GObj* gobj) { - CollData coll = { 0 }; - IntVec3 sp14; - int i = 51; - IntVec3* var_r5 = &sp14; Fighter* fp = GET_FIGHTER(gobj); - IntVec3* var_r4 = (IntVec3*) &fp->x6E4.y; - do { - var_r4 += 8; - var_r5 += 8; - var_r5->z = var_r4->z; - var_r5->y = var_r4->y; - --i; - } while (i != 0); - var_r5->z = var_r4->z; + CollData coll = *getFtColl(fp); + PAD_STACK(8); coll.x58 += 5.0; coll.x5C += 5.0; - if (fp->facing_dir > 0.0f) { + if (fp->facing_dir > (f64) 0.0F) { if (mpColl_80044164(&coll, &fp->coll_data.ledge_id_unk1)) { fp->coll_data.env_flags |= MPCOLL_FLAGS_B24; fp->self_vel.x = 0; @@ -130,6 +119,7 @@ void ftCo_800C3BE8(ftCo_GObj* gobj) void ftCo_800C3CC0(ftCo_GObj* gobj) { Fighter* fp = GET_FIGHTER(gobj); + f32 drift; if (fp->kind == FTKIND_LINK || fp->kind == FTKIND_CLINK) { Fighter_ChangeMotionState(gobj, ftLk_MS_AirCatchHit, Ft_MF_KeepFastFall, 0, 1, 0, NULL); @@ -137,7 +127,8 @@ void ftCo_800C3CC0(ftCo_GObj* gobj) Fighter_ChangeMotionState(gobj, ftSs_MS_AirCatchHit, Ft_MF_KeepFastFall, 0, 1, 0, NULL); } - ftCommon_8007D440(fp, fp->co_attrs.air_drift_max); + drift = fp->co_attrs.air_drift_max; + ftCommon_8007D440(fp, drift); fp->mv.co.aircatchhit.x0 = 20; fp->mv.co.aircatchhit.x4 = 0; if (fp->ground_or_air == GA_Ground) { @@ -166,7 +157,6 @@ void ftCo_AirCatch_Anim(ftCo_GObj* gobj) fp->death1_cb = it_802A7AAC; fp->accessory3_cb = it_802A7B34; } - goto exit; } else if (fp->mv.co.aircatch.x0 > da->xA4) { if (fp->mv.co.aircatch.x0 <= da->xB0) { Item_GObj* tether_gobj = fp->fv.lk.xC; @@ -209,9 +199,8 @@ void ftCo_AirCatch_Anim(ftCo_GObj* gobj) } else { ft_80088148(fp, 0x27149, 0x7F, 0x40); } - goto exit; - } - if (fp->mv.co.aircatch.x0 == (float) M2C_FIELD(da, int*, 0xAC)) + } else if (fp->mv.co.aircatch.x0 == + (float) M2C_FIELD(da, int*, 0xAC)) { it_802A77DC(tether_gobj); if (fp->kind == FTKIND_CLINK) { @@ -222,7 +211,6 @@ void ftCo_AirCatch_Anim(ftCo_GObj* gobj) } else if (fp->mv.co.aircatch.x0 == da->xB0) { it_802A2B10(fp->fv.lk.xC); } - goto exit; } } } else if (fp->kind == FTKIND_SAMUS) { @@ -268,7 +256,6 @@ void ftCo_AirCatch_Anim(ftCo_GObj* gobj) pos.x = x + fp->pos_delta.x; it_802BAAE4(temp_r29_2, &pos, x); } - goto exit; } else { if (fp->mv.co.aircatch.x0 == da->xC4) { it_802BAA58(temp_r29_2); @@ -279,13 +266,10 @@ void ftCo_AirCatch_Anim(ftCo_GObj* gobj) } } } - { - exit: - if (!ftAnim_IsFramesRemaining(gobj)) { - ftCo_800968C8(gobj); - } - return; + if (!ftAnim_IsFramesRemaining(gobj)) { + ftCo_800968C8(gobj); } + return; } void ftCo_AirCatchHit_Anim(ftCo_GObj* gobj) {} diff --git a/src/melee/ft/chara/ftCommon/ftCo_PassiveWall.c b/src/melee/ft/chara/ftCommon/ftCo_PassiveWall.c index 9cda42f640..d34fcd0d81 100644 --- a/src/melee/ft/chara/ftCommon/ftCo_PassiveWall.c +++ b/src/melee/ft/chara/ftCommon/ftCo_PassiveWall.c @@ -32,8 +32,6 @@ #include -#pragma force_active on - bool ftCo_800C1D38(ftCo_GObj* gobj) { Fighter* fp = GET_FIGHTER(gobj); @@ -77,16 +75,16 @@ void ftCo_800C1E64(ftCo_GObj* gobj, int msid, int timer, int vel_y_exponent, if (fp->coll_data.env_flags & MPCOLL_FLAGS_B11) { ef_offset.x = coll->xA4_ecbCurrCorrect.left.x; ef_offset.y = coll->xA4_ecbCurrCorrect.left.y; - ef_offset.z = 0; + ef_offset.z = 0.0F; } else { ef_offset.x = coll->xA4_ecbCurrCorrect.right.x; ef_offset.y = coll->xA4_ecbCurrCorrect.right.y; - ef_offset.z = 0; + ef_offset.z = 0.0F; } } ftKb_SpecialN_800F1F1C(gobj, &ef_offset); - Fighter_ChangeMotionState(gobj, msid, Ft_MF_None, 0, timer != 0 ? 0 : 1, 0, - NULL); + Fighter_ChangeMotionState(gobj, msid, Ft_MF_None, 0.0F, + timer != 0 ? 0.0F : 1.0F, 0.0F, NULL); fp->x670_timer_lstick_tilt_x = 0xFE; fp->x671_timer_lstick_tilt_y = 0xFE; fp->mv.co.passivewall.timer = timer; @@ -96,7 +94,7 @@ void ftCo_800C1E64(ftCo_GObj* gobj, int msid, int timer, int vel_y_exponent, { Vec3 ef_pos; float pos_x_offset = fp->cur_pos.x + ef_offset.x; - u8 _[4] = { 0 }; + PAD_STACK(4); ef_pos.x = pos_x_offset; ef_pos.y = fp->cur_pos.y + ef_offset.y; ef_pos.z = fp->cur_pos.z; @@ -127,12 +125,12 @@ static inline void inlineA0(ftCo_GObj* gobj) void ftCo_PassiveWall_Anim(ftCo_GObj* gobj) { - u8 _[16] = { 0 }; Fighter* fp = GET_FIGHTER(gobj); + PAD_STACK(16); if (fp->mv.co.passivewall.timer != 0) { --fp->mv.co.passivewall.timer; if (fp->mv.co.passivewall.timer == 0) { - ft_80088148(fp, 8, 0x7F, 0x40); + ft_80088148(fp, 8, 127, 64); if (fp->mv.co.passivewall.x8) { inlineA0(gobj); } else { @@ -180,8 +178,8 @@ void ftCo_PassiveWall_IASA(ftCo_GObj* gobj) void ftCo_PassiveWall_Phys(ftCo_GObj* gobj) { - u8 _[8] = { 0 }; Fighter* fp = GET_FIGHTER(gobj); + PAD_STACK(8); if (!fp->mv.co.passivewall.timer) { ftCo_DatAttrs* co = &fp->co_attrs; ftCommon_8007D528(fp); @@ -190,7 +188,7 @@ void ftCo_PassiveWall_Phys(ftCo_GObj* gobj) } else { ftCommon_8007D494(fp, co->grav, co->terminal_vel); } - ftCommon_8007D140(fp, 0, 0, fp->co_attrs.aerial_friction); + ftCommon_8007D140(fp, 0.0F, 0.0F, fp->co_attrs.aerial_friction); } } diff --git a/src/melee/ft/chara/ftNess/ftNs_AttackHi4.c b/src/melee/ft/chara/ftNess/ftNs_AttackHi4.c index f99200658c..d7aba53b87 100644 --- a/src/melee/ft/chara/ftNess/ftNs_AttackHi4.c +++ b/src/melee/ft/chara/ftNess/ftNs_AttackHi4.c @@ -97,6 +97,7 @@ static inline void push_ecb(CollData* a, Vec3* b) s32 ftNs_AttackHi4_YoyoCheckEnvColl(HSD_GObj* gobj, Vec3* ECBUnk, Vec3* ECBUnk2, float float_unk) { + u8 pad[4]; CollData coll; ftCollisionBox ecb; Fighter* fp = gobj->user_data; @@ -121,6 +122,7 @@ s32 ftNs_AttackHi4_YoyoCheckEnvColl(HSD_GObj* gobj, Vec3* ECBUnk, // sp34.cur_topn = ECBUnk2->x0_vec; // guess: there is a "push ECB" function that handles moving current to // old, that got called twice and inlined. + push_ecb(&coll, ECBUnk); push_ecb(&coll, ECBUnk2); diff --git a/src/melee/ft/fighter.c b/src/melee/ft/fighter.c index ed5512c59d..28801ca016 100644 --- a/src/melee/ft/fighter.c +++ b/src/melee/ft/fighter.c @@ -2457,9 +2457,9 @@ void Fighter_8006C27C(Fighter_GObj* gobj) Fighter* fp = (Fighter*) HSD_GObjGetUserData(gobj); if (!fp->x221F_b3) { - if (fp->coll_data.ecb_lock) { - fp->coll_data.ecb_lock--; - if (!fp->coll_data.ecb_lock) { + if (fp->ecb_lock) { + fp->ecb_lock--; + if (!fp->ecb_lock) { ftCommon_8007D5BC(fp); } } diff --git a/src/melee/ft/ft_081B.c b/src/melee/ft/ft_081B.c index 89dd05482d..7dc45c19d5 100644 --- a/src/melee/ft/ft_081B.c +++ b/src/melee/ft/ft_081B.c @@ -24,7 +24,7 @@ void ft_80081B38(HSD_GObj* arg0) f32 temp_f3; temp_r31 = arg0->user_data; - temp_r31->coll_data.ecb_lock = 0; + temp_r31->ecb_lock = 0; temp_r30 = &temp_r31->coll_data; temp_r31->coll_data.cur_topn = temp_r31->cur_pos; temp_r31->coll_data.prev_topn = temp_r31->coll_data.cur_topn; diff --git a/src/melee/ft/ftcommon.c b/src/melee/ft/ftcommon.c index 148974fc38..c87d4ed74b 100644 --- a/src/melee/ft/ftcommon.c +++ b/src/melee/ft/ftcommon.c @@ -584,7 +584,7 @@ bool ftCommon_8007D528(Fighter* fp) void ftCommon_8007D5BC(Fighter* fp) { - fp->coll_data.ecb_lock = 0; + fp->ecb_lock = 0; fp->coll_data.x130_flags &= 0xFFFFFFEF; } @@ -596,7 +596,7 @@ void ftCommon_8007D5D4(Fighter* fp) fp->cur_pos.z = 0; fp->x74_anim_vel.y = 0; fp->x1968_jumpsUsed = 1; - fp->coll_data.ecb_lock = 10; + fp->ecb_lock = 10; fp->coll_data.x130_flags |= (1 << 4); } @@ -610,7 +610,7 @@ void ftCommon_8007D60C(Fighter* fp) fp->gr_vel = 0; fp->x74_anim_vel.y = 0; fp->x1968_jumpsUsed = ca->max_jumps; - fp->coll_data.ecb_lock = 5; + fp->ecb_lock = 5; fp->coll_data.x130_flags |= 0x10; } @@ -636,7 +636,7 @@ void ftCommon_8007D6A4(Fighter* fp) fp->x1968_jumpsUsed = 0; fp->x1969_walljumpUsed = 0; fp->x2227_b0 = 0; - fp->coll_data.ecb_lock = 0; + fp->ecb_lock = 0; fp->coll_data.x130_flags &= 0xFFFFFFEF; if (!ft_80084A18(fp->gobj)) { OSReport("fighter ground no under Id! %d %d\n", fp->player_id, @@ -688,7 +688,7 @@ void ftCommon_8007D7FC(Fighter* fp) fp->x1968_jumpsUsed = 0; fp->x1969_walljumpUsed = 0; fp->x2227_b0 = 0; - fp->coll_data.ecb_lock = 0; + fp->ecb_lock = 0; fp->coll_data.x130_flags &= 0xFFFFFFEF; if (!ft_80084A18(fp->gobj)) { OSReport("fighter ground no under Id! %d %d\n", fp->player_id, diff --git a/src/melee/ft/types.h b/src/melee/ft/types.h index 1308d61ff8..df2243f1c1 100644 --- a/src/melee/ft/types.h +++ b/src/melee/ft/types.h @@ -1164,6 +1164,7 @@ struct Fighter { /* fp+6D8 */ Vec3 x6D8; /* fp+6E4 */ Vec3 x6E4; /* fp+6F0 */ CollData coll_data; + /* fp+88C */ s32 ecb_lock; /* fp+890 */ CameraBox* x890_cameraBox; /* fp+894 */ float cur_anim_frame; /* fp+898 */ float x898_unk; diff --git a/src/melee/it/item.c b/src/melee/it/item.c index fc5fe07d95..0af573da49 100644 --- a/src/melee/it/item.c +++ b/src/melee/it/item.c @@ -571,7 +571,7 @@ static void Item_80267AA8(HSD_GObj* gobj, SpawnItem* spawnItem) item_data->xCC_item_attr = item_data->xC4_article_data->x0_common_attr; item_data->owner = NULL; item_data->xDC8_word.flags.x0 = 0; - item_data->x378_itemColl.ecb_lock = -1; + item_data->ecb_lock = -1; item_data->xDC4 = 0; item_data->xDC8_word.flags.xF = 0; item_data->xCC4 = 0; @@ -931,8 +931,8 @@ static void foobar2(HSD_GObj* gobj) ftLib_80086960(it->owner)) { it->xDC8_word.flags.xE = 1; - it->x378_itemColl.ecb_lock = ftLib_800872A4(it->owner); - ftLib_8008702C(it->x378_itemColl.ecb_lock); + it->ecb_lock = ftLib_800872A4(it->owner); + ftLib_8008702C(it->ecb_lock); } } @@ -1965,9 +1965,9 @@ static void func_8026A8EC_inline1(HSD_GObj* gobj) Item* ip = (Item*) HSD_GObjGetUserData(gobj); if (ip->xDC8_word.flags.xE) { - ftLib_80087050(ip->x378_itemColl.ecb_lock); + ftLib_80087050(ip->ecb_lock); ip->xDC8_word.flags.xE = false; - ip->x378_itemColl.ecb_lock = -1; + ip->ecb_lock = -1; } } diff --git a/src/melee/it/types.h b/src/melee/it/types.h index 659d2cde50..4e0838301c 100644 --- a/src/melee/it/types.h +++ b/src/melee/it/types.h @@ -285,6 +285,7 @@ struct Item { Item_DynamicBones xD4_dynamicBones[24]; s32 x374_dynamicBonesNum; CollData x378_itemColl; + s32 ecb_lock; /// @at{518} @sz{4} /// @brief Item's current owner @@ -589,6 +590,7 @@ typedef struct ItemLink // user_data struct of GObj class 7 u8 flag6 : 1; u8 flag7 : 1; CollData x30_collData; + UNK_T unk; HSD_GObj* x1D0_GObj; HSD_GObj* x1D4_GObjLinkNext; diff --git a/src/melee/lb/types.h b/src/melee/lb/types.h index 31c8d1fbff..39751a9ef0 100644 --- a/src/melee/lb/types.h +++ b/src/melee/lb/types.h @@ -241,7 +241,6 @@ struct CollData { /* fp+850 */ SurfaceData right_wall; /* fp+864 */ SurfaceData left_wall; /* fp+878 */ SurfaceData ceiling; - /* fp+88C */ int ecb_lock; }; #endif