SSBM Decomp
Loading...
Searching...
No Matches
ftNs_SpecialHi.c File Reference
#include "ftNs_SpecialHi.h"
#include "ftNs_Init.h"
#include <platform.h>
#include "ef/eflib.h"
#include "ef/efsync.h"
#include "ft/fighter.h"
#include "ft/ft_081B.h"
#include "ft/ft_0892.h"
#include "ft/ftanim.h"
#include "ft/ftcliffcommon.h"
#include "ft/ftcommon.h"
#include "ft/ftparts.h"
#include "ft/types.h"
#include "ftCommon/ftCo_DownBound.h"
#include "ftCommon/ftCo_Fall.h"
#include "ftCommon/ftCo_FallSpecial.h"
#include "ftNess/types.h"
#include "it/items/itnesspkthunderball.h"
#include "lb/lb_00B0.h"
#include "lb/lbvector.h"
#include <math.h>
#include <math_ppc.h>
#include <trigf.h>
#include <dolphin/mtx.h>
#include <MetroTRK/intrinsics.h>

Macros

#define FTNESS_SPECIALHI_COLL_FLAG
 SpecialHi/SpecialAirHi (PK Thunder)
 
#define FTNESS_JIBAKU_COLL_FLAG
 SpecialHi Jibaku (PK Thunder 2 Self-Hit)
 

Functions

static float return_float1 (void)
 Setup float order.
 
static float return_float2 (void)
 
static float return_float3 (void)
 
static float return_float4 (void)
 
static float return_float5 (void)
 
static f64 return_float6 (void)
 
static f64 return_float7 (void)
 
static f64 return_float8 (void)
 
static float return_float9 (void)
 
static f64 return_float10 (void)
 
static float return_float12 (void)
 
static float return_float13 (void)
 
static float return_float14 (void)
 
static float return_float15 (void)
 
static f64 return_float16 (void)
 
static f64 return_float17 (void)
 
static float return_float18 (void)
 
static float return_float19 (void)
 
static f64 return_float20 (void)
 
void ftNs_SpecialHiStopGFX (HSD_GObj *gobj)
 0x80117B70 https://decomp.me/scratch/242L6
 
bool check_distance (Vec3 *pos, Vec3 *pair)
 
bool ftNs_SpecialHi_ItemPKThunder_CheckNessCollide (HSD_GObj *gobj)
 0x80117BBC https://decomp.me/scratch/xTtbs // Very confusing and fabricated match based on auto-decomp // https://decomp.me/scratch/hwphL // Proper match
 
bool ftNs_SpecialHi_CheckSpecialHiHold (HSD_GObj *gobj)
 Checks if Ness is in SpecialHiHold/SpecialAirHiHold (PK Thunder control loop)
 
void ftNs_SpecialHi_ItemPKThunderRemove (HSD_GObj *gobj)
 0x80117DD4 https://decomp.me/scratch/e00Cp
 
void ftNs_SpecialHi_TakeDamage (HSD_GObj *gobj)
 0x80117E60 https://decomp.me/scratch/MTTJq
 
void ftNs_SpecialHi_ItemPKThunderCheckOwn (HSD_GObj *gobj, HSD_GObj *thunder_gobj)
 0x80117F00 https://decomp.me/scratch/1nlBY Run from PK Thunder's OnReflect callback.
 
static void ftNs_SpecialAirHi_CollisionModVel (HSD_GObj *gobj, CollData *coll_data)
 0x80117F24 https://decomp.me/scratch/3URl3
 
void ftNs_SpecialHiStart_Enter (HSD_GObj *gobj)
 0x80118120 https://decomp.me/scratch/ARLRd
 
void ftNs_SpecialAirHiStart_Enter (HSD_GObj *gobj)
 0x80118250 https://decomp.me/scratch/D08nX
 
void ftNs_SpecialHi_Enter (HSD_GObj *gobj)
 
void NessFloatMath_PKThunder2 (HSD_GObj *gobj)
 
void ftNs_SpecialAirHi_Enter (HSD_GObj *gobj)
 Ness's PK Thunder 2 Motion State handler if Ness is launching into SpecialAirHi from SpecialHiHold.
 
void ftNs_SpecialHiStart_Anim (HSD_GObj *gobj)
 PK Thunder Grounded Startup Animation.
 
