SSBM Decomp
Loading...
Searching...
No Matches
ftlib.h File Reference

Go to the source code of this file.

Functions

s32 ftLib_CountFighters (void)
bool ftLib_IsMasterHandPresent (void)
bool ftLib_IsCrazyHandPresent (void)
HSD_GObj * ftLib_FindLowestPercentOpponent (HSD_GObj *)
HSD_GObj * ftLib_FindNearestOpponent (Vec3 *pos, HSD_GObj *)
 Closest opponent to pos (squared x/y distance), skipping teammates.
Fighter_GObj * ftLib_FindNearestOpponentInDir (Vec3 *, Fighter_GObj *, float)
 Like ftLib_FindNearestOpponent, but only opponents on the facing_dir side of v.
float ftLib_GetOpponentsDir (Vec3 *, HSD_GObj *)
float ftLib_GetFacingDir (HSD_GObj *)
s32 ftLib_GetGroundAir (HSD_GObj *)
void ftLib_GetLStick (HSD_GObj *, float *, float *)
HSD_JObj * ftLib_GetHipJObj (HSD_GObj *)
HSD_JObj * ftLib_GetPartJObj (Fighter_GObj *, Fighter_Part part)
void ftLib_GetPos (Fighter_GObj *, Vec3 *)
void ftLib_SetPos (HSD_GObj *, Vec3 *)
void ftLib_GetPrevPos (HSD_GObj *, Vec3 *)
void ftLib_SetScale (HSD_GObj *, float)
void ftLib_GetCameraBonePos (HSD_GObj *, Vec3 *)
void ftLib_ReleaseItem (HSD_GObj *, HSD_GObj *)
void ftLib_ClearHeldSpecialItem (HSD_GObj *)
HSD_GObj * ftLib_GetItem (HSD_GObj *)
bool ftLib_IsHoldingItem (HSD_GObj *, HSD_GObj *)
HSD_GObj * ftLib_GetHeldSpecialItem (HSD_GObj *)
bool ftLib_IsInputDisabled (HSD_GObj *)
void ftLib_DisableInput (HSD_GObj *)
void ftLib_DisableAllInput (void)
void ftLib_EnableInput (HSD_GObj *)
void ftLib_EnableAllInput (void)
bool ftLib_IsItemVisible (HSD_GObj *, HSD_GObj *)
bool ftLib_IsFighter (HSD_GObj *gobj)
 Check if the HSD_GObj* class is a fighter.
CollData * ftLib_GetCollData (HSD_GObj *)
void ftLib_GetECBCenter (HSD_GObj *, Vec3 *)
float ftLib_GetModelScale (HSD_GObj *)
float ftLib_800869F8 (HSD_GObj *)
float ftLib_GetScale (HSD_GObj *)
bool ftLib_IsShielding (HSD_GObj *)
void ftLib_80086A4C (HSD_GObj *, float)
bool ftLib_GetScreenPos (HSD_GObj *, S32Vec2 *)
bool ftLib_UpdateScreenVisibility (HSD_GObj *)
bool ftLib_IsOffscreen (HSD_GObj *)
CmSubject * ftLib_GetCameraSubject (HSD_GObj *)
float ftLib_80086B80 (HSD_GObj *)
void ftLib_GetCameraSubjectBonePos (HSD_GObj *, Vec3 *v)
bool ftLib_IsCameraSubjectInBounds (HSD_GObj *)
u8 ftLib_GetPlayerIndex (HSD_GObj *)
void ftLib_GetPosDelta (HSD_GObj *, Vec3 *)
enum_t ftLib_GetMotionId (HSD_GObj *)
void ftLib_StartRumble (HSD_GObj *, s32, s32)
void ftLib_StartRumbleAll (s32, s32)
void ftLib_StartItemRumble (HSD_GObj *, s32, s32)
void ftLib_StartItemRumbleAll (s32, s32)
void ftLib_StopItemRumble (HSD_GObj *)
s32 ftLib_GetTeam (HSD_GObj *)
 Get fighter's team ID.
