From 6c345b5e63367302287c6202b56c70925ecdb7fa Mon Sep 17 00:00:00 2001 From: Robin Avery Date: Sun, 25 Feb 2024 21:18:40 -0500 Subject: [PATCH] Link `ftPr_SpecialLw` (936 bytes) (#1328) --- .../{ftPr_SpecialLw.s => ftPr_SpecialS.s} | 305 +------------- config/GALE01/splits.txt | 8 +- configure.py | 3 +- obj_files.mk | 3 +- src/melee/ft/chara/ftPurin/ftPr_Init.c | 3 +- src/melee/ft/chara/ftPurin/ftPr_SpecialLw.c | 397 +----------------- src/melee/ft/chara/ftPurin/ftPr_SpecialLw.h | 76 ---- src/melee/ft/chara/ftPurin/ftPr_SpecialS.c | 375 +++++++++++++++++ src/melee/ft/chara/ftPurin/ftPr_SpecialS.h | 85 ++++ src/melee/ft/ftdata.c | 1 + 10 files changed, 490 insertions(+), 766 deletions(-) rename asm/melee/ft/chara/ftPurin/{ftPr_SpecialLw.s => ftPr_SpecialS.s} (95%) create mode 100644 src/melee/ft/chara/ftPurin/ftPr_SpecialS.c create mode 100644 src/melee/ft/chara/ftPurin/ftPr_SpecialS.h diff --git a/asm/melee/ft/chara/ftPurin/ftPr_SpecialLw.s b/asm/melee/ft/chara/ftPurin/ftPr_SpecialS.s similarity index 95% rename from asm/melee/ft/chara/ftPurin/ftPr_SpecialLw.s rename to asm/melee/ft/chara/ftPurin/ftPr_SpecialS.s index 346aeb2ec5..b02dea5c1d 100644 --- a/asm/melee/ft/chara/ftPurin/ftPr_SpecialLw.s +++ b/asm/melee/ft/chara/ftPurin/ftPr_SpecialS.s @@ -1,292 +1,10 @@ .include "macros.inc" -.file "ftPr_SpecialLw.c" +.file "ftPr_SpecialS.c" -# 0x8013CE8C - 0x801422E8 +# 0x8013D234 - 0x801422E8 .text .balign 4 -.fn ftPr_SpecialLw_Enter, global -/* 8013CE8C 00139A6C 7C 08 02 A6 */ mflr r0 -/* 8013CE90 00139A70 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013CE94 00139A74 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8013CE98 00139A78 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8013CE9C 00139A7C 7C 7F 1B 78 */ mr r31, r3 -/* 8013CEA0 00139A80 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 8013CEA4 00139A84 C0 22 A2 40 */ lfs f1, ftPr_Init_804D9C20@sda21(r0) -/* 8013CEA8 00139A88 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 8013CEAC 00139A8C FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8013CEB0 00139A90 40 82 00 28 */ bne .L_8013CED8 -/* 8013CEB4 00139A94 C0 22 A2 44 */ lfs f1, ftPr_Init_804D9C24@sda21(r0) -/* 8013CEB8 00139A98 7F E3 FB 78 */ mr r3, r31 -/* 8013CEBC 00139A9C C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013CEC0 00139AA0 38 80 01 71 */ li r4, 0x171 -/* 8013CEC4 00139AA4 FC 60 08 90 */ fmr f3, f1 -/* 8013CEC8 00139AA8 38 A0 00 00 */ li r5, 0x0 -/* 8013CECC 00139AAC 38 C0 00 00 */ li r6, 0x0 -/* 8013CED0 00139AB0 4B F2 C4 DD */ bl Fighter_ChangeMotionState -/* 8013CED4 00139AB4 48 00 00 24 */ b .L_8013CEF8 -.L_8013CED8: -/* 8013CED8 00139AB8 C0 22 A2 44 */ lfs f1, ftPr_Init_804D9C24@sda21(r0) -/* 8013CEDC 00139ABC 7F E3 FB 78 */ mr r3, r31 -/* 8013CEE0 00139AC0 C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013CEE4 00139AC4 38 80 01 73 */ li r4, 0x173 -/* 8013CEE8 00139AC8 FC 60 08 90 */ fmr f3, f1 -/* 8013CEEC 00139ACC 38 A0 00 00 */ li r5, 0x0 -/* 8013CEF0 00139AD0 38 C0 00 00 */ li r6, 0x0 -/* 8013CEF4 00139AD4 4B F2 C4 B9 */ bl Fighter_ChangeMotionState -.L_8013CEF8: -/* 8013CEF8 00139AD8 7F E3 FB 78 */ mr r3, r31 -/* 8013CEFC 00139ADC 4B F3 1C A9 */ bl ftAnim_8006EBA4 -/* 8013CF00 00139AE0 80 9F 00 2C */ lwz r4, 0x2c(r31) -/* 8013CF04 00139AE4 38 00 00 00 */ li r0, 0x0 -/* 8013CF08 00139AE8 3C 60 80 14 */ lis r3, ftPr_SpecialHi_8013CE7C@ha -/* 8013CF0C 00139AEC 90 04 22 00 */ stw r0, 0x2200(r4) -/* 8013CF10 00139AF0 38 03 CE 7C */ addi r0, r3, ftPr_SpecialHi_8013CE7C@l -/* 8013CF14 00139AF4 90 04 21 BC */ stw r0, 0x21bc(r4) -/* 8013CF18 00139AF8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8013CF1C 00139AFC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8013CF20 00139B00 38 21 00 20 */ addi r1, r1, 0x20 -/* 8013CF24 00139B04 7C 08 03 A6 */ mtlr r0 -/* 8013CF28 00139B08 4E 80 00 20 */ blr -.endfn ftPr_SpecialLw_Enter - -.fn ftPr_SpecialAirLw_Enter, global -/* 8013CF2C 00139B0C 7C 08 02 A6 */ mflr r0 -/* 8013CF30 00139B10 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013CF34 00139B14 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8013CF38 00139B18 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8013CF3C 00139B1C 7C 7F 1B 78 */ mr r31, r3 -/* 8013CF40 00139B20 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 8013CF44 00139B24 C0 22 A2 40 */ lfs f1, ftPr_Init_804D9C20@sda21(r0) -/* 8013CF48 00139B28 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 8013CF4C 00139B2C FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8013CF50 00139B30 40 82 00 28 */ bne .L_8013CF78 -/* 8013CF54 00139B34 C0 22 A2 44 */ lfs f1, ftPr_Init_804D9C24@sda21(r0) -/* 8013CF58 00139B38 7F E3 FB 78 */ mr r3, r31 -/* 8013CF5C 00139B3C C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013CF60 00139B40 38 80 01 72 */ li r4, 0x172 -/* 8013CF64 00139B44 FC 60 08 90 */ fmr f3, f1 -/* 8013CF68 00139B48 38 A0 00 00 */ li r5, 0x0 -/* 8013CF6C 00139B4C 38 C0 00 00 */ li r6, 0x0 -/* 8013CF70 00139B50 4B F2 C4 3D */ bl Fighter_ChangeMotionState -/* 8013CF74 00139B54 48 00 00 24 */ b .L_8013CF98 -.L_8013CF78: -/* 8013CF78 00139B58 C0 22 A2 44 */ lfs f1, ftPr_Init_804D9C24@sda21(r0) -/* 8013CF7C 00139B5C 7F E3 FB 78 */ mr r3, r31 -/* 8013CF80 00139B60 C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013CF84 00139B64 38 80 01 74 */ li r4, 0x174 -/* 8013CF88 00139B68 FC 60 08 90 */ fmr f3, f1 -/* 8013CF8C 00139B6C 38 A0 00 00 */ li r5, 0x0 -/* 8013CF90 00139B70 38 C0 00 00 */ li r6, 0x0 -/* 8013CF94 00139B74 4B F2 C4 19 */ bl Fighter_ChangeMotionState -.L_8013CF98: -/* 8013CF98 00139B78 7F E3 FB 78 */ mr r3, r31 -/* 8013CF9C 00139B7C 4B F3 1C 09 */ bl ftAnim_8006EBA4 -/* 8013CFA0 00139B80 80 9F 00 2C */ lwz r4, 0x2c(r31) -/* 8013CFA4 00139B84 38 00 00 00 */ li r0, 0x0 -/* 8013CFA8 00139B88 3C 60 80 14 */ lis r3, ftPr_SpecialHi_8013CE7C@ha -/* 8013CFAC 00139B8C 90 04 22 00 */ stw r0, 0x2200(r4) -/* 8013CFB0 00139B90 38 03 CE 7C */ addi r0, r3, ftPr_SpecialHi_8013CE7C@l -/* 8013CFB4 00139B94 90 04 21 BC */ stw r0, 0x21bc(r4) -/* 8013CFB8 00139B98 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8013CFBC 00139B9C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8013CFC0 00139BA0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8013CFC4 00139BA4 7C 08 03 A6 */ mtlr r0 -/* 8013CFC8 00139BA8 4E 80 00 20 */ blr -.endfn ftPr_SpecialAirLw_Enter - -.fn ftPr_SpecialLw_Anim, global -/* 8013CFCC 00139BAC 7C 08 02 A6 */ mflr r0 -/* 8013CFD0 00139BB0 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013CFD4 00139BB4 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8013CFD8 00139BB8 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8013CFDC 00139BBC 7C 7F 1B 78 */ mr r31, r3 -/* 8013CFE0 00139BC0 4B F3 22 59 */ bl ftAnim_IsFramesRemaining -/* 8013CFE4 00139BC4 2C 03 00 00 */ cmpwi r3, 0x0 -/* 8013CFE8 00139BC8 40 82 00 0C */ bne .L_8013CFF4 -/* 8013CFEC 00139BCC 7F E3 FB 78 */ mr r3, r31 -/* 8013CFF0 00139BD0 4B F4 D2 CD */ bl ft_8008A2BC -.L_8013CFF4: -/* 8013CFF4 00139BD4 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8013CFF8 00139BD8 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8013CFFC 00139BDC 38 21 00 18 */ addi r1, r1, 0x18 -/* 8013D000 00139BE0 7C 08 03 A6 */ mtlr r0 -/* 8013D004 00139BE4 4E 80 00 20 */ blr -.endfn ftPr_SpecialLw_Anim - -.fn ftPr_SpecialAirLw_Anim, global -/* 8013D008 00139BE8 7C 08 02 A6 */ mflr r0 -/* 8013D00C 00139BEC 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013D010 00139BF0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8013D014 00139BF4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8013D018 00139BF8 7C 7F 1B 78 */ mr r31, r3 -/* 8013D01C 00139BFC 4B F3 22 1D */ bl ftAnim_IsFramesRemaining -/* 8013D020 00139C00 2C 03 00 00 */ cmpwi r3, 0x0 -/* 8013D024 00139C04 40 82 00 0C */ bne .L_8013D030 -/* 8013D028 00139C08 7F E3 FB 78 */ mr r3, r31 -/* 8013D02C 00139C0C 4B F8 F7 05 */ bl ftCo_800CC730 -.L_8013D030: -/* 8013D030 00139C10 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8013D034 00139C14 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8013D038 00139C18 38 21 00 18 */ addi r1, r1, 0x18 -/* 8013D03C 00139C1C 7C 08 03 A6 */ mtlr r0 -/* 8013D040 00139C20 4E 80 00 20 */ blr -.endfn ftPr_SpecialAirLw_Anim - -.fn ftPr_SpecialLw_IASA, global -/* 8013D044 00139C24 4E 80 00 20 */ blr -.endfn ftPr_SpecialLw_IASA - -.fn ftPr_SpecialAirLw_IASA, global -/* 8013D048 00139C28 4E 80 00 20 */ blr -.endfn ftPr_SpecialAirLw_IASA - -.fn ftPr_SpecialLw_Phys, global -/* 8013D04C 00139C2C 7C 08 02 A6 */ mflr r0 -/* 8013D050 00139C30 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013D054 00139C34 94 21 FF F8 */ stwu r1, -0x8(r1) -/* 8013D058 00139C38 4B F4 7E E5 */ bl ft_80084F3C -/* 8013D05C 00139C3C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8013D060 00139C40 38 21 00 08 */ addi r1, r1, 0x8 -/* 8013D064 00139C44 7C 08 03 A6 */ mtlr r0 -/* 8013D068 00139C48 4E 80 00 20 */ blr -.endfn ftPr_SpecialLw_Phys - -.fn ftPr_SpecialAirLw_Phys, global -/* 8013D06C 00139C4C 7C 08 02 A6 */ mflr r0 -/* 8013D070 00139C50 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013D074 00139C54 94 21 FF F8 */ stwu r1, -0x8(r1) -/* 8013D078 00139C58 4B F4 7E 75 */ bl ft_80084EEC -/* 8013D07C 00139C5C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8013D080 00139C60 38 21 00 08 */ addi r1, r1, 0x8 -/* 8013D084 00139C64 7C 08 03 A6 */ mtlr r0 -/* 8013D088 00139C68 4E 80 00 20 */ blr -.endfn ftPr_SpecialAirLw_Phys - -.fn ftPr_SpecialLw_Coll, global -/* 8013D08C 00139C6C 7C 08 02 A6 */ mflr r0 -/* 8013D090 00139C70 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013D094 00139C74 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8013D098 00139C78 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8013D09C 00139C7C 7C 7F 1B 78 */ mr r31, r3 -/* 8013D0A0 00139C80 4B F4 57 01 */ bl ft_800827A0 -/* 8013D0A4 00139C84 2C 03 00 00 */ cmpwi r3, 0x0 -/* 8013D0A8 00139C88 40 82 00 0C */ bne .L_8013D0B4 -/* 8013D0AC 00139C8C 7F E3 FB 78 */ mr r3, r31 -/* 8013D0B0 00139C90 48 00 00 55 */ bl ftPr_SpecialLw_8013D104 -.L_8013D0B4: -/* 8013D0B4 00139C94 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8013D0B8 00139C98 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8013D0BC 00139C9C 38 21 00 18 */ addi r1, r1, 0x18 -/* 8013D0C0 00139CA0 7C 08 03 A6 */ mtlr r0 -/* 8013D0C4 00139CA4 4E 80 00 20 */ blr -.endfn ftPr_SpecialLw_Coll - -.fn ftPr_SpecialAirLw_Coll, global -/* 8013D0C8 00139CA8 7C 08 02 A6 */ mflr r0 -/* 8013D0CC 00139CAC 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013D0D0 00139CB0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8013D0D4 00139CB4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8013D0D8 00139CB8 7C 7F 1B 78 */ mr r31, r3 -/* 8013D0DC 00139CBC 4B F4 4C 31 */ bl ft_80081D0C -/* 8013D0E0 00139CC0 2C 03 00 00 */ cmpwi r3, 0x0 -/* 8013D0E4 00139CC4 41 82 00 0C */ beq .L_8013D0F0 -/* 8013D0E8 00139CC8 7F E3 FB 78 */ mr r3, r31 -/* 8013D0EC 00139CCC 48 00 00 B1 */ bl ftPr_SpecialLw_8013D19C -.L_8013D0F0: -/* 8013D0F0 00139CD0 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8013D0F4 00139CD4 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8013D0F8 00139CD8 38 21 00 18 */ addi r1, r1, 0x18 -/* 8013D0FC 00139CDC 7C 08 03 A6 */ mtlr r0 -/* 8013D100 00139CE0 4E 80 00 20 */ blr -.endfn ftPr_SpecialAirLw_Coll - -.fn ftPr_SpecialLw_8013D104, global -/* 8013D104 00139CE4 7C 08 02 A6 */ mflr r0 -/* 8013D108 00139CE8 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013D10C 00139CEC 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8013D110 00139CF0 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8013D114 00139CF4 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8013D118 00139CF8 7C 7E 1B 78 */ mr r30, r3 -/* 8013D11C 00139CFC 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 8013D120 00139D00 7F E3 FB 78 */ mr r3, r31 -/* 8013D124 00139D04 4B F4 04 B1 */ bl ftCommon_8007D5D4 -/* 8013D128 00139D08 C0 22 A2 40 */ lfs f1, ftPr_Init_804D9C20@sda21(r0) -/* 8013D12C 00139D0C C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 8013D130 00139D10 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8013D134 00139D14 40 82 00 2C */ bne .L_8013D160 -/* 8013D138 00139D18 3C 80 0C 4C */ lis r4, 0xc4c -/* 8013D13C 00139D1C C0 3F 08 94 */ lfs f1, 0x894(r31) -/* 8013D140 00139D20 C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013D144 00139D24 7F C3 F3 78 */ mr r3, r30 -/* 8013D148 00139D28 C0 62 A2 44 */ lfs f3, ftPr_Init_804D9C24@sda21(r0) -/* 8013D14C 00139D2C 38 A4 50 8E */ addi r5, r4, 0x508e -/* 8013D150 00139D30 38 80 01 72 */ li r4, 0x172 -/* 8013D154 00139D34 38 C0 00 00 */ li r6, 0x0 -/* 8013D158 00139D38 4B F2 C2 55 */ bl Fighter_ChangeMotionState -/* 8013D15C 00139D3C 48 00 00 28 */ b .L_8013D184 -.L_8013D160: -/* 8013D160 00139D40 3C 80 0C 4C */ lis r4, 0xc4c -/* 8013D164 00139D44 C0 3F 08 94 */ lfs f1, 0x894(r31) -/* 8013D168 00139D48 C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013D16C 00139D4C 7F C3 F3 78 */ mr r3, r30 -/* 8013D170 00139D50 C0 62 A2 44 */ lfs f3, ftPr_Init_804D9C24@sda21(r0) -/* 8013D174 00139D54 38 A4 50 8E */ addi r5, r4, 0x508e -/* 8013D178 00139D58 38 80 01 74 */ li r4, 0x174 -/* 8013D17C 00139D5C 38 C0 00 00 */ li r6, 0x0 -/* 8013D180 00139D60 4B F2 C2 2D */ bl Fighter_ChangeMotionState -.L_8013D184: -/* 8013D184 00139D64 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8013D188 00139D68 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8013D18C 00139D6C 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8013D190 00139D70 38 21 00 18 */ addi r1, r1, 0x18 -/* 8013D194 00139D74 7C 08 03 A6 */ mtlr r0 -/* 8013D198 00139D78 4E 80 00 20 */ blr -.endfn ftPr_SpecialLw_8013D104 - -.fn ftPr_SpecialLw_8013D19C, global -/* 8013D19C 00139D7C 7C 08 02 A6 */ mflr r0 -/* 8013D1A0 00139D80 90 01 00 04 */ stw r0, 0x4(r1) -/* 8013D1A4 00139D84 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8013D1A8 00139D88 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8013D1AC 00139D8C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8013D1B0 00139D90 7C 7E 1B 78 */ mr r30, r3 -/* 8013D1B4 00139D94 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 8013D1B8 00139D98 7F E3 FB 78 */ mr r3, r31 -/* 8013D1BC 00139D9C 4B F4 06 41 */ bl ftCommon_8007D7FC -/* 8013D1C0 00139DA0 C0 22 A2 40 */ lfs f1, ftPr_Init_804D9C20@sda21(r0) -/* 8013D1C4 00139DA4 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 8013D1C8 00139DA8 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8013D1CC 00139DAC 40 82 00 2C */ bne .L_8013D1F8 -/* 8013D1D0 00139DB0 3C 80 0C 4C */ lis r4, 0xc4c -/* 8013D1D4 00139DB4 C0 3F 08 94 */ lfs f1, 0x894(r31) -/* 8013D1D8 00139DB8 C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013D1DC 00139DBC 7F C3 F3 78 */ mr r3, r30 -/* 8013D1E0 00139DC0 C0 62 A2 44 */ lfs f3, ftPr_Init_804D9C24@sda21(r0) -/* 8013D1E4 00139DC4 38 A4 50 8E */ addi r5, r4, 0x508e -/* 8013D1E8 00139DC8 38 80 01 71 */ li r4, 0x171 -/* 8013D1EC 00139DCC 38 C0 00 00 */ li r6, 0x0 -/* 8013D1F0 00139DD0 4B F2 C1 BD */ bl Fighter_ChangeMotionState -/* 8013D1F4 00139DD4 48 00 00 28 */ b .L_8013D21C -.L_8013D1F8: -/* 8013D1F8 00139DD8 3C 80 0C 4C */ lis r4, 0xc4c -/* 8013D1FC 00139DDC C0 3F 08 94 */ lfs f1, 0x894(r31) -/* 8013D200 00139DE0 C0 42 A2 48 */ lfs f2, ftPr_Init_804D9C28@sda21(r0) -/* 8013D204 00139DE4 7F C3 F3 78 */ mr r3, r30 -/* 8013D208 00139DE8 C0 62 A2 44 */ lfs f3, ftPr_Init_804D9C24@sda21(r0) -/* 8013D20C 00139DEC 38 A4 50 8E */ addi r5, r4, 0x508e -/* 8013D210 00139DF0 38 80 01 73 */ li r4, 0x173 -/* 8013D214 00139DF4 38 C0 00 00 */ li r6, 0x0 -/* 8013D218 00139DF8 4B F2 C1 95 */ bl Fighter_ChangeMotionState -.L_8013D21C: -/* 8013D21C 00139DFC 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8013D220 00139E00 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8013D224 00139E04 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8013D228 00139E08 38 21 00 18 */ addi r1, r1, 0x18 -/* 8013D22C 00139E0C 7C 08 03 A6 */ mtlr r0 -/* 8013D230 00139E10 4E 80 00 20 */ blr -.endfn ftPr_SpecialLw_8013D19C - .fn ftPr_SpecialS_Enter, global /* 8013D234 00139E14 7C 08 02 A6 */ mflr r0 /* 8013D238 00139E18 38 80 01 6B */ li r4, 0x16b @@ -6094,27 +5812,10 @@ .4byte 0x65000000 .endobj ftPr_Init_804D3EA8 -# 0x804D9C20 - 0x804D9C98 +# 0x804D9C30 - 0x804D9C98 .section .sdata2, "a" .balign 8 -.obj ftPr_Init_804D9C20, global - .float -1 -.endobj ftPr_Init_804D9C20 - -.obj ftPr_Init_804D9C24, global - .float 0 -.endobj ftPr_Init_804D9C24 - -.obj ftPr_Init_804D9C28, global - .float 1 -.endobj ftPr_Init_804D9C28 - -.obj gap_11_804D9C2C_sdata2, global -.hidden gap_11_804D9C2C_sdata2 - .4byte 0x00000000 -.endobj gap_11_804D9C2C_sdata2 - .obj ftPr_Init_804D9C30, global .float 0 .endobj ftPr_Init_804D9C30 diff --git a/config/GALE01/splits.txt b/config/GALE01/splits.txt index 4ee9783a8a..457006b607 100644 --- a/config/GALE01/splits.txt +++ b/config/GALE01/splits.txt @@ -1289,9 +1289,13 @@ melee/ft/chara/ftPurin/ftPr_SpecialHi.c: .sdata2 start:0x804D9C10 end:0x804D9C1C melee/ft/chara/ftPurin/ftPr_SpecialLw.c: - .text start:0x8013CE8C end:0x801422E8 + .text start:0x8013CE8C end:0x8013D234 + .sdata2 start:0x804D9C20 end:0x804D9C2C + +melee/ft/chara/ftPurin/ftPr_SpecialS.c: + .text start:0x8013D234 end:0x801422E8 .sdata start:0x804D3E98 end:0x804D3EB0 - .sdata2 start:0x804D9C20 end:0x804D9C98 + .sdata2 start:0x804D9C30 end:0x804D9C98 melee/ft/chara/ftLuigi/ftLg_Init.c: .text start:0x801422E8 end:0x8014267C diff --git a/configure.py b/configure.py index ade8486d71..9c37ead489 100755 --- a/configure.py +++ b/configure.py @@ -640,7 +640,8 @@ def RuntimeLib(lib_name: str, objects: Objects) -> LibDict: # Jigglypuff Object(Matching, "melee/ft/chara/ftPurin/ftPr_Init.c"), Object(Matching, "melee/ft/chara/ftPurin/ftPr_SpecialHi.c"), - Object(NonMatching, "melee/ft/chara/ftPurin/ftPr_SpecialLw.c"), + Object(Matching, "melee/ft/chara/ftPurin/ftPr_SpecialLw.c"), + Object(NonMatching, "melee/ft/chara/ftPurin/ftPr_SpecialS.c"), # Luigi Object(Matching, "melee/ft/chara/ftLuigi/ftLg_Init.c"), Object(Matching, "melee/ft/chara/ftLuigi/ftLg_SpecialN.c"), diff --git a/obj_files.mk b/obj_files.mk index 5f20b45891..54ec150cd6 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -335,7 +335,8 @@ TEXT_O_FILES +=\ TEXT_O_FILES +=\ $(BUILD_DIR)/src/melee/ft/chara/ftPurin/ftPr_Init.c.o\ $(BUILD_DIR)/src/melee/ft/chara/ftPurin/ftPr_SpecialHi.c.o\ - $(BUILD_DIR)/asm/melee/ft/chara/ftPurin/ftPr_SpecialLw.s.o\ + $(BUILD_DIR)/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.c.o\ + $(BUILD_DIR)/asm/melee/ft/chara/ftPurin/ftPr_SpecialS.s.o\ TEXT_O_FILES +=\ $(BUILD_DIR)/src/melee/ft/chara/ftLuigi/ftLg_Init.c.o\ diff --git a/src/melee/ft/chara/ftPurin/ftPr_Init.c b/src/melee/ft/chara/ftPurin/ftPr_Init.c index 3e51af4eea..3cf020a52e 100644 --- a/src/melee/ft/chara/ftPurin/ftPr_Init.c +++ b/src/melee/ft/chara/ftPurin/ftPr_Init.c @@ -4,6 +4,8 @@ #include "ftPr_SpecialHi.h" #include "ftPr_SpecialLw.h" +#include "ftPr_SpecialS.h" +#include "types.h" #include "ef/eflib.h" #include "ef/efsync.h" @@ -16,7 +18,6 @@ #include "ft/ftparts.h" #include "ft/types.h" #include "ftCommon/ftCo_09CB.h" -#include "ftPurin/types.h" #include "it/it_26B1.h" #include diff --git a/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.c b/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.c index eedd6c99cf..75fbd198ab 100644 --- a/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.c +++ b/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.c @@ -6,13 +6,11 @@ #include "ft/fighter.h" #include "ft/ft_081B.h" -#include "ft/ft_0881.h" #include "ft/ft_0892.h" #include "ft/ft_0C88.h" #include "ft/ftanim.h" #include "ft/ftcommon.h" #include "ft/types.h" -#include "ftPurin/types.h" #include #include @@ -21,23 +19,15 @@ #include #include -extern float const ftPr_Init_804D9C20; -extern float const ftPr_Init_804D9C24; -extern float const ftPr_Init_804D9C28; - void ftPr_SpecialLw_Enter(Fighter_GObj* gobj) { Fighter* fp = gobj->user_data; u8 _[8]; - if (ftPr_Init_804D9C20 == fp->facing_dir) { - Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialLwL, 0U, - ftPr_Init_804D9C24, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); + if (-1 == fp->facing_dir) { + Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialLwL, 0U, 0, 1, 0, NULL); } else { - Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialLwR, 0U, - ftPr_Init_804D9C24, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); + Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialLwR, 0U, 0, 1, 0, NULL); } ftAnim_8006EBA4(gobj); fp = gobj->user_data; @@ -50,14 +40,12 @@ void ftPr_SpecialAirLw_Enter(Fighter_GObj* gobj) Fighter* fp = gobj->user_data; u8 _[8]; - if (ftPr_Init_804D9C20 == fp->facing_dir) { - Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirLwL, 0U, - ftPr_Init_804D9C24, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); + if (-1 == fp->facing_dir) { + Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirLwL, 0U, 0, 1, 0, + NULL); } else { - Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirLwR, 0U, - ftPr_Init_804D9C24, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); + Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirLwR, 0U, 0, 1, 0, + NULL); } ftAnim_8006EBA4(gobj); fp = gobj->user_data; @@ -111,381 +99,24 @@ void ftPr_SpecialLw_8013D104(Fighter_GObj* gobj) { Fighter* fp = gobj->user_data; ftCommon_8007D5D4(fp); - if (ftPr_Init_804D9C20 == fp->facing_dir) { + if (-1 == fp->facing_dir) { Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirLwL, 0x0C4C508EU, - fp->cur_anim_frame, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); + fp->cur_anim_frame, 1, 0, NULL); return; } Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirLwR, 0x0C4C508EU, - fp->cur_anim_frame, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); + fp->cur_anim_frame, 1, 0, NULL); } void ftPr_SpecialLw_8013D19C(Fighter_GObj* gobj) { Fighter* fp = gobj->user_data; ftCommon_8007D7FC(fp); - if (ftPr_Init_804D9C20 == fp->facing_dir) { + if (-1 == fp->facing_dir) { Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialLwL, 0x0C4C508EU, - fp->cur_anim_frame, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); + fp->cur_anim_frame, 1, 0, NULL); return; } Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialLwR, 0x0C4C508EU, - fp->cur_anim_frame, ftPr_Init_804D9C28, - ftPr_Init_804D9C24, NULL); -} - -extern float const ftPr_Init_804D9C30; -extern float const ftPr_Init_804D9C38; - -void ftPr_SpecialS_Enter(Fighter_GObj* fighter_gobj) -{ - Fighter* fighter = GET_FIGHTER(fighter_gobj); - Fighter_ChangeMotionState(fighter_gobj, 0x16B, 0, ftPr_Init_804D9C30, - ftPr_Init_804D9C38, ftPr_Init_804D9C30, NULL); - ftAnim_8006EBA4(fighter_gobj); - fighter->cmd_vars[0] = fighter->cmd_vars[1] = fighter->cmd_vars[2] = - fighter->cmd_vars[3] = 0; -} - -void ftPr_SpecialAirS_Enter(Fighter_GObj* fighter_gobj) -{ - Fighter* fighter = GET_FIGHTER(fighter_gobj); - - Fighter_ChangeMotionState(fighter_gobj, 0x16C, 0, ftPr_Init_804D9C30, - ftPr_Init_804D9C38, ftPr_Init_804D9C30, NULL); - ftAnim_8006EBA4(fighter_gobj); - fighter->cmd_vars[0] = fighter->cmd_vars[1] = fighter->cmd_vars[2] = - fighter->cmd_vars[3] = 0; -} - -void ftPr_SpecialS_Anim(Fighter_GObj* gobj) -{ - if (ftAnim_IsFramesRemaining(gobj) == 0) { - ft_8008A2BC(gobj); - } -} - -void ftPr_SpecialAirS_Anim(Fighter_GObj* gobj) -{ - if (ftAnim_IsFramesRemaining(gobj) == 0) { - ftCo_800CC730(gobj); - } -} - -void ftPr_SpecialS_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialAirS_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialS_Phys(Fighter_GObj* gobj) -{ - ft_80084FA8(gobj); -} - -extern float const ftPr_Init_804D9C34; - -/// #ftPr_SpecialAirS_Phys - -void ftPr_SpecialS_Coll(Fighter_GObj* gobj) -{ - if (ft_800827A0(gobj) == GA_Ground) { - ftPr_SpecialS_8013D590(gobj); - } -} - -void ftPr_SpecialAirS_Coll(Fighter_GObj* gobj) -{ - if (ft_80081D0C(gobj) != GA_Ground) { - ftPr_SpecialS_8013D5F0(gobj); - } -} - -void ftPr_SpecialS_8013D590(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - ftCommon_8007D5D4(fp); - Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirS, 0x0C4C508AU, - fp->cur_anim_frame, ftPr_Init_804D9C38, - ftPr_Init_804D9C30, NULL); -} - -void ftPr_SpecialS_8013D5F0(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - ftCommon_8007D7FC(fp); - Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialS, 0x0C4C508AU, - fp->cur_anim_frame, ftPr_Init_804D9C38, - ftPr_Init_804D9C30, NULL); - ftCommon_8007D468(fp); -} - -extern char* ftPr_Init_804D3E98; -extern char* ftPr_Init_804D3EA0; -extern char* ftPr_Init_804D3EA8; -extern f64 const ftPr_Init_804D9C40; -extern float const ftPr_Init_804D9C48; - -/// #ftPr_SpecialS_8013D658 - -extern float const ftPr_Init_804D9C4C; - -/// #ftPr_SpecialS_8013D764 - -void ftPr_SpecialS_8013D8B0(Fighter_GObj* gobj) -{ - ft_80089824(gobj); - ft_800892A0(gobj); -} - -/// #ftPr_SpecialS_8013D8E4 - -extern float const ftPr_Init_804D9C50; - -/// #ftPr_SpecialS_8013DA24 - -/// #ftPr_SpecialS_8013DC64 - -extern f64 const ftPr_Init_804D9C58; -extern float const ftPr_Init_804D9C60; - -/// #ftPr_SpecialS_8013DD54 - -/// #ftPr_SpecialN_Enter - -/// #ftPr_SpecialAirN_Enter - -extern float const ftPr_Init_804D9C64; - -/// #ftPr_SpecialNStart_Anim - -extern float const ftPr_Init_804D9C68; -extern f64 const ftPr_Init_804D9C70; - -/// #ftPr_SpecialNLoop_Anim - -/// #ftPr_SpecialNFull_Anim - -extern f64 const ftPr_Init_804D9C78; -extern f64 const ftPr_Init_804D9C80; -extern f64 const ftPr_Init_804D9C88; - -/// #ftPr_SpecialNRelease_Anim - -/// #ftPr_SpecialNTurn_Anim - -/// #ftPr_SpecialNEnd_Anim - -/// #ftPr_SpecialAirNStart_Anim - -/// #ftPr_SpecialAirNChargeLoop_Anim - -/// #ftPr_SpecialAirNChargeFull_Anim - -/// #ftPr_SpecialAirNChargeRelease_Anim - -/// #ftPr_SpecialAirNStartTurn_Anim - -/// #ftPr_SpecialAirNEnd_Anim - -/// #ftPr_SpecialNHit_Anim - -void ftPr_SpecialNStart_IASA(HSD_GObj* arg0) {} - -/// #ftPr_SpecialNLoop_IASA - -/// #ftPr_SpecialNFull_IASA - -extern float const ftPr_Init_804D9C90; - -/// #ftPr_SpecialNRelease_IASA - -void ftPr_SpecialNTurn_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialNEnd_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialAirNStart_IASA(HSD_GObj* arg0) {} - -/// #ftPr_SpecialAirNChargeLoop_IASA - -/// #ftPr_SpecialAirNChargeFull_IASA - -void ftPr_SpecialAirNChargeRelease_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialAirNStartTurn_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialAirNEnd_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialNHit_IASA(HSD_GObj* arg0) {} - -void ftPr_SpecialNStart_Phys(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - fp->xE4_ground_accel_1 = ftPr_Init_804D9C48; - fp->gr_vel = ftPr_Init_804D9C48; - fp->self_vel.x = ftPr_Init_804D9C64 * fp->facing_dir; - fp->self_vel.y = ftPr_Init_804D9C48; - fp->x74_anim_vel.y = ftPr_Init_804D9C48; - fp->x74_anim_vel.x = ftPr_Init_804D9C48; -} - -void ftPr_SpecialNLoop_Phys(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - fp->xE4_ground_accel_1 = ftPr_Init_804D9C48; - fp->gr_vel = ftPr_Init_804D9C48; - fp->self_vel.x = ftPr_Init_804D9C64 * fp->facing_dir; - fp->self_vel.y = ftPr_Init_804D9C48; - fp->x74_anim_vel.y = ftPr_Init_804D9C48; - fp->x74_anim_vel.x = ftPr_Init_804D9C48; -} - -void ftPr_SpecialNFull_Phys(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - fp->xE4_ground_accel_1 = ftPr_Init_804D9C48; - fp->gr_vel = ftPr_Init_804D9C48; - fp->self_vel.x = ftPr_Init_804D9C64 * fp->facing_dir; - fp->self_vel.y = ftPr_Init_804D9C48; - fp->x74_anim_vel.y = ftPr_Init_804D9C48; - fp->x74_anim_vel.x = ftPr_Init_804D9C48; -} - -/// #ftPr_SpecialNRelease_Phys - -/// #ftPr_SpecialNTurn_Phys - -void ftPr_SpecialNEnd_Phys(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - ftCommon_8007C930(fp, fp->co_attrs.gr_friction); - ftCommon_8007CB74(gobj); + fp->cur_anim_frame, 1, 0, NULL); } - -void ftPr_SpecialAirNStart_Phys(HSD_GObj* gobj) -{ - Fighter* fp; - ftPurinAttributes* da; - - fp = gobj->user_data; - da = fp->dat_attrs; - ftCommon_8007D494(fp, da->x3C, da->x40); -} - -void ftPr_SpecialAirNChargeLoop_Phys(HSD_GObj* gobj) -{ - Fighter* fp; - ftPurinAttributes* da; - - fp = gobj->user_data; - da = fp->dat_attrs; - ftCommon_8007D494(fp, da->x3C, da->x40); -} - -void ftPr_SpecialAirNChargeFull_Phys(HSD_GObj* gobj) -{ - Fighter* fp; - ftPurinAttributes* da; - - fp = gobj->user_data; - da = fp->dat_attrs; - ftCommon_8007D494(fp, da->x3C, da->x40); -} - -/// #ftPr_SpecialAirNChargeRelease_Phys - -/// #ftPr_SpecialAirNStartTurn_Phys - -void ftPr_SpecialAirNEnd_Phys(HSD_GObj* gobj) -{ - Fighter* fp; - ftPurinAttributes* da; - - fp = gobj->user_data; - da = fp->dat_attrs; - ftCommon_8007D494(fp, da->x3C, da->x40); -} - -void ftPr_SpecialNHit_Phys(HSD_GObj* gobj) -{ - Fighter* fp; - ftPurinAttributes* da; - u8 _[8]; - - fp = gobj->user_data; - da = fp->dat_attrs; - - if (fp->self_vel.y <= -da->x40) { - ftCommon_8007D268(fp); - } - ftCommon_8007D494(fp, da->x3C, da->x40); -} - -// Non-matching due to float allocation https://decomp.me/scratch/OYlcJ -void ftPr_SpecialNStart_Coll(HSD_GObj* gobj) -{ - s32 state; - Fighter* fp; - u8 _[8]; - - fp = gobj->user_data; - if (ft_80082708((Fighter_GObj*) gobj) == GA_Ground) { - ftCommon_8007D5D4(fp); - if (ftPr_Init_804D9C50 == fp->mv.pr.specialn.x34) { - state = ftPr_MS_SpecialAirNStartR; - } else { - state = ftPr_MS_SpecialAirNStartL; - } - Fighter_ChangeMotionState((Fighter_GObj*) gobj, state, 0x0C4C5092U, - fp->cur_anim_frame, ftPr_Init_804D9C50, - ftPr_Init_804D9C48, NULL); - fp = gobj->user_data; - fp->death2_cb = ftPr_SpecialS_8013D658; - fp->take_dmg_cb = ftPr_SpecialS_8013D658; - fp->deal_dmg_cb = ftPr_SpecialS_8013D764; - fp->x21F8 = ftPr_SpecialN_8014222C; - } -} - -/// #ftPr_SpecialNLoop_Coll - -/// #ftPr_SpecialNFull_Coll - -extern float const ftPr_Init_804D9C54; - -/// #ftPr_SpecialNRelease_Coll - -/// #ftPr_SpecialNTurn_Coll - -void ftPr_SpecialNEnd_Coll(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - if (ft_80082708(gobj) == GA_Ground) { - ftCommon_8007D5D4(fp); - ftPr_SpecialS_8013DA24(gobj, 1, 0x0C4C5092, fp->cur_anim_frame); - } -} - -/// #ftPr_SpecialAirNStart_Coll - -/// #ftPr_SpecialAirNChargeLoop_Coll - -/// #ftPr_SpecialAirNChargeFull_Coll - -/// #ftPr_SpecialAirNChargeRelease_Coll - -/// #ftPr_SpecialAirNStartTurn_Coll - -void ftPr_SpecialAirNEnd_Coll(Fighter_GObj* gobj) -{ - Fighter* fp = gobj->user_data; - if (ft_80081D0C(gobj) != GA_Ground) { - ftCommon_8007D7FC(fp); - ftPr_SpecialS_8013DA24(gobj, 0, 0x0C4C5092, fp->cur_anim_frame); - } -} - -/// #ftPr_SpecialNHit_Coll - -/// #ftPr_SpecialN_8014222C diff --git a/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.h b/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.h index a25c80bb35..74803a9379 100644 --- a/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.h +++ b/src/melee/ft/chara/ftPurin/ftPr_SpecialLw.h @@ -1,7 +1,6 @@ #ifndef GALE01_13CE8C #define GALE01_13CE8C -#include "ft/forward.h" #include /* 13CE8C */ void ftPr_SpecialLw_Enter(HSD_GObj* gobj); @@ -16,80 +15,5 @@ /* 13D0C8 */ void ftPr_SpecialAirLw_Coll(HSD_GObj* gobj); /* 13D104 */ void ftPr_SpecialLw_8013D104(HSD_GObj* gobj); /* 13D19C */ void ftPr_SpecialLw_8013D19C(HSD_GObj* gobj); -/* 13D234 */ void ftPr_SpecialS_Enter(HSD_GObj* gobj); -/* 13D2A0 */ void ftPr_SpecialAirS_Enter(HSD_GObj* gobj); -/* 13D30C */ void ftPr_SpecialS_Anim(HSD_GObj* gobj); -/* 13D348 */ void ftPr_SpecialAirS_Anim(HSD_GObj* gobj); -/* 13D384 */ void ftPr_SpecialS_IASA(HSD_GObj* gobj); -/* 13D388 */ void ftPr_SpecialAirS_IASA(HSD_GObj* gobj); -/* 13D38C */ void ftPr_SpecialS_Phys(HSD_GObj* gobj); -/* 13D3AC */ void ftPr_SpecialAirS_Phys(HSD_GObj* gobj); -/* 13D518 */ void ftPr_SpecialS_Coll(HSD_GObj* gobj); -/* 13D554 */ void ftPr_SpecialAirS_Coll(HSD_GObj* gobj); -/* 13D590 */ void ftPr_SpecialS_8013D590(HSD_GObj* gobj); -/* 13D5F0 */ void ftPr_SpecialS_8013D5F0(HSD_GObj* gobj); -/* 13D658 */ void ftPr_SpecialS_8013D658(HSD_GObj* gobj); -/* 13D764 */ void ftPr_SpecialS_8013D764(HSD_GObj* gobj); -/* 13D8B0 */ void ftPr_SpecialS_8013D8B0(HSD_GObj* gobj); -/* 13D8E4 */ void ftPr_SpecialS_8013D8E4(HSD_GObj* gobj); -/* 13DA24 */ void ftPr_SpecialS_8013DA24(HSD_GObj* gobj, bool unk, - MotionFlags flags, float anim_start); -/* 13DC64 */ void ftPr_SpecialS_8013DC64(HSD_GObj* gobj); -/* 13DD54 */ void ftPr_SpecialS_8013DD54(HSD_GObj* gobj); -/* 13DEA8 */ void ftPr_SpecialN_Enter(HSD_GObj* gobj); -/* 13DF60 */ void ftPr_SpecialAirN_Enter(HSD_GObj* gobj); -/* 13E014 */ void ftPr_SpecialNStart_Anim(HSD_GObj* gobj); -/* 13E0F0 */ void ftPr_SpecialNLoop_Anim(HSD_GObj* gobj); -/* 13E2A0 */ void ftPr_SpecialNFull_Anim(HSD_GObj* gobj); -/* 13E410 */ void ftPr_SpecialNRelease_Anim(HSD_GObj* gobj); -/* 13E7E0 */ void ftPr_SpecialNTurn_Anim(HSD_GObj* gobj); -/* 13EAD8 */ void ftPr_SpecialNEnd_Anim(HSD_GObj* gobj); -/* 13EDB0 */ void ftPr_SpecialAirNStart_Anim(HSD_GObj* gobj); -/* 13EE84 */ void ftPr_SpecialAirNChargeLoop_Anim(HSD_GObj* gobj); -/* 13F034 */ void ftPr_SpecialAirNChargeFull_Anim(HSD_GObj* gobj); -/* 13F1A4 */ void ftPr_SpecialAirNChargeRelease_Anim(HSD_GObj* gobj); -/* 13F708 */ void ftPr_SpecialAirNStartTurn_Anim(HSD_GObj* gobj); -/* 13F9C0 */ void ftPr_SpecialAirNEnd_Anim(HSD_GObj* gobj); -/* 13FCAC */ void ftPr_SpecialNHit_Anim(HSD_GObj* gobj); -/* 13FF00 */ void ftPr_SpecialNStart_IASA(HSD_GObj* gobj); -/* 13FF04 */ void ftPr_SpecialNLoop_IASA(HSD_GObj* gobj); -/* 140064 */ void ftPr_SpecialNFull_IASA(HSD_GObj* gobj); -/* 1401C4 */ void ftPr_SpecialNRelease_IASA(HSD_GObj* gobj); -/* 140344 */ void ftPr_SpecialNTurn_IASA(HSD_GObj* gobj); -/* 140348 */ void ftPr_SpecialNEnd_IASA(HSD_GObj* gobj); -/* 14034C */ void ftPr_SpecialAirNStart_IASA(HSD_GObj* gobj); -/* 140350 */ void ftPr_SpecialAirNChargeLoop_IASA(HSD_GObj* gobj); -/* 1404B0 */ void ftPr_SpecialAirNChargeFull_IASA(HSD_GObj* gobj); -/* 140610 */ void ftPr_SpecialAirNChargeRelease_IASA(HSD_GObj* gobj); -/* 140614 */ void ftPr_SpecialAirNStartTurn_IASA(HSD_GObj* gobj); -/* 140618 */ void ftPr_SpecialAirNEnd_IASA(HSD_GObj* gobj); -/* 14061C */ void ftPr_SpecialNHit_IASA(HSD_GObj* gobj); -/* 140620 */ void ftPr_SpecialNStart_Phys(HSD_GObj* gobj); -/* 140650 */ void ftPr_SpecialNLoop_Phys(HSD_GObj* gobj); -/* 140680 */ void ftPr_SpecialNFull_Phys(HSD_GObj* gobj); -/* 1406B0 */ void ftPr_SpecialNRelease_Phys(HSD_GObj* gobj); -/* 1408B8 */ void ftPr_SpecialNTurn_Phys(HSD_GObj* gobj); -/* 140BAC */ void ftPr_SpecialNEnd_Phys(HSD_GObj* gobj); -/* 140BE8 */ void ftPr_SpecialAirNStart_Phys(HSD_GObj* gobj); -/* 140C18 */ void ftPr_SpecialAirNChargeLoop_Phys(HSD_GObj* gobj); -/* 140C48 */ void ftPr_SpecialAirNChargeFull_Phys(HSD_GObj* gobj); -/* 140C78 */ void ftPr_SpecialAirNChargeRelease_Phys(HSD_GObj* gobj); -/* 140DF8 */ void ftPr_SpecialAirNStartTurn_Phys(HSD_GObj* gobj); -/* 140F10 */ void ftPr_SpecialAirNEnd_Phys(HSD_GObj* gobj); -/* 140F40 */ void ftPr_SpecialNHit_Phys(HSD_GObj* gobj); -/* 140FA4 */ void ftPr_SpecialNStart_Coll(HSD_GObj* gobj); -/* 141054 */ void ftPr_SpecialNLoop_Coll(HSD_GObj* gobj); -/* 141154 */ void ftPr_SpecialNFull_Coll(HSD_GObj* gobj); -/* 141254 */ void ftPr_SpecialNRelease_Coll(HSD_GObj* gobj); -/* 1415F4 */ void ftPr_SpecialNTurn_Coll(HSD_GObj* gobj); -/* 1416D0 */ void ftPr_SpecialNEnd_Coll(HSD_GObj* gobj); -/* 141730 */ void ftPr_SpecialAirNStart_Coll(HSD_GObj* gobj); -/* 1417E0 */ void ftPr_SpecialAirNChargeLoop_Coll(HSD_GObj* gobj); -/* 1418E0 */ void ftPr_SpecialAirNChargeFull_Coll(HSD_GObj* gobj); -/* 1419E0 */ void ftPr_SpecialAirNChargeRelease_Coll(HSD_GObj* gobj); -/* 141FB8 */ void ftPr_SpecialAirNStartTurn_Coll(HSD_GObj* gobj); -/* 142070 */ void ftPr_SpecialAirNEnd_Coll(HSD_GObj* gobj); -/* 1420D0 */ void ftPr_SpecialNHit_Coll(HSD_GObj* gobj); -/* 14222C */ void ftPr_SpecialN_8014222C(HSD_GObj* gobj); #endif diff --git a/src/melee/ft/chara/ftPurin/ftPr_SpecialS.c b/src/melee/ft/chara/ftPurin/ftPr_SpecialS.c new file mode 100644 index 0000000000..e394e4be12 --- /dev/null +++ b/src/melee/ft/chara/ftPurin/ftPr_SpecialS.c @@ -0,0 +1,375 @@ +#include "forward.h" +#include "ft/forward.h" + +#include "ftPr_SpecialS.h" + +#include "ft/fighter.h" +#include "ft/ft_081B.h" +#include "ft/ft_0881.h" +#include "ft/ft_0892.h" +#include "ft/ft_0C88.h" +#include "ft/ftanim.h" +#include "ft/ftcommon.h" +#include "ft/inlines.h" +#include "ft/types.h" +#include "ftPurin/types.h" + +#include +#include +#include +#include +#include +#include + +extern float const ftPr_Init_804D9C30; +extern float const ftPr_Init_804D9C38; + +void ftPr_SpecialS_Enter(Fighter_GObj* fighter_gobj) +{ + Fighter* fighter = GET_FIGHTER(fighter_gobj); + Fighter_ChangeMotionState(fighter_gobj, 0x16B, 0, ftPr_Init_804D9C30, + ftPr_Init_804D9C38, ftPr_Init_804D9C30, NULL); + ftAnim_8006EBA4(fighter_gobj); + fighter->cmd_vars[0] = fighter->cmd_vars[1] = fighter->cmd_vars[2] = + fighter->cmd_vars[3] = 0; +} + +void ftPr_SpecialAirS_Enter(Fighter_GObj* fighter_gobj) +{ + Fighter* fighter = GET_FIGHTER(fighter_gobj); + + Fighter_ChangeMotionState(fighter_gobj, 0x16C, 0, ftPr_Init_804D9C30, + ftPr_Init_804D9C38, ftPr_Init_804D9C30, NULL); + ftAnim_8006EBA4(fighter_gobj); + fighter->cmd_vars[0] = fighter->cmd_vars[1] = fighter->cmd_vars[2] = + fighter->cmd_vars[3] = 0; +} + +void ftPr_SpecialS_Anim(Fighter_GObj* gobj) +{ + if (ftAnim_IsFramesRemaining(gobj) == 0) { + ft_8008A2BC(gobj); + } +} + +void ftPr_SpecialAirS_Anim(Fighter_GObj* gobj) +{ + if (ftAnim_IsFramesRemaining(gobj) == 0) { + ftCo_800CC730(gobj); + } +} + +void ftPr_SpecialS_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialAirS_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialS_Phys(Fighter_GObj* gobj) +{ + ft_80084FA8(gobj); +} + +extern float const ftPr_Init_804D9C34; + +/// #ftPr_SpecialAirS_Phys + +void ftPr_SpecialS_Coll(Fighter_GObj* gobj) +{ + if (ft_800827A0(gobj) == GA_Ground) { + ftPr_SpecialS_8013D590(gobj); + } +} + +void ftPr_SpecialAirS_Coll(Fighter_GObj* gobj) +{ + if (ft_80081D0C(gobj) != GA_Ground) { + ftPr_SpecialS_8013D5F0(gobj); + } +} + +void ftPr_SpecialS_8013D590(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + ftCommon_8007D5D4(fp); + Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialAirS, 0x0C4C508AU, + fp->cur_anim_frame, ftPr_Init_804D9C38, + ftPr_Init_804D9C30, NULL); +} + +void ftPr_SpecialS_8013D5F0(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + ftCommon_8007D7FC(fp); + Fighter_ChangeMotionState(gobj, ftPr_MS_SpecialS, 0x0C4C508AU, + fp->cur_anim_frame, ftPr_Init_804D9C38, + ftPr_Init_804D9C30, NULL); + ftCommon_8007D468(fp); +} + +extern char* ftPr_Init_804D3E98; +extern char* ftPr_Init_804D3EA0; +extern char* ftPr_Init_804D3EA8; +extern f64 const ftPr_Init_804D9C40; +extern float const ftPr_Init_804D9C48; + +/// #ftPr_SpecialS_8013D658 + +extern float const ftPr_Init_804D9C4C; + +/// #ftPr_SpecialS_8013D764 + +void ftPr_SpecialS_8013D8B0(Fighter_GObj* gobj) +{ + ft_80089824(gobj); + ft_800892A0(gobj); +} + +/// #ftPr_SpecialS_8013D8E4 + +extern float const ftPr_Init_804D9C50; + +/// #ftPr_SpecialS_8013DA24 + +/// #ftPr_SpecialS_8013DC64 + +extern f64 const ftPr_Init_804D9C58; +extern float const ftPr_Init_804D9C60; + +/// #ftPr_SpecialS_8013DD54 + +/// #ftPr_SpecialN_Enter + +/// #ftPr_SpecialAirN_Enter + +extern float const ftPr_Init_804D9C64; + +/// #ftPr_SpecialNStart_Anim + +extern float const ftPr_Init_804D9C68; +extern f64 const ftPr_Init_804D9C70; + +/// #ftPr_SpecialNLoop_Anim + +/// #ftPr_SpecialNFull_Anim + +extern f64 const ftPr_Init_804D9C78; +extern f64 const ftPr_Init_804D9C80; +extern f64 const ftPr_Init_804D9C88; + +/// #ftPr_SpecialNRelease_Anim + +/// #ftPr_SpecialNTurn_Anim + +/// #ftPr_SpecialNEnd_Anim + +/// #ftPr_SpecialAirNStart_Anim + +/// #ftPr_SpecialAirNChargeLoop_Anim + +/// #ftPr_SpecialAirNChargeFull_Anim + +/// #ftPr_SpecialAirNChargeRelease_Anim + +/// #ftPr_SpecialAirNStartTurn_Anim + +/// #ftPr_SpecialAirNEnd_Anim + +/// #ftPr_SpecialNHit_Anim + +void ftPr_SpecialNStart_IASA(HSD_GObj* arg0) {} + +/// #ftPr_SpecialNLoop_IASA + +/// #ftPr_SpecialNFull_IASA + +extern float const ftPr_Init_804D9C90; + +/// #ftPr_SpecialNRelease_IASA + +void ftPr_SpecialNTurn_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialNEnd_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialAirNStart_IASA(HSD_GObj* arg0) {} + +/// #ftPr_SpecialAirNChargeLoop_IASA + +/// #ftPr_SpecialAirNChargeFull_IASA + +void ftPr_SpecialAirNChargeRelease_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialAirNStartTurn_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialAirNEnd_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialNHit_IASA(HSD_GObj* arg0) {} + +void ftPr_SpecialNStart_Phys(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + fp->xE4_ground_accel_1 = ftPr_Init_804D9C48; + fp->gr_vel = ftPr_Init_804D9C48; + fp->self_vel.x = ftPr_Init_804D9C64 * fp->facing_dir; + fp->self_vel.y = ftPr_Init_804D9C48; + fp->x74_anim_vel.y = ftPr_Init_804D9C48; + fp->x74_anim_vel.x = ftPr_Init_804D9C48; +} + +void ftPr_SpecialNLoop_Phys(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + fp->xE4_ground_accel_1 = ftPr_Init_804D9C48; + fp->gr_vel = ftPr_Init_804D9C48; + fp->self_vel.x = ftPr_Init_804D9C64 * fp->facing_dir; + fp->self_vel.y = ftPr_Init_804D9C48; + fp->x74_anim_vel.y = ftPr_Init_804D9C48; + fp->x74_anim_vel.x = ftPr_Init_804D9C48; +} + +void ftPr_SpecialNFull_Phys(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + fp->xE4_ground_accel_1 = ftPr_Init_804D9C48; + fp->gr_vel = ftPr_Init_804D9C48; + fp->self_vel.x = ftPr_Init_804D9C64 * fp->facing_dir; + fp->self_vel.y = ftPr_Init_804D9C48; + fp->x74_anim_vel.y = ftPr_Init_804D9C48; + fp->x74_anim_vel.x = ftPr_Init_804D9C48; +} + +/// #ftPr_SpecialNRelease_Phys + +/// #ftPr_SpecialNTurn_Phys + +void ftPr_SpecialNEnd_Phys(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + ftCommon_8007C930(fp, fp->co_attrs.gr_friction); + ftCommon_8007CB74(gobj); +} + +void ftPr_SpecialAirNStart_Phys(HSD_GObj* gobj) +{ + Fighter* fp; + ftPurinAttributes* da; + + fp = gobj->user_data; + da = fp->dat_attrs; + ftCommon_8007D494(fp, da->x3C, da->x40); +} + +void ftPr_SpecialAirNChargeLoop_Phys(HSD_GObj* gobj) +{ + Fighter* fp; + ftPurinAttributes* da; + + fp = gobj->user_data; + da = fp->dat_attrs; + ftCommon_8007D494(fp, da->x3C, da->x40); +} + +void ftPr_SpecialAirNChargeFull_Phys(HSD_GObj* gobj) +{ + Fighter* fp; + ftPurinAttributes* da; + + fp = gobj->user_data; + da = fp->dat_attrs; + ftCommon_8007D494(fp, da->x3C, da->x40); +} + +/// #ftPr_SpecialAirNChargeRelease_Phys + +/// #ftPr_SpecialAirNStartTurn_Phys + +void ftPr_SpecialAirNEnd_Phys(HSD_GObj* gobj) +{ + Fighter* fp; + ftPurinAttributes* da; + + fp = gobj->user_data; + da = fp->dat_attrs; + ftCommon_8007D494(fp, da->x3C, da->x40); +} + +void ftPr_SpecialNHit_Phys(HSD_GObj* gobj) +{ + Fighter* fp; + ftPurinAttributes* da; + u8 _[8]; + + fp = gobj->user_data; + da = fp->dat_attrs; + + if (fp->self_vel.y <= -da->x40) { + ftCommon_8007D268(fp); + } + ftCommon_8007D494(fp, da->x3C, da->x40); +} + +// Non-matching due to float allocation https://decomp.me/scratch/OYlcJ +void ftPr_SpecialNStart_Coll(HSD_GObj* gobj) +{ + s32 state; + Fighter* fp; + u8 _[8]; + + fp = gobj->user_data; + if (ft_80082708((Fighter_GObj*) gobj) == GA_Ground) { + ftCommon_8007D5D4(fp); + if (ftPr_Init_804D9C50 == fp->mv.pr.specialn.x34) { + state = ftPr_MS_SpecialAirNStartR; + } else { + state = ftPr_MS_SpecialAirNStartL; + } + Fighter_ChangeMotionState((Fighter_GObj*) gobj, state, 0x0C4C5092U, + fp->cur_anim_frame, ftPr_Init_804D9C50, + ftPr_Init_804D9C48, NULL); + fp = gobj->user_data; + fp->death2_cb = ftPr_SpecialS_8013D658; + fp->take_dmg_cb = ftPr_SpecialS_8013D658; + fp->deal_dmg_cb = ftPr_SpecialS_8013D764; + fp->x21F8 = ftPr_SpecialN_8014222C; + } +} + +/// #ftPr_SpecialNLoop_Coll + +/// #ftPr_SpecialNFull_Coll + +extern float const ftPr_Init_804D9C54; + +/// #ftPr_SpecialNRelease_Coll + +/// #ftPr_SpecialNTurn_Coll + +void ftPr_SpecialNEnd_Coll(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + if (ft_80082708(gobj) == GA_Ground) { + ftCommon_8007D5D4(fp); + ftPr_SpecialS_8013DA24(gobj, 1, 0x0C4C5092, fp->cur_anim_frame); + } +} + +/// #ftPr_SpecialAirNStart_Coll + +/// #ftPr_SpecialAirNChargeLoop_Coll + +/// #ftPr_SpecialAirNChargeFull_Coll + +/// #ftPr_SpecialAirNChargeRelease_Coll + +/// #ftPr_SpecialAirNStartTurn_Coll + +void ftPr_SpecialAirNEnd_Coll(Fighter_GObj* gobj) +{ + Fighter* fp = gobj->user_data; + if (ft_80081D0C(gobj) != GA_Ground) { + ftCommon_8007D7FC(fp); + ftPr_SpecialS_8013DA24(gobj, 0, 0x0C4C5092, fp->cur_anim_frame); + } +} + +/// #ftPr_SpecialNHit_Coll + +/// #ftPr_SpecialN_8014222C diff --git a/src/melee/ft/chara/ftPurin/ftPr_SpecialS.h b/src/melee/ft/chara/ftPurin/ftPr_SpecialS.h new file mode 100644 index 0000000000..e69e89658d --- /dev/null +++ b/src/melee/ft/chara/ftPurin/ftPr_SpecialS.h @@ -0,0 +1,85 @@ +#ifndef MELEE_FT_CHARA_FTPURIN_FTPR_SPECIALS_H +#define MELEE_FT_CHARA_FTPURIN_FTPR_SPECIALS_H + +#include "ft/forward.h" +#include + +#include + +/* 13D234 */ void ftPr_SpecialS_Enter(HSD_GObj* gobj); +/* 13D2A0 */ void ftPr_SpecialAirS_Enter(HSD_GObj* gobj); +/* 13D30C */ void ftPr_SpecialS_Anim(HSD_GObj* gobj); +/* 13D348 */ void ftPr_SpecialAirS_Anim(HSD_GObj* gobj); +/* 13D384 */ void ftPr_SpecialS_IASA(HSD_GObj* gobj); +/* 13D388 */ void ftPr_SpecialAirS_IASA(HSD_GObj* gobj); +/* 13D38C */ void ftPr_SpecialS_Phys(HSD_GObj* gobj); +/* 13D3AC */ void ftPr_SpecialAirS_Phys(HSD_GObj* gobj); +/* 13D518 */ void ftPr_SpecialS_Coll(HSD_GObj* gobj); +/* 13D554 */ void ftPr_SpecialAirS_Coll(HSD_GObj* gobj); +/* 13D590 */ void ftPr_SpecialS_8013D590(HSD_GObj* gobj); +/* 13D5F0 */ void ftPr_SpecialS_8013D5F0(HSD_GObj* gobj); +/* 13D658 */ void ftPr_SpecialS_8013D658(HSD_GObj* gobj); +/* 13D764 */ void ftPr_SpecialS_8013D764(HSD_GObj* gobj); +/* 13D8B0 */ void ftPr_SpecialS_8013D8B0(HSD_GObj* gobj); +/* 13D8E4 */ void ftPr_SpecialS_8013D8E4(HSD_GObj* gobj); +/* 13DA24 */ void ftPr_SpecialS_8013DA24(HSD_GObj* gobj, bool unk, + MotionFlags flags, float anim_start); +/* 13DC64 */ void ftPr_SpecialS_8013DC64(HSD_GObj* gobj); +/* 13DD54 */ void ftPr_SpecialS_8013DD54(HSD_GObj* gobj); +/* 13DEA8 */ void ftPr_SpecialN_Enter(HSD_GObj* gobj); +/* 13DF60 */ void ftPr_SpecialAirN_Enter(HSD_GObj* gobj); +/* 13E014 */ void ftPr_SpecialNStart_Anim(HSD_GObj* gobj); +/* 13E0F0 */ void ftPr_SpecialNLoop_Anim(HSD_GObj* gobj); +/* 13E2A0 */ void ftPr_SpecialNFull_Anim(HSD_GObj* gobj); +/* 13E410 */ void ftPr_SpecialNRelease_Anim(HSD_GObj* gobj); +/* 13E7E0 */ void ftPr_SpecialNTurn_Anim(HSD_GObj* gobj); +/* 13EAD8 */ void ftPr_SpecialNEnd_Anim(HSD_GObj* gobj); +/* 13EDB0 */ void ftPr_SpecialAirNStart_Anim(HSD_GObj* gobj); +/* 13EE84 */ void ftPr_SpecialAirNChargeLoop_Anim(HSD_GObj* gobj); +/* 13F034 */ void ftPr_SpecialAirNChargeFull_Anim(HSD_GObj* gobj); +/* 13F1A4 */ void ftPr_SpecialAirNChargeRelease_Anim(HSD_GObj* gobj); +/* 13F708 */ void ftPr_SpecialAirNStartTurn_Anim(HSD_GObj* gobj); +/* 13F9C0 */ void ftPr_SpecialAirNEnd_Anim(HSD_GObj* gobj); +/* 13FCAC */ void ftPr_SpecialNHit_Anim(HSD_GObj* gobj); +/* 13FF00 */ void ftPr_SpecialNStart_IASA(HSD_GObj* gobj); +/* 13FF04 */ void ftPr_SpecialNLoop_IASA(HSD_GObj* gobj); +/* 140064 */ void ftPr_SpecialNFull_IASA(HSD_GObj* gobj); +/* 1401C4 */ void ftPr_SpecialNRelease_IASA(HSD_GObj* gobj); +/* 140344 */ void ftPr_SpecialNTurn_IASA(HSD_GObj* gobj); +/* 140348 */ void ftPr_SpecialNEnd_IASA(HSD_GObj* gobj); +/* 14034C */ void ftPr_SpecialAirNStart_IASA(HSD_GObj* gobj); +/* 140350 */ void ftPr_SpecialAirNChargeLoop_IASA(HSD_GObj* gobj); +/* 1404B0 */ void ftPr_SpecialAirNChargeFull_IASA(HSD_GObj* gobj); +/* 140610 */ void ftPr_SpecialAirNChargeRelease_IASA(HSD_GObj* gobj); +/* 140614 */ void ftPr_SpecialAirNStartTurn_IASA(HSD_GObj* gobj); +/* 140618 */ void ftPr_SpecialAirNEnd_IASA(HSD_GObj* gobj); +/* 14061C */ void ftPr_SpecialNHit_IASA(HSD_GObj* gobj); +/* 140620 */ void ftPr_SpecialNStart_Phys(HSD_GObj* gobj); +/* 140650 */ void ftPr_SpecialNLoop_Phys(HSD_GObj* gobj); +/* 140680 */ void ftPr_SpecialNFull_Phys(HSD_GObj* gobj); +/* 1406B0 */ void ftPr_SpecialNRelease_Phys(HSD_GObj* gobj); +/* 1408B8 */ void ftPr_SpecialNTurn_Phys(HSD_GObj* gobj); +/* 140BAC */ void ftPr_SpecialNEnd_Phys(HSD_GObj* gobj); +/* 140BE8 */ void ftPr_SpecialAirNStart_Phys(HSD_GObj* gobj); +/* 140C18 */ void ftPr_SpecialAirNChargeLoop_Phys(HSD_GObj* gobj); +/* 140C48 */ void ftPr_SpecialAirNChargeFull_Phys(HSD_GObj* gobj); +/* 140C78 */ void ftPr_SpecialAirNChargeRelease_Phys(HSD_GObj* gobj); +/* 140DF8 */ void ftPr_SpecialAirNStartTurn_Phys(HSD_GObj* gobj); +/* 140F10 */ void ftPr_SpecialAirNEnd_Phys(HSD_GObj* gobj); +/* 140F40 */ void ftPr_SpecialNHit_Phys(HSD_GObj* gobj); +/* 140FA4 */ void ftPr_SpecialNStart_Coll(HSD_GObj* gobj); +/* 141054 */ void ftPr_SpecialNLoop_Coll(HSD_GObj* gobj); +/* 141154 */ void ftPr_SpecialNFull_Coll(HSD_GObj* gobj); +/* 141254 */ void ftPr_SpecialNRelease_Coll(HSD_GObj* gobj); +/* 1415F4 */ void ftPr_SpecialNTurn_Coll(HSD_GObj* gobj); +/* 1416D0 */ void ftPr_SpecialNEnd_Coll(HSD_GObj* gobj); +/* 141730 */ void ftPr_SpecialAirNStart_Coll(HSD_GObj* gobj); +/* 1417E0 */ void ftPr_SpecialAirNChargeLoop_Coll(HSD_GObj* gobj); +/* 1418E0 */ void ftPr_SpecialAirNChargeFull_Coll(HSD_GObj* gobj); +/* 1419E0 */ void ftPr_SpecialAirNChargeRelease_Coll(HSD_GObj* gobj); +/* 141FB8 */ void ftPr_SpecialAirNStartTurn_Coll(HSD_GObj* gobj); +/* 142070 */ void ftPr_SpecialAirNEnd_Coll(HSD_GObj* gobj); +/* 1420D0 */ void ftPr_SpecialNHit_Coll(HSD_GObj* gobj); +/* 14222C */ void ftPr_SpecialN_8014222C(HSD_GObj* gobj); + +#endif diff --git a/src/melee/ft/ftdata.c b/src/melee/ft/ftdata.c index 1cf1472543..2af6de4dce 100644 --- a/src/melee/ft/ftdata.c +++ b/src/melee/ft/ftdata.c @@ -178,6 +178,7 @@ #include "ftPurin/ftPr_Init.h" #include "ftPurin/ftPr_SpecialHi.h" #include "ftPurin/ftPr_SpecialLw.h" +#include "ftPurin/ftPr_SpecialS.h" #include "ftSamus/ftSs_Init.h" #include "ftSamus/ftSs_SpecialHi.h" #include "ftSamus/ftSs_SpecialLw_1.h"