SSBM Decomp
Loading...
Searching...
No Matches
itfoxblaster.c File Reference
#include <melee/ft/chara/ftFox/forward.h>
#include "itfoxblaster.h"
#include "ef/eflib.h"
#include "ef/efsync.h"
#include "ft/ft_0BF0.h"
#include "ft/ftlib.h"
#include "it/inlines.h"
#include "it/it_26B1.h"
#include "it/itCharItems.h"
#include "it/types.h"
#include <stdbool.h>
#include <baselib/gobj.h>
#include <baselib/jobj.h>
#include <melee/ft/chara/ftFox/ftFx_SpecialN.h>
#include <melee/ft/chara/ftKirby/ftKb_Init.h>
#include <melee/it/item.h>
#include <melee/lb/lbrefract.h>

Functions

void it_802ADF10 (HSD_GObj *item_gobj)
 Sets item position relative to owner position and resets some blaster vars, then shifts blaster var values up their groups and resets the lowest var in each.
 
int it_802AEBCC (HSD_GObj *item_gobj)
 Changes item state to match the fighter's current action (ftFx_SpecialNIndex), updates subactions, and runs animation.
 
void it_802AEED4 (HSD_GObj *item_gobj)
 Calls model transformation functions.
 
int it_802AEF08 (HSD_GObj *item_gobj)
 Does nothing.
 
int it_802AEF10 (HSD_GObj *item_gobj)
 If blaster item exists, clear references from it.
 
void it_802AEFB8 (HSD_GObj *item_gobj)
 Does nothing.
 
int it_802AEFBC (HSD_GObj *item_gobj)
 If blaster item exists, clear references from it (identical to it_802AEF10)
 
int it_802AF064 (HSD_GObj *item_gobj)
 If blaster item exists and ? (ftCo_800BF228), set the item scale to match the owner's.
 
void it_802AF178 (HSD_GObj *item_gobj)
 Does nothing.
 
int it_802AF17C (HSD_GObj *item_gobj)
 Does nothing.
 
static HSD_JObjjobj_child (HSD_JObj *node)
 
void it_802ADDD0 (Item_GObj *item_gobj, s32 visibility)
 Sets sfx and jobj flags based on if the blaster model is visible (and fox vs falco)
 
void it_802ADEF0 (HSD_GObj *item_gobj)
 Redirects to another function (it_802ADF10)
 
void it_802AE1D0 (Item_GObj *item_gobj)
 If item exists, set some blaster vars and accessory callback function.
 
void it_802AE200 (Item_GObj *item_gobj)
 Gets root jobj of model and does some transformations to it.
 
void it_802AE538 (Item_GObj *item_gobj)
 If item exists and some blaster vars at specific values (possibly frame numbers?), then set sfx.
 
void it_802AE608 (Item_GObj *item_gobj)
 If item exists and a blaster var at a specific values (possibly frame numbers?), then set other blaster vars.
 
void it_802AE63C (Item_GObj *item_gobj)
 Gets root jobj of model and does some transformations to it; then checks blaster var values and changes them.
 
void it_802AE7B8 (Item_GObj *item_gobj)
 Resets all blaster and cmd vars.
 
Item_GObjit_802AE8A8 (f32 facing_dir, Fighter_GObj *fighter_gobj, Vec3 *arg2, Fighter_Part ft_part, ItemKind it_kind)
 Spawns blaster item at location arg2 and gives to fighter at specified fighter part.
 
Item_GObjit_802AE994 (Fighter_GObj *owner_gobj, Fighter_Part ft_part, ItemKind it_kind)
 Spawns blaster item at fighter's location and gives to them at specified part, as well as initializes cmd vars at 1 (different than other spawn function)
 
void it_802AEAB4 (Item_GObj *item_gobj)
 If item exists, then clear item and blaster vars and destroy item.
 
void it_802AEB00 (Item_GObj *item_gobj)
 If any cmd var is non-zero, change the item state to 10.
 
static void clear_blaster (HSD_GObj *item_gobj)
 Clear the references from the blaster item and fighter to each other and destroy the item.
 
void it_802AF184 (Item_GObj *item_gobj, HSD_GObj *ref_gobj)
 Calls function it_8026B894.
 

Variables

ItemStateTable it_803F6CA8 [11]
 
f32 it_803F6D58 [14]
 
f32 it_803F6D90 [14]
 
f32 it_803F6DC8 [14]
 