bool ftLib_IsInHitstun (HSD_GObj *)
bool ftLib_CanBeMagnified (HSD_GObj *)
bool ftLib_80086F4C (HSD_GObj *)
float ftLib_GetNameTagHeight (HSD_GObj *)
bool ftLib_IsSwordSwing (HSD_GObj *)
bool ftLib_IsSamePlayer (HSD_GObj *, HSD_GObj *)
bool ftLib_IsSleeping (HSD_GObj *)
void ftLib_IncFighterRefCount (s32)
void ftLib_DecFighterRefCount (s32)
bool ftLib_GetShakeOffset (HSD_GObj *, Vec3 *)
bool ftLib_GetSubColor (HSD_GObj *, GXColor *)
void ftLib_SetPercent (HSD_GObj *, s32)
s32 ftLib_GetPercent (HSD_GObj *)
void ftLib_80087140 (HSD_GObj *)
void ftLib_ApplyMetalBox (Fighter_GObj *, Item_GObj *)
bool ftLib_80087284 (HSD_GObj *)
 Unbounded: true for every motion state from ftCo_MS_LightThrowF4 on.
FighterKind ftLib_GetKind (HSD_GObj *)
LbShadow * ftLib_GetShadow (HSD_GObj *)
bool ftLib_CastsShadow (HSD_GObj *)
s32 ftLib_GetLastAttackerSlot (HSD_GObj *)
s32 ftLib_IsLastAttackerSubFighter (HSD_GObj *)
s32 ftLib_IsSleeping_8008731C (HSD_GObj *)
bool ftLib_IsDead (HSD_GObj *)
bool ftLib_IsDeadUp (HSD_GObj *)
bool ftLib_IsDeadUpStar (HSD_GObj *)
bool ftLib_IsDeadUpFall (HSD_GObj *)
bool ftLib_IsRebirth (HSD_GObj *)
bool ftLib_IsEntry (HSD_GObj *)
HSD_GObj * ftLib_FindBySpawnNum (u32)
float ftLib_GetCrowdKnockback (HSD_GObj *)
 Knockback reweighted by the crowd config's angle multiplier (un_803222EC); only the crowd sound code reads it.
u32 ftLib_GetSpawnNum (HSD_GObj *)
s32 ftLib_8008746C (HSD_GObj *)
s32 ftLib_IsSubFighter (HSD_GObj *)
void ftLib_800874CC (HSD_GObj *, ItemKind[], s32)
void ftLib_LoadFighterCostume (s8, u8)
 void ftLib_LoadFighterCostume(FighterKind ft_kind, u8 arg1)
