SSBM Decomp
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1#ifndef MELEE_LB_TYPES_H
2#define MELEE_LB_TYPES_H
3
4#include <platform.h>
5#include <placeholder.h>
6
7#include "lb/forward.h" // IWYU pragma: export
8#include <baselib/forward.h>
9
10#include <dolphin/mtx/types.h>
11
13 /* +0 */ HSD_JObj* jobj;
14 /* +4 */ u8 _4[0x90 - 0x4];
15 /* +90 */ struct DynamicsData* next;
16};
17
18struct DynamicsDesc {
19 /* +0 */ struct DynamicsData* data;
20 /* +4 */ int count;
21 /* +8 */ Vec3 pos;
22};
23
28
39
44
45struct HitCapsule {
47 /* +4 */ uint x4;
48 /* +8 */ u32 unk_count;
49 /* +C */ float damage;
50 /* +10 */ Vec3 b_offset;
51 /* +1C */ float scale;
52 /* +20 */ int kb_angle;
53 /* +24 */ u32 x24;
54 /* +28 */ u32 x28;
55 /* +2C */ u32 x2C;
56 /* +30 */ uint element;
57 /* +34 */ int x34;
58 /* +38 */ int sfx_severity;
59 /* +3C */ enum_t sfx_kind;
60 /* +40 */ u8 x40_b0 : 1;
61 /* +40 */ u8 x40_b1 : 1;
62 /* +40 */ u8 x40_b2 : 1;
63 /* +40 */ u8 x40_b3 : 1;
64 /* +40 */ u8 x40_b4 : 1;
65 /* +40 */ u8 x40_b5 : 1;
66 /* +40 */ u8 x40_b6 : 1;
67 /* +40 */ u8 x40_b7 : 1;
68 /* +41:0 */ u8 x41_b0 : 1;
69 /* +41:1 */ u8 x41_b1 : 1;
70 /* +41:2 */ u8 x41_b2 : 1;
71 /* +41:3 */ u8 x41_b3 : 1;
72 /* +41:4 */ u8 x41_b4 : 1;
73 /* +41:5 */ u8 x41_b5 : 1;
74 /* +41:6 */ u8 x41_b6 : 1;
75 /* +41:7 */ u8 x41_b7 : 1;
76 /* +42:0 */ u8 x42_b0 : 1;
77 /* +42:1 */ u8 x42_b1 : 1;
78 /* +42:2 */ u8 x42_b2 : 1;
79 /* +42:3 */ u8 x42_b3 : 1;
80 /* +42:4 */ u8 x42_b4 : 1;
81 /* +42:5 */ u8 x42_b5 : 1;
82 /* +42:6 */ u8 x42_b6 : 1;
83 /* +42:7 */ u8 x42_b7 : 1;
84 /* +43 */ union {
85 /* +43 */ u8 x43;
86 struct {
87 /* +43:0 */ u8 x43_b0 : 1;
88 /* +43:1 */ u8 x43_b1 : 1;
89 /* +43:2 */ u8 x43_b2 : 1;
90 /* +43:3 */ u8 x43_b3 : 1;
91 /* +43:4 */ u8 x43_b4 : 1;
92 /* +43:5 */ u8 x43_b5 : 1;
93 /* +43:6 */ u8 x43_b6 : 1;
94 /* +43:7 */ u8 x43_b7 : 1;
95 };
96 };
97 /* +44 */ u8 x44;
98 /* +45 */ u8 x45;
99 /* +46 */ u8 x46[0x48 - 0x46];
100 /* +48 */ HSD_JObj* jobj;
101 /* +4C */ Vec3 x4C;
102 /* +58 */ Vec3 x58;
104 /* +70 */ float coll_distance;
105 /* +74 */ HitVictim victims_1[12];
106 /* +D4 */ HitVictim victims_2[12];
107 /* +134 */ union {
110 };
111};
112
113STATIC_ASSERT(sizeof(HitCapsule) == 0x138);
114
119 float scale;
120 HSD_JObj* bone; // 0x20
122 u8 x24_b1 : 1; // 0x24 0x40
123 u8 x24_b2 : 1; // 0x24 0x20
124 u8 x24_b3 : 1; // 0x24 0x10
125 u8 x24_b4 : 1; // 0x24 0x08
126 u8 x24_b5 : 1; // 0x24 0x04
127 u8 x24_b6 : 1; // 0x24 0x02
128 u8 x24_b7 : 1; // 0x24 0x01
131 int bone_idx; // 0x40
132 enum_t kind; // 0x44. 0 = low, 1 = mid, 2 = high
133 bool is_grabbable; // 0x48
134};
135
136STATIC_ASSERT(sizeof(HurtCapsule) == 0x4C);
137
150
152 /* +0 */ int x0_bone_id;
153 /* +4 */ Vec3 x4_offset;
154 /* +10 */ float x10_size;
155};
156
158 int bone;
160 float radius;
161 float dmg_mul;
162 float vel_mul;
164};
165
167 s32 unk0; // x00
168 s32 unk1; // x04
169 s32 unk2; // x08
170 s32 unk3; // x08
171 s32 unk4; // x10
172 s32 unk5; // x14
173 void* callback0; // x1C
174 void* callback1; // x20
175};
176
177typedef struct _ECBFlagStruct {
178 union {
179 struct {
180 u8 b0 : 1;
182 u8 b5 : 1;
183 u8 b6 : 1;
184 u8 b7 : 1;
185 };
187 };
189
195
196typedef struct _ftECB {
201} ftECB;
202
203struct CollData {
204 /* fp+6F0 */ HSD_GObj* x0_gobj;
205 /* fp+6F4 */ Vec3 cur_topn;
206 /* fp+700 */ Vec3 cur_topn_correct;
207 /* fp+70C */ Vec3 prev_topn;
208 /* fp+718 */ Vec3 x28_vec;
211 /* fp+726 */ s16 x36;
212 /* fp+728 */ s32 x38;
213 /* fp+72C */ s32 x3C;
214 /* fp+730 */ int ledge_id_unk0;
215 /* fp+734 */ int ledge_id_unk1;
216 /* fp+738 */ u32 x48;
217 /* fp+73C */ u32 x4C;
218 /* fp+740 */ float x50;
219 /* fp+744 */ float x54;
220 /* fp+748 */ float x58;
221 /* fp+74C */ float x5C;
222 /* fp+750 */ s32 x60;
223 /* fp+754 */ ftECB x64_ecb;
224 /* fp+774 */ ftECB x84_ecb;
226 /* fp+7B4 */ ftECB xC4_ecb;
227 /* fp+7D4 */ ftECB xE4_ecb;
229 /* fp+7F4 */ s32 x104;
230 /* fp+7F8 */ union {
231 /* fp+7F8 */ struct {
232 /* fp+7F8 */ HSD_JObj* x108_joint;
233 /* fp+7FC */ HSD_JObj* x10C_joint[6];
234 };
235 /* fp+7F8 */ struct {
236 /* fp+7F8 */ float x108_f32;
237 /* fp+7FC */ float x10C_f32;
238 /* fp+800 */ float x110_f32;
239 /* fp+804 */ float x114_f32;
240 /* fp+808 */ float x118_f32;
241 /* fp+80C */ float x11C_f32;
242 /* fp+810 */ float x120_f32;
243 };
244 };
245 /* fp+814 */ float x124;
246 /* fp+818 */ float x128;
247 /* fp+81C */ float x12C;
248 /* fp+820 */ u32 x130_flags;
249 /* fp+824 */ s32 env_flags;
250 /* fp+828 */ s32 prev_env_flags;
251 /* fp+82C */ s32 x13C;
252 /* fp+830 */ Vec3 x140;
253 /* fp+83C */ SurfaceData floor;
255 /* fp+864 */ SurfaceData left_wall;
256 /* fp+878 */ SurfaceData ceiling;
257};
258
262 size_t size;
263};
264
269
286
297
307
309 /* +0 */ char pad_0[0x11];
310 /* +11 */ s8 x11;
311 /* +12 */ s8 x12;
312 /* +13 */ char pad_13[0x18 - 0x13];
313 /* +18 */ int x18;
314};
315
316#endif
HurtCapsuleState
Definition forward.h:22
HitCapsuleState
Definition forward.h:59
#define UNK_T
signed char s8
A signed 8-bit integer.
Definition platform.h:8
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
#define STATIC_ASSERT(cond)
Definition platform.h:161
signed short s16
A signed 16-bit integer.
Definition platform.h:11
unsigned int uint
An unsigned integer of platform-dependent size.
Definition platform.h:35
unsigned short u16
An unsigned 16-bit integer.
Definition platform.h:23
int enum_t
The underlying type of an enum, used as a placeholder.
Definition platform.h:74
signed long s32
A signed 32-bit integer.
Definition platform.h:14
unsigned char u8
An unsigned 8-bit integer.
Definition platform.h:20
Definition types.h:151
int x0_bone_id
Definition types.h:152
float x10_size
Definition types.h:154
Vec3 x4_offset
Definition types.h:153
Definition types.h:24
DynamicsDesc dyn_desc
Definition types.h:26
enum_t bone_id
Definition types.h:25
Definition types.h:203
u32 x48
Definition types.h:216
s32 x38
Definition types.h:212
float x10C_f32
Definition types.h:237
float x124
Definition types.h:245
ftECB x64_ecb
Definition types.h:223
Vec3 cur_topn
Definition types.h:205
Vec3 prev_topn
Definition types.h:207
SurfaceData right_wall
Definition types.h:254
HSD_JObj * x10C_joint[6]
Definition types.h:233
float x5C
Definition types.h:221
Vec3 cur_topn_correct
Definition types.h:206
float x128
Definition types.h:246
HSD_JObj * x108_joint
Definition types.h:232
float x11C_f32
Definition types.h:241
ftECB xA4_ecbCurrCorrect
Definition types.h:225
HSD_GObj * x0_gobj
Definition types.h:204
ftECB xE4_ecb
Definition types.h:227
int ledge_id_unk0
Definition types.h:214
ftECB x84_ecb
Definition types.h:224
float x108_f32
Definition types.h:236
s32 x3C
Definition types.h:213
int ledge_id_unk1
Definition types.h:215
Vec3 x140
Definition types.h:252
float x58
Definition types.h:220
u32 x130_flags
Definition types.h:248
SurfaceData ceiling
Definition types.h:256
float x12C
Definition types.h:247
SurfaceData left_wall
Definition types.h:255
float x118_f32
Definition types.h:240
s32 x104
Definition types.h:229
s32 prev_env_flags
Definition types.h:250
Vec3 x28_vec
Definition types.h:208
s32 env_flags
Definition types.h:249
float x120_f32
Definition types.h:242
s16 x36
Definition types.h:211
u32 x4C
Definition types.h:217
float x114_f32
Definition types.h:239
float x110_f32
Definition types.h:238
float x54
Definition types.h:219
ECBFlagStruct x35_flags
Definition types.h:210
SurfaceData floor
Definition types.h:253
s32 x13C
Definition types.h:251
float x50
Definition types.h:218
ECBFlagStruct x34_flags
Definition types.h:209
ftECB xC4_ecb
Definition types.h:226
s32 x60
Definition types.h:222
Definition types.h:12
struct DynamicsData * next
Definition types.h:15
u8 _4[0x90 - 0x4]
Definition types.h:14
HSD_JObj * jobj
Definition types.h:13
Definition types.dox:1
Vec3 pos
Definition types.dox:5
int count
Definition types.dox:4
struct DynamicsData * data
Definition types.h:19
Definition types.h:177
u8 b7
Definition types.h:184
u8 b6
Definition types.h:183
u8 b5
Definition types.h:182
u8 b0
Definition types.h:180
u8 b1234
Definition types.h:181
u8 raw
Definition types.h:186
Definition types.h:259
size_t size
Definition types.h:262
struct HSD_AllocEntry * next
Definition types.h:260
u32 * addr
Definition types.h:261
Definition gobj.h:25
Definition jobj.h:108
Definition types.h:45
float coll_distance
Definition types.h:104
u8 x42_b7
Definition types.h:83
int sfx_severity
Definition types.h:58
u8 x42_b5
Definition types.h:81
u8 x44
Definition types.h:97
u8 x43_b3
Definition types.h:90
u8 x41_b6
Definition types.h:74
u8 x42_b4
Definition types.h:80
u8 x41_b0
Definition types.h:68
HitVictim victims_1[12]
Definition types.h:105
u8 x45
Definition types.h:98
u8 x40_b4
Definition types.h:64
u8 x42_b6
Definition types.h:82
u32 unk_count
Definition types.h:48
u8 x40_b6
Definition types.h:66
u8 x42_b0
Definition types.h:76
u8 x43_b0
Definition types.h:87
float damage
Definition types.h:49
u32 x24
Definition types.h:53
u32 x28
Definition types.h:54
uint element
Definition types.h:56
enum_t sfx_kind
Definition types.h:59
u8 x40_b3
Definition types.h:63
u8 x42_b2
Definition types.h:78
u8 x41_b4
Definition types.h:72
Vec3 x4C
Definition types.h:101
int kb_angle
Definition types.h:52
u8 x43_b2
Definition types.h:89
u8 x41_b3
Definition types.h:71
u8 x41_b2
Definition types.h:70
u32 x2C
Definition types.h:55
uint x4
Definition types.h:47
int x34
Definition types.h:57
u8 x43
Definition types.h:85
u8 hit_grabbed_victim_only
Definition types.h:109
u8 x40_b0
Definition types.h:60
u8 x42_b3
Definition types.h:79
u8 x43_b7
Definition types.h:94
Vec3 x58
Definition types.h:102
Vec3 hurt_coll_pos
Definition types.h:103
Vec3 b_offset
Definition types.h:50
u8 x40_b2
Definition types.h:62
u8 x40_b5
Definition types.h:65
u8 x43_b6
Definition types.h:93
u8 x43_b1
Definition types.h:88
u8 x41_b5
Definition types.h:73
HitCapsuleState state
Definition types.h:46
u8 x46[0x48 - 0x46]
Definition types.h:99
HSD_GObj * owner
Definition types.h:108
u8 x40_b7
Definition types.h:67
u8 x40_b1
Definition types.h:61
float scale
Definition types.h:51
u8 x43_b5
Definition types.h:92
u8 x42_b1
Definition types.h:77
u8 x41_b7
Definition types.h:75
u8 x43_b4
Definition types.h:91
u8 x41_b1
Definition types.h:69
HSD_JObj * jobj
Definition types.h:100
HitVictim victims_2[12]
Definition types.h:106
Definition types.h:29
Vec3 offset
Definition types.h:36
Vec3 pos
Definition types.h:35
u8 skip_update_pos
Follows attach bone position if toggled OFF.
Definition types.h:33
float size
Definition types.h:37
HSD_JObj * bone
Definition types.h:30
Definition types.h:40
UNK_T victim
Definition types.h:41
uint x4
Definition types.h:42
Definition types.h:115
Vec3 b_offset
Definition types.h:118
Vec3 b_pos
Definition types.h:130
bool is_grabbable
Definition types.h:133
u8 x24_b6
Definition types.h:127
Vec3 a_offset
Definition types.h:117
int bone_idx
Definition types.h:131
u8 x24_b4
Definition types.h:125
u8 x24_b1
Definition types.h:122
float scale
Definition types.h:119
HurtCapsuleState state
Definition types.h:116
HSD_JObj * bone
Definition types.h:120
Vec3 a_pos
Definition types.h:129
u8 x24_b5
Definition types.h:126
u8 x24_b3
Definition types.h:124
u8 skip_update_pos
Definition types.h:121
u8 x24_b7
Definition types.h:128
enum_t kind
Definition types.h:132
u8 x24_b2
Definition types.h:123
Definition types.h:265
struct PreloadCache * field1_0x4
Definition types.h:267
struct PreloadCache * field0_0x0
Definition types.h:266
Definition types.h:287
u8 field4_0xb
Definition types.h:292
u8 major_id
Definition types.h:289
u8 field3_0xa
Definition types.h:291
u32 is_heap_persistent[2]
Definition types.h:288
s32 major_scene_changes
Definition types.h:295
u8 field2_0x9
Definition types.h:290
PreloadCacheSceneEntry entries[8]
Definition types.h:294
u32 stage_id
Definition types.h:293
Definition types.h:298
PreloadCacheScene scene
Definition types.h:300
PreloadCacheScene new_scene
Definition types.h:301
UNK_T x974
Definition types.h:305
PreloadEntry entries[80]
Definition types.h:302
int preloaded
Definition types.h:304
u32 persistent_heaps
Definition types.h:299
s32 persistent_heap
Definition types.h:303
Definition types.h:270
s32 effect_index
Definition types.h:284
u8 load_state
Definition types.h:274
HSD_AllocEntry * archive
Definition types.h:283
u8 field9_0xb
Definition types.h:280
s16 load_score
Definition types.h:278
u8 unknown004
Definition types.h:275
u8 field5_0x5
Definition types.h:276
u32 size
Definition types.h:281
s8 state
Definition types.h:271
HSD_AllocEntry * raw_data
Definition types.h:282
s8 heap
Definition types.h:273
u16 entry_num
Definition types.h:277
u8 field8_0xa
Definition types.h:279
u8 type
Definition types.h:272
Definition types.h:138
u8 x20_behavior
Definition types.h:148
u32 x0_bone_id
Definition types.h:139
Vec3 x8_offset
Definition types.h:141
float x14_size
Definition types.h:142
float x1C_speed_mul
Definition types.h:144
float x18_damage_mul
Definition types.h:143
s32 x4_max_damage
Definition types.h:140
Definition types.h:157
Vec3 pos
Definition types.h:159
u8 flags
Definition types.h:163
int bone
Definition types.h:158
float dmg_mul
Definition types.h:161
float vel_mul
Definition types.h:162
float radius
Definition types.h:160
Definition types.h:190
Vec3 normal
Definition types.h:193
u32 unk
Definition types.h:192
int index
Definition types.h:191
Definition types.h:9
Definition types.h:13
Definition types.h:196
Vec2 top
Definition types.h:197
Vec2 right
Definition types.h:199
Vec2 left
Definition types.h:200
Vec2 bottom
Definition types.h:198
Definition types.h:166
s32 unk5
Definition types.h:172
void * callback1
Definition types.h:174
s32 unk4
Definition types.h:171
s32 unk1
Definition types.h:168
s32 unk3
Definition types.h:170
s32 unk2
Definition types.h:169
void * callback0
Definition types.h:173
s32 unk0
Definition types.h:167
Definition types.h:308
char pad_0[0x11]
Definition types.h:309
int x18
Definition types.h:313
s8 x11
Definition types.h:310
s8 x12
Definition types.h:311
char pad_13[0x18 - 0x13]
Definition types.h:312