SSBM Decomp
Loading...
Searching...
No Matches
ftNs_AttackHi4.c File Reference
#include "ftCommon/forward.h"
#include "lb/forward.h"
#include "ftNs_AttackHi4.h"
#include "ftNs_Init.h"
#include "ft/fighter.h"
#include "ft/ft_081B.h"
#include "ft/ft_0881.h"
#include "ft/ft_0892.h"
#include "ft/ftanim.h"
#include "ft/ftcolanim.h"
#include "ft/ftcoll.h"
#include "ft/ftcommon.h"
#include "ft/types.h"
#include "ftCommon/ftCo_Wait.h"
#include "ftNess/types.h"
#include "it/items/itnessyoyo.h"
#include "it/itYoyo.h"
#include "it/types.h"
#include "lb/lb_00B0.h"
#include "lb/lbcollision.h"
#include "lb/lbvector.h"
#include "mp/mpcoll.h"
#include <common_structs.h>
#include <trigf.h>
#include <dolphin/mtx/types.h>

Data Structures

struct  Unknown
 

Functions

void ftNs_AttackHi4_YoyoUpdateHitPos (HSD_GObj *gobj)
 Ness Yo-Yo HitCapsule Position Update.
 
void ftNs_AttackHi4_YoyoCheckTimedRehit (HSD_GObj *gobj)
 Ness D-Smash HitCapsule Refresh Timer.
 
static void ftNs_AttackHi4_YoyoApplyDamage (float unk_float, HSD_GObj *gobj)
 
static void push_ecb (CollData *a, Vec3 *b)
 
s32 ftNs_AttackHi4_YoyoCheckEnvColl (HSD_GObj *gobj, Vec3 *ECBUnk, Vec3 *ECBUnk2, float float_unk)
 Check collision of Bone (Yo-Yo attach bone)
 
void ftNs_AttackHi4_YoyoSetUnkPos (HSD_GObj *gobj, Vec3 *pos)
 
void ftNs_AttackHi4_YoyoSetHitPos (HSD_GObj *gobj)
 Set Yo-Yo hitbox position?
 
void ftNs_AttackHi4_YoyoSetHitPosUnk (HSD_GObj *gobj, float pos_unk)
 
bool ftNs_AttackHi4_YoyoCheckNoObstruct (HSD_GObj *gobj)
 Check if Yo-Yo is colliding with an obstacle (wall / air)
 
void ftNs_AttackHi4_YoyoSetVarAll (HSD_GObj *gobj)
 Set ftcmd-, fp- and stateVars.
 
void ftNs_AttackHi4_YoyoApplySmash (HSD_GObj *gobj)
 Applies Smash Charge attributes to Ness's Up/Down Smash.
 
void ftNs_AttackHi4_YoyoSetChargeDamage (HSD_GObj *gobj)
 
bool ftNs_AttackHi4_YoyoThink_IsRemove (HSD_GObj *gobj)
 Ness Yo-Yo Think.
 
void ftNs_AttackHi4_YoyoSetUnkRate (HSD_GObj *gobj)
 Calculates Yo-Yo texture rotation speed?
 
void ftNs_AttackHi4_YoyoCreateItem (HSD_GObj *gobj)
 Creates Yo-Yo item and sets up callbacks.
 
void ftNs_AttackHi4_YoyoItemSetFlag (HSD_GObj *gobj)
 Something to do with Yo-Yo flags.
 
void ftNs_AttackHi4_YoyoItemDespawn (HSD_GObj *gobj)
 Despawn Yo-Yo item.
 
void ftNs_AttackHi4_YoyoItemSetUnk (HSD_GObj *gobj)
 
void ftNs_AttackHi4_YoyoItemSetUnk2 (HSD_GObj *gobj)
 
void ftNs_AttackHi4_Enter (HSD_GObj *gobj)
 Ness's Up Smash Motion State handler.
 
void ftNs_AttackHi4_YoyoStartTimedRehit (HSD_GObj *gobj)
 Initiates rehit timer for Yo-Yo hitbox.
 
static FighterGetFighterData (HSD_GObj *gobj)
 
void ftNs_AttackHi4_Anim (HSD_GObj *gobj)
 Ness's Up Smash Animation Callback.
 
void ftNs_AttackHi4_IASA (HSD_GObj *gobj)
 
void ftNs_AttackHi4_Phys (HSD_GObj *gobj)
 
static HSD_GObjGetFighterData_x222C (HSD_GObj *gobj)
 