static f32 it_803F6E28 [5] = { -0.425F, -0.595F, -0.765F, -0.935F, -0.85F }
 
static s32 it_803F6E3C [11] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
 
static s32 it_803F6E68 [12] = { 0, 9, 9, 3, 9, 9, 6, 7, 8, 9, 10, 0 }
 
static s8 it_804D5428 [7] = "jobj.h"
 
static s8 it_804D5430 [5] = "jobj"
 
static f32 it_804DCF38 = 0.0F
 

Function Documentation

◆ it_802ADF10()

void it_802ADF10 ( HSD_GObj item_gobj)

Sets item position relative to owner position and resets some blaster vars, then shifts blaster var values up their groups and resets the lowest var in each.

Parameters
item_gobj

◆ it_802AEBCC()

int it_802AEBCC ( HSD_GObj item_gobj)

Changes item state to match the fighter's current action (ftFx_SpecialNIndex), updates subactions, and runs animation.

Then clear blaster item if no longer needed

Parameters
item_gobj
Returns
0

◆ it_802AEED4()

void it_802AEED4 ( HSD_GObj item_gobj)

Calls model transformation functions.

Parameters
item_gobj

◆ it_802AEF08()

int it_802AEF08 ( HSD_GObj item_gobj)

Does nothing.

Parameters
item_gobj
Returns
0

◆ it_802AEF10()

int it_802AEF10 ( HSD_GObj item_gobj)

If blaster item exists, clear references from it.

Parameters
item_gobj
Returns
1

◆ it_802AEFB8()

void it_802AEFB8 ( HSD_GObj item_gobj)

Does nothing.

Parameters
item_gobj

◆ it_802AEFBC()

int it_802AEFBC ( HSD_GObj item_gobj)

If blaster item exists, clear references from it (identical to it_802AEF10)

Parameters
item_gobj
Returns
1

◆ it_802AF064()

int it_802AF064 ( HSD_GObj item_gobj)

If blaster item exists and ? (ftCo_800BF228), set the item scale to match the owner's.

Parameters
item_gobj
Returns
0

◆ it_802AF178()

void it_802AF178 ( HSD_GObj item_gobj)

Does nothing.

Parameters
item_gobj

◆ it_802AF17C()

int it_802AF17C ( HSD_GObj item_gobj)

Does nothing.

Parameters
item_gobj
Returns
0

◆ jobj_child()

static HSD_JObj * jobj_child ( HSD_JObj node)
inlinestatic

◆ it_802ADDD0()

void it_802ADDD0 ( Item_GObj item_gobj,
s32  visibility 
)

Sets sfx and jobj flags based on if the blaster model is visible (and fox vs falco)

Parameters
item_gobj
visibilityalways 1 except when called during SpecialN end animations. Then it's set to 'fp->cmd_vars[1]', which is set in the action's scripts

◆ it_802ADEF0()

void it_802ADEF0 ( HSD_GObj item_gobj)

Redirects to another function (it_802ADF10)

Parameters
item_gobj

◆ it_802AE1D0()

void it_802AE1D0 ( Item_GObj item_gobj)

If item exists, set some blaster vars and accessory callback function.

Gets called from SpecialN funcs when a blaster shot should be created

Parameters
item_gobj

◆ it_802AE200()

void it_802AE200 ( Item_GObj item_gobj)

Gets root jobj of model and does some transformations to it.

Parameters
item_gobj

◆ it_802AE538()

void it_802AE538 ( Item_GObj item_gobj)

If item exists and some blaster vars at specific values (possibly frame numbers?), then set sfx.

Called from SpecialN funcs when cmd_var3 = 1 (when gun shooting starts)

Parameters
item_gobj

◆ it_802AE608()

void it_802AE608 ( Item_GObj item_gobj)

If item exists and a blaster var at a specific values (possibly frame numbers?), then set other blaster vars.

Called from SpecialN funcs when cmd_var3 = 2 (when gun is getting put away, but not yet invisible)

Parameters
item_gobj

◆ it_802AE63C()

void it_802AE63C ( Item_GObj item_gobj)

Gets root jobj of model and does some transformations to it; then checks blaster var values and changes them.

Parameters
item_gobj

◆ it_802AE7B8()

void it_802AE7B8 ( Item_GObj item_gobj)

Resets all blaster and cmd vars.

Parameters
item_gobj

◆ it_802AE8A8()

