1#ifndef MELEE_FT_INLINES_H
2#define MELEE_FT_INLINES_H
20#define PUSH_ATTRS(fp, attributeName) \
22 void* backup = (fp)->dat_attrs_backup; \
23 attributeName* src = (attributeName*) (fp)->ft_data->ext_attr; \
24 void** da = &(fp)->dat_attrs; \
25 *(attributeName*) (fp)->dat_attrs_backup = *src; \
30#define COPY_ATTRS(gobj, attributeName) \
31 Fighter* fp = GET_FIGHTER(gobj); \
32 attributeName* sA2 = (attributeName*) fp->dat_attrs; \
33 attributeName* ext_attr = (attributeName*) fp->ft_data->ext_attr; \
37#define GET_FIGHTER(gobj) ((Fighter*) HSD_GObjGetUserData((HSD_GObj*) gobj))
39#define GET_FIGHTER(gobj) ((Fighter*) HSD_GObjGetUserData(gobj))
51 return gobj->user_data;
84 void* fighter_attr = fp->
x2CC;
143 bool bool2,
bool bool3)
186 bool bool2,
bool bool3)
244 const int* angle_clamp,
void efLib_ResumeAll(HSD_GObj *gobj)
Definition eflib.c:258
void efLib_PauseAll(HSD_GObj *gobj)
Definition eflib.c:231
static void cb(long result, struct DVDCommandBlock *block)
Definition fstload.c:19
static void Fighter_SetDamageCallbacks(Fighter *fp, HSD_GObjEvent take_dmg_cb, HSD_GObjEvent death2_cb)
Definition inlines.h:220
static void Fighter_OnKnockbackExit(Fighter_GObj *gobj, s32 arg1)
Definition inlines.h:200
static void Fighter_ClearCmdVars(Fighter *fp)
Definition inlines.h:228
static s32 ftGetKind(Fighter *fp)
Definition inlines.h:72
static void * getFtSpecialAttrsD(Fighter *fp)
Definition inlines.h:67
static int getStickDirX(Fighter *fp)
Definition inlines.h:113
static s32 ftGetAction(Fighter *fp)
Definition inlines.h:77
static void getAccelAndTarget(Fighter *fp, float *accel, float *target_vel)
Definition inlines.h:131
static void Fighter_OnItemVisible(Fighter_GObj *gobj, bool flag)
Definition inlines.h:177
static void Fighter_OnItemDrop(Fighter_GObj *gobj, bool dropItemFlag, bool bool2, bool bool3)
Definition inlines.h:185
static Fighter * getFighterPlus(Fighter_GObj *gobj)
Definition inlines.h:55
static void * getFtSpecialAttrs(Fighter *fp)
Definition inlines.h:61
static int ftGetFacingDirInt(Fighter *fp)
Definition inlines.h:303
static bool ftCheckThrowB4(Fighter *fp)
Definition inlines.h:288
static bool ftCheckThrowB3(Fighter *fp)
Definition inlines.h:278
static void * getFtSpecialAttrs2CC(Fighter *fp)
Definition inlines.h:82
static Fighter * getFighter(Fighter_GObj *gobj)
Definition inlines.h:49
static bool ftGetGroundAir(Fighter *fp)
Definition inlines.h:108
static ftCo_DatAttrs * getFtAttrs(Fighter *fp)
Definition inlines.h:88
static void Fighter_OnKnockbackEnter(Fighter_GObj *gobj, s32 arg1)
Definition inlines.h:194
#define GET_FIGHTER(gobj)
Definition inlines.h:39
static float ftGetFacingDir(Fighter_GObj *gobj)
Definition inlines.h:298
static void Fighter_SetDamageCallback(Fighter_GObj *gobj, HSD_GObjEvent cb)
Definition inlines.h:212
static void Fighter_UnsetCmdVar0(Fighter_GObj *gobj)
Definition inlines.h:206
static float stickGetDir(float x1, float x2)
Definition inlines.h:122
static void Fighter_SetEffectHitlagCallbacks(Fighter *fp)
Definition inlines.h:42
static void ftCommon_HandleTeleportCollisions(Fighter_GObj *gobj, Fighter *fp, CollData *coll, const int *angle_clamp, HSD_GObjEvent on_collide)
Definition inlines.h:241
static void Fighter_OnItemPickup(Fighter_GObj *gobj, bool catchItemFlag, bool bool2, bool bool3)
used for all fighters except Kirby and Purin
Definition inlines.h:142
static Item_GObj * getFtTargetItem(Fighter *fp)
Definition inlines.h:103
static bool ftCheckThrowB0(Fighter *fp)
Definition inlines.h:268
static CollData * getFtColl(Fighter *fp)
Definition inlines.h:93
static void Fighter_OnItemInvisible(Fighter_GObj *gobj, bool flag)
Definition inlines.h:169
static Fighter_GObj * getFtVictim(Fighter *fp)
Definition inlines.h:98
static CollData * Fighter_GetCollData(Fighter *fp)
Definition inlines.h:236
void ftAnim_80070FB4(Fighter_GObj *arg0, s32 arg1, s32 arg2)
Definition ftanim.c:1364
void ftAnim_800704F0(Fighter_GObj *gobj, int tobj_idx, float frame)
Definition ftanim.c:1059
void ftAnim_80070CC4(Fighter_GObj *gobj, int arg1)
Definition ftanim.c:1306
void ftAnim_80070C48(Fighter_GObj *gobj, s32 arg1)
Definition ftanim.c:1278
Item_HoldKinds itGetHoldKind(HSD_GObj *gobj)
Return item hold kind.
Definition it_26B1.c:127
bool itIsHeavy(HSD_GObj *gobj)
Check if item is heavy.
Definition it_26B1.c:91
float lbVector_AngleXY(Vec3 *a, Vec3 *b)
8000D790 - returns the angle between a and b
Definition lbvector.c:105
#define MTXDegToRad(a)
Definition mtx.h:59
signed int s32
Definition types.h:12
HSD_GObj Item_GObj
Definition forward.h:64
#define Collide_RightWallMask
Definition forward.h:104
#define Collide_CeilingMask
Definition forward.h:109
#define Collide_LeftWallMask
Definition forward.h:101
SurfaceData right_facing_wall
Definition types.h:241
SurfaceData left_facing_wall
Definition types.h:240
SurfaceData ceiling
Definition types.h:242
s16 facing_dir
Definition types.h:215
s32 env_flags
Definition types.h:235
u8 throw_flags_b0
Definition types.h:1887
u8 throw_flags_b3
Definition types.h:1890
u8 throw_flags_b4
Definition types.h:1891
HSD_GObjEvent take_dmg_cb
Definition types.h:1872
GroundOrAir ground_or_air
Definition types.h:1508
Item_GObj * target_item_gobj
Definition types.h:1777
ftCo_DatAttrs co_attrs
Definition types.h:1522
void * dat_attrs
Definition types.h:1527
struct Fighter::Fighter_input input
float facing_dir
Definition types.h:1494
HSD_GObjEvent death2_cb
Definition types.h:1875
CollData coll_data
Definition types.h:1629
HSD_GObjEvent post_hitlag_cb
Definition types.h:1871
union Fighter::Fighter_x2210 x2210
u32 cmd_vars[4]
Definition types.h:1883
HSD_GObjEvent pre_hitlag_cb
Definition types.h:1870
FighterKind kind
Definition types.h:1483
Item_GObj * item_gobj
Definition types.h:1732
ftDonkeyAttributes * x2CC
Definition types.h:1525
Fighter_GObj * victim_gobj
Definition types.h:1775
Vec3 self_vel
Definition types.h:1500
FtMotionId motion_id
Definition types.h:1487
Vec3 normal
Definition types.h:168
float dash_accel_base
Definition types.h:893
float dash_accel_mul
Definition types.h:892
float dash_max_velocity
Definition types.h:894
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:113
struct Fighter::Fighter_x2210::Fighter_x2210_x0 x0