SSBM Decomp
Loading...
Searching...
No Matches
inlines.h
Go to the documentation of this file.
1#ifndef MELEE_IT_INLINES_H
2#define MELEE_IT_INLINES_H
3
4#include <melee/ef/eflib.h>
5#include <melee/it/it_2725.h>
6#include <melee/it/it_3F14.h>
7#include <melee/it/item.h>
8#include <melee/it/itmaplib.h>
9#include <melee/it/types.h>
10#include <melee/mp/mplib.h>
12
13#define GET_ITEM(gobj) ((Item*) HSD_GObjGetUserData(gobj))
14
16static inline Item* GetItemData(HSD_GObj* gobj)
17{
18 Item* item_data = gobj->user_data;
19
20 return item_data;
21}
22
23static inline void itResetVelocity(Item* ip)
24{
25 ip->x40_vel.x = ip->x40_vel.y = ip->x40_vel.z = 0.0F;
26}
27
28static inline void Item_ClearCmdVars(Item* ip)
29{
30 ip->xDB8_itcmd_var3 = 0;
31 ip->xDB4_itcmd_var2 = 0;
32 ip->xDB0_itcmd_var1 = 0;
33 ip->xDAC_itcmd_var0 = 0;
34}
35
41
42static inline void Item_EnterStateWithEffectHitlag(Item_GObj* gobj, s32 msid)
43{
44 Item* ip = GET_ITEM(gobj);
45 it_802762BC(ip);
49}
50
51static inline void Item_ApplyFallingPhysics(Item_GObj* gobj)
52{
53 ItemAttr* attrs = GET_ITEM(gobj)->xCC_item_attr;
54 it_80272860(gobj, attrs->x10_fall_speed, attrs->x14_fall_speed_max);
55 it_80274658(gobj, it_804D6D28->x68_float);
56}
57
58static inline bool Item_TickLifetime(Item* ip)
59{
60 if (ip->xD44_lifeTimer <= 0.0f) {
61 return true;
62 }
63 ip->xD44_lifeTimer -= 1.0f;
64 return false;
65}
66
70static inline bool itGrappleCheckCollision(ItemLink* head, Fighter* fp,
71 Vec3* pos)
72{
73 Vec3* head_pos = &head->pos;
74
75 if (mpCheckAllRemap(NULL, NULL, NULL, NULL, -1, -1, pos->x, pos->y,
76 head->pos.x, head->pos.y))
77 {
78 return true;
79 } else if (mpCheckAllRemap(NULL, NULL, NULL, NULL, -1, -1, fp->cur_pos.x,
80 fp->cur_pos.y, head_pos->x, head_pos->y))
81 {
82 return true;
83 } else {
84 return false;
85 }
86}
87
90{
91 HSD_JObj* jobj = GET_JOBJ(gobj);
92 HSD_JObj* child;
93
94 if (!jobj) {
95 child = NULL;
96 } else {
97 child = jobj->child;
98 }
99 if (!child) {
100 child = NULL;
101 } else {
102 child = child->child;
103 }
104 return child;
105}
106
107#endif
void efLib_ResumeAll(HSD_GObj *gobj)
Definition eflib.c:281
void efLib_PauseAll(HSD_GObj *gobj)
Definition eflib.c:254
#define GET_JOBJ(gobj)
Definition gobj.h:134
static bool itGrappleCheckCollision(ItemLink *head, Fighter *fp, Vec3 *pos)
Check whether the grapple chain from head to the tip pos or to its owner fp collides with terrain (sh...
Definition inlines.h:70
static void itResetVelocity(Item *ip)
Definition inlines.h:23
static Item * GetItemData(HSD_GObj *gobj)
Definition inlines.h:16
static void Item_SetEffectHitlagCallbacks(Item *ip)
Definition inlines.h:36
static HSD_JObj * itGetJObjGrandchild(Item_GObj *gobj)
Definition inlines.h:89
static void Item_EnterStateWithEffectHitlag(Item_GObj *gobj, s32 msid)
Definition inlines.h:42
static bool Item_TickLifetime(Item *ip)
Definition inlines.h:58
static void Item_ClearCmdVars(Item *ip)
Definition inlines.h:28
#define GET_ITEM(gobj)
Definition inlines.h:13
static void Item_ApplyFallingPhysics(Item_GObj *gobj)
Definition inlines.h:51
void it_80272860(Item_GObj *item_gobj, f32 arg1, f32 arg2)
Definition it_2725.c:142
int it_80274658(Item_GObj *item_gobj, f32 arg1)
Definition it_2725.c:1009
ItemCommonData * it_804D6D28
Definition it_3F14.c:852
void Item_80268E5C(HSD_GObj *gobj, enum_t msid, Item_StateChangeFlags flags)
Change item state.
Definition item.c:1137
void it_802762BC(Item *item)
Definition itmaplib.c:302
struct Vec Vec3
signed int s32
Definition types.h:12
HSD_GObj Item_GObj
Definition forward.h:62
@ ITEM_ANIM_UPDATE
Updates item model with target Item State's AnimJoint, MatAnimJoint and extra HSD archive node if ava...
Definition forward.h:74
bool mpCheckAllRemap(Vec3 *pos_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only, float x0, float y0, float x1, float y1)
Definition mplib.c:3608
Map library.
#define NULL
Definition stddef.h:19
Definition types.h:1303
Vec3 cur_pos
Definition types.h:1326
Definition gobj.h:16
void * user_data
Definition gobj.h:32
Definition jobj.h:106
HSD_JObj * child
Definition jobj.h:110
Definition types.h:88
f32 x10_fall_speed
Definition types.h:105
f32 x14_fall_speed_max
Definition types.h:106
Definition types.h:231
f32 xD44_lifeTimer
Definition types.h:449
HSD_GObjEvent exited_hitlag
Definition types.h:430
u32 xDAC_itcmd_var0
Definition types.h:487
u32 xDB4_itcmd_var2
Definition types.h:489
Vec3 x40_vel
Definition types.h:267
u32 xDB0_itcmd_var1
Definition types.h:488
HSD_GObjEvent entered_hitlag
Runs after applying hitlag in damage.
Definition types.h:427
u32 xDB8_itcmd_var3
Definition types.h:490
f32 z
Definition mtx.h:15
f32 x
Definition mtx.h:15
f32 y
Definition mtx.h:15