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 "it/forward.h"
5#include "ft/ft_0C31.h"
6#include "it/inlines.h"
7#include "it/it_2725.h"
8#include "it/item.h"
10
11static inline void fake_HSD_JObjSetTranslateY(HSD_JObj* jobj, f32 y)
12{
13 HSD_ASSERT(947, jobj);
14 jobj->translate.y = y;
15 if (!(jobj->flags & JOBJ_MTX_INDEP_SRT)) {
16 ftCo_800C6AFC(jobj);
17 }
18}
19
20static inline void fake_HSD_JObjSetRotationX(HSD_JObj* jobj, f32 x)
21{
22 HSD_ASSERT(639, jobj);
23 HSD_ASSERT(640, !(jobj->flags & JOBJ_USE_QUATERNION));
24 jobj->rotate.x = x;
25 if (!(jobj->flags & JOBJ_MTX_INDEP_SRT)) {
26 ftCo_800C6AFC(jobj);
27 }
28}
29
30static inline HSD_JObj* itGetDynamicBone(Item_GObj* igp, u32 bone_id)
31{
32 return GET_ITEM(igp)->xBBC_dynamicBoneTable->bones[bone_id];
33}
34
35static inline void itBombhei_UpdateStatePreserveBone(Item_GObj* igp, int anim_id)
36{
37 Item* ip = GET_ITEM(igp);
38 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
39 f32 x;
40 f32 y;
41
43 x = HSD_JObjGetRotationX(jobj);
44 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_ANIM_UPDATE);
45 HSD_JObjSetTranslateY(jobj, y);
46 HSD_JObjSetRotationX(jobj, x);
47}
48
49static inline void itBombhei_UpdateStatePreserveBone2(Item_GObj* igp, int anim_id)
50{
51 Item* ip = GET_ITEM(igp);
52 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
53 f32 x;
54 f32 y;
55
57 x = HSD_JObjGetRotationX(jobj);
58 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_UNK_0x1);
59 HSD_JObjSetTranslateY(jobj, y);
60 HSD_JObjSetRotationX(jobj, x);
61}
62
63static inline void itBombhei_UpdateStatePreserveBone3(Item_GObj* igp, int anim_id)
64{
65 Item* ip = GET_ITEM(igp);
66 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
67 f32 x;
68 f32 y;
69
71 x = HSD_JObjGetRotationX(jobj);
72 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_ANIM_UPDATE);
75}
76
77static inline void itBombhei_UpdateStatePreserveBone4(Item_GObj* igp, int anim_id)
78{
79 Item* ip = GET_ITEM(igp);
80 HSD_JObj* jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
81 f32 x;
82 f32 y;
83
85 x = HSD_JObjGetRotationX(jobj);
86 Item_80268E5C((HSD_GObj*) igp, anim_id, ITEM_UNK_0x1);
89}
90
91static inline void inline1_UnkMotion0_Anim(Item_GObj* igp)
92{
93 Item* ip;
94
95 ip = GET_ITEM(igp);
96
97 if (ip->xDD4_itemVar.bombhei.xDD4 <= 0) {
98 it_8027E978(igp);
99 } else {
101 ip->xDD4_itemVar.bombhei.xDEC -= 1.0f;
102 }
103}
104
105static inline void inline2_UnkMotion0_Anim(Item_GObj* igp)
106{
107 Item* ip;
108 HSD_JObj* jobj;
109
110 ip = GET_ITEM(igp);
111 jobj = ip->xBBC_dynamicBoneTable->bones[0xB];
114}
115
116static inline void inline_UnkMotion8_Anim(Item_GObj* igp)
117{
118 if (it_80272C6C(igp) == 0) {
119 Item* ip = GET_ITEM(igp);
121
122 ip->xDC8_word.flags.x19 = 1;
123 ip->xDC8_word.flags.x17 = 1;
124
125 if (ip->xDD4_itemVar.bombhei.xDE0 == 0) {
126 ip->x5D0_animFrameSpeed = ap->x0;
128 } else {
129 ip->x5D0_animFrameSpeed = 1.0f;
131 }
132 }
133}
134
135#endif
#define HSD_ASSERT(line, cond)
Definition debug.h:19
void ftCo_800C6AFC(HSD_JObj *jobj)
Definition ft_0C31.c:271
#define GET_ITEM(gobj)
Definition inlines.h:8
bool it_80272C6C(HSD_GObj *)
Definition it_2725.c:5092
void it_8027E978(Item_GObj *)
static void inline1_UnkMotion0_Anim(Item_GObj *igp)
Definition itbombhei.static.h:91
static void itBombhei_UpdateStatePreserveBone(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:35
static void itBombhei_UpdateStatePreserveBone2(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:49
static void fake_HSD_JObjSetTranslateY(HSD_JObj *jobj, f32 y)
Definition itbombhei.static.h:11
static void itBombhei_UpdateStatePreserveBone3(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:63
static void inline2_UnkMotion0_Anim(Item_GObj *igp)
Definition itbombhei.static.h:105
static void itBombhei_UpdateStatePreserveBone4(Item_GObj *igp, int anim_id)
Definition itbombhei.static.h:77
static void inline_UnkMotion8_Anim(Item_GObj *igp)
Definition itbombhei.static.h:116
static HSD_JObj * itGetDynamicBone(Item_GObj *igp, u32 bone_id)
Definition itbombhei.static.h:30
static void fake_HSD_JObjSetRotationX(HSD_JObj *jobj, f32 x)
Definition itbombhei.static.h:20
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
Article * xC4_article_data
Definition types.h:272
f32 x5D0_animFrameSpeed
Definition types.h:302
union Item::@244 xDD4_itemVar
DynamicBoneTable * xBBC_dynamicBoneTable
Definition types.h:338
flag32 xDC8_word
Definition types.h:516
itBombHei_ItemVars bombhei
Definition types.h:532
u32 x19
Definition types.h:64
u32 x17
Definition types.h:63
struct flag32::@239 flags
Definition itCommonItems.h:90
float x0
Definition itCommonItems.h:91
float xDEC
Definition itCommonItems.h:79
float xDF8
Definition itCommonItems.h:82
float xDFC
Definition itCommonItems.h:83
s32 xDE0
Definition itCommonItems.h:76
s32 xDD4
Definition itCommonItems.h:73