{%hackmd theme-dark %}
<style>
.markdown-body:not(.next-editor) pre {
color: #AAAAAA;
background-color:#222222;
}
.token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string {
background-color:#222222;
}
.token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted {
color:#6666CC;
}
</style>
## menu.c documentation
This document contains documentation for stuff that needs to be renamed.
```c
/************ .bss ************/
// Both used as part of gRecordTimesMenuElements,
// representing the initials that set the record.
char D_80126390[4]; //course initials
char D_80126394[4]; //flap initials
unk801263C0 D_801263B8;
unk801263C0 gMenuCurrentCharacter;
// Current level id being previewed.
s32 D_801263D0; //Compared for equality to gTrackIdForPreview
// Players in character select who are ready
s8 D_801263DC[MAXCONTROLLERS];
// unused
s32 D_801263E4;
// Number of points to award the racers at the end of a trophy race round.
s32 D_801263F8[8];
// Array of booleans. 0 = X place is occupied by AI, 1 = occupied by player.
u8 D_80126418[8];
// Array of booleans.
u8 D_80126420[8];
// Places of racers in the previous race.
u8 D_80126428[8];
// Places of racers overall.
u8 D_80126430[8];
// ???
s8 D_80126438[8];
// Unused
s8 D_80126440[8];
// Boolean, is currently in copy file mode?
s32 D_80126484;
// Boolean, is currently in erase file mode?
s32 D_80126488;
// File index to copy/erase.
s32 gSaveFileIndex3;
// File index to copy to.
s32 gSaveFileIndex2;
// Boolean, is showing the confirm OK before deleting a file.
s32 D_80126494;
// Current ghost index selected in the ghost data menu.
s32 D_80126498;
// Unused.
s32 D_8012649C;
// Controller index for Controller Pak? (TODO: Confirm this)
s32 D_801264D0;
// Number of ghost entries in ghost data.
s32 D_801264D4;
u8 D_801264DC[6]; //gGhostLevelIDs?
// These are just part of D_801264DC
//s8 D_801264E0;
//s8 D_801264E1;
u8 D_801264E4[4]; //gGhostSomethings?
s32 D_801264E8;
u8 D_801264EC[4]; //gGhostVehicleIds?
s32 D_801264F0[2];
u16 D_801264F8[6]; //gGhostChecksums?
s8 sDialogueOptionMax;
u8 D_80126508[6]; // Array of 6 track ids?
s8 gDialogueOptionYOffset;
u8 D_80126510[6]; // Array of 6 racer ids?
s8 gDialogueItemSelection;
u8 D_80126518[6]; // Array of vehicle ids?
u16 D_80126520[6]; // Array of timestamps?
Settings *gSavefileData[4];
u8 D_80126540[8];
u8 D_80126750[128]; // Array of booleans if object in gMenuObjects is valid.
s32 D_801267D0;
s32 D_801267D4;
s32 D_801267D8[5]; //Buttons pressed per player plus an extra?
s8 *D_801267EC;
s32 D_801267F0[5];
s8 *D_80126804;
s32 D_80126808[MAXCONTROLLERS]; //Soundmask values
s16 D_80126818[5];
s32 D_80126824;
// Size: 12 bytes
typedef struct unk80126878 {
char *text;
s16 x;
s16 y;
s32 colourIndex;
} unk80126878;
unk80126878 D_80126878[8];
/************ functions ************/
// Processes input/renders the menu rankings menu?
s32 func_80081F4C(s32 updateRate);
```