Item_GObj * it_802AE8A8 ( f32  facing_dir,
Fighter_GObj *  fighter_gobj,
Vec3 arg2,
Fighter_Part  ft_part,
ItemKind  it_kind 
)

Spawns blaster item at location arg2 and gives to fighter at specified fighter part.

Parameters
facing_dir
fighter_gobj
arg2
ft_part
it_kind
Returns
item_gobj (HSD_GObj* for the newly spawned item)

◆ it_802AE994()

Item_GObj * it_802AE994 ( Fighter_GObj *  owner_gobj,
Fighter_Part  ft_part,
ItemKind  it_kind 
)

Spawns blaster item at fighter's location and gives to them at specified part, as well as initializes cmd vars at 1 (different than other spawn function)

Parameters
owner_gobj
ft_part
it_kind
Returns
item_gobj (HSD_GObj* for the newly spawned item)

◆ it_802AEAB4()

void it_802AEAB4 ( Item_GObj item_gobj)

If item exists, then clear item and blaster vars and destroy item.

Parameters
item_gobj

◆ it_802AEB00()

void it_802AEB00 ( Item_GObj item_gobj)

If any cmd var is non-zero, change the item state to 10.

Otherwise get the item state for the current fighter move, and set that. Then call Item_802694CC to do advance animation + script

Parameters
item_gobj

◆ clear_blaster()

static void clear_blaster ( HSD_GObj item_gobj)
inlinestatic

Clear the references from the blaster item and fighter to each other and destroy the item.

Parameters
item_gobj

◆ it_802AF184()

void it_802AF184 ( Item_GObj item_gobj,
HSD_GObj ref_gobj 
)

Calls function it_8026B894.

Parameters
item_gobj
ref_gobj

Variable Documentation

◆ it_803F6CA8

ItemStateTable it_803F6CA8[11]
Initial value:
= {
}
int it_802AEF10(HSD_GObj *item_gobj)
If blaster item exists, clear references from it.
Definition itfoxblaster.c:1012
void it_802AF178(HSD_GObj *item_gobj)
Does nothing.
Definition itfoxblaster.c:1116
void it_802AEED4(HSD_GObj *item_gobj)
Calls model transformation functions.
Definition itfoxblaster.c:989
int it_802AF17C(HSD_GObj *item_gobj)
Does nothing.
Definition itfoxblaster.c:1121
int it_802AEFBC(HSD_GObj *item_gobj)
If blaster item exists, clear references from it (identical to it_802AEF10)
Definition itfoxblaster.c:1047
void it_802AEFB8(HSD_GObj *item_gobj)
Does nothing.
Definition itfoxblaster.c:1041
int it_802AEBCC(HSD_GObj *item_gobj)
Changes item state to match the fighter's current action (ftFx_SpecialNIndex), updates subactions,...
Definition itfoxblaster.c:882
int it_802AF064(HSD_GObj *item_gobj)
If blaster item exists and ? (ftCo_800BF228), set the item scale to match the owner's.
Definition itfoxblaster.c:1080
int it_802AEF08(HSD_GObj *item_gobj)
Does nothing.
Definition itfoxblaster.c:999

◆ it_803F6D58

f32 it_803F6D58[14]
Initial value:
= { 0.0F, -0.51F, -1.02F, -1.53F, -1.39F,
-1.251F, -1.112F, -0.973F, -0.834F, -0.695F,
-0.556F, -0.417F, -0.278F, -0.139F }

◆ it_803F6D90

f32 it_803F6D90[14]
Initial value:
= { 0.5F, 0.5F, 1.75F, 3.0F, 2.375F, 1.75F, 1.125F,
0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F, 0.5F }

◆ it_803F6DC8

f32 it_803F6DC8[14]
Initial value:
= { 0.0F, -42.0F, -20.0F, 0.0F, 0.0F, 0.0F, 0.0F,
0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F }

◆ it_803F6E28

f32 it_803F6E28[5] = { -0.425F, -0.595F, -0.765F, -0.935F, -0.85F }
static

◆ it_803F6E3C

s32 it_803F6E3C[11] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
static

◆ it_803F6E68

s32 it_803F6E68[12] = { 0, 9, 9, 3, 9, 9, 6, 7, 8, 9, 10, 0 }
static

◆ it_804D5428

s8 it_804D5428[7] = "jobj.h"
static

◆ it_804D5430

s8 it_804D5430[5] = "jobj"
static

◆ it_804DCF38

f32 it_804DCF38 = 0.0F
static