void ftLib_LoadFighterAllCostumes (s8)
 /* 087508 *‍/ void ftLib_LoadFighterCostume(FighterKind, u8);
void ftLib_LoadKirbyHats (u8)
 /* 087574 *‍/ void ftLib_LoadFighterAllCostumes(FighterKind);
void ftLib_IsFramesRemaining (HSD_GObj *)
bool ftLib_IsChargingSmash (HSD_GObj *)
s32 ftLib_GetLastHitSourceType (HSD_GObj *)
s32 ftLib_GetLastHitSourceKind (HSD_GObj *)
void ftLib_GetGameWatchColor (HSD_GObj *, void *dst)
void ftLib_GetGameWatchOutlineColor (HSD_GObj *, void *dst)
float ftLib_GetGroundSlopeAngle (HSD_GObj *)
bool ftLib_IsBeingNudged (HSD_GObj *)

Function Documentation

◆ ftLib_CountFighters()

s32 ftLib_CountFighters ( void )

◆ ftLib_IsMasterHandPresent()

bool ftLib_IsMasterHandPresent ( void )

◆ ftLib_IsCrazyHandPresent()

bool ftLib_IsCrazyHandPresent ( void )

◆ ftLib_FindLowestPercentOpponent()

HSD_GObj * ftLib_FindLowestPercentOpponent ( HSD_GObj * gobj)
Todo
Figure out how these are really declared

◆ ftLib_FindNearestOpponent()

HSD_GObj * ftLib_FindNearestOpponent ( Vec3 * pos,
HSD_GObj * gobj )

Closest opponent to pos (squared x/y distance), skipping teammates.

◆ ftLib_FindNearestOpponentInDir()

Fighter_GObj * ftLib_FindNearestOpponentInDir ( Vec3 * v,
Fighter_GObj * gobj,
float facing_dir )

Like ftLib_FindNearestOpponent, but only opponents on the facing_dir side of v.

◆ ftLib_GetOpponentsDir()

float ftLib_GetOpponentsDir ( Vec3 * v,
HSD_GObj * gobj )

◆ ftLib_GetFacingDir()

float ftLib_GetFacingDir ( HSD_GObj * gobj)

◆ ftLib_GetGroundAir()

s32 ftLib_GetGroundAir ( HSD_GObj * gobj)

◆ ftLib_GetLStick()

void ftLib_GetLStick ( HSD_GObj * gobj,
float * x,
float * y )

◆ ftLib_GetHipJObj()

HSD_JObj * ftLib_GetHipJObj ( HSD_GObj * gobj)

◆ ftLib_GetPartJObj()

HSD_JObj * ftLib_GetPartJObj ( Fighter_GObj * ,
Fighter_Part part )

◆ ftLib_GetPos()

void ftLib_GetPos ( Fighter_GObj * gobj,
Vec3 * pos )

◆ ftLib_SetPos()

void ftLib_SetPos ( HSD_GObj * gobj,
Vec3 * pos )

◆ ftLib_GetPrevPos()

void ftLib_GetPrevPos ( HSD_GObj * gobj,
Vec3 * pos )

◆ ftLib_SetScale()

void ftLib_SetScale ( HSD_GObj * gobj,
float val )

◆ ftLib_GetCameraBonePos()

void ftLib_GetCameraBonePos ( HSD_GObj * gobj,
Vec3 * v )

◆ ftLib_ReleaseItem()

void ftLib_ReleaseItem ( HSD_GObj * gobj,
HSD_GObj * other )

◆ ftLib_ClearHeldSpecialItem()

void ftLib_ClearHeldSpecialItem ( HSD_GObj * gobj)

◆ ftLib_GetItem()

HSD_GObj * ftLib_GetItem ( HSD_GObj * gobj)

◆ ftLib_IsHoldingItem()

bool ftLib_IsHoldingItem ( HSD_GObj * gobj,
HSD_GObj * arg1 )

◆ ftLib_GetHeldSpecialItem()

HSD_GObj * ftLib_GetHeldSpecialItem ( HSD_GObj * gobj)

◆ ftLib_IsInputDisabled()

bool ftLib_IsInputDisabled ( HSD_GObj * gobj)

◆ ftLib_DisableInput()

void ftLib_DisableInput ( HSD_GObj * gobj)

◆ ftLib_DisableAllInput()

void ftLib_DisableAllInput ( void )

◆ ftLib_EnableInput()

void ftLib_EnableInput ( HSD_GObj * gobj)

◆ ftLib_EnableAllInput()

void ftLib_EnableAllInput ( void )

◆ ftLib_IsItemVisible()

bool ftLib_IsItemVisible ( HSD_GObj * gobj,
HSD_GObj * arg1 )

◆ ftLib_IsFighter()

bool ftLib_IsFighter ( HSD_GObj * gobj)

Check if the HSD_GObj* class is a fighter.

Returns
true if gobj is a Fighter, otherwise false.

◆ ftLib_GetCollData()

CollData * ftLib_GetCollData ( HSD_GObj * gobj)

◆ ftLib_GetECBCenter()

void ftLib_GetECBCenter ( HSD_GObj * gobj,
Vec3 * v )

◆ ftLib_GetModelScale()

float ftLib_GetModelScale ( HSD_GObj * gobj)

◆ ftLib_800869F8()

float ftLib_800869F8 ( HSD_GObj * gobj)

◆ ftLib_GetScale()

float ftLib_GetScale ( HSD_GObj * gobj)

◆ ftLib_IsShielding()

bool ftLib_IsShielding ( HSD_GObj * gobj)
Note
Only ftCo_MS_GuardOn, ftCo_MS_Guard and ftCo_MS_GuardSetOff: not GuardOff, GuardReflect or Yoshi's ftYs_MS_GuardHold.

◆ ftLib_80086A4C()

void ftLib_80086A4C ( HSD_GObj * gobj,
float val )

◆ ftLib_GetScreenPos()

bool ftLib_GetScreenPos ( HSD_GObj * gobj,
S32Vec2 * x )

◆ ftLib_UpdateScreenVisibility()

bool ftLib_UpdateScreenVisibility ( HSD_GObj * gobj)

◆ ftLib_IsOffscreen()

bool ftLib_IsOffscreen ( HSD_GObj * gobj)

◆ ftLib_GetCameraSubject()

CmSubject * ftLib_GetCameraSubject ( HSD_GObj * gobj)

◆ ftLib_80086B80()

float ftLib_80086B80 ( HSD_GObj * gobj)

◆ ftLib_GetCameraSubjectBonePos()

void ftLib_GetCameraSubjectBonePos ( HSD_GObj * gobj,
Vec3 * v )

◆ ftLib_IsCameraSubjectInBounds()

bool ftLib_IsCameraSubjectInBounds ( HSD_GObj * gobj)

◆ ftLib_GetPlayerIndex()

u8 ftLib_GetPlayerIndex ( HSD_GObj * gobj)

◆ ftLib_GetPosDelta()

void ftLib_GetPosDelta ( HSD_GObj * gobj,
Vec3 * v )

◆ ftLib_GetMotionId()

enum_t ftLib_GetMotionId ( HSD_GObj * gobj)
Returns
A fighter action state ID.

◆ ftLib_StartRumble()

void ftLib_StartRumble ( HSD_GObj * gobj,
s32 arg1,
s32 arg2 )

◆ ftLib_StartRumbleAll()

void ftLib_StartRumbleAll ( s32 arg0,
s32 arg1 )

◆ ftLib_StartItemRumble()

void ftLib_StartItemRumble ( HSD_GObj * arg0,
s32 arg1,
s32 arg2 )

◆ ftLib_StartItemRumbleAll()

void ftLib_StartItemRumbleAll ( s32 arg0,
s32 arg1 )

◆ ftLib_StopItemRumble()

void ftLib_StopItemRumble ( HSD_GObj * gobj)

◆ ftLib_GetTeam()

s32 ftLib_GetTeam ( HSD_GObj * gobj)

Get fighter's team ID.

◆ ftLib_IsInHitstun()

bool ftLib_IsInHitstun ( HSD_GObj * gobj)

◆ ftLib_CanBeMagnified()

bool ftLib_CanBeMagnified ( HSD_GObj * gobj)

◆ ftLib_80086F4C()

bool ftLib_80086F4C ( HSD_GObj * gobj)

◆ ftLib_GetNameTagHeight()

float ftLib_GetNameTagHeight ( HSD_GObj * gobj)

◆ ftLib_IsSwordSwing()

bool ftLib_IsSwordSwing ( HSD_GObj * gobj)

◆ ftLib_IsSamePlayer()

bool ftLib_IsSamePlayer ( HSD_GObj * gobj0,
HSD_GObj * gobj1 )

◆ ftLib_IsSleeping()

bool ftLib_IsSleeping ( HSD_GObj * gobj)

◆ ftLib_IncFighterRefCount()

void ftLib_IncFighterRefCount ( s32 arg0)

◆ ftLib_DecFighterRefCount()

void ftLib_DecFighterRefCount ( s32 arg0)

◆ ftLib_GetShakeOffset()

bool ftLib_GetShakeOffset ( HSD_GObj * gobj,
Vec3 * v )

◆ ftLib_GetSubColor()

bool ftLib_GetSubColor ( HSD_GObj * gobj,
GXColor * val )

◆ ftLib_SetPercent()

void ftLib_SetPercent ( HSD_GObj * gobj,
s32 x )

◆ ftLib_GetPercent()

s32 ftLib_GetPercent ( HSD_GObj * gobj)

◆ ftLib_80087140()

void ftLib_80087140 ( HSD_GObj * gobj)

◆ ftLib_ApplyMetalBox()

void ftLib_ApplyMetalBox ( Fighter_GObj * gobj,
Item_GObj * item_gobj )

◆ ftLib_80087284()

bool ftLib_80087284 ( HSD_GObj * gobj)

Unbounded: true for every motion state from ftCo_MS_LightThrowF4 on.

The flipper's thrown code uses it to pick its smash-throw duration.

◆ ftLib_GetKind()

FighterKind ftLib_GetKind ( HSD_GObj * gobj)

◆ ftLib_GetShadow()

LbShadow * ftLib_GetShadow ( HSD_GObj * gobj)

◆ ftLib_CastsShadow()

bool ftLib_CastsShadow ( HSD_GObj * gobj)

◆ ftLib_GetLastAttackerSlot()

s32 ftLib_GetLastAttackerSlot ( HSD_GObj * gobj)

◆ ftLib_IsLastAttackerSubFighter()

s32 ftLib_IsLastAttackerSubFighter ( HSD_GObj * gobj)

◆ ftLib_IsSleeping_8008731C()

s32 ftLib_IsSleeping_8008731C ( HSD_GObj * gobj)

◆ ftLib_IsDead()

bool ftLib_IsDead ( HSD_GObj * gobj)

◆ ftLib_IsDeadUp()

bool ftLib_IsDeadUp ( HSD_GObj * gobj)

◆ ftLib_IsDeadUpStar()

bool ftLib_IsDeadUpStar ( HSD_GObj * gobj)

◆ ftLib_IsDeadUpFall()

bool ftLib_IsDeadUpFall ( HSD_GObj * gobj)

◆ ftLib_IsRebirth()

bool ftLib_IsRebirth ( HSD_GObj * gobj)

◆ ftLib_IsEntry()

bool ftLib_IsEntry ( HSD_GObj * gobj)

◆ ftLib_FindBySpawnNum()

HSD_GObj * ftLib_FindBySpawnNum ( u32 i)
Todo
Is i really u32?

◆ ftLib_GetCrowdKnockback()

float ftLib_GetCrowdKnockback ( HSD_GObj * gobj)

Knockback reweighted by the crowd config's angle multiplier (un_803222EC); only the crowd sound code reads it.

◆ ftLib_GetSpawnNum()

u32 ftLib_GetSpawnNum ( HSD_GObj * gobj)

◆ ftLib_8008746C()

s32 ftLib_8008746C ( HSD_GObj * gobj)

◆ ftLib_IsSubFighter()

s32 ftLib_IsSubFighter ( HSD_GObj * gobj)

◆ ftLib_800874CC()

void ftLib_800874CC ( HSD_GObj * gobj,
ItemKind arg1[],
s32 arg2 )

◆ ftLib_LoadFighterCostume()

void ftLib_LoadFighterCostume ( s8 ft_kind,
u8 arg1 )

void ftLib_LoadFighterCostume(FighterKind ft_kind, u8 arg1)

◆ ftLib_LoadFighterAllCostumes()

void ftLib_LoadFighterAllCostumes ( s8 ft_kind)

/* 087508 *‍/ void ftLib_LoadFighterCostume(FighterKind, u8);

void ftLib_LoadFighterAllCostumes(FighterKind ft_kind)

/* 087508 *‍/ void ftLib_LoadFighterCostume(FighterKind, u8);

◆ ftLib_LoadKirbyHats()

void ftLib_LoadKirbyHats ( u8 arg0)

/* 087574 *‍/ void ftLib_LoadFighterAllCostumes(FighterKind);

◆ ftLib_IsFramesRemaining()

void ftLib_IsFramesRemaining ( HSD_GObj * gobj)

◆ ftLib_IsChargingSmash()

bool ftLib_IsChargingSmash ( HSD_GObj * gobj)
Note
Only checks SmashState_Charging, so Ness's yo-yo smash (ftNs_AttackHi4_YoyoApplySmash) is not covered.

◆ ftLib_GetLastHitSourceType()

s32 ftLib_GetLastHitSourceType ( HSD_GObj * gobj)

◆ ftLib_GetLastHitSourceKind()

s32 ftLib_GetLastHitSourceKind ( HSD_GObj * gobj)

◆ ftLib_GetGameWatchColor()

void ftLib_GetGameWatchColor ( HSD_GObj * gobj,
void * dst )

◆ ftLib_GetGameWatchOutlineColor()

void ftLib_GetGameWatchOutlineColor ( HSD_GObj * gobj,
void * dst )

◆ ftLib_GetGroundSlopeAngle()

float ftLib_GetGroundSlopeAngle ( HSD_GObj * gobj)

◆ ftLib_IsBeingNudged()

bool ftLib_IsBeingNudged ( HSD_GObj * gobj)