SSBM Decomp
Loading...
Searching...
No Matches
item.c File Reference
#include "item.h"
#include "it_266F.h"
#include "it_26B1.h"
#include "math.h"
#include "cm/camera.h"
#include "db/db.h"
#include "ef/efasync.h"
#include "ef/eflib.h"
#include "ft/ftlib.h"
#include "gm/gm_unsplit.h"
#include "gr/grlib.h"
#include "gr/stage.h"
#include "it/inlines.h"
#include "it/it_2725.h"
#include "it/it_3F14.h"
#include "it/ithitbox.h"
#include "it/it_279C.h"
#include "it/itanimlist.h"
#include "it/iteffect.h"
#include "it/itmaplib.h"
#include "it/itmaterial.h"
#include "it/itcoll.h"
#include "it/types.h"
#include "lb/forward.h"
#include "lb/lb_00B0.h"
#include "lb/lb_00F9.h"
#include "lb/lbaudio_ax.h"
#include "mp/mpcoll.h"
#include "mp/mplib.h"
#include <common_structs.h>
#include <dolphin/mtx.h>
#include <dolphin/os/OSError.h>
#include <baselib/class.h>
#include <baselib/debug.h>
#include <baselib/dobj.h>
#include <baselib/gobj.h>
#include <baselib/gobjgxlink.h>
#include <baselib/gobjobject.h>
#include <baselib/gobjplink.h>
#include <baselib/gobjproc.h>
#include <baselib/gobjuserdata.h>
#include <baselib/jobj.h>

Functions

static void Item_80267130 (HSD_GObj *gobj, SpawnItem *spawnItem)
static void Item_802674AC (SpawnItem *spawnItem)
static void Item_802675A8 (HSD_GObj *gobj)
static void Item_802676F4 (HSD_GObj *gobj)
static bool Item_8026784C (enum_t dropItem, int)
static void Item_80267AA8 (HSD_GObj *gobj, SpawnItem *spawnItem)
static void Item_8026814C (HSD_GObj *gobj)
static bool Item_802682F0 (HSD_GObj *gobj)
static void Item_80268560 (HSD_GObj *gobj)
static HSD_GObjItem_8026862C (SpawnItem *spawnItem)
static void Item_80268BE0 (HSD_JObj *item_jobj, HSD_AnimJoint *anim_joint, HSD_MatAnimJoint *matanim_joint, HSD_ShapeAnimJoint *shapeanim_joint, Item *item_data)
static void Item_80269528 (HSD_GObj *gobj)
static bool Item_802696CC (HSD_GObj *gobj)
static void Item_80269A9C (HSD_GObj *gobj)
 this function is where the item accessory callback is called if it exists
static void Item_80269B60 (HSD_GObj *gobj)
static void Item_80269BE4 (HSD_GObj *gobj)
 rather items such as the Barrel Cannon.
static void Item_80269C5C (HSD_GObj *gobj)
static void Item_80269CC4 (HSD_GObj *gobj)
static bool Item_80269DC8 (HSD_GObj *gobj)
static bool Item_80269F14 (HSD_GObj *gobj)
static void Item_8026A0A0 (HSD_GObj *gobj)
static void Item_8026A0FC (HSD_GObj *gobj)
static void Item_8026A158 (HSD_GObj *gobj)
static void Item_8026A1E8 (HSD_GObj *gobj)
static void Item_8026A294 (HSD_GObj *gobj)
static void Item_8026A788 (HSD_GObj *gobj)
static void Item_8026A810 (HSD_GObj *gobj)
static void Item_8026B0B4 (HSD_GObj *gobj)
bool Item_80266F3C (void)
 Check if items are enabled.
void Item_80266F70 (void)
 Check to load ItCo.dat/usd.
void Item_80266FA8 (void)
 ItCo prefunction with 0.
void Item_80266FCC (void)
 Init item struct?
