SSBM Decomp
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1#ifndef MELEE_GR_TYPES_H
2#define MELEE_GR_TYPES_H
3
4#include <platform.h>
5#include <placeholder.h>
6
7#include "gr/forward.h" // IWYU pragma: export
8#include "it/forward.h"
9#include "lb/forward.h"
10#include "sc/forward.h"
11#include <dolphin/gx/forward.h>
12#include <dolphin/mtx/forward.h>
13#include <baselib/forward.h>
14
15#include <dolphin/gx/types.h>
16#include <dolphin/mtx/types.h>
17
18typedef struct StageBlastZone {
19 f32 left; // 0x74
20 f32 right; // 0x78
21 f32 top; // 0x7C
22 f32 bottom; // 0x80
24
54
55struct StageInfo {
56 StageCameraInfo cam_info; // 0x00 - 0x70
57 StageBlastZone blast_zone; // 0x74 - 0x80
58
59 u32 flags; // 0x84
60
62
63 struct {
64 u8 b0 : 1;
65 u8 b1 : 1;
66 u8 b2 : 1;
67 u8 b3 : 1;
68 u8 b4 : 1;
69 u8 b5 : 1;
70 u8 b6 : 1;
71 u8 b7 : 1;
73 bool (*x90)(Vec3*, int);
74 bool (*x94)(Vec3*, int);
77 u8 xA0[4];
78 u8 xA4_pad[0x12C - 0xA4];
81 DynamicsDesc* (*x178)(int);
82 bool (*x17C)(Vec3*, int, HSD_JObj*);
84 u8 x190_pad[0x280 - 0x190];
86 void* x694[4];
87 void* x6A4;
88 /* +6A8 */ struct {
92 /* +6AC */ void* coll_data;
93 /* +6B0 */ UnkStage6B0* param;
94 /* +6B4 */ UNK_T** ald_yaku_all;
95 /* +6B8 */ void* map_ptcl;
96 /* +6BC */ void* map_texg;
97 /* +6C0 */ void* yakumono_param;
98 /* +6C4 */ void* map_plit;
99 /* +6C8 */ void* x6C8;
109 int x6E4[2];
110 u8 x6EC_pad[0x708 - 0x6EC];
124 u8 x744_pad[0x748 - 0x744];
125};
126
127typedef struct StageCallbacks {
128 /* +0 */ void (*callback0)(HSD_GObj*);
129 /* +4 */ bool (*callback1)(HSD_GObj*);
130 /* +8 */ void (*callback2)(HSD_GObj*);
131 /* +C */ void (*callback3)(HSD_GObj*);
132 /* +10 */ union {
133 /* +10 */ u32 flags;
134 struct {
135 /* +10:0 */ u8 flags_b0 : 1;
136 /* +10:1 */ u8 flags_b1 : 1;
137 /* +10:2 */ u8 flags_b2 : 1;
138 /* +10:3 */ u8 flags_b3 : 1;
139 /* +10:4 */ u8 flags_b4 : 1;
140 /* +10:5 */ u8 flags_b5 : 1;
141 /* +10:6 */ u8 flags_b6 : 1;
142 /* +10:7 */ u8 flags_b7 : 1;
143 };
144 };
146
147typedef struct StageData {
150 char* data1;
151 void (*callback0)(void);
152 void (*callback1)(int);
153 void (*callback2)(void);
154 void (*callback3)(void);
155 bool (*callback4)(void);
156 DynamicsDesc* (*callback5)(enum_t);
160 size_t x30; // size of x2C array
161} StageData;
162
167
169 int xC4;
170 int xC8;
171 int xCC;
172 int xD0;
173 int xD4;
174 int xD8;
175 float xDC;
176};
177
187
197
199 short xC4;
200 short xC6;
201 short xC8;
202 short xCA;
204 float xD0;
205 float xD4;
206 float xD8;
207 float xDC;
208};
209
222
232
240
242 /* gp+C4 */ f32 xC4;
243 /* gp+C8 */ f32 xC8;
244 /* gp+CC */ f32 xCC;
245 /* gp+D0 */ union {
246 struct {
247 void* keep;
249 } u;
250 /* gp+D4 */ f32 xD4;
251 /* gp+D8 */ f32 xD8;
252 /* gp+DC */ HSD_JObj* xDC;
253 /* gp+E0 */ HSD_JObj* xE0;
254 /* gp+E4 */ s16 xE4;
255 /* gp+E6 */ s16 xE6;
256 /* gp+E8 */ f32 xE8;
257};
258
272
276 /* gp+C4 */ s16 xC4;
277 /* gp+C6 */ s16 xC6;
278 /* gp+C8 */ s16 xC8;
279 /* gp+CA */ s16 xCA;
288};
289
323
325 /* +0 gp+C4 */ char pad_0[0x14];
326 /* +0 gp+D8 */ s16 xD8;
327};
328
330 /* +0 gp+C4:0 */ u8 x0_b0 : 1;
331};
332
334 /* +0 gp+C4:0 */ u8 x0_b0 : 1;
335 /* +4 gp+C8 */ UNK_T x4;
336 /* +8 gp+CC */ UNK_T x8;
337 /* +C gp+D0 */ Vec3 xC;
338};
339
341 /* +0 gp+C4:0 */ u8 x0_b0 : 1;
342};
343
345 /* +0 gp+C4:0 */ u8 x0_b0 : 1;
346};
347
349 /* +0 gp+C4:0 */ u8 x0_b0 : 1;
350};
351
410STATIC_ASSERT(sizeof(struct Ground) == 0x204);
411
412// Appears to be related to stage audio
424
425// TODO: what is this struct?
459
462 u32 unk4; // flags
463};
464
466 /* +0 */ struct HSD_Joint* unk0;
467 /* +4 */ u8 _4[0x10 - 0x4];
469 /* +14 */ UNK_T x14;
470 /* +18 */ UNK_T x18;
471 /* +1C */ HSD_FogDesc* x1C;
472 /* +20 */ S16Vec3* unk20;
473 /* +24 */ s32 unk24; // size of unk20 array
474 /* +28 */ UNK_T x28;
475 /* +2C */ s16* x2C;
476 /* +30 */ int x30;
477};
478
497STATIC_ASSERT(sizeof(struct UnkStageDat_x8_t) == 0x34);
498
504
505#endif
InternalStageId
Definition forward.h:42
#define UNK_T
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
#define STATIC_ASSERT(cond)
Definition platform.h:169
float f32
A 32-bit floating-point number.
Definition platform.h:62
signed short s16
A signed 16-bit integer.
Definition platform.h:11
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
int bool
A signed integer used to contain boolean values.
Definition stdbool.h:8
Definition types.h:184
Model with multiple animations.
Definition types.h:16
Definition types.dox:1
Definition types.h:233
s32 xD0
Definition types.h:237
grDynamicAttr_UnkStruct * xCC
Definition types.h:236
s32 xD4
Definition types.h:238
f32 xC8
Definition types.h:235
s32 xC4
Definition types.h:234
Definition types.h:210
u8 xC7
Definition types.h:214
s16 xC8
Definition types.h:215
s32 xD4
Definition types.h:220
u8 xC6
Definition types.h:213
s16 xCE
Definition types.h:218
s32 xD0
Definition types.h:219
u8 xC5
Definition types.h:212
u8 xC4
Definition types.h:211
s16 xCC
Definition types.h:217
s16 xCA
Definition types.h:216
Definition types.h:188
int xD0
Definition types.h:192
HSD_JObj * xC4
Definition types.h:189
HSD_JObj * xC8
Definition types.h:190
int xD4
Definition types.h:193
int xCC
Definition types.h:191
float xDC
Definition types.h:195
int xD8
Definition types.h:194
Definition types.h:198
short xC6
Definition types.h:200
short xC4
Definition types.h:199
float xD4
Definition types.h:205
short xC8
Definition types.h:201
float xD8
Definition types.h:206
float xD0
Definition types.h:204
HSD_JObj * xCC
Definition types.h:203
short xCA
Definition types.h:202
float xDC
Definition types.h:207
Definition types.h:178
int xD8
Definition types.h:184
HSD_GObj * xC8
Definition types.h:180
HSD_GObj * xCC
Definition types.h:181
HSD_JObj * xD0
Definition types.h:182
float xDC
Definition types.h:185
HSD_TObj * xC4
Definition types.h:179
HSD_JObj * xD4
Definition types.h:183
Definition types.h:168
int xC8
Definition types.h:170
float xDC
Definition types.h:175
int xC4
Definition types.h:169
int xD4
Definition types.h:173
int xD0
Definition types.h:172
int xD8
Definition types.h:174
int xCC
Definition types.h:171
Definition types.h:352
int x20[8]
Definition types.h:379
char pad_40[0xC4 - 0x74]
Definition types.h:389
u8 b0
Definition types.h:358
int x64
Definition types.h:385
int x60
Definition types.h:384
HSD_GObjEvent xC_callback
Definition types.h:356
int x0
Definition types.h:353
HSD_GObjEvent x8_callback
Definition types.h:355
u8 b1
Definition types.h:359
u8 b6
Definition types.h:364
Vec3 self_vel
Definition types.h:380
union Ground::GroundVars gv
HSD_GObj * gobj
Definition types.h:354
u8 b7
Definition types.h:365
struct Ground::@197 x10_flags
u8 b012
Definition types.h:368
struct Ground::@198 x11_flags
Vec3 cur_pos
Definition types.h:381
HSD_GObj * x18
Definition types.h:377
int x6C
Definition types.h:387
int x58
Definition types.h:382
HSD_GObjEvent x1C_callback
Definition types.h:378
InternalStageId map_id
Definition types.h:376
int x5C
Definition types.h:383
u8 b5
Definition types.h:363
u8 b4
Definition types.h:362
u8 b3
Definition types.h:361
int x70
Definition types.h:388
u8 b2
Definition types.h:360
int x68
Definition types.h:386
Definition archive.h:34
Definition cobj.h:110
Definition fog.h:46
Definition gobj.h:25
Definition jobj.h:108
Definition jobj.h:131
Definition spline.h:10
Definition tobj.h:133
Definition types.h:29
Definition types.h:18
f32 right
Definition types.h:20
f32 top
Definition types.h:21
f32 left
Definition types.h:19
f32 bottom
Definition types.h:22
Definition types.h:127
u8 flags_b5
Definition types.h:140
u8 flags_b1
Definition types.h:136
u8 flags_b3
Definition types.h:138
bool(* callback1)(HSD_GObj *)
Definition types.h:129
u8 flags_b2
Definition types.h:137
u8 flags_b6
Definition types.h:141
void(* callback0)(HSD_GObj *)
Definition types.h:128
void(* callback3)(HSD_GObj *)
Definition types.h:131
u8 flags_b0
Definition types.h:135
void(* callback2)(HSD_GObj *)
Definition types.h:130
u8 flags_b4
Definition types.h:139
u32 flags
Definition types.h:133
u8 flags_b7
Definition types.h:142
Definition types.h:28
f32 pausecam_zpos_max
Definition types.h:44
f32 pausecam_zpos_min
Definition types.h:42
f32 cam_vertical_tilt
Definition types.h:32
f32 x3C
Definition types.h:41
Vec3 fixed_cam_pos
Definition types.h:49
f32 cam_zoom_rate
Definition types.h:39
f32 fixed_cam_fov
Definition types.h:50
StageBlastZone cam_bounds
Definition types.h:29
f32 x24
Definition types.h:35
f32 cam_pan_degrees
Definition types.h:33
f32 cam_angle_right
Definition types.h:48
f32 pausecam_zpos_init
Definition types.h:43
f32 cam_angle_up
Definition types.h:45
f32 cam_track_smooth
Definition types.h:38
f32 cam_x_offset
Definition types.h:30
f32 cam_max_depth
Definition types.h:40
f32 x20
Definition types.h:34
f32 cam_track_ratio
Definition types.h:36
f32 cam_y_offset
Definition types.h:31
f32 cam_angle_down
Definition types.h:46
f32 fixed_cam_horz_angle
Definition types.h:52
f32 cam_fixed_zoom
Definition types.h:37
f32 cam_angle_left
Definition types.h:47
f32 fixed_cam_vert_angle
Definition types.h:51
Definition types.h:147
bool(* callback4)(void)
Definition types.h:155
u32 flags2
Definition types.h:158
u32 flags1
Definition types.h:148
size_t x30
Definition types.h:160
bool(* callback6)(Vec3 *, int, HSD_JObj *)
Definition types.h:157
void(* callback2)(void)
Definition types.h:153
void(* callback0)(void)
Definition types.h:151
void(* callback1)(int)
Definition types.h:152
S16Vec3 * x2C
Definition types.h:159
char * data1
Definition types.h:150
StageCallbacks * callbacks
Definition types.h:149
void(* callback3)(void)
Definition types.h:154
Definition types.h:55
u8 b5
Definition types.h:69
void * x694[4]
Definition types.h:86
u8 b6
Definition types.h:70
u8 b3
Definition types.h:67
u8 b1
Definition types.h:65
int x6E4[2]
Definition types.h:109
Vec3 x730
Definition types.h:121
Article * unk4
Definition types.h:90
void * map_ptcl
Definition types.h:95
s16 x6DE
Definition types.h:107
void * x6A4
Definition types.h:87
u32 x9C
Definition types.h:76
u8 x190_pad[0x280 - 0x190]
Definition types.h:84
f32 x728
Definition types.h:119
HSD_JObj * x280[261]
Definition types.h:85
s32 x714
Definition types.h:114
Vec3 x13C
Definition types.h:80
u8 b2
Definition types.h:66
f32 x70C
Definition types.h:112
s16 x6D4
Definition types.h:103
void * yakumono_param
Definition types.h:97
void * map_plit
Definition types.h:98
Vec3 x130
Definition types.h:80
void * x6C8
Definition types.h:99
InternalStageId internal_stage_id
Definition types.h:61
UnkStage6B0 * param
Definition types.h:93
u8 b0
Definition types.h:64
HSD_GObj * x12C
Definition types.h:79
bool(* x94)(Vec3 *, int)
Definition types.h:74
Vec3 x16C
Definition types.h:80
f32 x710
Definition types.h:113
u32 flags
Definition types.h:59
u8 x744_pad[0x748 - 0x744]
Definition types.h:124
s16 x6D0
Definition types.h:101
bool(* x90)(Vec3 *, int)
Definition types.h:73
f32 x71C
Definition types.h:116
s16 x6D6
Definition types.h:104
f32 x6E0
Definition types.h:108
s16 x6D2
Definition types.h:102
u8 b4
Definition types.h:68
u8 x6EC_pad[0x708 - 0x6EC]
Definition types.h:110
s32 x98
Definition types.h:75
f32 x718
Definition types.h:115
u8 b7
Definition types.h:71
bool(* x17C)(Vec3 *, int, HSD_JObj *)
Definition types.h:82
DynamicModelDesc * quake_model_set
Definition types.h:100
u8 xA0[4]
Definition types.h:77
void * coll_data
Definition types.h:92
s32 unk0
Definition types.h:89
s16 x708
Definition types.h:111
StageBlastZone blast_zone
Definition types.h:57
UNK_T ** ald_yaku_all
Definition types.h:94
u8 xA4_pad[0x12C - 0xA4]
Definition types.h:78
HSD_GObj * x72C
Definition types.h:120
HSD_GObj * x180[4]
Definition types.h:83
s32 x720
Definition types.h:117
struct StageInfo::@190 ** itemdata
f32 x73C
Definition types.h:122
StageCameraInfo cam_info
Definition types.h:56
Vec3 x148
Definition types.h:80
void * map_texg
Definition types.h:96
s32 x740
Definition types.h:123
struct StageInfo::@189 unk8C
Vec3 x160
Definition types.h:80
Vec3 x154
Definition types.h:80
s32 x6D8
Definition types.h:105
f32 x724
Definition types.h:118
s16 x6DC
Definition types.h:106
Definition types.h:163
s32 stage_id
Definition types.h:164
s32 list_idx
Definition types.h:165
Definition types.h:499
UnkStageDat * unk4
Definition types.h:501
HSD_Archive * unk0
Definition types.h:500
s32 unk8
Definition types.h:502
Definition types.h:413
s16 x14
Definition types.h:419
u32 xC
Definition types.h:417
s16 x16
Definition types.h:420
u32 x10
Definition types.h:418
s16 x18
Definition types.h:421
u8 pad[0x64 - 0x1A]
Definition types.h:422
s32 x8
Definition types.h:416
s32 x4
Definition types.h:415
s32 x0
Definition types.h:414
Definition types.h:426
s16 x4
Definition types.h:428
f32 x24
Definition types.h:436
s32 x38
Definition types.h:441
s32 xD4
Definition types.h:456
s32 x34
Definition types.h:440
UnkBgmStruct * xB0
Definition types.h:447
s32 x14
Definition types.h:434
s32 xCC
Definition types.h:454
f32 x54
Definition types.h:444
s32 xB4
Definition types.h:448
s32 x10
Definition types.h:433
f32 x5C
Definition types.h:444
s32 xC8
Definition types.h:453
f32 x18
Definition types.h:435
f32 x50
Definition types.h:444
s32 x30
Definition types.h:439
f32 x64
Definition types.h:444
s32 xD0
Definition types.h:455
u8 x2C_pad[0x2E - 0x2C]
Definition types.h:437
s32 xC0
Definition types.h:451
f32 x44
Definition types.h:442
f32 x20
Definition types.h:436
f32 x48
Definition types.h:442
f32 x40
Definition types.h:442
s32 xC4
Definition types.h:452
u8 x6C_pad[0xB0 - 0x6A]
Definition types.h:446
f32 x3C
Definition types.h:442
s32 xC
Definition types.h:432
s32 xD8
Definition types.h:457
s16 x2E
Definition types.h:438
f32 x60
Definition types.h:444
s32 xBC
Definition types.h:450
s16 x68
Definition types.h:445
s16 x8
Definition types.h:430
s32 xB8
Definition types.h:449
s16 xA
Definition types.h:431
f32 x28
Definition types.h:436
bool x4C_fixed_cam
Definition types.h:443
f32 x0
Definition types.h:427
f32 x58
Definition types.h:444
u8 x6_pad[2]
Definition types.h:429
f32 x1C
Definition types.h:436
Definition types.h:460
u32 unk4
Definition types.h:462
u8 x0_fill[0x4]
Definition types.h:461
Definition types.h:465
u8 _4[0x10 - 0x4]
Definition types.h:467
HSD_FogDesc * x1C
Definition types.h:471
s16 * x2C
Definition types.h:475
UNK_T x18
Definition types.h:470
struct HSD_Joint * unk0
Definition types.h:466
HSD_CameraDescPerspective * x10
Definition types.h:468
UNK_T x28
Definition types.h:474
UNK_T x14
Definition types.h:469
int x30
Definition types.h:476
S16Vec3 * unk20
Definition types.h:472
s32 unk24
Definition types.h:473
Definition types.h:479
void * unk0
Definition types.h:480
s32 unk4
Definition types.h:481
s32 unk2C
Definition types.h:495
struct UnkStageDat_x8_t * unk8
Definition types.h:483
s32 unk24
Definition types.h:492
HSD_Spline ** unk10
Definition types.h:486
s32 unk14
Definition types.h:487
void * unk20
Definition types.h:491
u8 x18_fill[0x20 - 0x18]
Definition types.h:489
UnkStageDatInternal ** unk28
Definition types.h:494
s32 unkC
Definition types.h:484
Definition types.h:13
Definition types.h:344
u8 x0_b0
Definition types.h:345
Definition types.h:290
u8 x11A
Definition types.h:315
u32 x120
Definition types.h:318
f32 x114
Definition types.h:312
u32 x10C
Definition types.h:310
HSD_JObj * x12C
Definition types.h:321
f32 xE8
Definition types.h:301
f32 xE0
Definition types.h:299
u32 x11C
Definition types.h:317
f32 xEC
Definition types.h:302
f32 xD8
Definition types.h:297
u32 x104
Definition types.h:308
u32 xFC
Definition types.h:306
u32 x100
Definition types.h:307
u32 xC4_b1
Definition types.h:292
u32 x110
Definition types.h:311
u8 x118
Definition types.h:313
u32 xC4_b0
Definition types.h:291
u8 x119
Definition types.h:314
f32 xF4
Definition types.h:304
u8 x11B
Definition types.h:316
f32 xF0
Definition types.h:303
u32 x124
Definition types.h:319
u32 xC8
Definition types.h:293
HSD_GObj * x128
Definition types.h:320
u32 xCC
Definition types.h:294
f32 xD4
Definition types.h:296
f32 xD0
Definition types.h:295
u32 x108
Definition types.h:309
f32 xDC
Definition types.h:298
f32 xE4
Definition types.h:300
f32 xF8
Definition types.h:305
Definition types.h:223
grDynamicAttr_UnkStruct * next
Definition types.h:224
f32 unk18
Definition types.h:228
s32 unk14
Definition types.h:227
u8 x0_fill[0x24 - 0x20]
Definition types.h:230
Vec3 unk8
Definition types.h:226
s32 unk1C
Definition types.h:229
s32 unk4
Definition types.h:225
Definition types.h:324
char pad_0[0x14]
Definition types.h:325
s16 xD8
Definition types.h:326
Definition types.h:259
f32 xE0
Definition types.h:268
HSD_Spline * xC4
Definition types.h:260
f32 xD8
Definition types.h:266
s16 xCE
Definition types.h:263
f32 xDC
Definition types.h:267
f32 xE8
Definition types.h:270
f32 xD0
Definition types.h:264
f32 xC8
Definition types.h:261
f32 xD4
Definition types.h:265
s16 xCC
Definition types.h:262
f32 xE4
Definition types.h:269
Definition types.h:275
f32 xE8
Definition types.h:287
f32 xD8
Definition types.h:283
f32 xE0
Definition types.h:285
HSD_JObj * xCC
Definition types.h:280
s16 xC4
Definition types.h:276
f32 xE4
Definition types.h:286
HSD_JObj * xD0
Definition types.h:281
f32 xD4
Definition types.h:282
s16 xCA
Definition types.h:279
f32 xDC
Definition types.h:284
s16 xC6
Definition types.h:277
s16 xC8
Definition types.h:278
Definition types.h:241
f32 xC8
Definition types.h:243
f32 xE8
Definition types.h:256
s16 xE4
Definition types.h:254
union grKongo_GroundVars::@195 u
f32 xC4
Definition types.h:242
HSD_JObj * xE0
Definition types.h:253
HSD_JObj * xDC
Definition types.h:252
struct grKongo_GroundVars::@195::@196 taru
f32 xD4
Definition types.h:250
void * keep
Definition types.h:247
f32 xD8
Definition types.h:251
s16 xE6
Definition types.h:255
f32 xCC
Definition types.h:244
Definition types.h:348
u8 x0_b0
Definition types.h:349
Definition types.h:340
u8 x0_b0
Definition types.h:341
Definition types.h:329
u8 x0_b0
Definition types.h:330
Definition types.h:333
UNK_T x8
Definition types.h:336
u8 x0_b0
Definition types.h:334
Vec3 xC
Definition types.h:337
UNK_T x4
Definition types.h:335
Definition lbcollision.c:66
void(* HSD_GObjEvent)(HSD_GObj *gobj)
Definition forward.h:104
Definition types.h:390
struct grKongo_GroundVars3 kongo3
Definition types.h:402
struct GroundVars_izumi izumi
Definition types.h:397
struct GroundVars_flatzone2 flatzone2
Definition types.h:395
struct grKongo_GroundVars2 kongo2
Definition types.h:401
struct GroundVars_flatzone flatzone
Definition types.h:394
struct grOnett_GroundVars onett
Definition types.h:404
struct grCorneria_GroundVars corneria
Definition types.h:393
struct GroundVars_izumi2 izumi2
Definition types.h:398
struct GroundVars_izumi3 izumi3
Definition types.h:399
struct grLast_GroundVars last
Definition types.h:403
struct grZebes_GroundVars zebes
Definition types.h:407
char pad_0[0x204 - 0xC4]
Definition types.h:391
struct grIceMt_GroundVars icemt
Definition types.h:396
struct grBigBlue_GroundVars bigblue
Definition types.h:392
struct grKongo_GroundVars kongo
Definition types.h:400
struct grStadium_GroundVars stadium
Definition types.h:405