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 "placeholder.h"
5
6#include <platform.h>
7
8#include "ef/efasync.h"
9#include "ft/fighter.h"
10#include "ft/ftcoll.h"
11#include "ft/ftcommon.h"
12#include "ft/types.h"
13
14#include "ftCommon/forward.h"
15
18#include "ftCommon/types.h"
19
20#include <baselib/forward.h>
21
22#include <baselib/gobj.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_Thrown_Enter(Fighter_GObj* gobj, FtMotionId msid,
33 MotionFlags mf, float anim_start)
34{
35 Fighter* fp = GET_FIGHTER(gobj);
36 fp->facing_dir = GET_FIGHTER(fp->victim_gobj)->facing_dir;
37 fp->mv.co.capturekoopa.x0 = false;
38 Fighter_ChangeMotionState(gobj, msid, mf, anim_start, 1, 0,
39 fp->victim_gobj);
41 ftCommon_8007E2F4(fp, 0x1FF);
42}
43
44static inline void ftCo_Barrel_ApplyKnockback(Fighter* fp, float kb_angle,
45 HitCapsule* hit)
46{
47 if (kb_angle < 0) {
48 kb_angle += 360;
49 }
50 kb_angle = fp->facing_dir < 0.0f ? kb_angle : 180.0f - kb_angle;
51 fp->dmg.kb_applied = ftColl_80079EA8(fp, hit, hit->unk_count);
52 fp->dmg.x1848_kb_angle = kb_angle;
53 fp->dmg.facing_dir_1 = fp->facing_dir;
55 fp->dmg.x1854_collpos = fp->cur_pos;
56 fp->dmg.x1860_element = hit->element;
57}
58
60 Fighter_GObj* gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
61{
62 Fighter* fp = GET_FIGHTER(gobj);
63 if (fp->kind == FTKIND_PEACH && fp->u.pe.parasol_gobj_0 != NULL) {
64 return pe_msid;
65 } else {
66 return co_msid;
67 }
68}
69
70static inline void ftCo_ItemParasol_Phys(Fighter_GObj* gobj)
71{
73}
74
75static inline void ftCommon_GroundToAirStateChange(Fighter_GObj* gobj,
76 Fighter* fp,
77 FtMotionId msid,
78 MotionFlags flags)
79{
81 Fighter_ChangeMotionState(gobj, msid, flags, fp->cur_anim_frame, 1.0f,
82 0.0f, NULL);
83}
84
85static inline void ftCommon_AirToGroundStateChange(Fighter_GObj* gobj,
86 Fighter* fp,
87 FtMotionId msid,
88 MotionFlags flags)
89{
91 Fighter_ChangeMotionState(gobj, msid, flags, fp->cur_anim_frame, 1.0f,
92 0.0f, NULL);
93}
94
95#endif
void efAsync_Spawn(HSD_GObj *gobj, void *queue_head, u32 spawn_kind, u32 gfx_id, HSD_JObj *jobj,...)
Definition efasync.c:1344
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:935
void ftCo_ItemParasolOpen_Phys(Fighter_GObj *gobj)
Definition ftCo_ItemParasolOpen.c:105
void ftCo_800DE508(Fighter_GObj *gobj)
Assigned to Fighter::accessory1_cb.
Definition ftCo_Thrown.c:85
static MotionFlags const mf
Definition ftLk_SpecialN.c:41
static FtMotionId ftCo_ItemParasolGetFallMotionId(Fighter_GObj *gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
Definition inlines.h:59
static void ftCo_Thrown_Enter(Fighter_GObj *gobj, FtMotionId msid, MotionFlags mf, float anim_start)
Definition inlines.h:32
static void ftCommon_AirToGroundStateChange(Fighter_GObj *gobj, Fighter *fp, FtMotionId msid, MotionFlags flags)
Definition inlines.h:85
static void ftCommon_GroundToAirStateChange(Fighter_GObj *gobj, Fighter *fp, FtMotionId msid, MotionFlags flags)
Definition inlines.h:75
static void ftCo_Barrel_ApplyKnockback(Fighter *fp, float kb_angle, HitCapsule *hit)
Definition inlines.h:44
static void ftCo_SpawnEf(Fighter_GObj *gobj, HSD_JObj *joint, u32 arg2, enum_t arg3)
Definition inlines.h:24
static void ftCo_ItemParasol_Phys(Fighter_GObj *gobj)
Definition inlines.h:70
#define GET_FIGHTER(gobj)
Definition inlines.h:45
float ftColl_80079EA8(Fighter *fp, HitCapsule *hit, u32 unk_count)
Definition ftcoll.c:2265
void ftCommon_8007D5D4(Fighter *fp)
Air_StoreBool_LoseGroundJump_NoECBfor10Frames.
Definition ftcommon.c:524
void ftCommon_8007D7FC(Fighter *fp)
Definition ftcommon.c:590
void ftCommon_8007E2F4(Fighter *fp, s16 val)
Definition ftcommon.c:919
ftPeach_MotionState
Definition forward.h:61
enum_t FtMotionId
Definition forward.h:14
@ FTKIND_PEACH
Definition forward.h:96
u32 MotionFlags
Definition forward.h:48
#define FORCE_PAD_STACK_8
Definition placeholder.h:92
int enum_t
The underlying type of an enum, used as a placeholder.
Definition platform.h:27
#define NULL
Definition stddef.h:19
float kb_applied
Definition types.h:1360
u32 x1860_element
Definition types.h:1362
int x184c_damaged_hurtbox
Definition types.h:1359
float facing_dir_1
Definition types.h:1357
Vec3 x1854_collpos
Definition types.h:1361
int x1848_kb_angle
Definition types.h:1358
Definition types.h:1134
void * x60C
Definition types.h:1242
Vec3 cur_pos
Definition types.h:1156
union Fighter::Fighter_FighterVars u
union Fighter::Fighter_MotionVars mv
float facing_dir
Definition types.h:1146
Fighter_GObj * victim_gobj
Definition types.h:1472
float cur_anim_frame
Definition types.h:1309
FighterKind kind
Definition types.h:1136
struct Fighter::dmg dmg
HSD_GObjEvent accessory1_cb
Definition types.h:1561
Definition gobj.h:24
Definition jobj.h:107
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:18
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:109
struct ftPeach_FighterVars pe
Definition types.h:1778
union ftCommon_MotionVars co
Definition types.h:1798
int x0
Definition types.h:33
struct ftCommon_MotionVars::@205125146363071330024260177233012365232246320201 capturekoopa