static void ItUnkHoldKind (HSD_GObj *gobj)
static void HSD_JObjSetScaleItem (Item *it, HSD_JObj *jobj, Vec3 *scl)
static void HSD_JObjSetFacingDirItem (HSD_JObj *jobj, Item *it)
void Item_80267454 (HSD_GObj *gobj)
 Remove Camera Box.
void Item_80267978 (HSD_GObj *gobj)
 Store Item Pointers.
void PSMTXIdentity (Mtx)
void Item_802680CC (HSD_GObj *gobj)
 Setup Item JObj.
HSD_DObjHSD_JObjGetDObj (HSD_JObj *)
void Item_8026849C (HSD_GObj *gobj)
 Set item model scale.
void ftLib_8008702C (s32)
static void foobar (HSD_GObj *gobj)
static void foobar2 (HSD_GObj *gobj)
static void foobar3 (HSD_GObj *gobj)
Item_GObjItem_80268B18 (SpawnItem *spawnItem)
 Item spawn prefunction - spawn airborne.
HSD_GObjItem_80268B5C (SpawnItem *spawnItem)
 Item spawn prefunction - spawn grounded.
void Item_80268B9C (SpawnItem *spawnItem)
 Item spawn prefunction - spawn grounded and toggle unknown true.
void Item_80268D34 (HSD_GObj *gobj, struct ItemStateDesc *itemStateDesc)
 Unk Item AObj-related function.
void Item_80268DD4 (HSD_GObj *gobj, f32 frame)
 Advance item animation?
void Item_80268E40 (Item *item_data, struct ItemStateDesc *itemStateDesc)
 Copy item script.
void Item_80268E5C (HSD_GObj *gobj, enum_t msid, Item_StateChangeFlags flags)
 Change item state.
void Item_802693E4 (HSD_GObj *gobj)
void Item_802694CC (HSD_GObj *gobj)
 Advance item animation + script?
void Item_802697D4 (HSD_GObj *gobj)
 Item Think - Physics.
void Item_80269978 (HSD_GObj *gobj)
 Item Think - Collision.
void Item_80269CA0 (Item *item_data, s32 damage)
 Add to damage taken.
static void func_8026A158_helper (HSD_GObj *atkCollGObj)
static void func_8026A1E8_inline (HSD_GObj *atkCollGObj)
static bool processCallback (HSD_GObjPredicate cb, HSD_GObj *gobj, Item *item_data)
static bool OnTakeDamageThink (HSD_GObj *gobj, Item *item_data)
static bool OnClankThink (HSD_GObj *gobj, Item *item_data)
static bool OnGiveDamageThink (HSD_GObj *gobj, Item *item_data)
static void EnterHitlagThink (HSD_GObj *gobj, Item *item_data)
static void checkHitLag (f32 min_value, Item *item_data)
void Item_8026A848 (HSD_GObj *gobj, HSD_GObj *fighter_gobj)
 Remove Item from Player.
static void DestroyItemInline (HSD_GObj *gobj, Item *other_ip)
static void ItemSwitch (HSD_GObj *gobj)
static void RunGObjCallback (HSD_GObj *gobj, HSD_GObjEvent arg1)
static void func_8026A8EC_inline1 (HSD_GObj *gobj)
static void func_8026A8EC_inline2 (HSD_GObj *gobj)
static void func_8026A8EC_inline3 (HSD_GObj *gobj)
void Item_8026A8EC (Item_GObj *gobj)
 Destroy Item.
void Item_8026AB54 (Item_GObj *gobj, HSD_GObj *owner_gobj, Fighter_Part part)
 Pick up item.
void Item_8026ABD8 (Item_GObj *gobj, Vec3 *pos, f32 arg2)
void Item_8026AC74 (HSD_GObj *gobj, Vec3 *arg1, Vec3 *arg2, f32 arg3)
void Item_8026AD20 (HSD_GObj *gobj, Vec3 *arg1, Vec3 *arg2, f32 arg3)
void Item_8026ADC0 (HSD_GObj *gobj)
 Make Item Airborne.
