SSBM Decomp
Loading...
Searching...
No Matches
inlines.h
Go to the documentation of this file.
1#ifndef MELEE_FT_CHARA_FTCOMMON_INLINES_H
2#define MELEE_FT_CHARA_FTCOMMON_INLINES_H
3
4#include <Runtime/platform.h>
5
7
8#include <placeholder.h>
9
10#include <melee/ef/efasync.h>
11#include <melee/ft/fighter.h>
12#include <melee/ft/ftcoll.h>
13#include <melee/ft/ftcommon.h>
17#include <melee/ft/types.h>
19
20static inline void ftCo_SpawnEf(Fighter_GObj* gobj, HSD_JObj* joint, u32 arg2,
21 enum_t arg3)
22{
23 Fighter* fp = gobj->user_data;
25 efAsync_Spawn((HSD_GObj*) gobj, &fp->x60C, arg2, arg3, joint);
26}
27
28static inline void ftCo_Thrown_Enter(Fighter_GObj* gobj, FtMotionId msid,
29 MotionFlags mf, float anim_start)
30{
32 fp->facing_dir = GET_FIGHTER(fp->victim_gobj)->facing_dir;
33 fp->mv.co.capturekoopa.x0 = false;
34 Fighter_ChangeMotionState(gobj, msid, mf, anim_start, 1, 0,
35 fp->victim_gobj);
37 ftCommon_8007E2F4(fp, 0x1FF);
38}
39
40static inline void ftCo_Barrel_ApplyKnockback(Fighter* fp, float kb_angle,
41 HitCapsule* hit)
42{
43 if (kb_angle < 0) {
44 kb_angle += 360;
45 }
46 kb_angle = fp->facing_dir < 0.0f ? kb_angle : 180.0f - kb_angle;
47 fp->dmg.kb_applied = ftColl_80079EA8(fp, hit, hit->unk_count);
48 fp->dmg.x1848_kb_angle = kb_angle;
49 fp->dmg.facing_dir_1 = fp->facing_dir;
51 fp->dmg.x1854_collpos = fp->cur_pos;
52 fp->dmg.x1860_element = hit->element;
53}
54
56 Fighter_GObj* gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
57{
59 if (fp->kind == Ft_Kind_Peach && fp->u.pe.parasol_gobj_0 != NULL) {
60 return pe_msid;
61 } else {
62 return co_msid;
63 }
64}
65
66static inline void ftCo_ItemParasol_Phys(Fighter_GObj* gobj)
67{
69}
70
71static inline void ftCommon_GroundToAirStateChange(Fighter_GObj* gobj,
72 Fighter* fp,
73 FtMotionId msid,
74 MotionFlags flags)
75{
77 Fighter_ChangeMotionState(gobj, msid, flags, fp->cur_anim_frame, 1.0f,
78 0.0f, NULL);
79}
80
81static inline void ftCommon_AirToGroundStateChange(Fighter_GObj* gobj,
82 Fighter* fp,
83 FtMotionId msid,
84 MotionFlags flags)
85{
87 Fighter_ChangeMotionState(gobj, msid, flags, fp->cur_anim_frame, 1.0f,
88 0.0f, NULL);
89}
90
91#endif
void efAsync_Spawn(HSD_GObj *gobj, void *queue_head, u32 spawn_kind, u32 gfx_id, HSD_JObj *jobj,...)
Definition efasync.c:1405
unsigned long u32
Definition types.h:9
void Fighter_ChangeMotionState(Fighter_GObj *gobj, FtMotionId msid, MotionFlags flags, f32 anim_start, f32 anim_speed, f32 anim_blend, Fighter_GObj *arg3)
Definition fighter.c:933
void ftCo_ItemParasolOpen_Phys(Fighter_GObj *gobj)
Definition ftCo_ItemParasolOpen.c:99
void ftCo_800DE508(Fighter_GObj *gobj)
Assigned to Fighter::accessory1_cb.
Definition ftCo_Thrown.c:48
#define GET_FIGHTER(gobj)
Definition inlines.h:40
static FtMotionId ftCo_ItemParasolGetFallMotionId(Fighter_GObj *gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
Definition inlines.h:55
static void ftCo_Thrown_Enter(Fighter_GObj *gobj, FtMotionId msid, MotionFlags mf, float anim_start)
Definition inlines.h:28
static void ftCommon_AirToGroundStateChange(Fighter_GObj *gobj, Fighter *fp, FtMotionId msid, MotionFlags flags)
Definition inlines.h:81
static void ftCommon_GroundToAirStateChange(Fighter_GObj *gobj, Fighter *fp, FtMotionId msid, MotionFlags flags)
Definition inlines.h:71
static void ftCo_Barrel_ApplyKnockback(Fighter *fp, float kb_angle, HitCapsule *hit)
Definition inlines.h:40
static void ftCo_SpawnEf(Fighter_GObj *gobj, HSD_JObj *joint, u32 arg2, enum_t arg3)
Definition inlines.h:20
static void ftCo_ItemParasol_Phys(Fighter_GObj *gobj)
Definition inlines.h:66
float ftColl_80079EA8(Fighter *fp, HitCapsule *hit, u32 unk_count)
Definition ftcoll.c:2490
void ftCommon_8007D5D4(Fighter *fp)
Air_StoreBool_LoseGroundJump_NoECBfor10Frames.
Definition ftcommon.c:533
void ftCommon_8007D7FC(Fighter *fp)
Definition ftcommon.c:599
void ftCommon_8007E2F4(Fighter *fp, s16 val)
Definition ftcommon.c:924
static MotionFlags const mf
Definition ftlinkspecialn.c:38
HSD_GObj * gobj
Definition gm_19EF.c:73
enum_t FtMotionId
Definition forward.h:15
@ Ft_Kind_Peach
Definition forward.h:99
u32 MotionFlags
Definition forward.h:50
ftPeach_MotionState
Definition forward.h:61
#define FORCE_PAD_STACK_8
Definition placeholder.h:70
int enum_t
The underlying type of an enum, used as a placeholder.
Definition platform.h:28
#define NULL
Definition stddef.h:14
int x184c_damaged_hurtbox
Definition types.h:1345
float kb_applied
Definition types.h:1346
Vec3 x1854_collpos
Definition types.h:1347
float facing_dir_1
Definition types.h:1343
u32 x1860_element
Definition types.h:1348
int x1848_kb_angle
Definition types.h:1344
Definition types.h:1127
float cur_anim_frame
Definition types.h:1295
void * x60C
Definition types.h:1235
struct Fighter::dmg dmg
float facing_dir
Definition types.h:1139
union Fighter::Fighter_FighterVars u
Vec3 cur_pos
Definition types.h:1149
union Fighter::Fighter_MotionVars mv
HSD_GObjEvent accessory1_cb
Definition types.h:1547
FighterKind kind
Definition types.h:1129
Fighter_GObj * victim_gobj
Definition types.h:1458
Definition gobj.h:28
Definition jobj.h:104
Definition types.h:31
u32 unk_count
Definition types.h:34
u32 element
Definition types.h:42
Item_GObj * parasol_gobj_0
Definition types.h:16
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:108
struct ftPeach_FighterVars pe
Definition types.h:1764
union ftCommon_MotionVars co
Definition types.h:1784
int x0
Definition types.h:34
struct ftCommon_MotionVars::@341026012010177366034164064217013137317263110355 capturekoopa