void ftNs_AttackHi4_Coll (HSD_GObj *gobj)
 
static HSD_GObjGetYoyoGObj (Fighter *fp)
 
void ftNs_AttackHi4Charge_Anim (HSD_GObj *gobj)
 
void ftNs_AttackHi4Charge_IASA (HSD_GObj *gobj)
 
void ftNs_AttackHi4Charge_Phys (HSD_GObj *gobj)
 
void ftNs_AttackHi4Charge_Coll (HSD_GObj *gobj)
 
void ftNs_AttackHi4Charge_Enter (HSD_GObj *gobj)
 
void ftNs_AttackHi4Release_Anim (HSD_GObj *gobj)
 
void ftNs_AttackHi4Release_IASA (HSD_GObj *gobj)
 
void ftNs_AttackHi4Release_Phys (HSD_GObj *gobj)
 
void ftNs_AttackHi4Release_Coll (HSD_GObj *gobj)
 
static itYoyoAttributesGetYoyoAttr (HSD_GObj *gobj)
 
void ftNs_AttackHi4Release_Enter (HSD_GObj *gobj)
 Ness's Up Smash Post-Charge Motion State handler.
 

Variables

static Vec3 const AttackHi4Pos = { 0 }
 
static Vec3 const YoyoChargePos = { 0 }
 
static Vec3 const YoyoThinkPos = { 0 }
 

Function Documentation

◆ ftNs_AttackHi4_YoyoUpdateHitPos()

void ftNs_AttackHi4_YoyoUpdateHitPos ( HSD_GObj gobj)

Ness Yo-Yo HitCapsule Position Update.

◆ ftNs_AttackHi4_YoyoCheckTimedRehit()

void ftNs_AttackHi4_YoyoCheckTimedRehit ( HSD_GObj gobj)

Ness D-Smash HitCapsule Refresh Timer.

◆ ftNs_AttackHi4_YoyoApplyDamage()

static void ftNs_AttackHi4_YoyoApplyDamage ( float  unk_float,
HSD_GObj gobj 
)
static

◆ push_ecb()

static void push_ecb ( CollData a,
Vec3 b 
)
inlinestatic

◆ ftNs_AttackHi4_YoyoCheckEnvColl()

s32 ftNs_AttackHi4_YoyoCheckEnvColl ( HSD_GObj gobj,
Vec3 ECBUnk,
Vec3 ECBUnk2,
f32  float_unk 
)

Check collision of Bone (Yo-Yo attach bone)

Remarks
Also used by Sheik???
Todo:
Define flags.

◆ ftNs_AttackHi4_YoyoSetUnkPos()

void ftNs_AttackHi4_YoyoSetUnkPos ( HSD_GObj gobj,
Vec3 pos 
)
Todo:
Remove dont_inline. This is probably a result of incorrectly splitting out the function.
Todo:
GET_FIGHTER is prevented by dont_inline.

◆ ftNs_AttackHi4_YoyoSetHitPos()

void ftNs_AttackHi4_YoyoSetHitPos ( HSD_GObj gobj)

Set Yo-Yo hitbox position?

Todo:
Can't move below fp.

◆ ftNs_AttackHi4_YoyoSetHitPosUnk()

void ftNs_AttackHi4_YoyoSetHitPosUnk ( HSD_GObj gobj,
float  pos_unk 
)
Todo:
Can't move below fp.

◆ ftNs_AttackHi4_YoyoCheckNoObstruct()

bool ftNs_AttackHi4_YoyoCheckNoObstruct ( HSD_GObj gobj)

Check if Yo-Yo is colliding with an obstacle (wall / air)

◆ ftNs_AttackHi4_YoyoSetVarAll()

void ftNs_AttackHi4_YoyoSetVarAll ( HSD_GObj gobj)

Set ftcmd-, fp- and stateVars.

◆ ftNs_AttackHi4_YoyoApplySmash()

void ftNs_AttackHi4_YoyoApplySmash ( HSD_GObj gobj)

Applies Smash Charge attributes to Ness's Up/Down Smash.

Todo:
Stack is too messed up for GET_FIGHTER.

◆ ftNs_AttackHi4_YoyoSetChargeDamage()

void ftNs_AttackHi4_YoyoSetChargeDamage ( HSD_GObj gobj)
Remarks
The extremely specific float here is also likely 1/256.

◆ ftNs_AttackHi4_YoyoThink_IsRemove()

bool ftNs_AttackHi4_YoyoThink_IsRemove ( HSD_GObj gobj)

Ness Yo-Yo Think.