void Item_OnUserDataRemove (void *user_data)
u32 Item_8026AE60 (void)
void Item_8026AE84 (Item *item_data, enum_t sfx, u8 pan, u8 volume)
void Item_8026AF0C (Item *item_data, enum_t sfx, u8 pan, u8 volume)
void Item_8026AFA0 (Item *item_data, enum_t sfx, u8 pan, u8 volume)
void Item_8026B034 (Item *item_data)
 Stop Item SFX.
void Item_8026B074 (Item *item_data)
 Stop Item SFX 2.
bool Item_IsGrabbable (Item_GObj *gobj)
 Check if item is grabbable.

Variables

static HSD_ObjAllocData item_alloc_data
static HSD_ObjAllocData item_dynamic_bones_alloc_data
HSD_ObjAllocData item_link_alloc_data
HSD_ObjAllocUnk Item_804A0C64
Item_FtTrack Item_804A0CCC
S32Vec3 Item_804A0E24

Function Documentation

◆ Item_80267130()

void Item_80267130 ( HSD_GObj * gobj,
SpawnItem * spawnItem )
static

◆ Item_802674AC()

void Item_802674AC ( SpawnItem * spawnItem)
static

◆ Item_802675A8()

void Item_802675A8 ( HSD_GObj * gobj)
static

◆ Item_802676F4()

void Item_802676F4 ( HSD_GObj * gobj)
static

◆ Item_8026784C()

bool Item_8026784C ( enum_t dropItem,
int _ )
static
Remarks
Item_8026862C loads two integers into this, but the second one goes _?

◆ Item_80267AA8()

void Item_80267AA8 ( HSD_GObj * gobj,
SpawnItem * spawnItem )
static

◆ Item_8026814C()

void Item_8026814C ( HSD_GObj * gobj)
static

◆ Item_802682F0()

bool Item_802682F0 ( HSD_GObj * gobj)
static
Todo
Needs some serious cleaning.

◆ Item_80268560()

void Item_80268560 ( HSD_GObj * gobj)
static

◆ Item_8026862C()

HSD_GObj * Item_8026862C ( SpawnItem * spawnItem)
static

◆ Item_80268BE0()

void Item_80268BE0 ( HSD_JObj * item_jobj,
HSD_AnimJoint * anim_joint,
HSD_MatAnimJoint * matanim_joint,
HSD_ShapeAnimJoint * shapeanim_joint,
Item * item_data )
static

◆ Item_80269528()

void Item_80269528 ( HSD_GObj * gobj)
static

◆ Item_802696CC()

bool Item_802696CC ( HSD_GObj * gobj)
static

◆ Item_80269A9C()

void Item_80269A9C ( HSD_GObj * gobj)
static

this function is where the item accessory callback is called if it exists

◆ Item_80269B60()

void Item_80269B60 ( HSD_GObj * gobj)
static

◆ Item_80269BE4()

void Item_80269BE4 ( HSD_GObj * gobj)
static

rather items such as the Barrel Cannon.

Remarks
Somewhat arbitrary. Does not run on Hook Shot / Grapple Beam,

◆ Item_80269C5C()

void Item_80269C5C ( HSD_GObj * gobj)
static

◆ Item_80269CC4()

void Item_80269CC4 ( HSD_GObj * gobj)
static

◆ Item_80269DC8()

bool Item_80269DC8 ( HSD_GObj * gobj)
static

◆ Item_80269F14()

bool Item_80269F14 ( HSD_GObj * gobj)
static

◆ Item_8026A0A0()

void Item_8026A0A0 ( HSD_GObj * gobj)
static

◆ Item_8026A0FC()

void Item_8026A0FC ( HSD_GObj * gobj)
static

◆ Item_8026A158()

void Item_8026A158 ( HSD_GObj * gobj)
static

◆ Item_8026A1E8()

void Item_8026A1E8 ( HSD_GObj * gobj)
static

◆ Item_8026A294()

void Item_8026A294 ( HSD_GObj * gobj)
static

◆ Item_8026A788()

void Item_8026A788 ( HSD_GObj * gobj)
static

◆ Item_8026A810()