void ftNs_SpecialHiHold_Anim (HSD_GObj *gobj)
 0x801187A4 https://decomp.me/scratch/Xm3tt
 
void ftNs_SpecialHiEnd_Anim (HSD_GObj *gobj)
 Ness's grounded PK Thunder End Animation callback.
 
void ftNs_SpecialHi_Anim (HSD_GObj *gobj)
 Ness's grounded PK Thunder 2 Animation callback.
 
void ftNs_SpecialAirHiStart_Anim (HSD_GObj *gobj)
 Ness's aerial PK Thunder Start Animation callback.
 
void ftNs_SpecialAirHiHold_Anim (HSD_GObj *gobj)
 Ness's aerial PK Thunder Control Loop Animation callback.
 
void ftNs_SpecialAirHiEnd_Anim (HSD_GObj *gobj)
 Ness's aerial PK Thunder End Animation callback.
 
void ftNs_SpecialAirHi_Anim (HSD_GObj *gobj)
 Ness's aerial PK Thunder 2 Animation callback.
 
void ftNs_SpecialAirHiRebound_Anim (HSD_GObj *gobj)
 Ness's PK Thunder 2 Wall Rebound Animation callback.
 
void ftNs_SpecialHiStart_IASA (HSD_GObj *gobj)
 0x80118F80
 
void ftNs_SpecialHiHold_IASA (HSD_GObj *gobj)
 0x80118F84
 
void ftNs_SpecialHiEnd_IASA (HSD_GObj *gobj)
 0x80118F88
 
void ftNs_SpecialHi_IASA (HSD_GObj *gobj)
 0x80118F8C
 
void ftNs_SpecialAirHiStart_IASA (HSD_GObj *gobj)
 0x80118F90
 
void ftNs_SpecialAirHiHold_IASA (HSD_GObj *gobj)
 0x80118F94
 
void ftNs_SpecialAirHiEnd_IASA (HSD_GObj *gobj)
 0x80118F98
 
void ftNs_SpecialAirHi_IASA (HSD_GObj *gobj)
 0x80118F9C
 
void ftNs_SpecialAirHiRebound_IASA (HSD_GObj *gobj)
 0x80118FA0
 
void ThunderPhysTimer (HSD_GObj *gobj)
 
void ftNs_SpecialHiStart_Phys (HSD_GObj *gobj)
 0x80118FA4 https://decomp.me/scratch/5RSqi
 
void ftNs_SpecialHiHold_Phys (HSD_GObj *gobj)
 0x80118FDC https://decomp.me/scratch/3o65K
 
void ftNs_SpecialHiEnd_Phys (HSD_GObj *gobj)
 0x80118FFC This is identical to 0x80118FDC so there's no link bruh
 
void ftNs_SpecialHi_Phys (HSD_GObj *gobj)
 Ness's grounded PK Thunder 2 Physics callback.
 
void ftNs_SpecialAirHiStart_Phys (HSD_GObj *gobj)
 Ness's aerial PK Thunder Start Physics callback.
 
void ftNs_SpecialAirHiHold_Phys (HSD_GObj *gobj)
 0x80119194 https://decomp.me/scratch/nvI07
 
void ftNs_SpecialAirHiEnd_Phys (HSD_GObj *gobj)
 Ness's aerial PK Thunder End Physics callback.
 
void ftNess_atan2 (HSD_GObj *gobj)
 
void * getFtSpecialAttrs2 (Fighter *fp)
 
void ftNs_SpecialAirHi_Phys (HSD_GObj *gobj)
 Ness's aerial PK Thunder 2 Physics callback.
 
void ftNs_SpecialAirHiRebound_Phys (HSD_GObj *gobj)
 0x80119410 https://decomp.me/scratch/HLUCz
 
void ftNs_SpecialHiStart_Coll (HSD_GObj *gobj)
 0x80119460 https://decomp.me/scratch/YDYwL
 
void ftNs_SpecialHiHold_Coll (HSD_GObj *gobj)
 0x801194CC https://decomp.me/scratch/oOw2I
 
void ftNs_SpecialHiEnd_Coll (HSD_GObj *gobj)
 0x80119538 https://decomp.me/scratch/3bhjz
 
void ftNs_SpecialHi_Coll (HSD_GObj *gobj)
 Ness's grounded PK Thunder 2 Collision callback.
 
