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/ft_0D27.h>
14#include <melee/ft/ftcoll.h>
15#include <melee/ft/ftcommon.h>
21#include <melee/ft/types.h>
23
24static inline void ftCo_SpawnEf(Fighter_GObj* gobj, HSD_JObj* joint, u32 arg2,
25 enum_t arg3)
26{
27 Fighter* fp = gobj->user_data;
29 efAsync_Spawn((HSD_GObj*) gobj, &fp->x60C, arg2, arg3, joint);
30}
31
32static inline void ftCo_ReleaseItemAndVictim(Fighter_GObj* gobj)
33{
35 ftCo_8009750C(gobj);
36 ftCo_800DD168(gobj);
37}
38
39static inline void ftCo_Thrown_Enter(Fighter_GObj* gobj, FtMotionId msid,
40 MotionFlags mf, float anim_start)
41{
42 Fighter* fp = GET_FIGHTER(gobj);
43 fp->facing_dir = GET_FIGHTER(fp->victim_gobj)->facing_dir;
44 fp->mv.co.capturekoopa.x0 = false;
45 Fighter_ChangeMotionState(gobj, msid, mf, anim_start, 1, 0,
46 fp->victim_gobj);
48 ftCommon_8007E2F4(fp, 0x1FF);
49}
50
51static inline void ftCo_Barrel_ApplyKnockback(Fighter* fp, float kb_angle,
52 HitCapsule* hit)
53{
54 if (kb_angle < 0) {
55 kb_angle += 360;
56 }
57 kb_angle = fp->facing_dir < 0.0f ? kb_angle : 180.0f - kb_angle;
58 fp->dmg.kb_applied = ftColl_80079EA8(fp, hit, hit->unk_count);
59 fp->dmg.x1848_kb_angle = kb_angle;
60 fp->dmg.facing_dir_1 = fp->facing_dir;
62 fp->dmg.x1854_collpos = fp->cur_pos;
63 fp->dmg.x1860_element = hit->element;
64}
65
67 Fighter_GObj* gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
68{
69 Fighter* fp = GET_FIGHTER(gobj);
70 if (fp->kind == Ft_Kind_Peach && fp->u.pe.parasol_gobj_0 != NULL) {
71 return pe_msid;
72 } else {
73 return co_msid;
74 }
75}
76
77static inline void ftCo_ItemParasol_Phys(Fighter_GObj* gobj)
78{
80}
81
82static inline void ftCommon_GroundToAirStateChange(Fighter_GObj* gobj,
83 Fighter* fp,
84 FtMotionId msid,
85 MotionFlags flags)
86{
88 Fighter_ChangeMotionState(gobj, msid, flags, fp->cur_anim_frame, 1.0f,
89 0.0f, NULL);
90}
91
92static inline void ftCommon_AirToGroundStateChange(Fighter_GObj* gobj,
93 Fighter* fp,
94 FtMotionId msid,
95 MotionFlags flags)
96{
98 Fighter_ChangeMotionState(gobj, msid, flags, fp->cur_anim_frame, 1.0f,
99 0.0f, NULL);
100}
101
102static inline void ftCo_CpuSetNeutralStick(Fighter* fp)
103{
106}
107
108static inline void ftCo_Cliff_EnterState(Fighter_GObj* gobj, Fighter* fp,
109 FtMotionId msid)
110{
111 Fighter_ChangeMotionState(gobj, msid, Ft_MF_None, 0, 1, 0, NULL);
112 ftAnim_8006EBA4(gobj);
113 ftCommon_8007E2F4(fp, 32);
114 fp->x221D_b7 = true;
115}
116
117static inline void ftCo_Kinoko_Anim(Fighter_GObj* gobj, HSD_GObjEvent cb)
118{
119 if (!fn_800D2A3C(gobj)) {
120 cb(gobj);
121 }
122}
123
124#endif
void efAsync_Spawn(HSD_GObj *gobj, EF_QueuedEffect **queue_head, u32 spawn_kind, u32 gfx_id, HSD_JObj *jobj,...)
Definition efasync.c:1348
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:935
static void cb(long result, struct DVDCommandBlock *block)
Definition fstload.c:19
void ftCo_ItemParasolOpen_Phys(Fighter_GObj *gobj)
Definition ftCo_ItemParasolOpen.c:99
void ftCo_8009750C(HSD_GObj *gobj)
Definition ftCo_Lift.c:200
void ftCo_800DD168(Fighter_GObj *gobj)
Definition ftCo_Throw.c:57
void ftCo_800DE508(Fighter_GObj *gobj)
Assigned to Fighter::accessory1_cb.
Definition ftCo_Thrown.c:48
#define GET_FIGHTER(gobj)
Definition inlines.h:39
static FtMotionId ftCo_ItemParasolGetFallMotionId(Fighter_GObj *gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
Definition inlines.h:66
static void ftCo_Thrown_Enter(Fighter_GObj *gobj, FtMotionId msid, MotionFlags mf, float anim_start)
Definition inlines.h:39
static void ftCo_Cliff_EnterState(Fighter_GObj *gobj, Fighter *fp, FtMotionId msid)
Definition inlines.h:108
static void ftCo_ReleaseItemAndVictim(Fighter_GObj *gobj)
Definition inlines.h:32
static void ftCommon_AirToGroundStateChange(Fighter_GObj *gobj, Fighter *fp, FtMotionId msid, MotionFlags flags)
Definition inlines.h:92
static void ftCommon_GroundToAirStateChange(Fighter_GObj *gobj, Fighter *fp, FtMotionId msid, MotionFlags flags)
Definition inlines.h:82
static void ftCo_Barrel_ApplyKnockback(Fighter *fp, float kb_angle, HitCapsule *hit)
Definition inlines.h:51
static void ftCo_SpawnEf(Fighter_GObj *gobj, HSD_JObj *joint, u32 arg2, enum_t arg3)
Definition inlines.h:24
static void ftCo_Kinoko_Anim(Fighter_GObj *gobj, HSD_GObjEvent cb)
Definition inlines.h:117
static void ftCo_CpuSetNeutralStick(Fighter *fp)
Definition inlines.h:102
static void ftCo_ItemParasol_Phys(Fighter_GObj *gobj)
Definition inlines.h:77
bool fn_800D2A3C(HSD_GObj *gobj)
Definition ft_0D27.c:136
void ftAnim_8006EBA4(Fighter_GObj *gobj)
Process animation?
Definition ftanim.c:380
void ftCo_800B46B8(Fighter *fp, u8 cmd, u8 arg)
Definition ftcmdscript.c:337
@ CpuCmd_SetLstickX
Definition ftcmdscript.h:42
@ CpuCmd_SetLstickY
Definition ftcmdscript.h:43
float ftColl_80079EA8(Fighter *fp, HitCapsule *hit, u32 unk_count)
Definition ftcoll.c:2129
void ftCommon_8007DB58(HSD_GObj *gobj)
Definition ftcommon.c:675
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:926
static MotionFlags const mf
Definition ftlinkspecialn.c:39
unsigned int u32
Definition types.h:13
static MotionFlags const Ft_MF_None
Definition forward.h:177
enum_t FtMotionId
Definition forward.h:20
@ Ft_Kind_Peach
Definition forward.h:108
u32 MotionFlags
Definition forward.h:55
ftPeach_MotionState
Definition forward.h:61
#define FORCE_PAD_STACK_8
Definition placeholder.h:47
int enum_t
The underlying type of an enum, used as a placeholder.
Definition platform.h:29
#define NULL
Definition stddef.h:19
int x184c_damaged_hurtbox
Definition types.h:1662
float kb_applied
Definition types.h:1663
Vec3 x1854_collpos
Definition types.h:1664
float facing_dir_1
Definition types.h:1660
u32 x1860_element
Definition types.h:1665
int x1848_kb_angle
Definition types.h:1661
Definition types.h:1481
float cur_anim_frame
Definition types.h:1632
EF_QueuedEffect * x60C
Definition types.h:1578
struct Fighter::dmg dmg
float facing_dir
Definition types.h:1494
union Fighter::Fighter_FighterVars u
Vec3 cur_pos
Definition types.h:1504
union Fighter::Fighter_MotionVars mv
HSD_GObjEvent accessory1_cb
Definition types.h:1861
FighterKind kind
Definition types.h:1483
u16 x221D_b7
Definition types.h:1949
Fighter_GObj * victim_gobj
Definition types.h:1775
Definition gobj.h:16
Definition jobj.h:106
Definition types.h:34
u32 unk_count
Definition types.h:37
u32 element
Definition types.h:45
Item_GObj * parasol_gobj_0
Definition types.h:16
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:113
struct ftPeach_FighterVars pe
Definition types.h:2078
union ftCommon_MotionVars co
Definition types.h:2097
struct ftCommon_MotionVars::ftCommon_MotionVars_capturekoopa capturekoopa