void Item_8026A810 ( HSD_GObj * gobj)
static

◆ Item_8026B0B4()

void Item_8026B0B4 ( HSD_GObj * gobj)
static

◆ Item_80266F3C()

bool Item_80266F3C ( void )

Check if items are enabled.

Checks if items are enabled.

◆ Item_80266F70()

void Item_80266F70 ( void )

Check to load ItCo.dat/usd.

◆ Item_80266FA8()

void Item_80266FA8 ( void )

ItCo prefunction with 0.

◆ Item_80266FCC()

void Item_80266FCC ( void )

Init item struct?

◆ ItUnkHoldKind()

void ItUnkHoldKind ( HSD_GObj * gobj)
static

◆ HSD_JObjSetScaleItem()

void HSD_JObjSetScaleItem ( Item * it,
HSD_JObj * jobj,
Vec3 * scl )
static

◆ HSD_JObjSetFacingDirItem()

void HSD_JObjSetFacingDirItem ( HSD_JObj * jobj,
Item * it )
inlinestatic

◆ Item_80267454()

void Item_80267454 ( HSD_GObj * gobj)

Remove Camera Box.

◆ Item_80267978()

void Item_80267978 ( HSD_GObj * gobj)

Store Item Pointers.

◆ PSMTXIdentity()

void PSMTXIdentity ( Mtx )
extern

◆ Item_802680CC()

void Item_802680CC ( HSD_GObj * gobj)

Setup Item JObj.

◆ HSD_JObjGetDObj()

HSD_DObj * HSD_JObjGetDObj ( HSD_JObj * jobj)
extern

◆ Item_8026849C()

void Item_8026849C ( HSD_GObj * gobj)

Set item model scale.

◆ ftLib_8008702C()

void ftLib_8008702C ( s32 arg0)
extern

◆ foobar()

void foobar ( HSD_GObj * gobj)
static

◆ foobar2()

void foobar2 ( HSD_GObj * gobj)
static

◆ foobar3()

void foobar3 ( HSD_GObj * gobj)
static

◆ Item_80268B18()

Item_GObj * Item_80268B18 ( SpawnItem * spawnItem)

Item spawn prefunction - spawn airborne.

◆ Item_80268B5C()

HSD_GObj * Item_80268B5C ( SpawnItem * spawnItem)

Item spawn prefunction - spawn grounded.

◆ Item_80268B9C()

void Item_80268B9C ( SpawnItem * spawnItem)

Item spawn prefunction - spawn grounded and toggle unknown true.

◆ Item_80268D34()

void Item_80268D34 ( HSD_GObj * gobj,
struct ItemStateDesc * itemStateDesc )

Unk Item AObj-related function.

◆ Item_80268DD4()

void Item_80268DD4 ( HSD_GObj * gobj,
f32 frame )

Advance item animation?

◆ Item_80268E40()

void Item_80268E40 ( Item * item_data,
struct ItemStateDesc * itemStateDesc )

Copy item script.

◆ Item_80268E5C()

void Item_80268E5C ( HSD_GObj * gobj,
enum_t msid,
Item_StateChangeFlags flags )

Change item state.

Item State Change.

◆ Item_802693E4()

void Item_802693E4 ( HSD_GObj * gobj)

◆ Item_802694CC()

void Item_802694CC ( HSD_GObj * gobj)

Advance item animation + script?

◆ Item_802697D4()

void Item_802697D4 ( HSD_GObj * gobj)

Item Think - Physics.

◆ Item_80269978()

void Item_80269978 ( HSD_GObj * gobj)

Item Think - Collision.

◆ Item_80269CA0()

void Item_80269CA0 ( Item * item_data,
s32 damage )

Add to damage taken.

Set damage taken.

◆ func_8026A158_helper()

void func_8026A158_helper ( HSD_GObj * atkCollGObj)
static

◆ func_8026A1E8_inline()

void func_8026A1E8_inline ( HSD_GObj * atkCollGObj)
static

◆ processCallback()

