SSBM Decomp
Loading...
Searching...
No Matches
itlinkhookshot.c File Reference
#include "itlinkhookshot.h"
#include "placeholder.h"
#include "dolphin/mtx.h"
#include "dolphin/types.h"
#include "ef/efsync.h"
#include "ft/chara/ftCommon/ftCo_AirCatch.h"
#include "ft/chara/ftCommon/ftCo_CliffJump.h"
#include "ft/chara/ftCommon/ftCo_DamageFall.h"
#include "ft/ft_081B.h"
#include "ft/ftcliffcommon.h"
#include "ft/ftcoll.h"
#include "ft/ftcommon.h"
#include "ft/ftparts.h"
#include "ft/inlines.h"
#include "it/inlines.h"
#include "it/it_2725.h"
#include "it/item.h"
#include "lb/lbaudio_ax.h"
#include "lb/lbvector.h"
#include "mp/mpcoll.h"
#include "mp/mpisland.h"
#include "mp/mplib.h"
#include "mp/types.h"
#include "sysdolphin/baselib/gobjobject.h"
#include "sysdolphin/baselib/gobjplink.h"
#include "sysdolphin/baselib/jobj.h"
#include <MSL/math_ppc.h>

Functions

static void it_802A5770_inline (ItemLink *link_1, itLinkHookshotAttributes *arg2, Fighter *arg3, s32 var_r29)
void it_802A2418 (Item_GObj *obj)
void it_802A2428 (HSD_GObj *obj)
void it_802A2474 (void *arg0)
void it_802A24A0 (HSD_GObj *obj, int arg1)
void it_802A24D0 (ItemLink *arg0, f32 arg8)
static bool link_fighter_compare (Fighter *fp)
static void it_802A2568_inline (ItemLink *temp_r3_3, HSD_JObj *arg1, HSD_GObj *temp_r3_2, Vec3 *pos)
static HSD_JObjit_link_get_joint (Item *arg0, s32 var_r31)
static HSD_JObjit_link_get_joint_c (Item *arg0)
static f32 it_link_lerp (f32 a, f32 b, f32 t)
static void it_link_attr_math (itLinkHookshotAttributes *attr, s32 arg2, f32 arg8)
HSD_JObjit_802A2568 (Item *arg0, HSD_JObj *arg1, s32 arg2, f32 arg8)
void it_802A2B10 (Item_GObj *arg0)
Item_GObjit_802A2BA4 (Fighter_GObj *arg0, Vec3 *arg1, f32 arg2, s32 arg3)
bool itLinkhookshot_UnkMotion8_Anim (Item_GObj *arg0)
static void fn_802A2E4C (Item_GObj *arg0)
void itLinkhookshot_UnkMotion0_Phys (Item_GObj *arg0)
static void it_802A2EE4_inline (MtxPtr m, ItemLink *item_link, Vec3 *pos)
static void it_802A2EE4_inline_alt (ItemLink *item_link, Vec3 *pos)
static void it_802A2EE4_inline_alt_pad (ItemLink *item_link, Vec3 *pos)
void it_802A2EE4 (Item_GObj *arg0)
void itLinkhookshot_UnkMotion1_Phys (Item_GObj *arg0)
static void mtx_reset (Mtx m)
static void vec3_eq_mtx (Vec3 *vec, Mtx m)
static void fn_802A3110_inline (ItemLink *item_link, Vec3 *pos)
static void fn_802A3110 (HSD_GObj *arg0)
void itLinkhookshot_UnkMotion2_Phys (Item_GObj *arg0)
void it_802A3254 (Item_GObj *arg0)
void itLinkhookshot_UnkMotion3_Phys (Item_GObj *arg0)
void fn_802A33A0 (Item_GObj *arg0)
static Fighterfn_802A33A0_GetFighter (Item *item)
void itLinkhookshot_UnkMotion4_Phys (Item_GObj *arg0)
void it_802A3500 (Item_GObj *arg0)
void itLinkhookshot_UnkMotion5_Phys (Item_GObj *arg0)
static bool it_802A3630_inline (Item *item, Vec3 *cur_pos, Vec3 *pos)
void it_802A3630 (Item_GObj *arg0)
void itLinkhookshot_UnkMotion6_Phys (Item_GObj *arg0)
void it_802A3828 (Item_GObj *gobj)
void itLinkhookshot_UnkMotion7_Phys (Item_GObj *arg0)
void it_802A39FC (Item_GObj *gobj)
void itLinkhookshot_UnkMotion8_Phys (Item_GObj *gobj)
float it_802A3C98 (Vec3 *arg0, Vec3 *arg1, Vec3 *arg2)
s32 it_802A3D90 (ItemLink *item_link)
s32 it_802A3E50 (ItemLink *item_link, enum FighterKind arg1, f32 arg8)
s32 it_802A40D0 (ItemLink *item_link, f32 arg8)
s32 it_802A42F4 (ItemLink *item_link, f32 arg8)
void it_802A43B8 (ItemLink *item_link)
void it_802A43EC (ItemLink *item_link)
void it_802A4420 (ItemLink *item_link)
void it_802A4454 (ItemLink *item_link)
void it_802A44CC (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, f32 arg8)
static void test_comp (Vec3 *vec0, Vec3 *vec1, Vec3 *vec2, f32 *arg2)
static Vec3 * it_802A4758_permuterslop (ItemLink *link_0)
void it_802A4758 (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, f32 arg8)
void it_802A49B0 (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, f32 arg8)
s32 it_802A4BFC (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *attr, Fighter *fp)
s32 it_802A5320 (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *attr, Fighter *fp)
void it_802A5770 (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, Fighter *arg3)
 definitely attributes
