SSBM Decomp
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1#ifndef MELEE_IF_TYPES_H
2#define MELEE_IF_TYPES_H
3
4#include <Runtime/platform.h>
5
6#include <melee/if/forward.h> // IWYU pragma: export
7#include <melee/sc/forward.h>
9
10#include <dolphin/gx.h>
12
22
27
30 /* +04 */ HSD_GObj* next;
31 /* +08 */ u8 player_slot;
32 /* +09 */ u8 unk9;
34 /* +0C */ s16 old_damage;
38 /* +14 */ float translation_x[HUD_PLACE_MAX];
39 /* +24 */ float translation_y[HUD_PLACE_MAX];
40 /* +34 */ float velocity_x[HUD_PLACE_MAX];
41 /* +44 */ float velocity_y[HUD_PLACE_MAX];
43};
44
56
61
63 u8 x0 : 1;
64 u8 x1 : 1;
65 u8 x2 : 1;
66 u8 x3 : 1;
67 u8 x4 : 1;
68 u8 x5 : 1;
69 u8 x6 : 1;
70 u8 x7 : 1;
71};
72
73typedef void (*IfStatusCb)(int);
74
76 /* +00 */ HSD_GObj* x0;
77 /* +04 */ u32 x4;
78 /* +08 */ void (*x8)(HSD_GObj*);
79 /* +0C */ s32 xC;
80 /* +10 */ u8 x10;
81 /* +11 */ u8 x11;
82 /* +12 */ struct Element_803F9628_x12 x12;
83 /* +13 */ u8 x13;
85 /* +18 */ IfStatusCb x18;
86 /* +1C */ IfStatusCb x1C;
87 /* +20 */ s32 x20;
88 /* +24 */ s32 x24;
89};
90
92 u8 unk80 : 1;
93 u8 unk40 : 1;
94 u8 unk20 : 1;
95 u8 unk10 : 1;
96 u8 unk8 : 1;
97 u8 unk4 : 1;
98 u8 unk2 : 1;
99 u8 unk1 : 1;
100};
101
107
108typedef struct ifMagnifyPlayer {
109 HSD_GObj* gobj; // ifMagnify_802fc750 accesses 0x804A1DF4 + slot * 0x10
110 // for a GObj
111 HSD_JObj* jobj; // ifMagnify_802fc3c0 / ifMagnify_802fb8c0 access
112 // 0x804A1DF8 for a JObj
114 idesc; // ifMagnify_802FBBDC access 0x804A1DFC for an ImageDesc
121
132
133#define DEVTEXT_FLAG_HIDETEXT (0x80)
134#define DEVTEXT_FLAG_HIDEBACKGROUND (0x40)
135#define DEVTEXT_FLAG_NOWRAP (0x20)
136#define DEVTEXT_FLAG_SHOWCURSOR (0x10)
137
141 u8 unk : 6;
142};
143
144struct DevText {
145 /* +0 */ s16 x;
146 /* +2 */ s16 y;
147 /* +4 */ u8 w;
148 /* +5 */ u8 h;
149 /* +6 */ u8 cursor_x;
150 /* +7 */ u8 cursor_y;
151 /* +8 */ f32 scale_x;
152 /* +C */ f32 scale_y;
153 /* +10 */ GXColor bg_color;
154 /* +14 */ GXColor text_colors[4];
155 /* +24 */ s8 id;
156 /* +25 */ u8 line_width;
157 /* +26 */ u8 flags;
158 /* +27 */ u8 unk : 6;
159 /* +27 */ u8 current_color : 2;
160 /* +28 */ DevTextGlyph* buf;
161 /* +2C */ struct DevText* prev;
162 /* +30 */ struct DevText* next;
163};
164ASSERT_SIZE(struct DevText, 0x34);
165
167 /* +0x00 */ u32 x00;
168 /* +0x04 */ HSD_GObj* unk4;
169 /* +0x08 */ u32 x08;
170 /* +0x0C */ u32 x0C;
171 /* +0x10 */ HSD_JObj* jobjs[16];
172 /* +0x50 */ HSD_Archive* archive;
173 /* +0x54 */ s16 x54;
174 /* +0x56 */ s16 x56;
175 /* +0x58 */ s16 x58;
176 /* +0x5A */ char pad_5A[2];
177 /* +0x5C */ s8 x5C;
178 /* +0x5D */ s8 x5D;
179 /* +0x5E */ s8 x5E;
180};
181
183 void* x0;
185};
187
193
195
214
227
243
249
258
271
273 char x0;
274 signed char x1[130];
275 signed char x83[133];
276 int x108;
278};
279
281 char x0;
282 signed char x1[130];
283 signed char x83[133];
286};
287
288#endif
state
Definition gm_1BFA.c:18
struct Vec Vec3
signed int s32
Definition types.h:12
unsigned int u32
Definition types.h:13
signed char s8
Definition types.h:4
signed short int s16
Definition types.h:6
float f32
Definition types.h:18
unsigned short int u16
Definition types.h:7
unsigned char u8
Definition types.h:5
@ HUD_PLACE_MAX
Definition forward.h:28
#define ASSERT_SIZE(expr, size)
Definition platform.h:127
bool(* soundtest_callback)(enum soundtest_callback_arg0 arg0)
Definition types.h:194
soundtest_callback_arg0
Definition types.h:188
@ soundtest_callback_1
Definition types.h:190
@ soundtest_callback_6
Definition types.h:191
@ soundtest_callback_0
Definition types.h:189
void(* IfStatusCb)(int)
Definition types.h:73
int bool
A signed integer used to contain boolean values.
Definition stdbool.h:6
Definition types.h:138
u8 unk
Definition types.h:141
u8 color
Definition types.h:140
u8 chr
Definition types.h:139
Definition types.h:144
u8 current_color
Definition types.h:159
u8 w
Definition types.h:147
u8 flags
Definition types.h:157
s16 y
Definition types.h:146
s16 x
Definition types.h:145
u8 unk
Definition types.h:158
s8 id
Definition types.h:155
GXColor bg_color
Definition types.h:153
u8 line_width
Definition types.h:156
u8 cursor_x
Definition types.h:149
GXColor text_colors[4]
Definition types.h:154
f32 scale_y
Definition types.h:152
struct DevText * prev
Definition types.h:161
f32 scale_x
Definition types.h:151
u8 cursor_y
Definition types.h:150
struct DevText * next
Definition types.h:162
u8 h
Definition types.h:148
DevTextGlyph * buf
Definition types.h:160
Model with multiple animations.
Definition types.h:19
Definition types.h:57
s32 unk1C
Definition types.h:59
s32 padding[6]
Definition types.h:58
Definition types.h:62
u8 x2
Definition types.h:65
u8 x0
Definition types.h:63
u8 x6
Definition types.h:69
u8 x1
Definition types.h:64
u8 x5
Definition types.h:68
u8 x4
Definition types.h:67
u8 x7
Definition types.h:70
u8 x3
Definition types.h:66
Definition types.h:75
s32 xC
Definition types.h:79
u8 x10
Definition types.h:80
s32 x20
Definition types.h:87
IfStatusCb x18
Definition types.h:85
DynamicModelDesc * x14
Definition types.h:84
struct Element_803F9628_x12 x12
Definition types.h:82
s32 x24
Definition types.h:88
IfStatusCb x1C
Definition types.h:86
HSD_GObj * x0
Definition types.h:76
u32 x4
Definition types.h:77
u8 x11
Definition types.h:81
void(* x8)(HSD_GObj *)
Definition types.h:78
u8 x13
Definition types.h:83
Definition GXStruct.h:27
Definition aobj.h:63
Definition archive.h:37
Definition gobjproc.h:8
Definition gobj.h:16
Definition tobj.h:210
Definition jobj.h:106
Definition jobj.h:129
Definition mobj.h:136
Definition pobj.h:115
Definition types.h:45
HSD_Joint * damage_num_joint
Definition types.h:47
HSD_ShapeAnimJoint ** damage_num_shapeanims
Definition types.h:50
HSD_ShapeAnimJoint ** damage_mark_shapeanims
Definition types.h:54
HSD_MatAnimJoint ** damage_num_matanims
Definition types.h:49
IfDamageState players[6]
Definition types.h:46
HSD_AnimJoint ** damage_mark_anims
Definition types.h:52
HSD_AnimJoint ** damage_num_anims
Definition types.h:48
HSD_Joint * damage_mark_joint
Definition types.h:51
HSD_MatAnimJoint ** damage_mark_matanims
Definition types.h:53
Definition types.h:13
u8 force_digit_shake
Definition types.h:16
u8 unk1
Definition types.h:20
u8 explode_animation
Definition types.h:14
u8 unk10
Definition types.h:17
u8 hide_all_digits
Definition types.h:18
u8 animation_status_id
Definition types.h:19
u8 randomize_velocity
Definition types.h:15
Definition types.h:28
s16 old_damage
Definition types.h:34
float translation_y[HUD_PLACE_MAX]
Definition types.h:39
IfDamageFlags flags
Definition types.h:37
u8 unk9
Definition types.h:32
s16 damage_percent
Definition types.h:33
u8 frames_of_shake_remaining
Definition types.h:36
u8 damage_from_last_attack
Definition types.h:35
float velocity_y[HUD_PLACE_MAX]
Definition types.h:41
HSD_JObj * jobjs[HUD_PLACE_MAX]
Definition types.h:42
float velocity_x[HUD_PLACE_MAX]
Definition types.h:40
HSD_GObj * next
Definition types.h:30
u8 player_slot
Definition types.h:31
HSD_GObj * HUD_parent_entity
Definition types.h:29
float translation_x[HUD_PLACE_MAX]
Definition types.h:38
Definition types.h:244
Vec3 mid
Definition types.h:246
Vec3 end
Definition types.h:247
Vec3 start
Definition types.h:245
Definition types.h:250
u8 x3[2]
Definition types.h:254
u8 anim[7]
Definition types.h:255
u8 player
Definition types.h:251
u8 mode
Definition types.h:252
u8 flag
Definition types.h:253
struct IfStockStealAnim steal[2]
Definition types.h:256
Definition types.h:91
u8 unk8
Definition types.h:96
u8 unk1
Definition types.h:99
u8 unk4
Definition types.h:97
u8 unk80
Definition types.h:92
u8 unk20
Definition types.h:94
u8 unk10
Definition types.h:95
u8 unk2
Definition types.h:98
u8 unk40
Definition types.h:93
Definition types.h:102
Placeholder_8016AE50_flags flags
Definition types.h:105
u8 unk1
Definition types.h:104
u8 unk0
Definition types.h:103
Definition types.h:23
s32 padding[0x24]
Definition types.h:24
HSD_JObj * unk28
Definition types.h:25
u8 is_offscreen
Definition types.h:116
u8 ignore_offscreen
Definition types.h:117
Definition types.h:108
HSD_ImageDesc * idesc
Definition types.h:114
HSD_GObj * gobj
Definition types.h:109
HSD_JObj * jobj
Definition types.h:111
Definition types.h:122
DynamicModelDesc ** model_desc
Definition types.h:123
GXColor x4
Definition types.h:124
u8 pad[0xF0 - 0xEC]
Definition types.h:130
GXColor x10
Definition types.h:127
ifMagnifyPlayer player[6]
Definition types.h:128
GXColor x8
Definition types.h:125
HSD_ImageDesc image_descs[5]
Definition types.h:129
GXColor xC
Definition types.h:126
Definition types.h:228
int coins
Definition types.h:240
HSD_JObj * x44
Definition types.h:239
HSD_GObj * x0
Definition types.h:229
int stocks
Definition types.h:241
HSD_JObj * x2C
Definition types.h:233
HSD_JObj * x40
Definition types.h:238
HSD_JObj * x4[8]
Definition types.h:230
HSD_JObj * x34
Definition types.h:235
HSD_JObj * x3C
Definition types.h:237
HSD_JObj * x28
Definition types.h:232
HSD_JObj * x24
Definition types.h:231
HSD_JObj * x38
Definition types.h:236
HSD_JObj * x30
Definition types.h:234
Definition types.h:259
HSD_GObj * gobj
Definition types.h:263
HSD_JObj * jobj_d
Definition types.h:269
HSD_JObj * jobj_c
Definition types.h:268
HSD_JObj * jobj_b
Definition types.h:267
HSD_JObj * jobj
Definition types.h:264
char pad1F0[0x1F4 - 0x1F0]
Definition types.h:265
DynamicModelDesc ** x0
Definition types.h:260
DynamicModelDesc * x4
Definition types.h:261
struct ifStock_804A1378_per_player player[6]
Definition types.h:262
HSD_JObj * jobj_a
Definition types.h:266
Definition types.h:272
int x108
Definition types.h:276
signed char x83[133]
Definition types.h:275
char x0
Definition types.h:273
signed char x1[130]
Definition types.h:274
HSD_GObj * x10C[131]
Definition types.h:277
Definition types.h:280
signed char x1[130]
Definition types.h:282
HSD_GObj * x108
Definition types.h:284
signed char x83[133]
Definition types.h:283
char x0
Definition types.h:281
HSD_GObj * x10C[130]
Definition types.h:285
Definition types.h:182
void * x0
Definition types.h:183
s32 x4
Definition types.h:184
Definition types.h:196
int x0
Definition types.h:197
char * x8
Definition types.h:199
float x1C
Definition types.h:211
soundtest_callback x4
Definition types.h:198
union un_80304138_objalloc_t_x8::un_80304138_objalloc_t_x8_x10 x10
float x18
Definition types.h:210
float x14
Definition types.h:209
char ** xC
Definition types.h:200
Definition types.h:215
HSD_GObj * x10
Definition types.h:221
struct un_80304138_objalloc_t * prev
Definition types.h:223
unsigned char x1
Definition types.h:217
HSD_GObjProc * x14
Definition types.h:222
unsigned char x0
Definition types.h:216
struct un_80304138_objalloc_t * next
Definition types.h:224
DevText * x4
Definition types.h:218
soundtest_callback xC
Definition types.h:220
struct un_80304138_objalloc_t_x8 * x8
Definition types.h:219
Definition types.h:166
HSD_JObj * jobjs[16]
Definition types.h:171
u32 x00
Definition types.h:167
HSD_Archive * archive
Definition types.h:172
u32 x0C
Definition types.h:170
s8 x5E
Definition types.h:179
char pad_5A[2]
Definition types.h:176
s8 x5C
Definition types.h:177
s8 x5D
Definition types.h:178
HSD_GObj * unk4
Definition types.h:168
s16 x56
Definition types.h:174
s16 x54
Definition types.h:173
s16 x58
Definition types.h:175
u32 x08
Definition types.h:169