SSBM Decomp
Loading...
Searching...
No Matches
ftFx_SpecialN.c File Reference
#include "ftFx_SpecialN.h"
#include "ftFx_Init.h"
#include "math.h"
#include "ft/fighter.h"
#include "ft/ft_081B.h"
#include "ft/ft_0877.h"
#include "ft/ft_0881.h"
#include "ft/ft_0892.h"
#include "ft/ftanim.h"
#include "ft/ftcommon.h"
#include "ft/ftlib.h"
#include "ft/ftparts.h"
#include "ft/types.h"
#include "ftCommon/forward.h"
#include "ftCommon/ftCo_Fall.h"
#include "ftCommon/ftCo_FallSpecial.h"
#include "ftCommon/ftpickupitem.h"
#include "ftFox/types.h"
#include "it/it_26B1.h"
#include "it/items/itfoxblaster.h"
#include "lb/lb_00B0.h"
#include "lb/lbrefract.h"
#include <common_structs.h>
#include <dolphin/os/OSError.h>
#include <baselib/debug.h>
#include <melee/it/items/itfoxlaser.h>

Functions

void ftFx_SpecialN_FtGetHoldJoint (HSD_GObj *gobj, Vec3 *pos)
 Get Fox/Falco's Item Hold Bone Position for Blaster GFX.
 
void ftFx_SpecialN_ItGetHoldJoint (HSD_GObj *gobj, Vec3 *pos)
 Get Fox/Falco's Item Hold Bone Position for Blaster GFX again?
 
void ftFx_SpecialN_OnChangeAction (HSD_GObj *gobj)
 0x800E5D90 https://decomp.me/scratch/DRgo9 // Fox & Falco's Blaster OnMotionStateChange function
 
bool ftFx_SpecialN_CheckRemoveBlaster (HSD_GObj *gobj)
 0x800E5DC4 https://decomp.me/scratch/A0n4M // Check if Fox/Falco has a Blaster GOBj pointer
 
s32 ftFx_SpecialN_GetBlasterAction (HSD_GObj *gobj)
 0x800E5DE4 - shoutouts to Olifre for figuring this one out! https://decomp.me/scratch/aatYF // Get msid for Fox/Falco moves that require the Blaster item
 
bool ftFx_SpecialN_CheckBlasterAction (HSD_GObj *gobj)
 0x800E5E38 https://decomp.me/scratch/f6oIX // Check if Fox/Falco is performing a move that requires the Blaster item
 
void ftFox_SpecialN_SetNULL (HSD_GObj *gobj)
 
void ftFx_SpecialN_ClearBlaster (HSD_GObj *gobj)
 0x800E5E90 https://decomp.me/scratch/4v8j4 // Clear Blaster GObj pointer and callbacks
 
void ftFx_SpecialN_RemoveBlaster (HSD_GObj *gobj)
 0x800E5EBC https://decomp.me/scratch/WglAb // Remove Blaster item
 
void ftFx_SpecialN_CreateBlasterShot (HSD_GObj *gobj)
 0x800E5F28 https://decomp.me/scratch/iPgDc // Create Blaster Shot Item
 
void ftFox_SpecialN_SetCall (HSD_GObj *gobj)
 
void ftFx_SpecialN_Enter (HSD_GObj *gobj)
 0x800E608C https://decomp.me/scratch/B3aTL // Fox & Falco's grounded Blaster Action State handler
 
void ftFx_SpecialAirN_Enter (HSD_GObj *gobj)
 0x800E61A8 https://decomp.me/scratch/TUDhU
 
void ftFx_SpecialNStart_Anim (HSD_GObj *gobj)
 0x800E62A4 https://decomp.me/scratch/ZOB3l // Fox & Falco's grounded Blaster Start Animation callback
 
void ftFx_SpecialNLoop_Anim (HSD_GObj *gobj)
 0x800E6368 https://decomp.me/scratch/J7zwX // Fox & Falco's grounded Blaster Loop Animation callback
 
static void ftFox_SpecialN_RemoveBlasterNULL (HSD_GObj *gobj)
 
void ftFx_SpecialNEnd_Anim (HSD_GObj *gobj)
 0x800E65BC https://decomp.me/scratch/aIEIA // Fox & Falco's grounded Blaster End Animation callback
 
void ftFx_SpecialAirNStart_Anim (HSD_GObj *gobj)
 0x800E667C https://decomp.me/scratch/Os6Ik // Fox & Falco's aerial Blaster Start Animation callback
 
