SSBM Decomp
Loading...
Searching...
No Matches
ftkirby.c File Reference
#include "ftkirby.h"
#include "ftKb_Init.static.h"
#include "ftkirbyattackdash.h"
#include "ftkirbyspecialdonkey.h"
#include "ftkirbyspecialhi.h"
#include "ftkirbyspecialiceclimber.h"
#include "ftkirbyspecialmars.h"
#include "ftkirbyspecialpeach.h"
#include "ftkirbyspecialpikachu.h"
#include "ftkirbyspecialzelda.h"
#include "ef/efasync.h"
#include "ft/chara/ftKirby/ftkirbyspecialmewtwo.h"
#include "ft/fighter.h"
#include "ft/ft_0877.h"
#include "ft/ftanim.h"
#include "ft/ftcamera.h"
#include "ft/ftCo_800C7220.h"
#include "ft/ftCo_800C739C.h"
#include "ft/ftcolanim.h"
#include "ft/ftdynamics.h"
#include "ft/ftmaterial.h"
#include "ft/ftparts.h"
#include "ft/inlines.h"
#include "ft/types.h"
#include "ftCommon/ftCo_Attack100.h"
#include "ftKirby/ftkirbyspecialgamewatch.h"
#include "ftKirby/ftkirbyspecialpurin.h"
#include "it/it_26B1.h"
#include "lb/lb_00B0.h"
#include "lb/lbarchive.h"
#include "lb/lbdvd.h"
#include "pl/player.h"
#include <stddef.h>
#include <trigf.h>
#include <baselib/gobj.h>
#include <baselib/id.h>
#include <baselib/jobj.h>
#include <baselib/random.h>
#include <MSL/math.h>

Data Structures

struct  ftKirby_CostumeArchive

Macros

#define LOAD_HAT(gobj, fp, fp2, kind, hat, part_dobj_indices)
 Shared body of the Kirby hat loaders: load the hat model/parts for kind and start its animation.

Functions

void ftAnim_80070458 (Fighter *fp, CostumeTObjList *, u32 tobj_idx, float frame)
void fn_800F9260 (HSD_GObj *)
 Forward declarations.
void ftCommon_8007D9A0 (Fighter *fp)
void fn_8010B1F4 (Fighter_GObj *)
static void fn_801095DC (HSD_GObj *)
static void fn_80109680 (HSD_GObj *)
static void fn_80109714 (HSD_GObj *)
static void fn_801097B8 (HSD_GObj *)
void fn_800F64C8 (Fighter_GObj *, float)
static void ftKb_Init_800EE854 (void)
static void ftKb_Init_800EE874 (void)
static void ftKb_Init_800EE8B0 (void)
static void ftKb_Init_800EE8EC (void)
static void ftKb_Init_800EE904 (void)
static bool fn_800F1CA0 (HSD_GObj *gobj)
static void fn_800F6AC8 (HSD_GObj *gobj)
static void fn_8010C288 (HSD_GObj *gobj)
void ftKb_SpecialN_800F1708 (void)
void ftKb_SpecialN_800F171C (void)
void ftKb_SpecialN_800F1730 (void)
void ftKb_SpecialN_800F1744 (void)
void ftKb_SpecialN_800F1764 (void)
void ftKb_SpecialN_800F1784 (void)
void ftKb_SpecialN_800F17A4 (void)
void ftKb_SpecialN_800F17C4 (void)
void ftKb_SpecialN_800F17E4 (void)
void ftKb_SpecialN_800F17F8 (void)
void ftKb_SpecialN_800F1818 (void)
void ftKb_SpecialN_800F1838 (void)
void ftKb_SpecialN_800F1858 (void)
void ftKb_SpecialN_800F186C (void)
void ftKb_SpecialN_800F1880 (void)
void ftKb_SpecialN_800F1894 (void)
void ftKb_SpecialN_800F18B4 (void)
void ftKb_SpecialN_800F18C8 (void)
void ftKb_SpecialN_800F18E8 (void)
void ftKb_SpecialN_800F18F8 (void)
void ftKb_SpecialN_800F19E8 (void)
void ftKb_SpecialN_800F19F4 (void)
void ftKb_SpecialN_800F1A00 (void)
void ftKb_SpecialN_800F1A0C (void)
void ftKb_SpecialN_800F1A20 (void)
void ftKb_SpecialN_800F1A2C (void)
void ftKb_SpecialN_800F1A38 (void)
void ftKb_SpecialN_800F1A44 (void)
void ftKb_SpecialN_800F1A50 (void)
void ftKb_SpecialN_800F1A64 (void)
void ftKb_SpecialN_800F1A70 (void)
void ftKb_SpecialN_800F1A78 (void)
void ftKb_SpecialN_800F1AC8 (void)
void ftKb_SpecialN_800F1AD4 (void)
void ftKb_SpecialN_800F1AE0 (void)
void ftKb_SpecialN_800F1AEC (void)
void ftKb_SpecialN_800F1B00 (void)
void ftKb_SpecialN_800F1B0C (void)
void ftKb_SpecialN_800F1B18 (void)
void ftKb_SpecialN_800F1B24 (void)
void ftKb_SpecialN_800F1B30 (void)
void ftKb_SpecialN_800F1B44 (void)
void ftKb_SpecialN_800F1B50 (void)
void ftKb_SpecialN_800F1B58 (void)
void ftKb_SpecialN_800F1CC8 (void)
void ftKb_SpecialN_800F1CD0 (void)
void ftKb_SpecialN_800F1D00 (void)
void ftKb_SpecialN_800F1D08 (void)
void ftKb_Init_800EE528 (void)
void ftKb_Init_OnDeath (HSD_GObj *gobj)
void ftKb_Init_OnLoad (HSD_GObj *gobj)
void ftKb_Init_800EE74C (HSD_GObj *gobj)
void ftKb_Init_800EE7B8 (HSD_GObj *gobj)
void ftKb_Init_UnkMotionStates4 (HSD_GObj *gobj)
void ftKb_Init_OnItemPickup (HSD_GObj *gobj, bool arg1)
void ftKb_Init_OnItemInvisible (Fighter_GObj *gobj)
void ftKb_Init_OnItemVisible (HSD_GObj *gobj)
void ftKb_Init_OnItemDrop (HSD_GObj *gobj, bool bool1)
void ftKb_Init_LoadSpecialAttrs (HSD_GObj *gobj)
void ftKb_Init_800EEB00 (Fighter_GObj *gobj, ArticleDynamicBones **arg1)
void ftKb_Init_800EEB1C (Fighter_GObj *gobj, s32 *arg1)
void ftKb_Init_OnKnockbackEnter (HSD_GObj *gobj)
void ftKb_Init_OnKnockbackExit (HSD_GObj *gobj)
void ftKb_Init_UnkDemoCallbacks0 (int kind, int *out1, int *out2)
char * ftKb_Init_GetMotionFileString (enum_t arg0)
void ftKb_SpecialN_800EEC34 (int arg0, int arg1, int arg2)
void ftKb_SpecialN_800EED50 (s32 arg0, s32 arg1)
void ftKb_Init_UnkMotionStates5 (void)
void ftKb_SpecialN_800EEEC4 (HSD_GObj *gobj, FighterKind kind)
void ftKb_UnkMtxFunc0 (Fighter_GObj *gobj, int arg1, Mtx mtx)
 ftKb_SpecialN_800EEEC4
