SSBM Decomp
Loading...
Searching...
No Matches
mnmain.h
Go to the documentation of this file.
1#ifndef MELEE_MN_MAIN_H
2#define MELEE_MN_MAIN_H
3
4#include <Runtime/platform.h>
5
6#include <melee/mn/forward.h>
7
8#include <dolphin/gx.h>
9#include <melee/mn/types.h>
10#include <melee/sc/types.h>
12
13typedef struct _MainMenuData {
14 /* 0x0000 */ MenuKind8 menu_kind;
16 /* 0x0002 */ MenuState8 state;
17 /* 0x0003 */ u8 pad_3;
18 /* 0x0004 */ HSD_JObj* tree[42]; // 42 * 4 = 0xA8 bytes
19 /* 0x00AC */ HSD_Text* description;
21
22typedef struct _MainMenuPanelData {
23 /* 0x0000 */ MenuKind8 cur_menu;
24 /* 0x0001 */ MenuKind8 prev_menu;
25 /* 0x0002 */ u8 x2;
26 /* 0x0003 */ MenuState8 state;
28
29typedef struct _MenuFlow {
30 /* 0x0000 */ MenuKind8 cur_menu;
31 /* 0x0001 */ MenuKind8 prev_menu;
32 /* 0x0002 */ u16 hovered_selection;
33 /* 0x0004 */ u8 confirmed_selection;
34 /* 0x0005 */ u8 pad_5[3];
35 /* 0x0008 */ u64 buttons;
36 /* 0x0010 */ u8 x10;
37 /* 0x0011 */ u8 entering_menu;
38 /* 0x0012 */ u8 light_lerp_frames;
39 /* 0x0013 */ u8 pad_13;
40 /* 0x0014 */ GXColor* light_color;
41} MenuFlow;
42
43typedef struct _MenuInputState {
48
51/* 2295AC */ u8 mn_802295AC(void);
52
53/* 229624 */ u32 mn_80229624(u32);
54/* 229860 */ void mn_80229860(s8);
55/* 229894 */ void mn_80229894(s32, u16, s32);
56/* 229938 */ bool mn_80229938(MenuKind, s32);
57/* 229A04 */ int mn_80229A04(MenuKind, int);
58/* 229B2C */ HSD_GObj* mn_80229B2C(void);
59/* 229BF4 */ void fn_80229BF4(HSD_GObj*);
60/* 229DC0 */ HSD_GObj* mn_80229DC0(void);
61/* 229F60 */ void mn_80229F60(HSD_GObj*, HSD_JObj*, MainMenuSelection);
62/* 22A440 */ void mn_8022A440(HSD_GObj*, HSD_JObj*, MainMenuSelection);
63/* 22A5D0 */ void mn_8022A5D0(HSD_GObj*, MainMenuSelection);
64/* 22ADD8 */ void mn_8022ADD8(HSD_GObj*, bool);
65/* 22AF10 */ void fn_8022AF10(HSD_GObj*);
66/* 22AFEC */ void fn_8022AFEC(HSD_GObj*);
67/* 22B3A0 */ HSD_GObj* mn_8022B3A0(u8);
68/* 22BA1C */ void mn_8022BA1C(HSD_GObj*);
69/* 22BCD4 */ void fn_8022BCD4(HSD_GObj*, int);
70/* 22BCF8 */ HSD_GObj* mn_8022BCF8(void);
71/* 22BD6C */ void mn_8022BD6C(void);
72/* 22BD8C */ void mn_8022BD8C(void);
73/* 22BDB4 */ void fn_8022BDB4(HSD_GObj*, int);
74/* 22BE34 */ HSD_GObj* mn_8022BE34(void);
75/* 22BEDC */ void mn_8022BEDC(HSD_GObj*);
76/* 22BFBC */ GXColor* mn_8022BFBC(int);
77/* 22C010 */ int mn_8022C010(int, int);
78/* 22C128 */ void fn_8022C128(HSD_GObj*);
79/* 22C304 */ void mn_8022C304(void);
80/* 22C4F4 */ void mn_8022C4F4(HSD_GObj*);
81/* 22C7CC */ void mn_8022C7CC(HSD_GObj*);
82/* 22CA54 */ void mn_8022CA54(HSD_GObj*);
83/* 22CC28 */ void mn_8022CC28(HSD_GObj*);
84/* 22CE6C */ void mn_8022CE6C(HSD_GObj*);
85/* 22D104 */ void mn_8022D104(HSD_GObj*);
86/* 22D34C */ void mn_8022D34C(HSD_GObj*);
87/* 22D594 */ void mn_8022D594(HSD_GObj*);
88/* 22D7F4 */ void mn_8022D7F4(HSD_GObj*);
89/* 22DB10 */ void mn_8022DB10(HSD_GObj*);
90/* 22DD38 */ void mnMain_Scene_OnFrame(void);
91/* 22DDA8 */ void mnMain_Scene_OnEnter(void*);
93
95/* 22E978 */ void mn_8022E978(u8 item_idx,
96 u8 enable);
97/* 22EA08 */ void mn_8022EA08(char* buf, u32 num);
98
99/* 22EA78 */ void mn_8022EA78(char* buf, int buf_end, u32 num);
100/* 22EAE0 */ void mn_8022EAE0(HSD_GObj*);
101/* 22EB04 */ void mn_8022EB04(void* user_data);
102
104/* 22EB24 */ s32 mn_GetDigitAt(s32, s32);
105
107/* 22EB78 */ s32 mn_GetDigitCount(s32);
108
109/* 22EBDC */ void mn_8022EBDC(void);
110/* 22EC18 */ float mn_8022EC18(HSD_JObj*, AnimLoopSettings*, HSD_TypeMask);
111/* 22ED6C */ float mn_8022ED6C(HSD_JObj*, AnimLoopSettings*);
112/* 22EE84 */ float mn_8022EE84(HSD_JObj* arg0, AnimLoopSettings* arg1,
113 HSD_TypeMask arg2);
114/* 22EFD8 */ float mn_8022EFD8(HSD_JObj*, AnimLoopSettings*);
115/* 22F0F0 */ void mn_8022F0F0(int);
116/* 22F138 */ void mn_8022F138(u16, u16);
117/* 22F1A8 */ void mn_8022F1A8(u16, u16);
118/* 22F218 */ bool mn_8022F218(void);
119/* 22F268 */ void mn_8022F268(void);
120/* 22F298 */ f32 mn_8022F298(HSD_JObj*);
121/* 22F360 */ void mn_8022F360(HSD_AObj* aobj, void* obj, u32 arg2);
122/* 22F3D8 */ void mn_8022F3D8(HSD_JObj*, u8, HSD_TypeMask);
123/* 22F410 */ int mn_8022F410(float* x, const float* target, float dx);
124/* 22F470 */ int mn_8022F470(int* x, const int* target, int dx);
125/* 22F4CC */ void mn_8022F4CC(void);
126/* 4A04F0 */ extern MenuFlow mn_804A04F0;
127/* 4A0508 */ extern StaticModelDesc MenMainBack_Top;
128/* 4A0518 */ extern StaticModelDesc MenMainPanel_Top;
129/* 4D6BB4 */ extern u8 mn_804D6BB4;
130/* 4D6BB5 */ extern u8 mn_804D6BB5;
131/* 4D6BB8 */ extern HSD_Archive* mn_804D6BB8;
132/* 4D6BBC */ extern LightList** MenMain_lights;
133/* 4D6BC0 */ extern HSD_FogDesc* MenMain_fog;
134/* 4D6BC4 */ extern HSD_CObjDesc* MenMain_cam;
135/* 4D6BC8 */ extern MenuInputState mn_804D6BC8;
136/* 4D6C00 */ extern char** NotAllowedNamesList;
137/* 4D6C04 */ extern u8** AutoNamesList;
138
139#endif
char buf[0x5A4]
Definition dbanim.c:14
signed char s8
Definition types.h:4
unsigned long u32
Definition types.h:9
float f32
Definition types.h:13
unsigned short int u16
Definition types.h:7
unsigned long long int u64
Definition types.h:11
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5
unsigned char MenuKind8
Definition forward.h:36
MainMenuSelection
selection refers to the invidual options inside menus/submenus
Definition forward.h:133
MenuKind
Definition forward.h:84
unsigned char MenuState8
Definition forward.h:37
struct LightList LightList
Definition forward.h:5
HSD_CObjDesc * MenMain_cam
Definition mnmain.c:60
StaticModelDesc MenMainBack_Top
Definition mnmain.c:786
HSD_FogDesc * MenMain_fog
Definition mnmain.c:61
LightList ** MenMain_lights
Definition mnmain.c:62
MenuInputState mn_804D6BC8
Definition mnmain.c:59
StaticModelDesc MenMainPanel_Top
Definition mnmain.c:806
u8 mn_804D6BB4
Definition mnmain.c:65
MenuFlow mn_804A04F0
Definition mnmain.c:67
HSD_Archive * mn_804D6BB8
Definition mnmain.c:63
u8 mn_804D6BB5
Definition mnmain.c:64
void mn_8022EA08(char *buf, u32 num)
Definition mnmain.c:2981
void mn_8022C7CC(HSD_GObj *)
Stadium menu think.
Definition mnmain.c:2011
void mn_8022EAE0(HSD_GObj *)
Definition mnmain.c:3000
bool mn_IsFighterUnlocked(SelectableCharacterKind)
Definition mnmain.c:2967
int mn_8022C010(int, int)
gets the menu light color index
Definition mnmain.c:1707
void mn_8022C4F4(HSD_GObj *)
Special Vs menu think.
Definition mnmain.c:1896
void mn_8022F360(HSD_AObj *aobj, void *obj, u32 arg2)
Definition mn_22EC.c:268
void mn_80229894(s32, u16, s32)
Definition mnmain.c:691
void fn_8022AF10(HSD_GObj *)
Definition mnmain.c:1162
void mn_8022F138(u16, u16)
Definition mn_22EC.c:184
bool mn_8022F218(void)
Definition mn_22EC.c:213
void mn_8022F3D8(HSD_JObj *, u8, HSD_TypeMask)
Definition mn_22EC.c:279
void mn_8022BD6C(void)
Definition mnmain.c:1619
void mnMain_Scene_OnEnter(void *)
Definition mnmain.c:2757
void fn_8022BCD4(HSD_GObj *, int)
Definition mnmain.c:1601
void mn_8022D104(HSD_GObj *)
Settings menu think.
Definition mnmain.c:2306
void mn_8022E978(u8 item_idx, u8 enable)
Fill arg0 with the string representation of arg1.
Definition mnmain.c:2972
void fn_80229BF4(HSD_GObj *)
Definition mnmain.c:826
HSD_GObj * mn_8022B3A0(u8)
sets up a new menu when transitioning from another.
Definition mnmain.c:1388
void mn_8022A440(HSD_GObj *, HSD_JObj *, MainMenuSelection)
cursor animation on unhover
Definition mnmain.c:982
void mn_80229F60(HSD_GObj *, HSD_JObj *, MainMenuSelection)
cursor animation on hover
Definition mnmain.c:918
HSD_GObj * mn_80229DC0(void)
Definition mnmain.c:875
GXColor * mn_8022BFBC(int)
Definition mnmain.c:1690
void mn_8022F0F0(int)
Definition mn_22EC.c:173
bool mn_80229938(MenuKind, s32)
checks if a menu selection is locked
Definition mnmain.c:710
void mn_8022D34C(HSD_GObj *)
Trohpy menu think.
Definition mnmain.c:2386
HSD_GObj * mn_8022BE34(void)
Definition mnmain.c:1643
u32 mn_80229624(u32)
Definition mnmain.c:632
void mn_8022ADD8(HSD_GObj *, bool)
Definition mnmain.c:1111
void fn_8022BDB4(HSD_GObj *, int)
Definition mnmain.c:1631
float mn_8022EFD8(HSD_JObj *, AnimLoopSettings *)
updates a jobjs looping animation.
Definition mn_22EC.c:139
void mn_8022A5D0(HSD_GObj *, MainMenuSelection)
updates cursor animation
Definition mnmain.c:1018
void mn_8022F1A8(u16, u16)
Definition mn_22EC.c:204
void fn_8022C128(HSD_GObj *)
Definition mnmain.c:1811
float mn_8022EC18(HSD_JObj *, AnimLoopSettings *, HSD_TypeMask)
Definition mn_22EC.c:17
void mn_80229860(s8)
Definition mnmain.c:682
void mn_8022BEDC(HSD_GObj *)
Definition mnmain.c:1674
void mnMain_Scene_OnFrame(void)
Definition mnmain.c:2722
void mn_8022CA54(HSD_GObj *)
Records menu think.
Definition mnmain.c:2070
HSD_GObj * mn_80229B2C(void)
Definition mnmain.c:788
u8 mn_802295AC(void)
Test for some sort of analogue movement and return the port that inputted it.
Definition mnmain.c:619
void mn_8022C304(void)
Definition mnmain.c:1832
int mn_8022F410(float *x, const float *target, float dx)
Moves x toward a target value in increments of dx.
Definition mn_22EC.c:293
void mn_8022BD8C(void)
Definition mnmain.c:1625
void mn_8022D594(HSD_GObj *)
Versus menu think.
Definition mnmain.c:2461
void mn_8022D7F4(HSD_GObj *)
Singleplayer menu think.
Definition mnmain.c:2548
float mn_8022EE84(HSD_JObj *arg0, AnimLoopSettings *arg1, HSD_TypeMask arg2)
int mn_80229A04(MenuKind, int)
returns the amount of unlocked selections
Definition mnmain.c:742
void fn_8022AFEC(HSD_GObj *)
main menu think func that handles the updating of objects (animations, text)
Definition mnmain.c:1191
u8 ** AutoNamesList
Definition mnname.c:1677
void mn_8022CE6C(HSD_GObj *)
Data menu think.
Definition mnmain.c:2212
float mn_8022ED6C(HSD_JObj *, AnimLoopSettings *)
updates a jobjs animation in accordance to the passed in anim loop setting
Definition mn_22EC.c:57
void mn_8022CC28(HSD_GObj *)
Regular Match menu think.
Definition mnmain.c:2136
s32 mn_GetDigitAt(s32, s32)
Shift arg0 left in base 10 by arg1 digits and return the ones digit.
Definition mnmain.c:3010
void mn_8022EBDC(void)
Definition mnmain.c:3034
void mn_8022F268(void)
Definition mn_22EC.c:221
s32 mn_GetDigitCount(s32)
Return how many digits are in a number.
Definition mnmain.c:3015
int mn_8022F470(int *x, const int *target, int dx)
Same as mn_8022F410, but for int values instead of float.
Definition mn_22EC.c:308
f32 mn_8022F298(HSD_JObj *)
returns the current frame of jobjs animation
Definition mn_22EC.c:227
void mn_8022EB04(void *user_data)
Definition mnmain.c:3005
void mn_8022BA1C(HSD_GObj *)
updates menu camera rotation from the cstick
Definition mnmain.c:1534
void mn_8022DB10(HSD_GObj *)
Main menu input think.
Definition mnmain.c:2648
void mn_8022F4CC(void)
Definition mn_22EC.c:326
void mn_8022EA78(char *buf, int buf_end, u32 num)
Definition mnmain.c:2991
HSD_GObj * mn_8022BCF8(void)
Definition mnmain.c:1606
char ** NotAllowedNamesList
Definition mnname.c:1676
HSD_TypeMask
Definition object.h:40
void * obj
Definition pobj.c:38
SelectableCharacterKind
Identifier for a single selectable character as seen in high-scores or on the CSS.
Definition types.h:371
Definition types.h:546
Definition GXStruct.h:29
Definition aobj.h:40
Definition archive.h:35
Definition fog.h:44
Definition gobj.h:13
Definition jobj.h:104
Definition sislib.h:46
Definition mnmain.h:13
MenuState8 state
Definition mnmain.h:16
HSD_Text * description
Definition mnmain.h:19
MenuKind8 hovered_selection
Definition mnmain.h:15
HSD_JObj * tree[42]
Definition mnmain.h:18
MenuKind8 menu_kind
Definition mnmain.h:14
u8 pad_3
Definition mnmain.h:17
Definition mnmain.h:22
MenuKind8 cur_menu
Definition mnmain.h:23
MenuKind8 prev_menu
Definition mnmain.h:24
MenuState8 state
Definition mnmain.h:26
u8 x2
Definition mnmain.h:25
Definition mnmain.h:29
u8 entering_menu
bool
Definition mnmain.h:37
GXColor * light_color
used for the main panel color
Definition mnmain.h:40
u8 light_lerp_frames
Definition mnmain.h:38
MenuKind8 cur_menu
Definition mnmain.h:30
MenuKind8 prev_menu
Definition mnmain.h:31
u8 confirmed_selection
Definition mnmain.h:33
u8 pad_5[3]
Definition mnmain.h:34
u8 x10
Definition mnmain.h:36
u16 hovered_selection
Definition mnmain.h:32
u64 buttons
Definition mnmain.h:35
u8 pad_13
Definition mnmain.h:39
Definition mnmain.h:43
u16 cooldown
Definition mnmain.h:44
s32 x4
Definition mnmain.h:46
u16 x2
Definition mnmain.h:45
Model with a single animation or no animation.
Definition types.h:8
Definition cobj.h:124