void ftFx_SpecialAirNLoop_Anim (HSD_GObj *gobj)
 0x800E6740 https://decomp.me/scratch/FyW7c // Fox & Falco's aerial Blaster Loop Animation callback
 
void ftFx_SpecialAirNEnd_Anim (HSD_GObj *gobj)
 0x800E69BC https://decomp.me/scratch/OAWla // Fox & Falco's aerial Blaster End Animation callback
 
void ftFx_SpecialNStart_IASA (HSD_GObj *gobj)
 0x800E6AB4 https://decomp.me/scratch/7JCEh // Fox & Falco's grounded Blaster Start IASA callback
 
void ftFx_SpecialNLoop_IASA (HSD_GObj *gobj)
 0x800E6ADC https://decomp.me/scratch/7JCEh // Fox & Falco's grounded Blaster Loop IASA callback
 
void ftFx_SpecialNEnd_IASA (HSD_GObj *gobj)
 0x800E6B04 - Fox & Falco's grounded Blaster End IASA callback
 
void ftFx_SpecialAirNStart_IASA (HSD_GObj *gobj)
 0x800E6B08 https://decomp.me/scratch/7JCEh // Fox & Falco's aerial Blaster Start IASA callback
 
void ftFx_SpecialAirNLoop_IASA (HSD_GObj *gobj)
 0x800E6B30 https://decomp.me/scratch/7JCEh // Fox & Falco's aerial Blaster Loop IASA callback
 
void ftFx_SpecialAirNEnd_IASA (HSD_GObj *gobj)
 0x800E6B58 - Fox & Falco's aerial Blaster End IASA callback
 
void ftFx_SpecialNStart_Phys (HSD_GObj *gobj)
 0x800E6B5C - Fox & Falco's grounded Blaster Start Physics callback
 
void ftFx_SpecialNLoop_Phys (HSD_GObj *gobj)
 0x800E6B7C - Fox & Falco's grounded Blaster Loop Physics callback
 
void ftFx_SpecialNEnd_Phys (HSD_GObj *gobj)
 0x800E6B9C - Fox & Falco's grounded Blaster End Physics callback
 
void ftFx_SpecialAirNStart_Phys (HSD_GObj *gobj)
 0x800E6BBC - Fox & Falco's aerial Blaster Start Physics callback
 
void ftFx_SpecialAirNLoop_Phys (HSD_GObj *gobj)
 0x800E6BDC - Fox & Falco's aerial Blaster Loop Physics callback
 
void ftFx_SpecialAirNEnd_Phys (HSD_GObj *gobj)
 0x800E6BFC - Fox & Falco's aerial Blaster End Physics callback
 
void ftFx_SpecialNStart_Coll (HSD_GObj *gobj)
 0x800E6C1C - Fox & Falco's grounded Blaster Start Collision callback
 
void ftFx_SpecialNLoop_Coll (HSD_GObj *gobj)
 0x800E6C3C - Fox & Falco's grounded Blaster Loop Collision callback
 
void ftFx_SpecialNEnd_Coll (HSD_GObj *gobj)
 0x800E6C1C - Fox & Falco's grounded Blaster End Collision callback
 
void ftFx_SpecialAirNStart_Coll (HSD_GObj *gobj)
 0x800E6C7C - Fox & Falco's aerial Blaster Start Collision callback
 
void ftFx_SpecialAirNLoop_Coll (HSD_GObj *gobj)
 0x800E6C9C - Fox & Falco's aerial Blaster Loop Collision callback
 
void ftFx_SpecialAirNEnd_Coll (HSD_GObj *gobj)
 0x800E6CBC - Fox & Falco's aerial Blaster End Collision callback
 
void ftFx_Throw_Anim (HSD_GObj *gobj)
 0x800E6CDC https://decomp.me/scratch/G1jsj // Fox & Falco's Throw Animation callback - spawn Blaster
 

Variables

u32 foxSFX [2] = { 110103, 110106 }
 
u32 falcoSFX [2] = { 100099, 100102 }
 

Function Documentation

◆ ftFx_SpecialN_FtGetHoldJoint()

void ftFx_SpecialN_FtGetHoldJoint ( HSD_GObj gobj,
Vec3 *  pos 
)

Get Fox/Falco's Item Hold Bone Position for Blaster GFX.

Todo:
Shared inline with ftFx_SpecialN_ItGetHoldJoint.

◆ ftFx_SpecialN_ItGetHoldJoint()

void ftFx_SpecialN_ItGetHoldJoint ( HSD_GObj gobj,
Vec3 *  pos 
)

Get Fox/Falco's Item Hold Bone Position for Blaster GFX again?