void ftNs_SpecialAirHiStart_Coll (HSD_GObj *gobj)
 0x80119798 https://decomp.me/scratch/zd3TZ
 
void ftNs_SpecialAirHiHold_Coll (HSD_GObj *gobj)
 0x80119804 https://decomp.me/scratch/mu2vM
 
void ftNs_SpecialAirHiEnd_Coll (HSD_GObj *gobj)
 0x80119870 https://decomp.me/scratch/ELLSL
 
void ftNs_SpecialAirHi_Coll (HSD_GObj *gobj)
 Ness's aerial PK Thunder 2 Collision callback.
 
void ftNs_SpecialAirHiRebound_Coll (HSD_GObj *gobj)
 Ness's PK Thunder 2 Wall Rebound Collision callback.
 

Variables

static const float vel_epsilon = 0.0001f
 

Macro Definition Documentation

◆ FTNESS_SPECIALHI_COLL_FLAG

#define FTNESS_SPECIALHI_COLL_FLAG
Value:
static MotionFlags const Ft_MF_UpdateCmd
Run all Subaction Events up to the current animation frame.
Definition forward.h:200
static MotionFlags const Ft_MF_SkipItemVis
Used by Ness during Up/Down Smash.
Definition forward.h:210
static MotionFlags const Ft_MF_SkipModelFlags
Definition forward.h:228
static MotionFlags const Ft_MF_SkipModelPartVis
Definition forward.h:220
static MotionFlags const Ft_MF_Unk19
Skips updating bit 5 of #Fighter::x2222_flag?
Definition forward.h:213
static MotionFlags const Ft_MF_Unk27
Definition forward.h:230
static MotionFlags const Ft_MF_SkipColAnim
Definition forward.h:194
static MotionFlags const Ft_MF_SkipMatAnim
Ignore switching to character's "hurt" textures ?
Definition forward.h:181

SpecialHi/SpecialAirHi (PK Thunder)

◆ FTNESS_JIBAKU_COLL_FLAG

#define FTNESS_JIBAKU_COLL_FLAG
Value:
static MotionFlags const Ft_MF_KeepGfx
Definition forward.h:165
static MotionFlags const Ft_MF_SkipHit
Keep hitboxes.
Definition forward.h:171

SpecialHi Jibaku (PK Thunder 2 Self-Hit)

Function Documentation

◆ return_float1()

static float return_float1 ( void  )
static

Setup float order.

◆ return_float2()

static float return_float2 ( void  )
static

◆ return_float3()

static float return_float3 ( void  )
static

◆ return_float4()

static float return_float4 ( void  )
static

◆ return_float5()

static float return_float5 ( void  )
static

◆ return_float6()

static f64 return_float6 ( void  )
static

◆ return_float7()

static f64 return_float7 ( void  )
static

◆ return_float8()

static f64 return_float8 ( void  )
static

◆ return_float9()

static float return_float9 ( void  )
static

◆ return_float10()

static f64 return_float10 ( void  )
static

◆ return_float12()

static float return_float12 ( void  )
static

◆ return_float13()

static float return_float13 ( void  )
static

◆ return_float14()

static float return_float14 ( void  )
static

◆ return_float15()

static float return_float15 ( void  )
static

◆ return_float16()

static f64 return_float16 ( void  )
static

◆ return_float17()

static f64 return_float17 ( void  )
static

◆ return_float18()

static float return_float18 ( void  )
static

◆ return_float19()

static float return_float19 ( void  )
static

◆ return_float20()

static f64 return_float20 ( void  )
static

◆ ftNs_SpecialHiStopGFX()

void ftNs_SpecialHiStopGFX ( HSD_GObj gobj)

◆ check_distance()

bool check_distance ( Vec3 *  pos,
Vec3 *  pair 
)
inline

◆ ftNs_SpecialHi_ItemPKThunder_CheckNessCollide()

bool ftNs_SpecialHi_ItemPKThunder_CheckNessCollide ( HSD_GObj gobj)

0x80117BBC https://decomp.me/scratch/xTtbs // Very confusing and fabricated match based on auto-decomp // https://decomp.me/scratch/hwphL // Proper match

◆ ftNs_SpecialHi_CheckSpecialHiHold()