s32 it_802A5AE0 (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2)
s32 it_802A5E28 (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, f32 arg8)
s32 it_802A5FE0 (ItemLink *link_0, ItemLink *link_0_2, Vec3 *arg2, itLinkHookshotAttributes *arg3, f32 arg8)
static f32 my_sqrt (f32 x)
static void it_802A4758_no_inline (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, f32 arg8)
void it_802A6474 (ItemLink *link_0, ItemLink *link_1, Vec3 *pos, itLinkHookshotAttributes *attrs)
s32 it_802A678C (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, f32 arg8)
void it_802A6944 (Item *item, f32 scl)
static f64 it_802A6A78_normalize_diff (Vec3 *vec, Vec3 *a, Vec3 *b)
s32 it_802A6A78 (ItemLink *link_0, Vec3 *arg1, itLinkHookshotAttributes *arg2, Fighter *arg3)
void it_802A6DC8 (HSD_JObj *arg0, Vec3 *arg1, Vec3 *arg2)
void it_802A6F80 (HSD_JObj *arg0, Vec3 *arg1, Vec3 *arg2, f32 arg3)
void it_802A7168 (Item *arg0, Vec3 *arg1, f32 arg8)
void it_802A7384 (Item *item, Vec3 *arg1, f32 arg8)
static void itLinkHookshot_Logic20_PickedUp_inline (HSD_GObj *arg0)
void itLinkHookshot_Logic20_PickedUp (Item_GObj *arg0)
void it_802A76EC (HSD_GObj *arg0)
void it_802A7764 (HSD_GObj *arg0)
void it_802A77DC (Item_GObj *arg0)
void it_802A7840 (HSD_GObj *arg0)
void it_802A78B8 (HSD_GObj *arg0, Vec3 *arg1)
void it_802A793C (HSD_GObj *arg0)
void it_802A79A0 (HSD_GObj *arg0)
void it_802A7A04 (HSD_GObj *arg0)
void it_802A7AAC (HSD_GObj *arg0)
void it_802A7AF0 (HSD_GObj *arg0)
void it_802A7B34 (HSD_GObj *arg0)
void it_802A7D40 (Item_GObj *arg0, Item_GObj *arg1)

Variables

