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"
15#include "ftCommon/types.h"
16
17#include <baselib/forward.h>
18
19#include <baselib/gobj.h>
20
21static inline void ftCo_SpawnEf(Fighter_GObj* gobj, HSD_JObj* joint, u32 arg2,
22 enum_t arg3)
23{
24 Fighter* fp = gobj->user_data;
26 efAsync_Spawn((HSD_GObj*) gobj, &fp->x60C, arg2, arg3, joint);
27}
28
29static inline void ftCo_Thrown_Enter(Fighter_GObj* gobj, FtMotionId msid,
30 MotionFlags mf, float anim_start)
31{
32 Fighter* fp = GET_FIGHTER(gobj);
33 fp->facing_dir = GET_FIGHTER(fp->victim_gobj)->facing_dir;
34 fp->mv.co.capturekoopa.x0 = false;
35 Fighter_ChangeMotionState(gobj, msid, mf, anim_start, 1, 0,
36 fp->victim_gobj);
38 ftCommon_8007E2F4(fp, 0x1FF);
39}
40
41static inline void ftCo_Barrel_ApplyKnockback(Fighter* fp, float kb_angle,
42 HitCapsule* hit)
43{
44 if (kb_angle < 0) {
45 kb_angle += 360;
46 }
47 kb_angle = fp->facing_dir < 0.0f ? kb_angle : 180.0f - kb_angle;
48 fp->dmg.kb_applied = ftColl_80079EA8(fp, hit, hit->unk_count);
49 fp->dmg.x1848_kb_angle = kb_angle;
50 fp->dmg.facing_dir_1 = fp->facing_dir;
52 fp->dmg.x1854_collpos = fp->cur_pos;
53 fp->dmg.x1860_element = hit->element;
54}
55
57 Fighter_GObj* gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
58{
59 Fighter* fp = GET_FIGHTER(gobj);
60 if (fp->kind == FTKIND_PEACH && fp->fv.pe.parasol_gobj_0 != NULL) {
61 return pe_msid;
62 } else {
63 return co_msid;
64 }
65}
66
67static inline void ftCo_ItemParasol_Phys(Fighter_GObj* gobj)
68{
70}
71
72#endif
void efAsync_Spawn(HSD_GObj *gobj, void *arg1, u32 eff_type, u32 gfx_id, HSD_JObj *jobj,...)
Definition efasync.c:1474
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:940
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:218
static FtMotionId ftCo_ItemParasolGetFallMotionId(Fighter_GObj *gobj, ftPeach_MotionState pe_msid, FtMotionId co_msid)
Definition inlines.h:56
static void ftCo_Thrown_Enter(Fighter_GObj *gobj, FtMotionId msid, MotionFlags mf, float anim_start)
Definition inlines.h:29
static void ftCo_Barrel_ApplyKnockback(Fighter *fp, float kb_angle, HitCapsule *hit)
Definition inlines.h:41
static void ftCo_SpawnEf(Fighter_GObj *gobj, HSD_JObj *joint, u32 arg2, enum_t arg3)
Definition inlines.h:21
static void ftCo_ItemParasol_Phys(Fighter_GObj *gobj)
Definition inlines.h:67
#define GET_FIGHTER(gobj)
Definition inlines.h:44
float ftColl_80079EA8(Fighter *arg0, HitCapsule *arg1, int arg2)
Definition ftcoll.c:1081
void ftCommon_8007E2F4(Fighter *fp, s16 val)
Definition ftcommon.c:1013
ftPeach_MotionState
Definition forward.h:61
enum_t FtMotionId
Definition forward.h:14
@ FTKIND_PEACH
Definition forward.h:83
u32 MotionFlags
Definition forward.h:36
#define FORCE_PAD_STACK_8
Definition placeholder.h:93
int enum_t
The underlying type of an enum, used as a placeholder.
Definition platform.h:9
#define NULL
Definition stddef.h:19
float kb_applied
Definition types.h:1329
u32 x1860_element
Definition types.h:1331
int x184c_damaged_hurtbox
Definition types.h:1328
float facing_dir_1
Definition types.h:1326
Vec3 x1854_collpos
Definition types.h:1330
int x1848_kb_angle
Definition types.h:1327
Definition types.h:1106
void * x60C
Definition types.h:1211
Vec3 cur_pos
Definition types.h:1128
union Fighter::Fighter_MotionVars mv
float facing_dir
Definition types.h:1118
Fighter_GObj * victim_gobj
Definition types.h:1443
FighterKind kind
Definition types.h:1108
struct Fighter::dmg dmg
union Fighter::Fighter_FighterVars fv
A different struct for each fighter to store non-transient variables.
HSD_GObjEvent accessory1_cb
Definition types.h:1548
was using this to try and fix some matches, unsuccessfully
Definition gobj.h:26
Definition jobj.h:107
Definition types.h:30
u32 unk_count
Definition types.h:33
u32 element
Definition types.h:41
Item_GObj * parasol_gobj_0
Definition types.h:20
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:109
struct ftPeach_FighterVars pe
Definition types.h:1766
union ftCommon_MotionVars co
Definition types.h:1786
struct ftCommon_MotionVars::@53 capturekoopa
int x0
Definition types.h:35