1#ifndef MELEE_FT_INLINES_H
2#define MELEE_FT_INLINES_H
21#define PUSH_ATTRS(fp, attributeName) \
23 void* backup = (fp)->dat_attrs_backup; \
24 attributeName* src = (attributeName*) (fp)->ft_data->ext_attr; \
25 void** da = &(fp)->dat_attrs; \
26 *(attributeName*) (fp)->dat_attrs_backup = *src; \
31#define COPY_ATTRS(gobj, attributeName) \
32 Fighter* fp = GET_FIGHTER(gobj); \
33 attributeName* sA2 = (attributeName*) fp->dat_attrs; \
34 attributeName* ext_attr = (attributeName*) fp->ft_data->ext_attr; \
38#define GET_FIGHTER(gobj) ((Fighter*) HSD_GObjGetUserData((HSD_GObj*) gobj))
40#define GET_FIGHTER(gobj) ((Fighter*) HSD_GObjGetUserData(gobj))
52 return gobj->user_data;
85 void* fighter_attr = fp->
x2CC;
144 bool bool2,
bool bool3)
187 bool bool2,
bool bool3)
221 const int* angle_clamp,
295#define gmScriptEventCast(p_event, type) ((type*) p_event)
296#define gmScriptEventUpdatePtr(event, type) \
297 (event = (void*) ((uintptr_t) event + 4))
UnkFlagStruct x1
Definition dbbonus.c:24
void efLib_ResumeAll(HSD_GObj *gobj)
Definition eflib.c:312
void efLib_PauseAll(HSD_GObj *gobj)
Definition eflib.c:285
#define MTXDegToRad(a)
Definition mtx.h:59
signed long s32
Definition types.h:8
static void Fighter_OnKnockbackExit(Fighter_GObj *gobj, s32 arg1)
Definition inlines.h:201
static s32 ftGetKind(Fighter *fp)
Definition inlines.h:73
static void * getFtSpecialAttrsD(Fighter *fp)
Definition inlines.h:68
static CommandInfo * getCmdScript(Fighter *fp)
Definition inlines.h:299
static int getStickDirX(Fighter *fp)
Definition inlines.h:114
static bool canUseCstick(Fighter *fp)
Definition inlines.h:304
static s32 ftGetAction(Fighter *fp)
Definition inlines.h:78
static void getAccelAndTarget(Fighter *fp, float *accel, float *target_vel)
Definition inlines.h:132
static void Fighter_OnItemVisible(Fighter_GObj *gobj, bool flag)
Definition inlines.h:178
static void Fighter_OnItemDrop(Fighter_GObj *gobj, bool dropItemFlag, bool bool2, bool bool3)
Definition inlines.h:186
static int ftGetFacingDirInt2(Fighter_GObj *gobj)
Definition inlines.h:289
static Fighter * getFighterPlus(Fighter_GObj *gobj)
Definition inlines.h:56
static void * getFtSpecialAttrs(Fighter *fp)
Definition inlines.h:62
static int ftGetFacingDirInt(Fighter *fp)
Definition inlines.h:280
static bool ftCheckThrowB4(Fighter *fp)
Definition inlines.h:265
static bool ftCheckThrowB3(Fighter *fp)
Definition inlines.h:255
static void * getFtSpecialAttrs2CC(Fighter *fp)
Definition inlines.h:83
static Fighter * getFighter(Fighter_GObj *gobj)
Definition inlines.h:50
static bool ftGetGroundAir(Fighter *fp)
Definition inlines.h:109
static ftCo_DatAttrs * getFtAttrs(Fighter *fp)
Definition inlines.h:89
static void Fighter_OnKnockbackEnter(Fighter_GObj *gobj, s32 arg1)
Definition inlines.h:195
#define GET_FIGHTER(gobj)
Definition inlines.h:40
static float ftGetFacingDir(Fighter_GObj *gobj)
Definition inlines.h:275
static void Fighter_UnsetCmdVar0(Fighter_GObj *gobj)
Definition inlines.h:207
static float stickGetDir(float x1, float x2)
Definition inlines.h:123
static void Fighter_SetEffectHitlagCallbacks(Fighter *fp)
Definition inlines.h:43
static void ftCommon_HandleTeleportCollisions(Fighter_GObj *gobj, Fighter *fp, CollData *coll, const int *angle_clamp, HSD_GObjEvent on_collide)
Definition inlines.h:218
static void Fighter_OnItemPickup(Fighter_GObj *gobj, bool catchItemFlag, bool bool2, bool bool3)
used for all fighters except Kirby and Purin
Definition inlines.h:143
static Item_GObj * getFtTargetItem(Fighter *fp)
Definition inlines.h:104
static bool ftCheckThrowB0(Fighter *fp)
Definition inlines.h:245
static CollData * getFtColl(Fighter *fp)
Definition inlines.h:94
static void Fighter_OnItemInvisible(Fighter_GObj *gobj, bool flag)
Definition inlines.h:170
static Fighter_GObj * getFtVictim(Fighter *fp)
Definition inlines.h:99
static CollData * Fighter_GetCollData(Fighter *fp)
Definition inlines.h:213
void ftAnim_80070FB4(Fighter_GObj *arg0, s32 arg1, s32 arg2)
Definition ftanim.c:1362
void ftAnim_800704F0(Fighter_GObj *gobj, int tobj_idx, float frame)
Definition ftanim.c:1057
void ftAnim_80070CC4(Fighter_GObj *gobj, int arg1)
Definition ftanim.c:1304
void ftAnim_80070C48(Fighter_GObj *gobj, s32 arg1)
Definition ftanim.c:1276
u8 x2
Definition gm_1601.c:156
HSD_GObj * gobj
Definition gm_19EF.c:73
bool gm_8016B0FC(void)
single-button mode enabled
Definition gmvs.c:191
Item_HoldKinds itGetHoldKind(HSD_GObj *gobj)
Return item hold kind.
Definition it_26B1.c:127
enum_t it_8026B30C(Item_GObj *gobj)
Return flag from Item Attributes.
Definition it_26B1.c:120
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
HSD_GObj Item_GObj
Definition forward.h:62
#define Collide_RightWallMask
Definition forward.h:102
#define Collide_CeilingMask
Definition forward.h:107
#define Collide_LeftWallMask
Definition forward.h:99
SurfaceData right_facing_wall
Definition types.h:238
SurfaceData left_facing_wall
Definition types.h:237
SurfaceData ceiling
Definition types.h:239
s16 facing_dir
Definition types.h:212
s32 env_flags
Definition types.h:232
u8 throw_flags_b0
Definition types.h:1696
u8 throw_flags_b3
Definition types.h:1699
GroundOrAir ground_or_air
Definition types.h:1276
Item_GObj * target_item_gobj
Definition types.h:1583
ftCo_DatAttrs co_attrs
Definition types.h:1290
void * dat_attrs
Definition types.h:1307
float facing_dir
Definition types.h:1262
CollData coll_data
Definition types.h:1415
u8 throw_flags_b4
Definition types.h:1700
Vec2 lstick[3]
lstick buffer
Definition types.h:1368
HSD_GObjEvent post_hitlag_cb
Definition types.h:1680
u32 cmd_vars[4]
Definition types.h:1692
HSD_GObjEvent pre_hitlag_cb
Definition types.h:1679
FighterKind kind
Definition types.h:1252
Item_GObj * item_gobj
Definition types.h:1538
struct Fighter::@111351162372213271352333051003102312224255052362 input
CommandInfo x3E4_fighterCmdScript
Definition types.h:1316
ftDonkeyAttributes * x2CC
Definition types.h:1293
Fighter_GObj * victim_gobj
Definition types.h:1581
Vec3 self_vel
Definition types.h:1268
FtMotionId motion_id
Definition types.h:1255
Vec3 normal
Definition types.h:165
float dash_accel_base
Definition types.h:802
float dash_accel_mul
Definition types.h:801
float dash_max_velocity
Definition types.h:803
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:108