bool processCallback ( HSD_GObjPredicate cb,
HSD_GObj * gobj,
Item * item_data )
static

◆ OnTakeDamageThink()

bool OnTakeDamageThink ( HSD_GObj * gobj,
Item * item_data )
static

◆ OnClankThink()

bool OnClankThink ( HSD_GObj * gobj,
Item * item_data )
static

◆ OnGiveDamageThink()

bool OnGiveDamageThink ( HSD_GObj * gobj,
Item * item_data )
static

◆ EnterHitlagThink()

void EnterHitlagThink ( HSD_GObj * gobj,
Item * item_data )
static

◆ checkHitLag()

void checkHitLag ( f32 min_value,
Item * item_data )
static

◆ Item_8026A848()

void Item_8026A848 ( HSD_GObj * gobj,
HSD_GObj * fighter_gobj )

Remove Item from Player.

◆ DestroyItemInline()

void DestroyItemInline ( HSD_GObj * gobj,
Item * other_ip )
static

◆ ItemSwitch()

void ItemSwitch ( HSD_GObj * gobj)
static

◆ RunGObjCallback()

void RunGObjCallback ( HSD_GObj * gobj,
HSD_GObjEvent arg1 )
static
Todo
Could this be a higher-level inline in gobjproc.h or something?

◆ func_8026A8EC_inline1()

void func_8026A8EC_inline1 ( HSD_GObj * gobj)
static

◆ func_8026A8EC_inline2()

void func_8026A8EC_inline2 ( HSD_GObj * gobj)
static

◆ func_8026A8EC_inline3()

void func_8026A8EC_inline3 ( HSD_GObj * gobj)
static

◆ Item_8026A8EC()

void Item_8026A8EC ( Item_GObj * gobj)

Destroy Item.

◆ Item_8026AB54()

void Item_8026AB54 ( Item_GObj * gobj,
HSD_GObj * owner_gobj,
Fighter_Part part )

Pick up item.

◆ Item_8026ABD8()

void Item_8026ABD8 ( Item_GObj * gobj,
Vec3 * pos,
f32 arg2 )

◆ Item_8026AC74()

void Item_8026AC74 ( HSD_GObj * gobj,
Vec3 * arg1,
Vec3 * arg2,
f32 arg3 )

◆ Item_8026AD20()

void Item_8026AD20 ( HSD_GObj * gobj,
Vec3 * arg1,
Vec3 * arg2,
f32 arg3 )

◆ Item_8026ADC0()

void Item_8026ADC0 ( HSD_GObj * gobj)

Make Item Airborne.

◆ Item_OnUserDataRemove()

void Item_OnUserDataRemove ( void * user_data)

◆ Item_8026AE60()

u32 Item_8026AE60 ( void )

◆ Item_8026AE84()

void Item_8026AE84 ( Item * item_data,
enum_t sfx,
u8 pan,
u8 volume )

◆ Item_8026AF0C()

void Item_8026AF0C ( Item * item_data,
enum_t sfx,
u8 pan,
u8 volume )

◆ Item_8026AFA0()

void Item_8026AFA0 ( Item * item_data,
enum_t sfx,
u8 pan,
u8 volume )

◆ Item_8026B034()

void Item_8026B034 ( Item * item_data)

Stop Item SFX.

◆ Item_8026B074()

void Item_8026B074 ( Item * item_data)

Stop Item SFX 2.

◆ Item_IsGrabbable()

bool Item_IsGrabbable ( Item_GObj * gobj)

Check if item is grabbable.

Variable Documentation

◆ item_alloc_data

HSD_ObjAllocData item_alloc_data
static

◆ item_dynamic_bones_alloc_data

HSD_ObjAllocData item_dynamic_bones_alloc_data
static

◆ item_link_alloc_data

HSD_ObjAllocData item_link_alloc_data

◆ Item_804A0C64

HSD_ObjAllocUnk Item_804A0C64

◆ Item_804A0CCC

Item_FtTrack Item_804A0CCC

◆ Item_804A0E24

S32Vec3 Item_804A0E24