Remarks
Used in Blaster's item code.

◆ ftFx_SpecialN_OnChangeAction()

void ftFx_SpecialN_OnChangeAction ( HSD_GObj gobj)

0x800E5D90 https://decomp.me/scratch/DRgo9 // Fox & Falco's Blaster OnMotionStateChange function

◆ ftFx_SpecialN_CheckRemoveBlaster()

bool ftFx_SpecialN_CheckRemoveBlaster ( HSD_GObj gobj)

0x800E5DC4 https://decomp.me/scratch/A0n4M // Check if Fox/Falco has a Blaster GOBj pointer

◆ ftFx_SpecialN_GetBlasterAction()

s32 ftFx_SpecialN_GetBlasterAction ( HSD_GObj gobj)

0x800E5DE4 - shoutouts to Olifre for figuring this one out! https://decomp.me/scratch/aatYF // Get msid for Fox/Falco moves that require the Blaster item

◆ ftFx_SpecialN_CheckBlasterAction()

bool ftFx_SpecialN_CheckBlasterAction ( HSD_GObj gobj)

0x800E5E38 https://decomp.me/scratch/f6oIX // Check if Fox/Falco is performing a move that requires the Blaster item

◆ ftFox_SpecialN_SetNULL()

void ftFox_SpecialN_SetNULL ( HSD_GObj gobj)
inline

◆ ftFx_SpecialN_ClearBlaster()

void ftFx_SpecialN_ClearBlaster ( HSD_GObj gobj)

0x800E5E90 https://decomp.me/scratch/4v8j4 // Clear Blaster GObj pointer and callbacks

◆ ftFx_SpecialN_RemoveBlaster()

void ftFx_SpecialN_RemoveBlaster ( HSD_GObj gobj)

0x800E5EBC https://decomp.me/scratch/WglAb // Remove Blaster item

◆ ftFx_SpecialN_CreateBlasterShot()

void ftFx_SpecialN_CreateBlasterShot ( HSD_GObj gobj)

0x800E5F28 https://decomp.me/scratch/iPgDc // Create Blaster Shot Item

Todo:
Shared inline with ftFx_SpecialNLoop_Anim and ftFx_SpecialAirNLoop_Anim.
Todo:
Seems fake, probably one or more missing inline functions.

◆ ftFox_SpecialN_SetCall()

void ftFox_SpecialN_SetCall ( HSD_GObj gobj)
inline

◆ ftFx_SpecialN_Enter()

void ftFx_SpecialN_Enter ( HSD_GObj gobj)

0x800E608C https://decomp.me/scratch/B3aTL // Fox & Falco's grounded Blaster Action State handler

◆ ftFx_SpecialAirN_Enter()

void ftFx_SpecialAirN_Enter ( HSD_GObj gobj)

◆ ftFx_SpecialNStart_Anim()

void ftFx_SpecialNStart_Anim ( HSD_GObj gobj)

0x800E62A4 https://decomp.me/scratch/ZOB3l // Fox & Falco's grounded Blaster Start Animation callback

◆ ftFx_SpecialNLoop_Anim()

void ftFx_SpecialNLoop_Anim ( HSD_GObj gobj)

0x800E6368 https://decomp.me/scratch/J7zwX // Fox & Falco's grounded Blaster Loop Animation callback

Todo:
Fake assignment.

◆ ftFox_SpecialN_RemoveBlasterNULL()

static void ftFox_SpecialN_RemoveBlasterNULL ( HSD_GObj gobj)
inlinestatic

◆ ftFx_SpecialNEnd_Anim()

void ftFx_SpecialNEnd_Anim ( HSD_GObj gobj)

0x800E65BC https://decomp.me/scratch/aIEIA // Fox & Falco's grounded Blaster End Animation callback

◆ ftFx_SpecialAirNStart_Anim()

void ftFx_SpecialAirNStart_Anim ( HSD_GObj gobj)

0x800E667C https://decomp.me/scratch/Os6Ik // Fox & Falco's aerial Blaster Start Animation callback

◆ ftFx_SpecialAirNLoop_Anim()

void ftFx_SpecialAirNLoop_Anim ( HSD_GObj gobj)

0x800E6740 https://decomp.me/scratch/FyW7c // Fox & Falco's aerial Blaster Loop Animation callback

Todo:
Fake assignment.
Todo:
Unused assignment.

◆ ftFx_SpecialAirNEnd_Anim()

void ftFx_SpecialAirNEnd_Anim ( HSD_GObj gobj)

0x800E69BC https://decomp.me/scratch/OAWla // Fox & Falco's aerial Blaster End Animation callback