bool ftNs_SpecialHi_CheckSpecialHiHold ( HSD_GObj gobj)

Checks if Ness is in SpecialHiHold/SpecialAirHiHold (PK Thunder control loop)

◆ ftNs_SpecialHi_ItemPKThunderRemove()

void ftNs_SpecialHi_ItemPKThunderRemove ( HSD_GObj gobj)

◆ ftNs_SpecialHi_TakeDamage()

void ftNs_SpecialHi_TakeDamage ( HSD_GObj gobj)

◆ ftNs_SpecialHi_ItemPKThunderCheckOwn()

void ftNs_SpecialHi_ItemPKThunderCheckOwn ( HSD_GObj gobj,
HSD_GObj thunder_gobj 
)

0x80117F00 https://decomp.me/scratch/1nlBY Run from PK Thunder's OnReflect callback.

Sets Ness's reference to PK Thunder to NULL if he is reflecting his own PK Thunder.

◆ ftNs_SpecialAirHi_CollisionModVel()

static void ftNs_SpecialAirHi_CollisionModVel ( HSD_GObj gobj,
CollData coll_data 
)
static

◆ ftNs_SpecialHiStart_Enter()

void ftNs_SpecialHiStart_Enter ( HSD_GObj gobj)

◆ ftNs_SpecialAirHiStart_Enter()

void ftNs_SpecialAirHiStart_Enter ( HSD_GObj gobj)

◆ ftNs_SpecialHi_Enter()

void ftNs_SpecialHi_Enter ( HSD_GObj gobj)
Todo:
Rewrite this.
Todo:
Try to move these close to usage

◆ NessFloatMath_PKThunder2()

void NessFloatMath_PKThunder2 ( HSD_GObj gobj)
inline

◆ ftNs_SpecialAirHi_Enter()

void ftNs_SpecialAirHi_Enter ( HSD_GObj gobj)

Ness's PK Thunder 2 Motion State handler if Ness is launching into SpecialAirHi from SpecialHiHold.

◆ ftNs_SpecialHiStart_Anim()

void ftNs_SpecialHiStart_Anim ( HSD_GObj gobj)

PK Thunder Grounded Startup Animation.

◆ ftNs_SpecialHiHold_Anim()

void ftNs_SpecialHiHold_Anim ( HSD_GObj gobj)

◆ ftNs_SpecialHiEnd_Anim()

void ftNs_SpecialHiEnd_Anim ( HSD_GObj gobj)

Ness's grounded PK Thunder End Animation callback.

◆ ftNs_SpecialHi_Anim()

void ftNs_SpecialHi_Anim ( HSD_GObj gobj)

Ness's grounded PK Thunder 2 Animation callback.

◆ ftNs_SpecialAirHiStart_Anim()

void ftNs_SpecialAirHiStart_Anim ( HSD_GObj gobj)

Ness's aerial PK Thunder Start Animation callback.

◆ ftNs_SpecialAirHiHold_Anim()

void ftNs_SpecialAirHiHold_Anim ( HSD_GObj gobj)

Ness's aerial PK Thunder Control Loop Animation callback.

◆ ftNs_SpecialAirHiEnd_Anim()

void ftNs_SpecialAirHiEnd_Anim ( HSD_GObj gobj)

Ness's aerial PK Thunder End Animation callback.

◆ ftNs_SpecialAirHi_Anim()

void ftNs_SpecialAirHi_Anim ( HSD_GObj gobj)

Ness's aerial PK Thunder 2 Animation callback.

◆ ftNs_SpecialAirHiRebound_Anim()

void ftNs_SpecialAirHiRebound_Anim ( HSD_GObj gobj)

Ness's PK Thunder 2 Wall Rebound Animation callback.

◆ ftNs_SpecialHiStart_IASA()

void ftNs_SpecialHiStart_IASA ( HSD_GObj gobj)

0x80118F80

◆ ftNs_SpecialHiHold_IASA()

void ftNs_SpecialHiHold_IASA ( HSD_GObj gobj)

0x80118F84

◆ ftNs_SpecialHiEnd_IASA()

void ftNs_SpecialHiEnd_IASA ( HSD_GObj gobj)

0x80118F88

◆ ftNs_SpecialHi_IASA()

void ftNs_SpecialHi_IASA ( HSD_GObj gobj)

