Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Menu/MenuSetup.h
338 views
1
#ifndef OBJ_MENUSETUP_H
2
#define OBJ_MENUSETUP_H
3
4
#include "Game.h"
5
6
typedef enum {
7
MAINMENU_MAIN,
8
MAINMENU_TIMEATTACK,
9
MAINMENU_COMPETITION,
10
MAINMENU_SAVESELECT,
11
#if MANIA_USE_PLUS
12
MAINMENU_SAVESELECT_ENCORE,
13
#endif
14
} MainMenuIDs;
15
16
// Object Class
17
struct ObjectMenuSetup {
18
RSDK_OBJECT
19
int32 unused1;
20
bool32 initializedMenuReturn;
21
bool32 initializedMenu;
22
bool32 initializedAPI;
23
bool32 initializedSaves;
24
int32 unused2;
25
int32 unused3;
26
EntityFXFade *fxFade;
27
#if !MANIA_USE_PLUS
28
EntityUIButtonPrompt *delSavePrompt;
29
EntityUIControl *mainMenu;
30
EntityUIControl *timeAttack;
31
EntityUIControl *timeAttackZones;
32
EntityUIControl *leaderboards;
33
EntityUILeaderboard *leaderboardWidget;
34
EntityUIButtonPrompt *leaderboardPrompt;
35
EntityUIControl *competition;
36
EntityUIControl *competitionRules;
37
EntityUIControl *competitionZones;
38
EntityUIControl *competitionRound;
39
EntityUIInfoLabel *roundLabel;
40
EntityUIVsScoreboard *roundScoreboard;
41
EntityUIControl *competitionTotal;
42
EntityUIInfoLabel *totalLabel;
43
EntityUIVsScoreboard *totalScoreboard;
44
EntityUIControl *saveSelect;
45
EntityUIControl *noSaveMode;
46
EntityUIControl *secrets;
47
EntityUIControl *extras;
48
EntityUIControl *options;
49
EntityUIButtonPrompt *optionsPrompt;
50
EntityUIControl *video;
51
EntityUIControl *video_win;
52
EntityUIControl *sound;
53
EntityUIControl *controls_win;
54
EntityUIControl *controls_KB;
55
EntityUIControl *controls_PS4;
56
EntityUIControl *controls_XB1;
57
EntityUIControl *controls_NX;
58
EntityUIControl *controls_NX_Grip;
59
EntityUIControl *controls_NX_JoyCon;
60
EntityUIControl *controls_NX_Pro;
61
EntityUIControl *language;
62
int32 unused4;
63
int32 unused5;
64
int32 vsTotalTimer;
65
int32 unused6;
66
EntityUIDialog *connectingDlg;
67
#endif
68
};
69
70
// Entity Class
71
struct EntityMenuSetup {
72
RSDK_ENTITY
73
StateMachine(state);
74
StateMachine(callback);
75
int32 timer;
76
int32 delay;
77
int32 fadeShift;
78
int32 fadeTimer;
79
int32 fadeColor;
80
};
81
82
// Object Struct
83
extern ObjectMenuSetup *MenuSetup;
84
85
// Standard Entity Events
86
void MenuSetup_Update(void);
87
void MenuSetup_LateUpdate(void);
88
void MenuSetup_StaticUpdate(void);
89
void MenuSetup_Draw(void);
90
void MenuSetup_Create(void *data);
91
void MenuSetup_StageLoad(void);
92
#if GAME_INCLUDE_EDITOR
93
void MenuSetup_EditorDraw(void);
94
void MenuSetup_EditorLoad(void);
95
#endif
96
void MenuSetup_Serialize(void);
97
98
// Extra Entity Functions
99
void MenuSetup_StartTransition(void (*callback)(void), int32 delay);
100
101
#if !MANIA_USE_PLUS
102
// Setup
103
void MenuSetup_Initialize(void);
104
bool32 MenuSetup_InitAPI(void);
105
void MenuSetup_SetupActions(void);
106
void MenuSetup_HandleUnlocks(void);
107
void MenuSetup_HandleMenuReturn(void);
108
int32 MenuSetup_GetActiveMenu(void);
109
void MenuSetup_ChangeMenuTrack(void);
110
void MenuSetup_SetBGColors(void);
111
void MenuSetup_MenuButton_ActionCB(void);
112
void MenuSetup_StartTransitionLB(void (*callback)(void), int32 delay);
113
114
// Main Menu
115
bool32 MenuSetup_BackPressCB_ReturnToTitle(void);
116
void MenuSetup_StartReturnToTitle(void);
117
void MenuSetup_ReturnToTitle(void);
118
void MenuSetup_ExitGame(void);
119
void MenuSetup_ExitGame_ActionCB(void);
120
void MenuSetup_ExitGame_CB(void);
121
void MenuSetup_State_HandleTransition(void);
122
123
// Save Select
124
int32 MenuSetup_GetMedalMods(void);
125
void MenuSetup_OpenSaveSelectMenu(void);
126
void MenuSetup_SaveFileCB(void);
127
void MenuSetup_SaveSlot_ActionCB(void);
128
void MenuSetup_SaveSel_MenuUpdateCB(void);
129
void MenuSetup_OpenSecretsMenu(void);
130
void MenuSetup_SaveSel_YPressCB(void);
131
132
// Time Attack
133
void MenuSetup_TA_OpenZoneList_Sonic(void);
134
void MenuSetup_TA_OpenZoneList_Tails(void);
135
void MenuSetup_TA_OpenZoneList_Knux(void);
136
void MenuSetup_TA_TAZoneModule_ActionCB(void);
137
void MenuSetup_TA_StartAttempt(void);
138
void MenuSetup_TA_Leaderboards_TransitionCB(void);
139
bool32 MenuSetup_TA_Leaderboards_BackPressCB(void);
140
void MenuSetup_TA_Leaderboards_YPressCB(void);
141
void MenuSetup_State_SetupLeaderboards(void);
142
143
// Comptetition
144
void MenuSetup_VS_OpenCompRules(void);
145
void MenuSetup_VS_OpenCompZones(void);
146
void MenuSetup_VS_ProcessButtonCB(void);
147
void MenuSetup_VS_MenuSetupCB(void);
148
void MenuSetup_VS_StartMatch(void);
149
void MenuSetup_VS_StartMatch_ActionCB(void);
150
void MenuSetup_VS_RulesButton_ActionCB(void);
151
void MenuSetup_VS_OpenCompTotal(void);
152
void MenuSetup_VS_Round_ProcessButtonCB(void);
153
void MenuSetup_VS_Round_MenuSetupCB(void);
154
void MenuSetup_VS_GotoCompetition(void);
155
void MenuSetup_VS_Total_ProcessButtonCB(void);
156
void MenuSetup_VS_Total_MenuSetupCB(void);
157
void MenuSetup_VS_Total_MenuUpdateCB(void);
158
void MenuSetup_VS_ExitComp_TransitionCB(void);
159
void MenuSetup_VS_BackoutFromVsCharSelect_CB(void);
160
bool32 MenuSetup_VS_BackoutFromVsCharSelect(void);
161
void MenuSetup_VS_ExitComp_YesCB(void);
162
bool32 MenuSetup_VS_CompZones_BackPressCB(void);
163
void MenuSetup_VS_StartPuyoMatch(void);
164
165
// Options
166
void MenuSetup_Options_VideoMenuButton_ActionCB(void);
167
void MenuSetup_Options_SoundMenuButton_ActionCB(void);
168
void MenuSetup_Options_LanguageMenuButton_ActionCB(void);
169
void MenuSetup_Options_ControlsMenuButton_ActionCB(void);
170
void MenuSetup_Options_SetDefaultMappings_P1(void);
171
void MenuSetup_Options_SetDefaultMappings_P2(void);
172
void MenuSetup_Options_SetupKBControlsMenu(int32 playerID);
173
void MenuSetup_OptionsVideo_Win_MenuUpdateCB(void);
174
void MenuSetup_OptionsVideo_Win_InitVideoOptionsMenu(void);
175
void MenuSetup_Options_OpenKBControlsMenu(void);
176
void MenuSetup_Options_MenuSetupCB(void);
177
void MenuSetup_Options_SaveOptionsCB_Load(void);
178
void MenuSetup_Options_LaunchManual(void);
179
void MenuSetup_OptionsLanguage_LanguageButton_ActionCB(void);
180
void MenuSetup_OptionsVideo_ShaderButton_ActionCB(void);
181
void MenuSetup_OptionsVideo_WindowScaleButton_ActionCB(void);
182
void MenuSetup_OptionsVideo_BorderlessButton_ActionCB(void);
183
void MenuSetup_OptionsVideo_FullscreenButton_ActionCB(void);
184
void MenuSetup_OptionsVideo_VSyncButton_ActionCB(void);
185
void MenuSetup_OptionsVideo_TripleBufferButton_ActionCB(void);
186
void MenuSetup_OptionsVideo_UISlider_ChangedCB(void);
187
188
// Extras
189
void MenuSetup_OpenExtrasMenu_ActionCB(void);
190
void MenuSetup_Extras_ProcessButtonCB(void);
191
void MenuSetup_Extras_Start_Puyo_vsAI(void);
192
void MenuSetup_Extras_Puyo_vsAI_ActionCB(void);
193
void MenuSetup_Extras_Start_Puyo_vs2P(void);
194
void MenuSetup_Extras_Puyo_vs2P_ActionCB(void);
195
void MenuSetup_Extras_Start_Credits(void);
196
void MenuSetup_Extras_Credits_ActionCB(void);
197
void MenuSetup_Extras_StartDAGarden(void);
198
void MenuSetup_Extras_DAGarden_ActionCB(void);
199
void MenuSetup_Extras_Start_BSS_3K(void);
200
void MenuSetup_Extras_BSS_3K_ActionCB(void);
201
void MenuSetup_Extras_Start_BSS_Mania(void);
202
void MenuSetup_Extras_BSS_Mania_ActionCB(void);
203
#endif
204
205
#endif //! OBJ_MENUSETUP_H
206
207