◆ ftFx_SpecialNStart_IASA()

void ftFx_SpecialNStart_IASA ( HSD_GObj gobj)

0x800E6AB4 https://decomp.me/scratch/7JCEh // Fox & Falco's grounded Blaster Start IASA callback

◆ ftFx_SpecialNLoop_IASA()

void ftFx_SpecialNLoop_IASA ( HSD_GObj gobj)

0x800E6ADC https://decomp.me/scratch/7JCEh // Fox & Falco's grounded Blaster Loop IASA callback

◆ ftFx_SpecialNEnd_IASA()

void ftFx_SpecialNEnd_IASA ( HSD_GObj gobj)

0x800E6B04 - Fox & Falco's grounded Blaster End IASA callback

◆ ftFx_SpecialAirNStart_IASA()

void ftFx_SpecialAirNStart_IASA ( HSD_GObj gobj)

0x800E6B08 https://decomp.me/scratch/7JCEh // Fox & Falco's aerial Blaster Start IASA callback

◆ ftFx_SpecialAirNLoop_IASA()

void ftFx_SpecialAirNLoop_IASA ( HSD_GObj gobj)

0x800E6B30 https://decomp.me/scratch/7JCEh // Fox & Falco's aerial Blaster Loop IASA callback

◆ ftFx_SpecialAirNEnd_IASA()

void ftFx_SpecialAirNEnd_IASA ( HSD_GObj gobj)

0x800E6B58 - Fox & Falco's aerial Blaster End IASA callback

◆ ftFx_SpecialNStart_Phys()

void ftFx_SpecialNStart_Phys ( HSD_GObj gobj)

0x800E6B5C - Fox & Falco's grounded Blaster Start Physics callback

◆ ftFx_SpecialNLoop_Phys()

void ftFx_SpecialNLoop_Phys ( HSD_GObj gobj)

0x800E6B7C - Fox & Falco's grounded Blaster Loop Physics callback

◆ ftFx_SpecialNEnd_Phys()

void ftFx_SpecialNEnd_Phys ( HSD_GObj gobj)

0x800E6B9C - Fox & Falco's grounded Blaster End Physics callback

◆ ftFx_SpecialAirNStart_Phys()

void ftFx_SpecialAirNStart_Phys ( HSD_GObj gobj)

0x800E6BBC - Fox & Falco's aerial Blaster Start Physics callback

◆ ftFx_SpecialAirNLoop_Phys()

void ftFx_SpecialAirNLoop_Phys ( HSD_GObj gobj)

0x800E6BDC - Fox & Falco's aerial Blaster Loop Physics callback

◆ ftFx_SpecialAirNEnd_Phys()

void ftFx_SpecialAirNEnd_Phys ( HSD_GObj gobj)

0x800E6BFC - Fox & Falco's aerial Blaster End Physics callback

◆ ftFx_SpecialNStart_Coll()

void ftFx_SpecialNStart_Coll ( HSD_GObj gobj)

0x800E6C1C - Fox & Falco's grounded Blaster Start Collision callback

◆ ftFx_SpecialNLoop_Coll()

void ftFx_SpecialNLoop_Coll ( HSD_GObj gobj)

0x800E6C3C - Fox & Falco's grounded Blaster Loop Collision callback

◆ ftFx_SpecialNEnd_Coll()

void ftFx_SpecialNEnd_Coll ( HSD_GObj gobj)

0x800E6C1C - Fox & Falco's grounded Blaster End Collision callback

◆ ftFx_SpecialAirNStart_Coll()

void ftFx_SpecialAirNStart_Coll ( HSD_GObj gobj)

0x800E6C7C - Fox & Falco's aerial Blaster Start Collision callback

◆ ftFx_SpecialAirNLoop_Coll()

void ftFx_SpecialAirNLoop_Coll ( HSD_GObj gobj)

0x800E6C9C - Fox & Falco's aerial Blaster Loop Collision callback

◆ ftFx_SpecialAirNEnd_Coll()

void ftFx_SpecialAirNEnd_Coll ( HSD_GObj gobj)

0x800E6CBC - Fox & Falco's aerial Blaster End Collision callback

◆ ftFx_Throw_Anim()

void ftFx_Throw_Anim ( HSD_GObj gobj)

0x800E6CDC https://decomp.me/scratch/G1jsj // Fox & Falco's Throw Animation callback - spawn Blaster

Variable Documentation

◆ foxSFX

u32 foxSFX[2] = { 110103, 110106 }

◆ falcoSFX

u32 falcoSFX[2] = { 100099, 100102 }