0x80118F8C

◆ ftNs_SpecialAirHiStart_IASA()

void ftNs_SpecialAirHiStart_IASA ( HSD_GObj gobj)

0x80118F90

◆ ftNs_SpecialAirHiHold_IASA()

void ftNs_SpecialAirHiHold_IASA ( HSD_GObj gobj)

0x80118F94

◆ ftNs_SpecialAirHiEnd_IASA()

void ftNs_SpecialAirHiEnd_IASA ( HSD_GObj gobj)

0x80118F98

◆ ftNs_SpecialAirHi_IASA()

void ftNs_SpecialAirHi_IASA ( HSD_GObj gobj)

0x80118F9C

◆ ftNs_SpecialAirHiRebound_IASA()

void ftNs_SpecialAirHiRebound_IASA ( HSD_GObj gobj)

0x80118FA0

◆ ThunderPhysTimer()

void ThunderPhysTimer ( HSD_GObj gobj)
inline

◆ ftNs_SpecialHiStart_Phys()

void ftNs_SpecialHiStart_Phys ( HSD_GObj gobj)

◆ ftNs_SpecialHiHold_Phys()

void ftNs_SpecialHiHold_Phys ( HSD_GObj gobj)

◆ ftNs_SpecialHiEnd_Phys()

void ftNs_SpecialHiEnd_Phys ( HSD_GObj gobj)

0x80118FFC This is identical to 0x80118FDC so there's no link bruh

◆ ftNs_SpecialHi_Phys()

void ftNs_SpecialHi_Phys ( HSD_GObj gobj)

Ness's grounded PK Thunder 2 Physics callback.

◆ ftNs_SpecialAirHiStart_Phys()

void ftNs_SpecialAirHiStart_Phys ( HSD_GObj gobj)

Ness's aerial PK Thunder Start Physics callback.

◆ ftNs_SpecialAirHiHold_Phys()

void ftNs_SpecialAirHiHold_Phys ( HSD_GObj gobj)

◆ ftNs_SpecialAirHiEnd_Phys()

void ftNs_SpecialAirHiEnd_Phys ( HSD_GObj gobj)

Ness's aerial PK Thunder End Physics callback.

◆ ftNess_atan2()

void ftNess_atan2 ( HSD_GObj gobj)
inline

◆ getFtSpecialAttrs2()

void * getFtSpecialAttrs2 ( Fighter fp)
inline

◆ ftNs_SpecialAirHi_Phys()

void ftNs_SpecialAirHi_Phys ( HSD_GObj gobj)

Ness's aerial PK Thunder 2 Physics callback.

◆ ftNs_SpecialAirHiRebound_Phys()

void ftNs_SpecialAirHiRebound_Phys ( HSD_GObj gobj)

◆ ftNs_SpecialHiStart_Coll()

void ftNs_SpecialHiStart_Coll ( HSD_GObj gobj)

◆ ftNs_SpecialHiHold_Coll()

void ftNs_SpecialHiHold_Coll ( HSD_GObj gobj)

◆ ftNs_SpecialHiEnd_Coll()

void ftNs_SpecialHiEnd_Coll ( HSD_GObj gobj)

◆ ftNs_SpecialHi_Coll()

void ftNs_SpecialHi_Coll ( HSD_GObj gobj)

Ness's grounded PK Thunder 2 Collision callback.

◆ ftNs_SpecialAirHiStart_Coll()

void ftNs_SpecialAirHiStart_Coll ( HSD_GObj gobj)

◆ ftNs_SpecialAirHiHold_Coll()

void ftNs_SpecialAirHiHold_Coll ( HSD_GObj gobj)

◆ ftNs_SpecialAirHiEnd_Coll()

void ftNs_SpecialAirHiEnd_Coll ( HSD_GObj gobj)

◆ ftNs_SpecialAirHi_Coll()

void ftNs_SpecialAirHi_Coll ( HSD_GObj gobj)

Ness's aerial PK Thunder 2 Collision callback.

◆ ftNs_SpecialAirHiRebound_Coll()

void ftNs_SpecialAirHiRebound_Coll ( HSD_GObj gobj)

Ness's PK Thunder 2 Wall Rebound Collision callback.

Variable Documentation

◆ vel_epsilon

const float vel_epsilon = 0.0001f
static