1#ifndef MELEE_FT_INLINES_H
2#define MELEE_FT_INLINES_H
26#define PUSH_ATTRS(fp, attributeName) \
28 void* backup = (fp)->dat_attrs_backup; \
29 attributeName* src = (attributeName*) (fp)->ft_data->ext_attr; \
30 void** da = &(fp)->dat_attrs; \
31 *(attributeName*) (fp)->dat_attrs_backup = *src; \
36#define COPY_ATTRS(gobj, attributeName) \
37 Fighter* fp = GET_FIGHTER(gobj); \
38 attributeName* sA2 = (attributeName*) fp->dat_attrs; \
39 attributeName* ext_attr = (attributeName*) fp->ft_data->ext_attr; \
43#define GET_FIGHTER(gobj) ((Fighter*) HSD_GObjGetUserData((HSD_GObj*) gobj))
45#define GET_FIGHTER(gobj) ((Fighter*) HSD_GObjGetUserData(gobj))
57 return gobj->user_data;
90 void* fighter_attr = fp->
x2CC;
149 bool bool2,
bool bool3)
190 bool bool2,
bool bool3)
224 const int* angle_clamp,
298#define gmScriptEventCast(p_event, type) ((type*) p_event)
299#define gmScriptEventUpdatePtr(event, type) \
300 (event = (void*) ((uintptr_t) event + 4))
UnkFlagStruct x1
Definition dbbonus.c:21
void efLib_ResumeAll(HSD_GObj *gobj)
Definition eflib.c:316
void efLib_PauseAll(HSD_GObj *gobj)
Definition eflib.c:289
static void Fighter_OnKnockbackExit(Fighter_GObj *gobj, s32 arg1)
Definition inlines.h:204
static s32 ftGetKind(Fighter *fp)
Definition inlines.h:78
static void * getFtSpecialAttrsD(Fighter *fp)
Definition inlines.h:73
static int getStickDirX(Fighter *fp)
Definition inlines.h:119
static bool canUseCstick(Fighter *fp)
Definition inlines.h:307
static s32 ftGetAction(Fighter *fp)
Definition inlines.h:83
static void getAccelAndTarget(Fighter *fp, float *accel, float *target_vel)
Definition inlines.h:137
static void Fighter_OnItemVisible(Fighter_GObj *gobj, bool flag)
Definition inlines.h:181
static void Fighter_OnItemDrop(Fighter_GObj *gobj, bool dropItemFlag, bool bool2, bool bool3)
Definition inlines.h:189
static int ftGetFacingDirInt2(Fighter_GObj *gobj)
Definition inlines.h:292
static Fighter * getFighterPlus(Fighter_GObj *gobj)
Definition inlines.h:61
static void * getFtSpecialAttrs(Fighter *fp)
Definition inlines.h:67
static int ftGetFacingDirInt(Fighter *fp)
Definition inlines.h:283
static bool ftCheckThrowB4(Fighter *fp)
Definition inlines.h:268
static bool ftCheckThrowB3(Fighter *fp)
Definition inlines.h:258
static void * getFtSpecialAttrs2CC(Fighter *fp)
Definition inlines.h:88
static Fighter * getFighter(Fighter_GObj *gobj)
Definition inlines.h:55
static bool ftGetGroundAir(Fighter *fp)
Definition inlines.h:114
static ftCo_DatAttrs * getFtAttrs(Fighter *fp)
Definition inlines.h:94
static void Fighter_OnKnockbackEnter(Fighter_GObj *gobj, s32 arg1)
Definition inlines.h:198
#define GET_FIGHTER(gobj)
Definition inlines.h:45
static float ftGetFacingDir(Fighter_GObj *gobj)
Definition inlines.h:278
static void Fighter_UnsetCmdVar0(Fighter_GObj *gobj)
Definition inlines.h:210
static float stickGetDir(float x1, float x2)
Definition inlines.h:128
static void Fighter_SetEffectHitlagCallbacks(Fighter *fp)
Definition inlines.h:48
static void ftCommon_HandleTeleportCollisions(Fighter_GObj *gobj, Fighter *fp, CollData *coll, const int *angle_clamp, HSD_GObjEvent on_collide)
Definition inlines.h:221
static void Fighter_OnItemPickup(Fighter_GObj *gobj, bool catchItemFlag, bool bool2, bool bool3)
used for all fighters except Kirby and Purin
Definition inlines.h:148
static Item_GObj * getFtTargetItem(Fighter *fp)
Definition inlines.h:109
static bool ftCheckThrowB0(Fighter *fp)
Definition inlines.h:248
static CollData * getFtColl(Fighter *fp)
Definition inlines.h:99
static void Fighter_OnItemInvisible(Fighter_GObj *gobj, bool flag)
Definition inlines.h:173
static Fighter_GObj * getFtVictim(Fighter *fp)
Definition inlines.h:104
static CollData * Fighter_GetCollData(Fighter *fp)
Definition inlines.h:216
CommandInfo * getCmdScript(Fighter *fp)
Definition inlines.h:302
void ftAnim_80070FB4(Fighter_GObj *arg0, s32 arg1, s32 arg2)
Definition ftanim.c:1367
void ftAnim_800704F0(Fighter_GObj *gobj, int tobj_idx, float frame)
Definition ftanim.c:1061
void ftAnim_80070CC4(Fighter_GObj *gobj, int arg1)
Definition ftanim.c:1308
void ftAnim_80070C48(Fighter_GObj *gobj, s32 arg1)
Definition ftanim.c:1280
u8 x2
Definition gm_1601.c:149
bool gm_8016B0FC(void)
single-button mode enabled
Definition gm_16AE.c:178
signed long s32
Definition hsd_3B2B.h:1
enum_t itGetHoldKind(HSD_GObj *gobj)
Return item hold kind.
Definition it_26B1.c:126
enum_t it_8026B30C(Item_GObj *gobj)
Return flag from Item Attributes.
Definition it_26B1.c:119
bool itIsHeavy(HSD_GObj *gobj)
Check if item is heavy.
Definition it_26B1.c:90
static float const deg_to_rad
Definition itparasol.c:15
float lbVector_AngleXY(Vec3 *a, Vec3 *b)
8000D790 - returns the angle between a and b
Definition lbvector.c:111
HSD_GObj Item_GObj
Definition forward.h:55
#define Collide_RightWallMask
Definition forward.h:94
#define Collide_CeilingMask
Definition forward.h:99
#define Collide_LeftWallMask
Definition forward.h:91
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
FtMotionId motion_id
Definition types.h:1139
u8 throw_flags_b4
Definition types.h:1591
HSD_GObjEvent pre_hitlag_cb
Definition types.h:1570
Item_GObj * item_gobj
Definition types.h:1429
Vec3 self_vel
Definition types.h:1152
u8 throw_flags_b0
Definition types.h:1587
Item_GObj * target_item_gobj
Definition types.h:1474
struct Fighter::@237322252372014117116113031343114120130274157263 input
GroundOrAir ground_or_air
Definition types.h:1160
CollData coll_data
Definition types.h:1306
ftCo_DatAttrs co_attrs
Definition types.h:1174
u32 cmd_vars[4]
Definition types.h:1583
CommandInfo x3E4_fighterCmdScript
Definition types.h:1200
HSD_GObjEvent post_hitlag_cb
Definition types.h:1571
float facing_dir
Definition types.h:1146
Fighter_GObj * victim_gobj
Definition types.h:1472
void * dat_attrs
Definition types.h:1191
FighterKind kind
Definition types.h:1136
ftDonkeyAttributes * x2CC
Definition types.h:1177
Vec2 lstick
Definition types.h:1252
u8 throw_flags_b3
Definition types.h:1590
Vec3 normal
Definition types.h:165
float dash_run_acceleration_b
Definition types.h:700
float dash_run_terminal_velocity
Definition types.h:701
float dash_run_acceleration_a
Definition types.h:699
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:109