Todo:
Stack is too messed up for GET_FIGHTER.

◆ ftNs_AttackHi4_YoyoSetUnkRate()

void ftNs_AttackHi4_YoyoSetUnkRate ( HSD_GObj gobj)

Calculates Yo-Yo texture rotation speed?

◆ ftNs_AttackHi4_YoyoCreateItem()

void ftNs_AttackHi4_YoyoCreateItem ( HSD_GObj gobj)

Creates Yo-Yo item and sets up callbacks.

◆ ftNs_AttackHi4_YoyoItemSetFlag()

void ftNs_AttackHi4_YoyoItemSetFlag ( HSD_GObj gobj)

Something to do with Yo-Yo flags.

◆ ftNs_AttackHi4_YoyoItemDespawn()

void ftNs_AttackHi4_YoyoItemDespawn ( HSD_GObj gobj)

Despawn Yo-Yo item.

◆ ftNs_AttackHi4_YoyoItemSetUnk()

void ftNs_AttackHi4_YoyoItemSetUnk ( HSD_GObj gobj)

◆ ftNs_AttackHi4_YoyoItemSetUnk2()

void ftNs_AttackHi4_YoyoItemSetUnk2 ( HSD_GObj gobj)

◆ ftNs_AttackHi4_Enter()

void ftNs_AttackHi4_Enter ( HSD_GObj gobj)

Ness's Up Smash Motion State handler.

◆ ftNs_AttackHi4_YoyoStartTimedRehit()

void ftNs_AttackHi4_YoyoStartTimedRehit ( HSD_GObj gobj)

Initiates rehit timer for Yo-Yo hitbox.

◆ GetFighterData()

static Fighter * GetFighterData ( HSD_GObj gobj)
static
Todo:
ftNs_AttackHi4_Anim literally won't match under any circumstances unless this inline is used to get Fighter*.

◆ ftNs_AttackHi4_Anim()

void ftNs_AttackHi4_Anim ( HSD_GObj gobj)

Ness's Up Smash Animation Callback.

◆ ftNs_AttackHi4_IASA()

void ftNs_AttackHi4_IASA ( HSD_GObj gobj)

◆ ftNs_AttackHi4_Phys()

void ftNs_AttackHi4_Phys ( HSD_GObj gobj)

◆ GetFighterData_x222C()

static HSD_GObj * GetFighterData_x222C ( HSD_GObj gobj)
inlinestatic

◆ ftNs_AttackHi4_Coll()

void ftNs_AttackHi4_Coll ( HSD_GObj gobj)

◆ GetYoyoGObj()

static HSD_GObj * GetYoyoGObj ( Fighter fp)
inlinestatic

◆ ftNs_AttackHi4Charge_Anim()

void ftNs_AttackHi4Charge_Anim ( HSD_GObj gobj)

◆ ftNs_AttackHi4Charge_IASA()

void ftNs_AttackHi4Charge_IASA ( HSD_GObj gobj)

◆ ftNs_AttackHi4Charge_Phys()

void ftNs_AttackHi4Charge_Phys ( HSD_GObj gobj)

◆ ftNs_AttackHi4Charge_Coll()

void ftNs_AttackHi4Charge_Coll ( HSD_GObj gobj)

◆ ftNs_AttackHi4Charge_Enter()

void ftNs_AttackHi4Charge_Enter ( HSD_GObj gobj)

◆ ftNs_AttackHi4Release_Anim()

void ftNs_AttackHi4Release_Anim ( HSD_GObj gobj)

◆ ftNs_AttackHi4Release_IASA()

void ftNs_AttackHi4Release_IASA ( HSD_GObj gobj)

◆ ftNs_AttackHi4Release_Phys()

void ftNs_AttackHi4Release_Phys ( HSD_GObj gobj)

◆ ftNs_AttackHi4Release_Coll()

void ftNs_AttackHi4Release_Coll ( HSD_GObj gobj)

◆ GetYoyoAttr()

static itYoyoAttributes * GetYoyoAttr ( HSD_GObj gobj)
static

◆ ftNs_AttackHi4Release_Enter()

void ftNs_AttackHi4Release_Enter ( HSD_GObj gobj)

Ness's Up Smash Post-Charge Motion State handler.

Variable Documentation

◆ AttackHi4Pos

Vec3 const AttackHi4Pos = { 0 }
static

◆ YoyoChargePos

Vec3 const YoyoChargePos = { 0 }
static

◆ YoyoThinkPos

Vec3 const YoyoThinkPos = { 0 }
static