HSD_JObjftKb_Init_UnkMotionStates6 (Fighter_GObj *gobj)
void ftKb_SpecialN_800EF040 (Fighter_GObj *gobj, int arg1, KirbyHatStruct *hat)
static void ftKb_SpecialN_800EF0E4_insert_joint_refs (s32 *total_dobjs, HSD_Joint *root, Fighter *fp, s32 *part_off, HSD_Joint **joint, s32 *joint_idx, s32 *byte_base)
static void ftKb_SpecialN_800EF0E4_finish (Fighter *fp, s32 total_dobjs)
void ftKb_SpecialN_800EF0E4 (Fighter_GObj *gobj, int arg1, u8 *arg2)
void ftKb_SpecialN_800EF35C (Fighter_GObj *gobj, int arg1, u8 *arg2)
void ftKb_SpecialN_800EF438 (Fighter_GObj *gobj, KirbyHatStruct *hat)
static void ftKb_RemoveHatParts (Fighter_GObj *gobj, u32 mask)
void ftKb_SpecialN_800EF69C (Fighter_GObj *gobj, int arg1, KirbyHatStruct *hat)
void ftKb_UnkIntBoolFunc0 (Fighter *fp, int arg1, bool arg2)
void ftKb_Init_UnkCallbackPairs0_0 (Fighter_GObj *gobj)
void ftKb_Init_UnkCallbackPairs0_1 (Fighter_GObj *gobj, int arg1, float arg2)
void ftKb_SpecialN_800EFA40 (HSD_GObj *gobj)
static void ftKb_SpecialN_800EFAF0_inline (Fighter_GObj *gobj)
void ftKb_SpecialN_800EFAF0 (Fighter_GObj *gobj)
static void ftKb_LoadHat (Fighter_GObj *gobj, Fighter *fp, KirbyHatStruct *hat)
void ftKb_SpecialN_800EFB4C (HSD_GObj *gobj)
void ftKb_SpecialN_800EFBFC (Fighter_GObj *gobj)
void ftKb_SpecialN_800EFC58 (HSD_GObj *gobj)
void ftKb_SpecialN_800EFD08 (Fighter_GObj *gobj)
void ftKb_SpecialN_800EFD64 (Fighter_GObj *gobj)
void ftKb_SpecialN_800EFE1C (Fighter_GObj *gobj)
void ftKb_SpecialN_800EFE80 (Fighter_GObj *gobj)
void ftKb_SpecialN_800EFF38 (Fighter_GObj *gobj)
void ftKb_SpecialN_800EFF9C (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0054 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F00B8 (HSD_GObj *gobj)
void ftKb_SpecialN_800F0168 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F01C4 (HSD_GObj *gobj)
void ftKb_SpecialN_800F0274 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F02D0 (HSD_GObj *gobj)
void ftKb_SpecialN_800F0380 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F03DC (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0494 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F04F8 (HSD_GObj *gobj)
void ftKb_SpecialN_800F05A8 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0604 (HSD_GObj *gobj)
void ftKb_SpecialN_800F06B4 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0710 (HSD_GObj *gobj)
void ftKb_SpecialN_800F07C0 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F081C (Fighter_GObj *gobj)
void ftKb_SpecialN_800F08D4 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0938 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F09F0 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0A54 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0B0C (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0B70 (HSD_GObj *gobj)
void ftKb_SpecialN_800F0C20 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0C7C (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0D34 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0D98 (HSD_GObj *gobj)
void ftKb_SpecialN_800F0E48 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0EA4 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0F5C (Fighter_GObj *gobj)
void ftKb_SpecialN_800F0FC0 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F10A4 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F10D4 (Fighter_GObj *gobj)
 Load Yoshi's hat for Kirby copy ability.
void ftKb_SpecialN_800F11AC (Fighter_GObj *gobj)
void ftKb_SpecialN_800F11F0 (Fighter_GObj *gobj)
 Load Jigglypuff's hat for Kirby copy ability.
void ftKb_SpecialN_800F12C8 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F130C (Fighter_GObj *gobj)
 Load Dr.
void ftKb_SpecialN_800F13F0 (Fighter_GObj *gobj)
u8ftKb_SpecialN_800F1420 (Fighter_GObj *gobj, u32 *arg1)
void ftKb_SpecialN_800F14B4 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F15D8 (Fighter_GObj *gobj)
void ftKb_SpecialN_Enter (Fighter_GObj *gobj)
 ftKb_SpecialN_Enter
void ftKb_SpecialAirN_Enter (Fighter_GObj *gobj)
 ftKb_SpecialAirN_Enter
void ftKb_SpecialN_800F16D0 (Fighter_GObj *gobj, FighterKind kind)
void ftKb_SpecialN_800F190C (Fighter_GObj *gobj, FighterKind kind)
void ftKb_SpecialN_800F19AC (Fighter_GObj *gobj)
void ftKb_SpecialN_800F1A8C (Fighter_GObj *gobj)
void ftKb_Init_UnkMotionStates3 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F1BAC (Fighter_GObj *gobj, s32 kind, bool arg2)
s32 ftKb_SpecialN_800F1CD8 (HSD_GObj *gobj)
void ftKb_SpecialN_800F1D24 (Fighter_GObj *gobj)
void ftKb_SpecialN_800F1DAC (HSD_GObj *gobj)
void ftKb_SpecialN_800F1F1C (Fighter_GObj *gobj, Vec3 *pos)

Variables

MotionState ftKb_Init_MotionStateTable [ftKb_MS_SelfCount]
HSD_GObjEvent ftKb_Init_803C9CC8 []
HSD_GObjEvent ftKb_Init_803C9DD0 []
HSD_GObjEvent ftKb_Init_803C9E54 []
ftKirby_CostumeArchive ftKb_Init_803C9ED8 [6] = { 0 }
ftKirby_CostumeArchive ftKb_Init_803C9F08 [6] = { 0 }
ftKirby_CostumeArchive ftKb_Init_803C9F38 [6] = { 0 }
ftKirby_CostumeArchive ftKb_Init_803C9F68 [6] = { 0 }
ftKirby_CostumeArchive ftKb_Init_803C9F98 [6] = { 0 }
ftKirby_CostumeArchiveftKb_Init_803C9FC8 [FTKIND_MAX]
MotionState ftKb_Init_UnkMotionStates0 []
jtbl_t ftKb_Init_803CA0CC
char ftKb_Init_assert_msg_0 [] = "fighter parts model dobj num over!\n"
char ftKb_Init_assert_msg_1 [] = "ftkirby.c"
char ftKb_Init_assert_msg_2 [] = "fighter dobj num over!\n"
jtbl_t ftKb_Init_803CA14C
jtbl_t ftKb_Init_803CA1CC
jtbl_t ftKb_Init_803CA230
jtbl_t ftKb_Init_803CA294
jtbl_t ftKb_Init_803CA2CC
char ftKb_Init_DatFilename [] = "PlKb.dat"
char ftKb_Init_DataName [] = "ftDataKirby"
char ftKb_Init_803CA320 [] = "PlKbNr.dat"
char ftKb_Init_803CA32C [] = "PlyKirby5K_Share_joint"
char ftKb_Init_803CA344 [] = "PlyKirby5K_Share_matanim_joint"
char ftKb_Init_803CA364 [] = "PlKbYe.dat"
char ftKb_Init_803CA370 [] = "PlyKirby5KYe_Share_joint"
char ftKb_Init_803CA38C [] = "PlyKirby5KYe_Share_matanim_joint"
char ftKb_Init_803CA3B0 [] = "PlKbBu.dat"
char ftKb_Init_803CA3BC [] = "PlyKirby5KBu_Share_joint"
char ftKb_Init_803CA3D8 [] = "PlyKirby5KBu_Share_matanim_joint"
char ftKb_Init_803CA3FC [] = "PlKbRe.dat"
char ftKb_Init_803CA408 [] = "PlyKirby5KRe_Share_joint"
char ftKb_Init_803CA424 [] = "PlyKirby5KRe_Share_matanim_joint"
char ftKb_Init_803CA448 [] = "PlKbGr.dat"
char ftKb_Init_803CA454 [] = "PlyKirby5KGr_Share_joint"
char ftKb_Init_803CA470 [] = "PlyKirby5KGr_Share_matanim_joint"
char ftKb_Init_803CA494 [] = "PlKbWh.dat"
char ftKb_Init_803CA4A0 [] = "PlyKirby5KWh_Share_joint"
char ftKb_Init_803CA4BC [] = "PlyKirby5KWh_Share_matanim_joint"
char ftKb_Init_AnimDatFilename [] = "PlKbAJ.dat"
Fighter_DemoStrings ftKb_Init_DemoMotionFilenames
char * ftKb_Init_803CA5A4 []
Fighter_CostumeStrings ftKb_Init_CostumeStrings []
float const ftKb_Init_803B7548 [10] = { 0 }
char ftKb_Init_804D3DAC [2] = "0"

Macro Definition Documentation

◆ LOAD_HAT

#define LOAD_HAT ( gobj,
fp,
fp2,
kind,
hat,
part_dobj_indices )
Value:
do { \
(hat) = ft_80459B88.hats[kind]; \
ftKb_SpecialN_800EF040(gobj, (kind) + 1, hat); \
(fp2)->u.kb.hat.x14.data = HSD_ObjAlloc(&fighter_x2040_alloc_data); \
(fp2)->u.kb.hat.x1C.data = HSD_ObjAlloc(&fighter_x2040_alloc_data); \
ftKb_SpecialN_800EF0E4(gobj, (kind) + 1, part_dobj_indices); \
ftKb_SpecialN_800EF35C(gobj, (kind) + 1, part_dobj_indices); \
ftKb_SpecialN_800EF438(gobj, hat); \
ftParts_8007487C((FtPartsDesc*) (hat), &(fp)->u.kb.hat.x24, \
(fp)->x619_costume_id, &(fp)->u.kb.hat.x14, \
&(fp)->u.kb.hat.x1C); \
ftAnim_80070200(fp, (ftData_x8_x8*) &(hat)->desc.vis_table, \
&(fp)->u.kb.x44, &(fp)->u.kb.hat.x14); \
} while (0)
HSD_ObjAllocData fighter_x2040_alloc_data
Definition fighter.c:117
struct ft_80459B88_t ft_80459B88
Definition ft_459A.c:33
p kind
Finds the GameSceneHandler for a given scene kind.
Definition gm_1A45.dox:35
u8 desc[6][3]
Definition mnruleplus.c:100
void * HSD_ObjAlloc(HSD_ObjAllocData *data)
Definition objalloc.c:71
Definition types.h:608
Definition types.h:603

Shared body of the Kirby hat loaders: load the hat model/parts for kind and start its animation.

Todo
Should be an inline function (which would also allow removing the callers' dont_inline pragmas), but that shifts register allocation.

Function Documentation

◆ ftAnim_80070458()

void ftAnim_80070458 ( Fighter * fp,
CostumeTObjList * tobj_list,
u32 tobj_idx,
float frame )

◆ fn_800F9260()

void fn_800F9260 ( HSD_GObj * gobj)

Forward declarations.

◆ ftCommon_8007D9A0()

void ftCommon_8007D9A0 ( Fighter * fp)

◆ fn_8010B1F4()

void fn_8010B1F4 ( Fighter_GObj * gobj)

◆ fn_801095DC()

void fn_801095DC ( HSD_GObj * )
static

◆ fn_80109680()

void fn_80109680 ( HSD_GObj * )
static

◆ fn_80109714()

void fn_80109714 ( HSD_GObj * )
static

◆ fn_801097B8()

void fn_801097B8 ( HSD_GObj * )
static

◆ fn_800F64C8()

void fn_800F64C8 ( Fighter_GObj * gobj,
float anim_start )

◆ ftKb_Init_800EE854()

void ftKb_Init_800EE854 ( void )
static

◆ ftKb_Init_800EE874()

void ftKb_Init_800EE874 ( void )
static

◆ ftKb_Init_800EE8B0()

void ftKb_Init_800EE8B0 ( void )
static

◆ ftKb_Init_800EE8EC()

void ftKb_Init_800EE8EC ( void )
static

◆ ftKb_Init_800EE904()

void ftKb_Init_800EE904 ( void )
static

◆ fn_800F1CA0()

bool fn_800F1CA0 ( HSD_GObj * gobj)
static

◆ fn_800F6AC8()

void fn_800F6AC8 ( HSD_GObj * gobj)
static

◆ fn_8010C288()

void fn_8010C288 ( HSD_GObj * gobj)
static

◆ ftKb_SpecialN_800F1708()

void ftKb_SpecialN_800F1708 ( void )

◆ ftKb_SpecialN_800F171C()

void ftKb_SpecialN_800F171C ( void )

◆ ftKb_SpecialN_800F1730()

void ftKb_SpecialN_800F1730 ( void )

◆ ftKb_SpecialN_800F1744()

void ftKb_SpecialN_800F1744 ( void )

◆ ftKb_SpecialN_800F1764()

void ftKb_SpecialN_800F1764 ( void )

◆ ftKb_SpecialN_800F1784()

void ftKb_SpecialN_800F1784 ( void )

◆ ftKb_SpecialN_800F17A4()

void ftKb_SpecialN_800F17A4 ( void )

◆ ftKb_SpecialN_800F17C4()

void ftKb_SpecialN_800F17C4 ( void )

◆ ftKb_SpecialN_800F17E4()

void ftKb_SpecialN_800F17E4 ( void )

◆ ftKb_SpecialN_800F17F8()

void ftKb_SpecialN_800F17F8 ( void )

◆ ftKb_SpecialN_800F1818()

void ftKb_SpecialN_800F1818 ( void )

◆ ftKb_SpecialN_800F1838()

void ftKb_SpecialN_800F1838 ( void )

◆ ftKb_SpecialN_800F1858()

void ftKb_SpecialN_800F1858 ( void )

◆ ftKb_SpecialN_800F186C()

void ftKb_SpecialN_800F186C ( void )

◆ ftKb_SpecialN_800F1880()

void ftKb_SpecialN_800F1880 ( void )

◆ ftKb_SpecialN_800F1894()

void ftKb_SpecialN_800F1894 ( void )

◆ ftKb_SpecialN_800F18B4()

void ftKb_SpecialN_800F18B4 ( void )

◆ ftKb_SpecialN_800F18C8()

void ftKb_SpecialN_800F18C8 ( void )

◆ ftKb_SpecialN_800F18E8()

void ftKb_SpecialN_800F18E8 ( void )

◆ ftKb_SpecialN_800F18F8()

void ftKb_SpecialN_800F18F8 ( void )

◆ ftKb_SpecialN_800F19E8()

void ftKb_SpecialN_800F19E8 ( void )

◆ ftKb_SpecialN_800F19F4()

void ftKb_SpecialN_800F19F4 ( void )

◆ ftKb_SpecialN_800F1A00()

void ftKb_SpecialN_800F1A00 ( void )

◆ ftKb_SpecialN_800F1A0C()

void ftKb_SpecialN_800F1A0C ( void )

◆ ftKb_SpecialN_800F1A20()

void ftKb_SpecialN_800F1A20 ( void )

◆ ftKb_SpecialN_800F1A2C()

void ftKb_SpecialN_800F1A2C ( void )

◆ ftKb_SpecialN_800F1A38()

void ftKb_SpecialN_800F1A38 ( void )

◆ ftKb_SpecialN_800F1A44()

void ftKb_SpecialN_800F1A44 ( void )

◆ ftKb_SpecialN_800F1A50()

void ftKb_SpecialN_800F1A50 ( void )

◆ ftKb_SpecialN_800F1A64()

void ftKb_SpecialN_800F1A64 ( void )

◆ ftKb_SpecialN_800F1A70()

void ftKb_SpecialN_800F1A70 ( void )

◆ ftKb_SpecialN_800F1A78()

void ftKb_SpecialN_800F1A78 ( void )

◆ ftKb_SpecialN_800F1AC8()

void ftKb_SpecialN_800F1AC8 ( void )

◆ ftKb_SpecialN_800F1AD4()

void ftKb_SpecialN_800F1AD4 ( void )

◆ ftKb_SpecialN_800F1AE0()

void ftKb_SpecialN_800F1AE0 ( void )

◆ ftKb_SpecialN_800F1AEC()

void ftKb_SpecialN_800F1AEC ( void )

◆ ftKb_SpecialN_800F1B00()

void ftKb_SpecialN_800F1B00 ( void )

◆ ftKb_SpecialN_800F1B0C()

void ftKb_SpecialN_800F1B0C ( void )

◆ ftKb_SpecialN_800F1B18()

void ftKb_SpecialN_800F1B18 ( void )

◆ ftKb_SpecialN_800F1B24()

void ftKb_SpecialN_800F1B24 ( void )

◆ ftKb_SpecialN_800F1B30()

void ftKb_SpecialN_800F1B30 ( void )

◆ ftKb_SpecialN_800F1B44()

void ftKb_SpecialN_800F1B44 ( void )

◆ ftKb_SpecialN_800F1B50()

void ftKb_SpecialN_800F1B50 ( void )

◆ ftKb_SpecialN_800F1B58()

void ftKb_SpecialN_800F1B58 ( void )

◆ ftKb_SpecialN_800F1CC8()

void ftKb_SpecialN_800F1CC8 ( void )

◆ ftKb_SpecialN_800F1CD0()

void ftKb_SpecialN_800F1CD0 ( void )

◆ ftKb_SpecialN_800F1D00()

void ftKb_SpecialN_800F1D00 ( void )

◆ ftKb_SpecialN_800F1D08()

void ftKb_SpecialN_800F1D08 ( void )

◆ ftKb_Init_800EE528()

void ftKb_Init_800EE528 ( void )
Todo
Bad cast.

◆ ftKb_Init_OnDeath()

void ftKb_Init_OnDeath ( HSD_GObj * gobj)

◆ ftKb_Init_OnLoad()

void ftKb_Init_OnLoad ( HSD_GObj * gobj)

◆ ftKb_Init_800EE74C()

void ftKb_Init_800EE74C ( HSD_GObj * gobj)

◆ ftKb_Init_800EE7B8()

void ftKb_Init_800EE7B8 ( HSD_GObj * gobj)

◆ ftKb_Init_UnkMotionStates4()

void ftKb_Init_UnkMotionStates4 ( HSD_GObj * gobj)

◆ ftKb_Init_OnItemPickup()

void ftKb_Init_OnItemPickup ( HSD_GObj * gobj,
bool arg1 )

◆ ftKb_Init_OnItemInvisible()

void ftKb_Init_OnItemInvisible ( Fighter_GObj * gobj)

◆ ftKb_Init_OnItemVisible()

void ftKb_Init_OnItemVisible ( HSD_GObj * gobj)

◆ ftKb_Init_OnItemDrop()

void ftKb_Init_OnItemDrop ( HSD_GObj * gobj,
bool bool1 )

◆ ftKb_Init_LoadSpecialAttrs()

void ftKb_Init_LoadSpecialAttrs ( HSD_GObj * gobj)

◆ ftKb_Init_800EEB00()

void ftKb_Init_800EEB00 ( Fighter_GObj * gobj,
ArticleDynamicBones ** arg1 )

◆ ftKb_Init_800EEB1C()

void ftKb_Init_800EEB1C ( Fighter_GObj * gobj,
s32 * arg1 )

◆ ftKb_Init_OnKnockbackEnter()

void ftKb_Init_OnKnockbackEnter ( HSD_GObj * gobj)

◆ ftKb_Init_OnKnockbackExit()

void ftKb_Init_OnKnockbackExit ( HSD_GObj * gobj)

◆ ftKb_Init_UnkDemoCallbacks0()

void ftKb_Init_UnkDemoCallbacks0 ( int kind,
int * out1,
int * out2 )

◆ ftKb_Init_GetMotionFileString()

char * ftKb_Init_GetMotionFileString ( enum_t arg0)

◆ ftKb_SpecialN_800EEC34()

void ftKb_SpecialN_800EEC34 ( int arg0,
int arg1,
int arg2 )

◆ ftKb_SpecialN_800EED50()

void ftKb_SpecialN_800EED50 ( s32 arg0,
s32 arg1 )

◆ ftKb_Init_UnkMotionStates5()

void ftKb_Init_UnkMotionStates5 ( void )

◆ ftKb_SpecialN_800EEEC4()

void ftKb_SpecialN_800EEEC4 ( HSD_GObj * gobj,
FighterKind kind )

◆ ftKb_UnkMtxFunc0()

void ftKb_UnkMtxFunc0 ( Fighter_GObj * gobj,
int arg1,
Mtx mtx )

◆ ftKb_Init_UnkMotionStates6()

HSD_JObj * ftKb_Init_UnkMotionStates6 ( Fighter_GObj * gobj)
Todo
What???

◆ ftKb_SpecialN_800EF040()

void ftKb_SpecialN_800EF040 ( Fighter_GObj * gobj,
int arg1,
KirbyHatStruct * hat )

◆ ftKb_SpecialN_800EF0E4_insert_joint_refs()

void ftKb_SpecialN_800EF0E4_insert_joint_refs ( s32 * total_dobjs,
HSD_Joint * root,
Fighter * fp,
s32 * part_off,
HSD_Joint ** joint,
s32 * joint_idx,
s32 * byte_base )
inlinestatic
Todo
byte_base is always zero; it reproduces retail's shift-derived offset initialization, suggesting the original code indexed bones by element index rather than byte offset.

◆ ftKb_SpecialN_800EF0E4_finish()

void ftKb_SpecialN_800EF0E4_finish ( Fighter * fp,
s32 total_dobjs )
inlinestatic

◆ ftKb_SpecialN_800EF0E4()

void ftKb_SpecialN_800EF0E4 ( Fighter_GObj * gobj,
int arg1,
u8 * arg2 )

◆ ftKb_SpecialN_800EF35C()

void ftKb_SpecialN_800EF35C ( Fighter_GObj * gobj,
int arg1,
u8 * arg2 )

◆ ftKb_SpecialN_800EF438()

void ftKb_SpecialN_800EF438 ( Fighter_GObj * gobj,
KirbyHatStruct * hat )

◆ ftKb_RemoveHatParts()

void ftKb_RemoveHatParts ( Fighter_GObj * gobj,
u32 mask )
inlinestatic
Note
The inline helper and the shared fp->parts[i] indexing are required for register allocation: both bone accesses must share one strength-reduced offset, and the helper materializes its Fighter* directly into a saved register.

◆ ftKb_SpecialN_800EF69C()

void ftKb_SpecialN_800EF69C ( Fighter_GObj * gobj,
int arg1,
KirbyHatStruct * hat )

◆ ftKb_UnkIntBoolFunc0()

void ftKb_UnkIntBoolFunc0 ( Fighter * fp,
int arg1,
bool arg2 )

◆ ftKb_Init_UnkCallbackPairs0_0()

void ftKb_Init_UnkCallbackPairs0_0 ( Fighter_GObj * gobj)

◆ ftKb_Init_UnkCallbackPairs0_1()

void ftKb_Init_UnkCallbackPairs0_1 ( Fighter_GObj * gobj,
int arg1,
float arg2 )

◆ ftKb_SpecialN_800EFA40()

void ftKb_SpecialN_800EFA40 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800EFAF0_inline()

void ftKb_SpecialN_800EFAF0_inline ( Fighter_GObj * gobj)
static

◆ ftKb_SpecialN_800EFAF0()

void ftKb_SpecialN_800EFAF0 ( Fighter_GObj * gobj)

◆ ftKb_LoadHat()

void ftKb_LoadHat ( Fighter_GObj * gobj,
Fighter * fp,
KirbyHatStruct * hat )
inlinestatic

◆ ftKb_SpecialN_800EFB4C()

void ftKb_SpecialN_800EFB4C ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800EFBFC()

void ftKb_SpecialN_800EFBFC ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800EFC58()

void ftKb_SpecialN_800EFC58 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800EFD08()

void ftKb_SpecialN_800EFD08 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800EFD64()

void ftKb_SpecialN_800EFD64 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800EFE1C()

void ftKb_SpecialN_800EFE1C ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800EFE80()

void ftKb_SpecialN_800EFE80 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800EFF38()

void ftKb_SpecialN_800EFF38 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800EFF9C()

void ftKb_SpecialN_800EFF9C ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0054()

void ftKb_SpecialN_800F0054 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F00B8()

void ftKb_SpecialN_800F00B8 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F0168()

void ftKb_SpecialN_800F0168 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F01C4()

void ftKb_SpecialN_800F01C4 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F0274()

void ftKb_SpecialN_800F0274 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F02D0()

void ftKb_SpecialN_800F02D0 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F0380()

void ftKb_SpecialN_800F0380 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F03DC()

void ftKb_SpecialN_800F03DC ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0494()

void ftKb_SpecialN_800F0494 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F04F8()

void ftKb_SpecialN_800F04F8 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F05A8()

void ftKb_SpecialN_800F05A8 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0604()

void ftKb_SpecialN_800F0604 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F06B4()

void ftKb_SpecialN_800F06B4 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0710()

void ftKb_SpecialN_800F0710 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F07C0()

void ftKb_SpecialN_800F07C0 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F081C()

void ftKb_SpecialN_800F081C ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F08D4()

void ftKb_SpecialN_800F08D4 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0938()

void ftKb_SpecialN_800F0938 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F09F0()

void ftKb_SpecialN_800F09F0 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0A54()

void ftKb_SpecialN_800F0A54 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0B0C()

void ftKb_SpecialN_800F0B0C ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0B70()

void ftKb_SpecialN_800F0B70 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F0C20()

void ftKb_SpecialN_800F0C20 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0C7C()

void ftKb_SpecialN_800F0C7C ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0D34()

void ftKb_SpecialN_800F0D34 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0D98()

void ftKb_SpecialN_800F0D98 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F0E48()

void ftKb_SpecialN_800F0E48 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0EA4()

void ftKb_SpecialN_800F0EA4 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0F5C()

void ftKb_SpecialN_800F0F5C ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F0FC0()

void ftKb_SpecialN_800F0FC0 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F10A4()

void ftKb_SpecialN_800F10A4 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F10D4()

void ftKb_SpecialN_800F10D4 ( Fighter_GObj * gobj)

Load Yoshi's hat for Kirby copy ability.

Note
The split Fighter* locals are required for register allocation.

◆ ftKb_SpecialN_800F11AC()

void ftKb_SpecialN_800F11AC ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F11F0()

void ftKb_SpecialN_800F11F0 ( Fighter_GObj * gobj)

Load Jigglypuff's hat for Kirby copy ability.

Note
The split Fighter* locals are required for register allocation.

◆ ftKb_SpecialN_800F12C8()

void ftKb_SpecialN_800F12C8 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F130C()

void ftKb_SpecialN_800F130C ( Fighter_GObj * gobj)

Load Dr.

Mario's hat for Kirby copy ability.

Note
The self-assignment fp = fp is required for register allocation.

◆ ftKb_SpecialN_800F13F0()

void ftKb_SpecialN_800F13F0 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F1420()

u8 * ftKb_SpecialN_800F1420 ( Fighter_GObj * gobj,
u32 * arg1 )

◆ ftKb_SpecialN_800F14B4()

void ftKb_SpecialN_800F14B4 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F15D8()

void ftKb_SpecialN_800F15D8 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_Enter()

void ftKb_SpecialN_Enter ( Fighter_GObj * gobj)

◆ ftKb_SpecialAirN_Enter()

void ftKb_SpecialAirN_Enter ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F16D0()

void ftKb_SpecialN_800F16D0 ( Fighter_GObj * gobj,
FighterKind kind )

◆ ftKb_SpecialN_800F190C()

void ftKb_SpecialN_800F190C ( Fighter_GObj * gobj,
FighterKind kind )

◆ ftKb_SpecialN_800F19AC()

void ftKb_SpecialN_800F19AC ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F1A8C()

void ftKb_SpecialN_800F1A8C ( Fighter_GObj * gobj)

◆ ftKb_Init_UnkMotionStates3()

void ftKb_Init_UnkMotionStates3 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F1BAC()

void ftKb_SpecialN_800F1BAC ( Fighter_GObj * gobj,
s32 kind,
bool arg2 )

◆ ftKb_SpecialN_800F1CD8()

s32 ftKb_SpecialN_800F1CD8 ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F1D24()

void ftKb_SpecialN_800F1D24 ( Fighter_GObj * gobj)

◆ ftKb_SpecialN_800F1DAC()

void ftKb_SpecialN_800F1DAC ( HSD_GObj * gobj)

◆ ftKb_SpecialN_800F1F1C()

void ftKb_SpecialN_800F1F1C ( Fighter_GObj * gobj,
Vec3 * pos )

Variable Documentation

◆ ftKb_Init_MotionStateTable

MotionState ftKb_Init_MotionStateTable[ftKb_MS_SelfCount]

◆ ftKb_Init_803C9CC8

HSD_GObjEvent ftKb_Init_803C9CC8[]

◆ ftKb_Init_803C9DD0

HSD_GObjEvent ftKb_Init_803C9DD0[]

◆ ftKb_Init_803C9E54

HSD_GObjEvent ftKb_Init_803C9E54[]

◆ ftKb_Init_803C9ED8

ftKirby_CostumeArchive ftKb_Init_803C9ED8[6] = { 0 }

◆ ftKb_Init_803C9F08

ftKirby_CostumeArchive ftKb_Init_803C9F08[6] = { 0 }

◆ ftKb_Init_803C9F38

ftKirby_CostumeArchive ftKb_Init_803C9F38[6] = { 0 }

◆ ftKb_Init_803C9F68

ftKirby_CostumeArchive ftKb_Init_803C9F68[6] = { 0 }

◆ ftKb_Init_803C9F98

ftKirby_CostumeArchive ftKb_Init_803C9F98[6] = { 0 }

◆ ftKb_Init_803C9FC8

ftKirby_CostumeArchive* ftKb_Init_803C9FC8[FTKIND_MAX]

◆ ftKb_Init_UnkMotionStates0

MotionState ftKb_Init_UnkMotionStates0[]

◆ ftKb_Init_803CA0CC

jtbl_t ftKb_Init_803CA0CC
Initial value:

◆ ftKb_Init_assert_msg_0

char ftKb_Init_assert_msg_0[] = "fighter parts model dobj num over!\n"

◆ ftKb_Init_assert_msg_1

char ftKb_Init_assert_msg_1[] = "ftkirby.c"

◆ ftKb_Init_assert_msg_2

char ftKb_Init_assert_msg_2[] = "fighter dobj num over!\n"

◆ ftKb_Init_803CA14C

jtbl_t ftKb_Init_803CA14C
Initial value:
= {
}
void ftKb_SpecialN_800F1880(void)
void ftKb_SpecialN_800F17C4(void)
void ftKb_SpecialN_800F1744(void)
void ftKb_SpecialN_800F18E8(void)
void ftKb_SpecialN_800F1894(void)
void ftKb_SpecialN_800F171C(void)
void ftKb_SpecialN_800F1818(void)
void ftKb_SpecialN_800F1858(void)
void ftKb_SpecialN_800F1838(void)
void ftKb_SpecialN_800F186C(void)
void ftKb_SpecialN_800F17F8(void)
void ftKb_SpecialN_800F1764(void)
void ftKb_SpecialN_800F1784(void)
void ftKb_SpecialN_800F1730(void)
void ftKb_SpecialN_800F17E4(void)
void ftKb_SpecialN_800F17A4(void)
void ftKb_SpecialN_800F18F8(void)
void ftKb_SpecialN_800F18C8(void)
void ftKb_SpecialN_800F1708(void)
void ftKb_SpecialN_800F18B4(void)

◆ ftKb_Init_803CA1CC

◆ ftKb_Init_803CA230

◆ ftKb_Init_803CA294

◆ ftKb_Init_803CA2CC

◆ ftKb_Init_DatFilename

char ftKb_Init_DatFilename[] = "PlKb.dat"

◆ ftKb_Init_DataName

char ftKb_Init_DataName[] = "ftDataKirby"

◆ ftKb_Init_803CA320

char ftKb_Init_803CA320[] = "PlKbNr.dat"

◆ ftKb_Init_803CA32C

char ftKb_Init_803CA32C[] = "PlyKirby5K_Share_joint"

◆ ftKb_Init_803CA344

char ftKb_Init_803CA344[] = "PlyKirby5K_Share_matanim_joint"

◆ ftKb_Init_803CA364

char ftKb_Init_803CA364[] = "PlKbYe.dat"

◆ ftKb_Init_803CA370

char ftKb_Init_803CA370[] = "PlyKirby5KYe_Share_joint"

◆ ftKb_Init_803CA38C

char ftKb_Init_803CA38C[] = "PlyKirby5KYe_Share_matanim_joint"

◆ ftKb_Init_803CA3B0

char ftKb_Init_803CA3B0[] = "PlKbBu.dat"

◆ ftKb_Init_803CA3BC

char ftKb_Init_803CA3BC[] = "PlyKirby5KBu_Share_joint"

◆ ftKb_Init_803CA3D8

char ftKb_Init_803CA3D8[] = "PlyKirby5KBu_Share_matanim_joint"

◆ ftKb_Init_803CA3FC

char ftKb_Init_803CA3FC[] = "PlKbRe.dat"

◆ ftKb_Init_803CA408

char ftKb_Init_803CA408[] = "PlyKirby5KRe_Share_joint"

◆ ftKb_Init_803CA424

char ftKb_Init_803CA424[] = "PlyKirby5KRe_Share_matanim_joint"

◆ ftKb_Init_803CA448

char ftKb_Init_803CA448[] = "PlKbGr.dat"

◆ ftKb_Init_803CA454

char ftKb_Init_803CA454[] = "PlyKirby5KGr_Share_joint"

◆ ftKb_Init_803CA470

char ftKb_Init_803CA470[] = "PlyKirby5KGr_Share_matanim_joint"

◆ ftKb_Init_803CA494

char ftKb_Init_803CA494[] = "PlKbWh.dat"

◆ ftKb_Init_803CA4A0

char ftKb_Init_803CA4A0[] = "PlyKirby5KWh_Share_joint"

◆ ftKb_Init_803CA4BC

char ftKb_Init_803CA4BC[] = "PlyKirby5KWh_Share_matanim_joint"

◆ ftKb_Init_AnimDatFilename

char ftKb_Init_AnimDatFilename[] = "PlKbAJ.dat"

◆ ftKb_Init_DemoMotionFilenames

Fighter_DemoStrings ftKb_Init_DemoMotionFilenames
Initial value:
= {
"ftDemoResultMotionFileKirby",
"ftDemoIntroMotionFileKirby",
"ftDemoEndingMotionFileKirby",
"ftDemoViWaitMotionFileKirby",
}

◆ ftKb_Init_803CA5A4

char* ftKb_Init_803CA5A4[]
Initial value:
= {
"ftDemoVi0501MotionFileKirby",
"ftDemoVi0502MotionFileKirby",
}

◆ ftKb_Init_CostumeStrings

Fighter_CostumeStrings ftKb_Init_CostumeStrings[]
Initial value:
= {
}
char ftKb_Init_803CA4A0[]
Definition ftkirby.c:2668
char ftKb_Init_803CA3FC[]
Definition ftkirby.c:2661
char ftKb_Init_803CA448[]
Definition ftkirby.c:2664
char ftKb_Init_803CA38C[]
Definition ftkirby.c:2657
char ftKb_Init_803CA3BC[]
Definition ftkirby.c:2659
char ftKb_Init_803CA3D8[]
Definition ftkirby.c:2660
char ftKb_Init_803CA4BC[]
Definition ftkirby.c:2669
char ftKb_Init_803CA454[]
Definition ftkirby.c:2665
char ftKb_Init_803CA3B0[]
Definition ftkirby.c:2658
char ftKb_Init_803CA424[]
Definition ftkirby.c:2663
char ftKb_Init_803CA470[]
Definition ftkirby.c:2666
char ftKb_Init_803CA364[]
Definition ftkirby.c:2655
char ftKb_Init_803CA320[]
Definition ftkirby.c:2652
char ftKb_Init_803CA32C[]
Definition ftkirby.c:2653
char ftKb_Init_803CA370[]
Definition ftkirby.c:2656
char ftKb_Init_803CA344[]
Definition ftkirby.c:2654
char ftKb_Init_803CA408[]
Definition ftkirby.c:2662
char ftKb_Init_803CA494[]
Definition ftkirby.c:2667

◆ ftKb_Init_803B7548

ftLk_SpecialN_Vec3Group const ftKb_Init_803B7548 = { 0 }

◆ ftKb_Init_804D3DAC

char ftKb_Init_804D3DAC[2] = "0"