ItemStateTable it_803F6998 []
 /* 2A2418 ‍/ void it_802A2418(Item_GObj); /* 2A2B10 ‍/ void it_802A2B10(Item_GObj gobj); /* 2A2BA4 ‍/ Item_GObj it_802A2BA4(Fighter_GObj*, Vec3*, float, int); /* 2A7688 ‍/ void itLinkHookshot_Logic20_PickedUp(Item_GObj); /* 2A78B8 ‍/ void it_802A78B8(HSD_GObj, Vec3*, float); /* 2A7AAC ‍/ void it_802A7AAC(HSD_GObj); /* 2A7AF0 ‍/ void it_802A7AF0(HSD_GObj); /* 2A7B34 ‍/ void it_802A7B34(HSD_GObj); /* 2A7D40 ‍/ void it_802A7D40(Item_GObj, Item_GObj*);
f32 it_804D6D48

Function Documentation

◆ it_802A5770_inline()

void it_802A5770_inline ( ItemLink * link_1,
itLinkHookshotAttributes * arg2,
Fighter * arg3,
s32 var_r29 )
static

◆ it_802A2418()

void it_802A2418 ( Item_GObj * obj)

◆ it_802A2428()

void it_802A2428 ( HSD_GObj * obj)

◆ it_802A2474()

void it_802A2474 ( void * arg0)

◆ it_802A24A0()

void it_802A24A0 ( HSD_GObj * obj,
int arg1 )

◆ it_802A24D0()

void it_802A24D0 ( ItemLink * arg0,
f32 arg8 )

◆ link_fighter_compare()

bool link_fighter_compare ( Fighter * fp)
inlinestatic

◆ it_802A2568_inline()

void it_802A2568_inline ( ItemLink * temp_r3_3,
HSD_JObj * arg1,
HSD_GObj * temp_r3_2,
Vec3 * pos )
inlinestatic

◆ it_link_get_joint()

HSD_JObj * it_link_get_joint ( Item * arg0,
s32 var_r31 )
inlinestatic

◆ it_link_get_joint_c()

HSD_JObj * it_link_get_joint_c ( Item * arg0)
inlinestatic

◆ it_link_lerp()

f32 it_link_lerp ( f32 a,
f32 b,
f32 t )
inlinestatic

◆ it_link_attr_math()

void it_link_attr_math ( itLinkHookshotAttributes * attr,
s32 arg2,
f32 arg8 )
inlinestatic

◆ it_802A2568()

HSD_JObj * it_802A2568 ( Item * arg0,
HSD_JObj * arg1,
s32 arg2,
f32 arg8 )

◆ it_802A2B10()

void it_802A2B10 ( Item_GObj * arg0)

◆ it_802A2BA4()

Item_GObj * it_802A2BA4 ( Fighter_GObj * arg0,
Vec3 * arg1,
f32 arg2,
s32 arg3 )

◆ itLinkhookshot_UnkMotion8_Anim()

bool itLinkhookshot_UnkMotion8_Anim ( Item_GObj * arg0)

◆ fn_802A2E4C()

void fn_802A2E4C ( Item_GObj * arg0)
static

◆ itLinkhookshot_UnkMotion0_Phys()

void itLinkhookshot_UnkMotion0_Phys ( Item_GObj * arg0)

◆ it_802A2EE4_inline()

void it_802A2EE4_inline ( MtxPtr m,
ItemLink * item_link,
Vec3 * pos )
inlinestatic

◆ it_802A2EE4_inline_alt()

void it_802A2EE4_inline_alt ( ItemLink * item_link,
Vec3 * pos )
inlinestatic

◆ it_802A2EE4_inline_alt_pad()

void it_802A2EE4_inline_alt_pad ( ItemLink * item_link,
Vec3 * pos )
inlinestatic

◆ it_802A2EE4()

void it_802A2EE4 ( Item_GObj * arg0)

◆ itLinkhookshot_UnkMotion1_Phys()

void itLinkhookshot_UnkMotion1_Phys ( Item_GObj * arg0)

◆ mtx_reset()

void mtx_reset ( Mtx m)
inlinestatic

◆ vec3_eq_mtx()

void vec3_eq_mtx ( Vec3 * vec,
Mtx m )
inlinestatic

◆ fn_802A3110_inline()

void fn_802A3110_inline ( ItemLink * item_link,
Vec3 * pos )
inlinestatic

◆ fn_802A3110()

void fn_802A3110 ( HSD_GObj * arg0)
static

◆ itLinkhookshot_UnkMotion2_Phys()

void itLinkhookshot_UnkMotion2_Phys ( Item_GObj * arg0)

◆ it_802A3254()

void it_802A3254 ( Item_GObj * arg0)

◆ itLinkhookshot_UnkMotion3_Phys()

void itLinkhookshot_UnkMotion3_Phys ( Item_GObj * arg0)

◆ fn_802A33A0()

void fn_802A33A0 ( Item_GObj * arg0)

◆ fn_802A33A0_GetFighter()

Fighter * fn_802A33A0_GetFighter ( Item * item)
inlinestatic

◆ itLinkhookshot_UnkMotion4_Phys()

void itLinkhookshot_UnkMotion4_Phys ( Item_GObj * arg0)

◆ it_802A3500()

void it_802A3500 ( Item_GObj * arg0)

◆ itLinkhookshot_UnkMotion5_Phys()

void itLinkhookshot_UnkMotion5_Phys ( Item_GObj * arg0)

◆ it_802A3630_inline()

bool it_802A3630_inline ( Item * item,
Vec3 * cur_pos,
Vec3 * pos )
inlinestatic

◆ it_802A3630()

void it_802A3630 ( Item_GObj * arg0)

◆ itLinkhookshot_UnkMotion6_Phys()

void itLinkhookshot_UnkMotion6_Phys ( Item_GObj * arg0)

◆ it_802A3828()

void it_802A3828 ( Item_GObj * gobj)

◆ itLinkhookshot_UnkMotion7_Phys()

void itLinkhookshot_UnkMotion7_Phys ( Item_GObj * arg0)

◆ it_802A39FC()

void it_802A39FC ( Item_GObj * gobj)

◆ itLinkhookshot_UnkMotion8_Phys()

void itLinkhookshot_UnkMotion8_Phys ( Item_GObj * gobj)

◆ it_802A3C98()

float it_802A3C98 ( Vec3 * arg0,
Vec3 * arg1,
Vec3 * arg2 )

◆ it_802A3D90()

s32 it_802A3D90 ( ItemLink * item_link)

◆ it_802A3E50()

s32 it_802A3E50 ( ItemLink * item_link,
enum FighterKind arg1,
f32 arg8 )

<

Todo
This is seemingly the wrong struct; there should

◆ it_802A40D0()

s32 it_802A40D0 ( ItemLink * item_link,
f32 arg8 )

◆ it_802A42F4()

s32 it_802A42F4 ( ItemLink * item_link,
f32 arg8 )

◆ it_802A43B8()

void it_802A43B8 ( ItemLink * item_link)

◆ it_802A43EC()

void it_802A43EC ( ItemLink * item_link)

◆ it_802A4420()

void it_802A4420 ( ItemLink * item_link)

◆ it_802A4454()

void it_802A4454 ( ItemLink * item_link)

◆ it_802A44CC()

void it_802A44CC ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
f32 arg8 )

◆ test_comp()

void test_comp ( Vec3 * vec0,
Vec3 * vec1,
Vec3 * vec2,
f32 * arg2 )
inlinestatic

◆ it_802A4758_permuterslop()

Vec3 * it_802A4758_permuterslop ( ItemLink * link_0)
inlinestatic

◆ it_802A4758()

void it_802A4758 ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
f32 arg8 )

◆ it_802A49B0()

void it_802A49B0 ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
f32 arg8 )

◆ it_802A4BFC()

s32 it_802A4BFC ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * attr,
Fighter * fp )

◆ it_802A5320()

s32 it_802A5320 ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * attr,
Fighter * fp )

◆ it_802A5770()

void it_802A5770 ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
Fighter * arg3 )

definitely attributes

◆ it_802A5AE0()

s32 it_802A5AE0 ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2 )

◆ it_802A5E28()

s32 it_802A5E28 ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
f32 arg8 )

◆ it_802A5FE0()

s32 it_802A5FE0 ( ItemLink * link_0,
ItemLink * link_0_2,
Vec3 * arg2,
itLinkHookshotAttributes * arg3,
f32 arg8 )

◆ my_sqrt()

f32 my_sqrt ( f32 x)
inlinestatic

◆ it_802A4758_no_inline()

void it_802A4758_no_inline ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
f32 arg8 )
static

◆ it_802A6474()

void it_802A6474 ( ItemLink * link_0,
ItemLink * link_1,
Vec3 * pos,
itLinkHookshotAttributes * attrs )

◆ it_802A678C()

s32 it_802A678C ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
f32 arg8 )

◆ it_802A6944()

void it_802A6944 ( Item * item,
f32 scl )

◆ it_802A6A78_normalize_diff()

f64 it_802A6A78_normalize_diff ( Vec3 * vec,
Vec3 * a,
Vec3 * b )
inlinestatic

◆ it_802A6A78()

s32 it_802A6A78 ( ItemLink * link_0,
Vec3 * arg1,
itLinkHookshotAttributes * arg2,
Fighter * arg3 )

◆ it_802A6DC8()

void it_802A6DC8 ( HSD_JObj * arg0,
Vec3 * arg1,
Vec3 * arg2 )

◆ it_802A6F80()

void it_802A6F80 ( HSD_JObj * arg0,
Vec3 * arg1,
Vec3 * arg2,
f32 arg3 )

◆ it_802A7168()

void it_802A7168 ( Item * arg0,
Vec3 * arg1,
f32 arg8 )

◆ it_802A7384()

void it_802A7384 ( Item * item,
Vec3 * arg1,
f32 arg8 )

◆ itLinkHookshot_Logic20_PickedUp_inline()

void itLinkHookshot_Logic20_PickedUp_inline ( HSD_GObj * arg0)
inlinestatic

◆ itLinkHookshot_Logic20_PickedUp()

void itLinkHookshot_Logic20_PickedUp ( Item_GObj * arg0)

◆ it_802A76EC()

void it_802A76EC ( HSD_GObj * arg0)

◆ it_802A7764()

void it_802A7764 ( HSD_GObj * arg0)

◆ it_802A77DC()

void it_802A77DC ( Item_GObj * arg0)

◆ it_802A7840()

void it_802A7840 ( HSD_GObj * arg0)

◆ it_802A78B8()

void it_802A78B8 ( HSD_GObj * arg0,
Vec3 * arg1 )

◆ it_802A793C()

void it_802A793C ( HSD_GObj * arg0)

◆ it_802A79A0()

void it_802A79A0 ( HSD_GObj * arg0)

◆ it_802A7A04()

void it_802A7A04 ( HSD_GObj * arg0)

<

Todo
should this be its own struct?

◆ it_802A7AAC()

void it_802A7AAC ( HSD_GObj * arg0)

◆ it_802A7AF0()

void it_802A7AF0 ( HSD_GObj * arg0)

◆ it_802A7B34()

void it_802A7B34 ( HSD_GObj * arg0)

◆ it_802A7D40()

void it_802A7D40 ( Item_GObj * arg0,
Item_GObj * arg1 )

Variable Documentation

◆ it_803F6998

ItemStateTable it_803F6998[]
Initial value:
= { {
-1,
},
void itLinkhookshot_UnkMotion8_Phys(Item_GObj *gobj)
Definition itlinkhookshot.c:888
void itLinkhookshot_UnkMotion6_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:750
void itLinkhookshot_UnkMotion5_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:692
void itLinkhookshot_UnkMotion4_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:660
void itLinkhookshot_UnkMotion7_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:800
void itLinkhookshot_UnkMotion3_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:616
void itLinkhookshot_UnkMotion2_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:586
void itLinkhookshot_UnkMotion1_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:530
void itLinkhookshot_UnkMotion0_Phys(Item_GObj *arg0)
Definition itlinkhookshot.c:434
bool itLinkhookshot_UnkMotion8_Anim(Item_GObj *arg0)
Definition itlinkhookshot.c:394
#define NULL
Definition stddef.h:19

/* 2A2418 ‍/ void it_802A2418(Item_GObj); /* 2A2B10 ‍/ void it_802A2B10(Item_GObj gobj); /* 2A2BA4 ‍/ Item_GObj it_802A2BA4(Fighter_GObj*, Vec3*, float, int); /* 2A7688 ‍/ void itLinkHookshot_Logic20_PickedUp(Item_GObj); /* 2A78B8 ‍/ void it_802A78B8(HSD_GObj, Vec3*, float); /* 2A7AAC ‍/ void it_802A7AAC(HSD_GObj); /* 2A7AF0 ‍/ void it_802A7AF0(HSD_GObj); /* 2A7B34 ‍/ void it_802A7B34(HSD_GObj); /* 2A7D40 ‍/ void it_802A7D40(Item_GObj, Item_GObj*);

◆ it_804D6D48

f32 it_804D6D48