SSBM Decomp
Loading...
Searching...
No Matches
itbombhei.static.h
Go to the documentation of this file.
1#ifndef ITBOMBHEI_STATIC_H
2#define ITBOMBHEI_STATIC_H
3
4#include "ft/ft_0C31.h"
5
6#include "it/forward.h"
7
8#include "it/inlines.h"
9#include "it/it_2725.h"
10#include "it/item.h"
11#include "it/items/itbombhei.h"
12
13static inline void fake_HSD_JObjSetTranslateY(HSD_JObj* jobj, f32 y)
14{
15 HSD_ASSERT(947, jobj);
16 jobj->translate.y = y;
17 if (!(jobj->flags & JOBJ_MTX_INDEP_SRT)) {
18 ftCo_800C6AFC(jobj);
19 }
20}
21
22static inline void fake_HSD_JObjSetRotationX(HSD_JObj* jobj, f32 x)
23{
24 HSD_ASSERT(639, jobj);
25 HSD_ASSERT(640, !(jobj->flags & JOBJ_USE_QUATERNION));
26 jobj->rotate.x = x;
27 if (!(jobj->flags & JOBJ_MTX_INDEP_SRT)) {
28 ftCo_800C6AFC(jobj);
29 }
30}
31
32static inline HSD_JObj* itGetDynamicBone(Item_GObj* igp, u32 bone_id)
33{
34 return GET_ITEM(igp)->xBBC_dynamicBoneTable->bones[bone_id];
35}
36
38 int anim_id)
39{
40 Item* ip = GET_ITEM(igp);
41 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
42 f32 x;
43 f32 y;
44
46 x = HSD_JObjGetRotationX(jobj);
47 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_ANIM_UPDATE);
48 HSD_JObjSetTranslateY(jobj, y);
49 HSD_JObjSetRotationX(jobj, x);
50}
51
53 int anim_id)
54{
55 Item* ip = GET_ITEM(igp);
56 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
57 f32 x;
58 f32 y;
59
61 x = HSD_JObjGetRotationX(jobj);
62 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_UNK_0x1);
63 HSD_JObjSetTranslateY(jobj, y);
64 HSD_JObjSetRotationX(jobj, x);
65}
66
68 int anim_id)
69{
70 Item* ip = GET_ITEM(igp);
71 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
72 f32 x;
73 f32 y;
74
76 x = HSD_JObjGetRotationX(jobj);
77 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_ANIM_UPDATE);
80}
81
83 int anim_id)
84{
85 Item* ip = GET_ITEM(igp);
86 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
87 f32 x;
88 f32 y;
89
91 x = HSD_JObjGetRotationX(jobj);
92 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_UNK_0x1);
95}
96
97static inline void inline1_UnkMotion0_Anim(Item_GObj* igp)
98{
99 Item* ip;
100
101 ip = GET_ITEM(igp);
102
103 if (ip->xDD4_itemVar.bombhei.xDD4 <= 0) {
104 it_8027E978(igp);
105 } else {
107 ip->xDD4_itemVar.bombhei.xDEC -= 1.0f;
108 }
109}
110
111static inline void inline2_UnkMotion0_Anim(Item_GObj* igp)
112{
113 Item* ip;
114 HSD_JObj* jobj;
115
116 ip = GET_ITEM(igp);
117 jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
120}
121
122static inline void inline_UnkMotion8_Anim(Item_GObj* igp)
123{
124 if (it_80272C6C(igp) == 0) {
125 Item* ip = GET_ITEM(igp);
127
128 ip->xDC8_word.flags.x19 = 1;
129 ip->xDC8_word.flags.x17 = 1;
130
131 if (ip->xDD4_itemVar.bombhei.xDE0 == 0) {
132 ip->x5D0_animFrameSpeed = ap->x0;
134 } else {
135 ip->x5D0_animFrameSpeed = 1.0f;
137 }
138 }
139}
140
141#endif
#define HSD_ASSERT(line, cond)
Definition debug.h:19
void ftCo_800C6AFC(HSD_JObj *jobj)
Definition ft_0C31.c:278
#define GET_ITEM(gobj)
Definition inlines.h:8
bool it_80272C6C(HSD_GObj *)
Definition it_2725.c:5090
void it_8027E978(Item_GObj *)
static void inline1_UnkMotion0_Anim(Item_GObj *igp)
Definition itbombhei.static.h:97
static void itBombhei_UpdateStatePreserveBone(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:37
static void itBombhei_UpdateStatePreserveBone2(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:52
static void fake_HSD_JObjSetTranslateY(HSD_JObj *jobj, f32 y)
Definition itbombhei.static.h:13
static void itBombhei_UpdateStatePreserveBone3(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:67
static void inline2_UnkMotion0_Anim(Item_GObj *igp)
Definition itbombhei.static.h:111
static void itBombhei_UpdateStatePreserveBone4(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:82
static void inline_UnkMotion8_Anim(Item_GObj *igp)
Definition itbombhei.static.h:122
static HSD_JObj * itGetDynamicBone(Item_GObj *igp, u32 bone_id)
Definition itbombhei.static.h:32
static void fake_HSD_JObjSetRotationX(HSD_JObj *jobj, f32 x)
Definition itbombhei.static.h:22
void Item_80268E5C(HSD_GObj *gobj, enum_t msid, Item_StateChangeFlags flags)
Item State Change.
Definition item.c:1167
static void HSD_JObjSetTranslateY(HSD_JObj *jobj, f32 y)
Definition jobj.h:407
#define JOBJ_MTX_INDEP_SRT
Definition jobj.h:90
static void HSD_JObjAddRotationX(HSD_JObj *jobj, float x)
Definition jobj.h:458
static void HSD_JObjAddTranslationY(HSD_JObj *jobj, float y)
Definition jobj.h:533
static void HSD_JObjSetRotationX(HSD_JObj *jobj, f32 x)
Definition jobj.h:272
#define JOBJ_USE_QUATERNION
Definition jobj.h:79
static f32 HSD_JObjGetRotationX(HSD_JObj *jobj)
Definition jobj.h:308
static f32 HSD_JObjGetTranslationY(HSD_JObj *jobj)
Definition jobj.h:446
@ ITEM_UNK_0x1
Definition forward.h:61
@ ITEM_ANIM_UPDATE
Updates item model with target Item State's AnimJoint, MatAnimJoint and extra HSD archive node if ava...
Definition forward.h:62
void * x4_specialAttributes
Definition types.h:183
HSD_JObj * bones[100]
Definition types.h:76
was using this to try and fix some matches, unsuccessfully
Definition gobj.h:26
Definition jobj.h:107
u32 flags
Definition jobj.h:112
Vec3 translate
Definition jobj.h:120
Quaternion rotate
Definition jobj.h:118
Definition types.h:201
union Item::Item_ItemVars xDD4_itemVar
Article * xC4_article_data
Definition types.h:272
f32 x5D0_animFrameSpeed
Definition types.h:302
DynamicBoneTable * xBBC_dynamicBoneTable
Definition types.h:338
flag32 xDC8_word
Definition types.h:519
struct flag32::@269 flags
u32 x19
Definition types.h:64
u32 x17
Definition types.h:63
Definition itCommonItems.h:91
float x0
Definition itCommonItems.h:92
float xDEC
Definition itCommonItems.h:80
float xDF8
Definition itCommonItems.h:83
float xDFC
Definition itCommonItems.h:84
s32 xDE0
Definition itCommonItems.h:77
s32 xDD4
Definition itCommonItems.h:74
itBombHei_ItemVars bombhei
Definition types.h:535