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 "ftCommon/inlines.h"
#include "ftNess/types.h"
#include "it/items/itnesspkthunderball.h"
#include "lb/lb_00B0.h"
#include "lb/lbvector.h"
#include "mp/forward.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:204
static MotionFlags const Ft_MF_SkipItemVis
Used by Ness during Up/Down Smash.
Definition forward.h:214
static MotionFlags const Ft_MF_SkipModelFlags
Definition forward.h:232
static MotionFlags const Ft_MF_SkipModelPartVis
Definition forward.h:224
static MotionFlags const Ft_MF_Unk19
Skips updating bit 5 of Fighter::x2222_flag?
Definition forward.h:217
static MotionFlags const Ft_MF_Unk27
Definition forward.h:234
static MotionFlags const Ft_MF_SkipColAnim
Definition forward.h:198
static MotionFlags const Ft_MF_SkipMatAnim
Ignore switching to character's "hurt" textures ?
Definition forward.h:185

SpecialHi/SpecialAirHi (PK Thunder).

◆ FTNESS_JIBAKU_COLL_FLAG

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

SpecialHi Jibaku (PK Thunder 2 Self-Hit).

Function Documentation

◆ return_float1()

float return_float1 ( void )
static

Setup float order.

◆ return_float2()

float return_float2 ( void )
static

◆ return_float3()

float return_float3 ( void )
static

◆ return_float4()

float return_float4 ( void )
static

◆ return_float5()

float return_float5 ( void )
static

◆ return_float6()

f64 return_float6 ( void )
static

◆ return_float7()

f64 return_float7 ( void )
static

◆ return_float8()

f64 return_float8 ( void )
static

◆ return_float9()

float return_float9 ( void )
static

◆ return_float10()

f64 return_float10 ( void )
static

◆ return_float12()

float return_float12 ( void )
static

◆ return_float13()

float return_float13 ( void )
static

◆ return_float14()

float return_float14 ( void )
static

◆ return_float15()

float return_float15 ( void )
static

◆ return_float16()

f64 return_float16 ( void )
static

◆ return_float17()

f64 return_float17 ( void )
static

◆ return_float18()

float return_float18 ( void )
static

◆ return_float19()

float return_float19 ( void )
static

◆ return_float20()

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()

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