SSBM Decomp
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1#ifndef MELEE_MN_TYPES_H
2#define MELEE_MN_TYPES_H
3
4#include <placeholder.h>
5
6#include "mn/forward.h" // IWYU pragma: export
7
8#include "platform.h"
9
10#include <baselib/sislib.h>
11
12typedef struct {
13 u8 cursor; // @todo are these arbitrary variables the menus can use in any
14 // way?
19} Menu;
20// size 0x8
21
22#ifdef M2CTX
23typedef struct Menu_GObj Menu_GObj;
24struct Menu_GObj {
25 /* +0 */ u16 classifier;
26 /* +2 */ u8 p_link;
27 /* +3 */ u8 gx_link;
28 /* +4 */ u8 p_priority;
29 /* +5 */ u8 render_priority;
30 /* +6 */ u8 obj_kind;
31 /* +7 */ u8 user_data_kind;
32 /* +8 */ Menu_GObj* next;
33 /* +C */ Menu_GObj* prev;
34 /* +10 */ Menu_GObj* next_gx;
35 /* +14 */ Menu_GObj* prev_gx;
36 /* +18 */ HSD_GObjProc* proc;
37 /* +1C */ void (*rendered)(Menu_GObj* gobj, s32 code);
38 /* +20 */ u64 gxlink_prios;
39 /* +28 */ HSD_JObj* hsd_obj;
40 /* +2C */ Menu* user_data;
41 /* +30 */ void (*user_data_remove_func)(Fighter* data);
42 /* +34 */ void* x34_unk;
43};
44#else
45typedef struct HSD_GObj Menu_GObj;
46#endif
47
50 /*0x01*/ u8 slot_type;
51 /*0x02*/ u8 stocks;
52 /*0x03*/ u8 color;
53 /*0x04*/ u8 port;
54 /*0x05*/ s8 spawnpos32;
56 /*0x07*/ u8 subcolor;
57 /*0x08*/ u8 handicap;
58 /*0x09*/ u8 team;
59 /*0x0A*/ u8 nametag;
60 /*0x0B*/ u8 unk_0xb;
61 /*0x0C*/ u8 unk_0xc;
62 /*0x0D*/ u8 unk_0xd;
63 /*0x0E*/ u8 unk_0xe;
64 /*0x0F*/ u8 cpu_level;
65 /*0x10*/ u8 unk_0x10;
66 /*0x11*/ u8 unk_0x11;
67 /*0x12*/ u16 unk_0x12;
68 /*0x14*/ u8 unk_0x14;
69 /*0x15*/ u8 unk_0x15;
70 /*0x16*/ u8 unk_0x16;
71 /*0x17*/ u8 unk_0x17;
74 /*0x20*/ u8 unk_0x20;
75 /*0x21*/ u8 unk_0x21;
76 /*0x22*/ u8 unk_0x22;
77 /*0x23*/ u8 unk_0x23;
78};
79
152
157
169
178
180 u16 mode_ffa_frame; // 0x00 - Anim frame used for top-left mode texture
181 u16 mode_teams_frame; // 0x02 - Anim frame used for top-left mode texture
182 int enter_sfx; // 0x04 - Announcer sfx when entering CSS
183};
184
185// Not same as CharacterKind bc not as many characters as icons (missing Sheik,
186// Master Hand, etc)
214
220
248
249struct CSSIcon {
250 u8 ft_hudindex; // 0x00 - used for getting combo count @ 8025C0C4
251 u8 char_kind; // 0x01 - icons external ID
252 u8 state; // 0x02 - 0x0 Not Unlocked, 0x01 Unlocked, 0x02 Unlocked and disp
253 u8 anim_timer; // 0x03 - 0xC when char is chosen
254 u8 joint_id_vs; // 0x04 - Vs Icon Bg Jobj ID
255 u8 joint_id_1p; // 0x05 - Vs Icon Bg Jobj ID
256 int sfx; // 0x08
257 float bound_l; // 0x0C
258 float bound_r; // 0x10
259 float bound_u; // 0x14
260 float bound_d; // 0x18
261};
262
264 u8 gnw_name[0x1C]; // 0x0
266 CSSIcon icons[25 + 1]; // 0xDC
267};
268
269struct CSSDoor {
272 u8 team_joint; // 0x02
273 u8 door_joint; // 0x03
274 u8 bg_joint; // 0x04
275 u8 player_indicator_joint; // 0x05 - Nametag window joint id (to scroll and
276 // choose a name)
277 u8 slidername_joint; // 0x06 - Slider name joint
278 u8 cpuslider_joint; // 0x07 - Used when only CPU is showing
279 u8 cpuslider2_joint; // 0x08 - Used when handicap is also showing
280 u8 selected_since_load; // 0x09 - Determines when player selected since the
281 // CSS loaded
282
283 u8 team; // 0x0A
284 u8 p_kind; // 0x0B - PlayerKind, 0x0 = HMN, 0x1 = CPU, 0x3 = Closed
286 u8 costume; // 0x0D
287 u8 sel_icon; // 0x0E - Icon this player has selected
293
294 float togglebtn_left; // 0x14 - HMN button bound
295 float togglebtn_right; // 0x18 - HMN button bound
296 float teambtn_left; // 0x1C - Team button bound
297 float teambtn_right; // 0x20 - Team button bound
298};
299
303 float x8; // 0x08
304 float scroll_amt; // 0x0C
305 float scroll_force; // 0x10
306 int timer; // 0x14
307 u8 next_tag; // 0x18
308 u8 port; // 0x19
309 u8 state; // 0x1A
310 u8 use_tag; // 0x1B
311};
312
313struct CSSTag {
314 CSSTagData* data; // 0x00
315 u8 x4; // 0x04
316 u8 list_joint; // 0x05
318 u8 x7; // 0x07
320 u8 x9; // 0x09
321 u8 xa; // 0x0A
322 u8 xb; // 0x0B
323};
324
325struct CSSKOStar {
327 float x4; // 0x04
328 u8 joint; // 0x08
329 int xc; // 0x0C
330 int x10; // 0x10
331 int x14; // 0x14
332 int x18; // 0x18
333 int x1c; // 0x1C
334};
335
337 CSSDoor doors[4]; // 0x00
338 CSSTag tags[4]; // 0x90
354 int xcf;
355 int xd3;
356 float xd7;
357 float xdb;
358 float xdf;
359 float xe3;
360 float xe7;
361 float xeb;
362 u8 xf1[5];
363 float xf8;
364 float xfc;
365 float x100;
366 float x104;
367 float x108;
368 float x10c;
369 CSSKOStar ko_stars[4]; // 0x110
370 u8 x190[64]; // 0x190
371};
372
374 char pad_0[0x96000];
375};
376STATIC_ASSERT(sizeof(struct mnGallery_804A0B90_t) == 0x96000);
377
378#endif
HSD_Pad prev
Definition db_2253.static.h:107
CSSIconJointId
Definition types.h:221
@ ICONJOINT_DONKEY
Definition types.h:233
@ ICONJOINT_DRMARIO
Definition types.h:222
@ ICONJOINT_YOSHI
Definition types.h:232
@ ICONJOINT_PIKACHU
Definition types.h:242
@ ICONJOINT_PURIN
Definition types.h:243
@ ICONJOINT_PEACH
Definition types.h:231
@ ICONJOINT_FALCO
Definition types.h:223
@ ICONJOINT_LINK
Definition types.h:241
@ ICONJOINT_KIRBY
Definition types.h:238
@ ICONJOINT_PICHU
Definition types.h:226
@ ICONJOINT_CAPTAIN
Definition types.h:234
@ ICONJOINT_MEWTWO
Definition types.h:244
@ ICONJOINT_KOOPA
Definition types.h:230
@ ICONJOINT_MARIO
Definition types.h:228
@ ICONJOINT_GANON
Definition types.h:224
@ ICONJOINT_NESS
Definition types.h:236
@ ICONJOINT_MARS
Definition types.h:246
@ ICONJOINT_POPONANA
Definition types.h:237
@ ICONJOINT_GAMEWATCH
Definition types.h:245
@ ICONJOINT_ZELDA
Definition types.h:240
@ ICONJOINT_FOX
Definition types.h:235
@ ICONJOINT_CLINK
Definition types.h:225
@ ICONJOINT_SAMUS
Definition types.h:239
@ ICONJOINT_EMBLEM
Definition types.h:227
@ ICONJOINT_LUIGI
Definition types.h:229
CSSIconHud
Definition types.h:187
@ ICONHUD_FALCO
Definition types.h:207
@ ICONHUD_LINK
Definition types.h:194
@ ICONHUD_PIKACHU
Definition types.h:201
@ ICONHUD_GANON
Definition types.h:212
@ ICONHUD_ZELDA
Definition types.h:206
@ ICONHUD_YOSHI
Definition types.h:205
@ ICONHUD_CLINK
Definition types.h:208
@ ICONHUD_SAMUS
Definition types.h:204
@ ICONHUD_GAMEWATCH
Definition types.h:191
@ ICONHUD_MEWTWO
Definition types.h:198
@ ICONHUD_EMBLEM
Definition types.h:210
@ ICONHUD_FOX
Definition types.h:190
@ ICONHUD_KIRBY
Definition types.h:192
@ ICONHUD_PEACH
Definition types.h:200
@ ICONHUD_MARIO
Definition types.h:196
@ ICONHUD_KOOPA
Definition types.h:193
@ ICONHUD_LUIGI
Definition types.h:195
@ ICONHUD_PURIN
Definition types.h:203
@ ICONHUD_NESS
Definition types.h:199
@ ICONHUD_CAPTAIN
Definition types.h:188
@ ICONHUD_PICHU
Definition types.h:211
@ ICONHUD_DONKEY
Definition types.h:189
@ ICONHUD_DRMARIO
Definition types.h:209
@ ICONHUD_POPONANA
Definition types.h:202
@ ICONHUD_MARS
Definition types.h:197
CSSIconState
Definition types.h:215
@ ICONSTATE_LOCKED
Definition types.h:216
@ ICONSTATE_TEMP
Definition types.h:217
@ ICONSTATE_UNLOCKED
Definition types.h:218
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:169
float f32
A 32-bit floating-point number.
Definition platform.h:62
unsigned short u16
An unsigned 16-bit integer.
Definition platform.h:23
unsigned long long u64
An unsigned 64-bit integer.
Definition platform.h:29
signed long s32
A signed 32-bit integer.
Definition platform.h:14
unsigned char u8
An unsigned 8-bit integer.
Definition platform.h:20
static unsigned long int next
Definition rand.c:3
Definition types.h:170
u8 pending_scene_change
Definition types.h:174
u8 match_type
Definition types.h:173
u8 * ko_star_counts
Definition types.h:175
VsModeData data
Definition types.h:176
u8 unk_0x0
Definition types.h:171
u8 unk_0x1
Definition types.h:172
Definition types.h:269
u8 cpuslider_joint
Definition types.h:278
u8 is_hold_cpu_slider
Definition types.h:291
u8 emblem_joint
Definition types.h:270
u8 team
Definition types.h:283
u8 p_kind_prev
Definition types.h:285
u8 team_joint
Definition types.h:272
float togglebtn_left
Definition types.h:294
u8 is_hold_handicap_slider
Definition types.h:292
u8 selected_since_load
Definition types.h:280
u8 costume_joint
Definition types.h:271
u8 door_joint
Definition types.h:273
u8 player_indicator_joint
Definition types.h:275
u8 p_kind
Definition types.h:284
u8 sel_icon
Definition types.h:287
float teambtn_right
Definition types.h:297
u8 slidername_joint
Definition types.h:277
float togglebtn_right
Definition types.h:295
u8 bg_joint
Definition types.h:274
u8 sel_icon_prev
Definition types.h:288
u8 dooranim_timer
Definition types.h:289
u8 cpuslider2_joint
Definition types.h:279
float teambtn_left
Definition types.h:296
u8 costume
Definition types.h:286
u8 slideranim_timer
Definition types.h:290
Definition types.h:336
u8 xc8
Definition types.h:347
u8 xce
Definition types.h:353
float xf8
Definition types.h:363
u8 x190[64]
Definition types.h:370
u8 name_list_joint
Definition types.h:344
float x10c
Definition types.h:368
CSSKOStar ko_stars[4]
Definition types.h:369
CSSTag tags[4]
Definition types.h:338
int xcf
Definition types.h:354
u8 xc1
Definition types.h:340
float xdb
Definition types.h:357
u8 xc7
Definition types.h:346
float xd7
Definition types.h:356
float xe3
Definition types.h:359
float xfc
Definition types.h:364
float xdf
Definition types.h:358
u8 tag_box_joint
Definition types.h:345
u8 xc9
Definition types.h:348
int xd3
Definition types.h:355
u8 xc0
Definition types.h:339
u8 xcb
Definition types.h:350
u8 xf1[5]
Definition types.h:362
u8 xc3
Definition types.h:342
u8 xcd
Definition types.h:352
float x100
Definition types.h:365
float xe7
Definition types.h:360
u8 xc2
Definition types.h:341
float xeb
Definition types.h:361
u8 xc4
Definition types.h:343
float x108
Definition types.h:367
u8 xca
Definition types.h:349
float x104
Definition types.h:366
u8 xcc
Definition types.h:351
CSSDoor doors[4]
Definition types.h:337
Definition types.h:249
u8 char_kind
Definition types.h:251
int sfx
Definition types.h:256
float bound_u
Definition types.h:259
u8 anim_timer
Definition types.h:253
float bound_l
Definition types.h:257
float bound_r
Definition types.h:258
u8 state
Definition types.h:252
float bound_d
Definition types.h:260
u8 joint_id_vs
Definition types.h:254
u8 ft_hudindex
Definition types.h:250
u8 joint_id_1p
Definition types.h:255
Definition types.h:263
CSSIcon icons[25+1]
Definition types.h:266
CSSModeInfo mode_info[24]
Definition types.h:265
u8 gnw_name[0x1C]
Definition types.h:264
Definition types.h:325
int x10
Definition types.h:330
int x18
Definition types.h:332
float x4
Definition types.h:327
int x1c
Definition types.h:333
int xc
Definition types.h:329
int x14
Definition types.h:331
u8 joint
Definition types.h:328
TextGlyphTexture * text
Definition types.h:326
Definition types.h:179
u16 mode_ffa_frame
Definition types.h:180
u16 mode_teams_frame
Definition types.h:181
int enter_sfx
Definition types.h:182
Definition types.h:300
TextGlyphTexture * name_ls
Definition types.h:302
u8 use_tag
Definition types.h:310
float scroll_force
Definition types.h:305
int timer
Definition types.h:306
u8 port
Definition types.h:308
TextGlyphTexture * text
Definition types.h:301
float x8
Definition types.h:303
u8 next_tag
Definition types.h:307
float scroll_amt
Definition types.h:304
u8 state
Definition types.h:309
Definition types.h:313
u8 list_joint
Definition types.h:316
u8 xb
Definition types.h:322
u8 kostar_text_joint
Definition types.h:319
u8 name_jointl
Definition types.h:317
u8 xa
Definition types.h:321
CSSTagData * data
Definition types.h:314
u8 x9
Definition types.h:320
u8 x4
Definition types.h:315
u8 x7
Definition types.h:318
Definition types.h:1071
Definition gobjproc.h:8
Definition gobj.h:25
Definition jobj.h:108
Definition sislib.h:43
Definition types.h:12
u8 unk1
Definition types.h:15
u8 unk2
Definition types.h:16
HSD_Text * text
Definition types.h:18
u8 cursor
Definition types.h:13
u8 unk3
Definition types.h:17
Definition types.h:48
u8 unk_0xb
Definition types.h:60
u8 unk_0x20
Definition types.h:74
u8 character_kind
Definition types.h:49
u8 unk_0x14
Definition types.h:68
u8 unk_0x23
Definition types.h:77
u8 unk_0x15
Definition types.h:69
u8 unk_0x17
Definition types.h:71
u8 unk_0x22
Definition types.h:76
u8 unk_0xd
Definition types.h:62
u8 color
Definition types.h:52
u8 unk_0xe
Definition types.h:63
u8 unk_0xc
Definition types.h:61
u8 team
Definition types.h:58
u8 unk_0x11
Definition types.h:66
f32 offense_ratio
Definition types.h:72
u8 unk_0x21
Definition types.h:75
u8 cpu_level
Definition types.h:64
u8 nametag
Definition types.h:59
u8 stocks
Definition types.h:51
u8 slot_type
Definition types.h:50
u8 unk_0x10
Definition types.h:65
u8 port
Definition types.h:53
u8 subcolor
Definition types.h:56
f32 defense_ratio
Definition types.h:73
s8 spawnpos32
Definition types.h:54
u16 unk_0x12
Definition types.h:67
u8 spawn_direction
Definition types.h:55
u8 handicap
Definition types.h:57
u8 unk_0x16
Definition types.h:70
Definition types.h:153
PlayerInitData players[6]
Definition types.h:155
StartMeleeRules rules
Definition types.h:154
Definition types.h:80
u8 unk_0x3e
Definition types.h:126
u8 unk_0x59
Definition types.h:144
u8 unk_0xa
Definition types.h:91
u8 unk_0x2e
Definition types.h:116
u8 unk_0x7
Definition types.h:88
u8 unk_0x46
Definition types.h:131
u8 unk_0x2f
Definition types.h:117
f32 game_speed
Definition types.h:119
u8 unk_0x39
Definition types.h:121
u8 unk_0x1f
Definition types.h:108
u8 unk_0x48
Definition types.h:133
u8 unk_0x2d
Definition types.h:115
u8 unk_0x19
Definition types.h:102
u8 flags1
Definition types.h:81
void * match_end_callback
Definition types.h:141
u8 unk_0x5d
Definition types.h:148
u8 unk_0x4a
Definition types.h:135
s8 sd_penalty
Definition types.h:93
u8 unk_0x17
Definition types.h:100
u8 flags2
Definition types.h:82
u8 flags4
Definition types.h:84
u8 unk_0x44
Definition types.h:129
u8 unk_0x2c
Definition types.h:114
u8 unk_0x5b
Definition types.h:146
u8 unk_0x1c
Definition types.h:105
u8 unk_0x5c
Definition types.h:147
u8 unk_0x5a
Definition types.h:145
u8 flags5
Definition types.h:85
f32 damage_ratio
Definition types.h:118
u8 unk_0x18
Definition types.h:101
u8 unk_0x45
Definition types.h:130
u64 item_mask
Definition types.h:109
u8 unk_0x4c
Definition types.h:137
u8 unk_0xd
Definition types.h:94
u8 unk_0x4d
Definition types.h:138
u8 unk_0x3b
Definition types.h:123
u8 is_teams
Definition types.h:89
u8 unk_0x49
Definition types.h:134
s8 item_frequency
Definition types.h:92
u8 unk_0x4e
Definition types.h:139
u8 unk_0x2a
Definition types.h:112
u8 unk_0x3a
Definition types.h:122
u8 unk_0x5e
Definition types.h:149
u8 unk_0x4b
Definition types.h:136
u8 unk_0x1b
Definition types.h:104
u8 unk_0x6
Definition types.h:87
u8 unk_0x28
Definition types.h:110
u8 unk_0x58
Definition types.h:143
s32 unk_0x54
Definition types.h:142
u8 unk_0x4f
Definition types.h:140
u8 unk_0x3f
Definition types.h:127
u8 unk_0x15
Definition types.h:98
u8 unk_0x3c
Definition types.h:124
u8 unk_0x2b
Definition types.h:113
u8 unk_0x5f
Definition types.h:150
s32 time_limit
Definition types.h:96
u8 unk_0x1d
Definition types.h:106
u8 unk_0x29
Definition types.h:111
u32 stage_id
Definition types.h:95
u8 unk_0x38
Definition types.h:120
u8 unk_0x14
Definition types.h:97
u8 flags3
Definition types.h:83
u8 unk_0x1e
Definition types.h:107
void * pause_check_callback
Definition types.h:128
u8 unk_0x1a
Definition types.h:103
u8 unk_0x47
Definition types.h:132
u8 flags6
Definition types.h:86
u8 unk_0x3d
Definition types.h:125
u8 unk_0x9
Definition types.h:90
u8 unk_0x16
Definition types.h:99
Definition sislib.h:22
Definition types.h:158
u8 unk_0x4
Definition types.h:163
s8 winner
Definition types.h:161
u8 unk_0x5
Definition types.h:164
s8 loser
Definition types.h:159
u8 unk_0x3
Definition types.h:162
u8 unk_0x6
Definition types.h:165
u8 unk_0x7
Definition types.h:166
u32 ordered_stage_index
Definition types.h:160
StartMeleeData data
Definition types.h:167
Definition types.h:373
char pad_0[0x96000]
Definition types.h:374