Decompile dialogTick

This commit is contained in:
Ryan Dwyer 2022-01-28 19:14:07 +10:00
parent b48d22c065
commit 79125aea40
9 changed files with 710 additions and 3995 deletions

View File

@ -104,9 +104,9 @@ void menuTick(void)
for (j = 0; j < 4; j++) {
if (g_Menus[j].curdialog) {
if (g_Menus[j].curdialog->unk60 == 1
|| g_Menus[j].curdialog->unk60 == 2
|| g_Menus[j].curdialog->unk60 == 0) {
if (g_Menus[j].curdialog->state == MENUDIALOGSTATE_OPENING
|| g_Menus[j].curdialog->state == MENUDIALOGSTATE_POPULATING
|| g_Menus[j].curdialog->state == MENUDIALOGSTATE_0) {
bVar11 = true;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -2956,7 +2956,7 @@ glabel menuitemListRender
);
#endif
bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data)
bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
f32 f0;
union handlerdata handlerdata;
@ -3019,7 +3019,7 @@ bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2
}
}
if (arg2 & 2) {
if (tickflags & MENUTICKFLAG_ITEMISFOCUSED) {
item->handler(MENUOP_GETOPTIONCOUNT, item, &handlerdata);
if (handlerdata.list.value) {
@ -3077,7 +3077,7 @@ bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2
handlerdata.list.value = tmp;
handlerdata.list.unk04 = 1;
handlerdata.list.unk0c = tmp;
handlerdata.list.groupstartindex = (arg2 & 2) ? 1 : 0;
handlerdata.list.groupstartindex = (tickflags & MENUTICKFLAG_ITEMISFOCUSED) ? 1 : 0;
item->handler(MENUOP_25, item, &handlerdata);
@ -3587,13 +3587,13 @@ glabel menuitemDropdownRender
/* f0e8134: 27bd0080 */ addiu $sp,$sp,0x80
);
bool menuitemDropdownTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data)
bool menuitemDropdownTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
u32 stack;
if ((arg3 & 2) && item->handler) {
if ((tickflags & MENUTICKFLAG_ITEMISFOCUSED) && item->handler) {
if (dialog->dimmed && item == dialog->focuseditem) {
menuitemListTick(item, inputs, arg3, data);
menuitemListTick(item, inputs, tickflags, data);
if (mpIsPlayerLockedOut(g_MpPlayerNum)) {
if ((item->flags & MENUITEMFLAG_00040000) || (dialog->definition->flags & MENUDIALOGFLAG_0010)) {
@ -4193,7 +4193,7 @@ Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *context)
// Render cursor
alpha = func0f006b08(40) * 255;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
cursorcolour = g_MenuColourPalettes[context->dialog->type].focused;
} else {
cursorcolour = colourBlend(
@ -4235,7 +4235,7 @@ Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *context)
for (col = 0; col < 10; col++) {
for (row = 0; row < 5; row++) {
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
textcolour = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
textcolour = colourBlend(
@ -4257,7 +4257,7 @@ Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *context)
if (col == data->col && row == data->row) {
alpha = func0f006b08(40) * 255;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
tmpcolour = g_MenuColourPalettes[context->dialog->type].focused;
} else {
tmpcolour = colourBlend(
@ -4311,7 +4311,7 @@ Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *context)
// Dim the OK button if string is empty
if (index == 3 && menuitemKeyboardIsStringEmptyOrSpaces(data->string)) {
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
textcolour = g_MenuColourPalettes[context->dialog->type].disabled;
} else {
textcolour = colourBlend(
@ -4403,13 +4403,13 @@ Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *context)
* | DEL | CAPS | CANCEL | OK |
* +-------+-----------+-----------+-------+
*/
bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data)
bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
struct menuitemdata_keyboard *kb = &data->keyboard;
union handlerdata handlerdata;
s32 delete = false;
if (arg2 & 2) {
if (tickflags & MENUTICKFLAG_ITEMISFOCUSED) {
s16 prevcol = kb->col;
s16 prevrow = kb->row;
@ -4582,7 +4582,7 @@ bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32
}
// Update caps
if (arg2 & 2) {
if (tickflags & MENUTICKFLAG_ITEMISFOCUSED) {
u32 prev = kb->capseffective;
kb->capseffective = kb->capslock;
@ -4628,7 +4628,7 @@ Gfx *menuitemSeparatorRender(Gfx *gdl, struct menurendercontext *context)
{
u32 colour;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
colour = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
colour = colourBlend(
@ -6647,7 +6647,7 @@ Gfx *menuitemModelRender(Gfx *gdl, struct menurendercontext *context)
renderdata.y = context->y;
renderdata.width = context->width;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
renderdata.colour = g_MenuColourPalettes[context->dialog->type].focused;
} else {
renderdata.colour = colourBlend(
@ -6712,7 +6712,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context)
}
if (context->item->flags & MENUITEMFLAG_00000100) {
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
colour1 = g_MenuColourPalettes[context->dialog->type].checkedunfocused;
} else {
colour1 = colourBlend(
@ -6729,7 +6729,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context)
g_MenuColourPalettes3[context->dialog->type].checkedunfocused,
g_MenuColourPalettes2[context->dialog->type].checkedunfocused);
} else {
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
colour1 = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
colour1 = colourBlend(
@ -6748,7 +6748,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context)
}
if (menuIsItemDisabled(context->item, context->dialog)) {
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
colour1 = g_MenuColourPalettes[context->dialog->type].disabled;
} else {
colour1 = colourBlend(
@ -6830,7 +6830,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context)
gdl = func0f153780(gdl);
if (menudfc) {
if (context->width + 200 < menudfc->unk04 * 300 && context->dialog->unk48 < 0) {
if (context->width + 200 < menudfc->unk04 * 300 && context->dialog->redrawtimer < 0) {
func0f0f13ec(context->item);
}
@ -6876,7 +6876,7 @@ Gfx *menuitemMeterRender(Gfx *gdl, struct menurendercontext *context)
s32 x2;
s32 x3;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
colour = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
colour = colourBlend(
@ -7328,7 +7328,7 @@ const char var7f1adfb8[] = "";
//
// text = menuResolveParam2Text(context->item);
//
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// leftcolour = g_MenuColourPalettes[context->dialog->type].unfocused;
// } else {
// leftcolour = colourBlend(
@ -7351,7 +7351,7 @@ const char var7f1adfb8[] = "";
// u32 colour2;
// u32 weight = func0f006b08(40) * 255;
//
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// colour2 = g_MenuColourPalettes[context->dialog->type].focused;
// } else {
// colour2 = colourBlend(
@ -7372,7 +7372,7 @@ const char var7f1adfb8[] = "";
// }
//
// if (menuIsItemDisabled(context->item, context->dialog)) {
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// leftcolour = g_MenuColourPalettes[context->dialog->type].disabled;
// } else {
// leftcolour = colourBlend(
@ -7430,9 +7430,9 @@ const char var7f1adfb8[] = "";
// return func0f153780(gdl);
//}
bool menuitemSelectableTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2)
bool menuitemSelectableTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags)
{
if ((arg2 & 2) && inputs->select) {
if ((tickflags & MENUTICKFLAG_ITEMISFOCUSED) && inputs->select) {
menuPlaySound(MENUSOUND_SELECT);
if (item->flags & MENUITEMFLAG_00000008) {
@ -8121,7 +8121,7 @@ glabel menuitemSliderRender
/* f0ebec4: 27bd00b0 */ addiu $sp,$sp,0xb0
);
bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data)
bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
s32 index;
union handlerdata handlerdata;
@ -8130,8 +8130,8 @@ bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct
f32 f2;
f32 f14;
if ((arg3 & 2)) {
if (arg3 & 4) {
if ((tickflags & MENUTICKFLAG_ITEMISFOCUSED)) {
if (tickflags & MENUTICKFLAG_DIALOGISDIMMED) {
if (item->handler) {
item->handler(MENUOP_GETSLIDER, item, &handlerdata);
index = (s16)handlerdata.slider.value;
@ -8244,7 +8244,7 @@ Gfx *menuitemCarouselRender(Gfx *gdl, struct menurendercontext *context)
u32 colour1;
u32 weight = func0f006b08(40) * 255;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
colour1 = g_MenuColourPalettes[context->dialog->type].focused;
} else {
colour1 = colourBlend(
@ -8284,7 +8284,7 @@ Gfx *menuitemCarouselRender(Gfx *gdl, struct menurendercontext *context)
return gdl;
}
bool menuitemCarouselTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2)
bool menuitemCarouselTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags)
{
union handlerdata data;
s32 index;
@ -8292,7 +8292,7 @@ bool menuitemCarouselTick(struct menuitem *item, struct menuinputs *inputs, u32
bool done;
u32 stack;
if (((arg2 & 2) || (item->flags & MENUITEMFLAG_04000000)) && item->handler) {
if (((tickflags & MENUTICKFLAG_ITEMISFOCUSED) || (item->flags & MENUITEMFLAG_04000000)) && item->handler) {
if (inputs->leftright != 0) {
if (mpIsPlayerLockedOut(g_MpPlayerNum) == 0 || (item->flags & MENUITEMFLAG_00020000) == 0) {
done = false;
@ -8754,7 +8754,7 @@ glabel menuitemCheckboxRender
// && context->item->handler(MENUOP_GET, context->item, (union handlerdata *)data) == true) {
// checked = true;
//
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// maincolour = g_MenuColourPalettes[context->dialog->type].checkedunfocused;
// } else {
// maincolour = colourBlend(
@ -8771,7 +8771,7 @@ glabel menuitemCheckboxRender
// g_MenuColourPalettes3[context->dialog->type].checkedunfocused,
// g_MenuColourPalettes2[context->dialog->type].checkedunfocused);
// } else {
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// maincolour = g_MenuColourPalettes[context->dialog->type].unfocused;
// } else {
// maincolour = colourBlend(
@ -8799,7 +8799,7 @@ glabel menuitemCheckboxRender
// u32 focuscolour;
// u32 weight = func0f006b08(40) * 255;
//
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// focuscolour = g_MenuColourPalettes[context->dialog->type].focused;
// } else {
// focuscolour = colourBlend(
@ -8816,7 +8816,7 @@ glabel menuitemCheckboxRender
// }
//
// if (menuIsItemDisabled(context->item, context->dialog)) {
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// maincolour = g_MenuColourPalettes[context->dialog->type].disabled;
// } else {
// maincolour = colourBlend(
@ -8847,11 +8847,11 @@ glabel menuitemCheckboxRender
// return func0f153780(gdl);
//}
bool menuitemCheckboxTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2)
bool menuitemCheckboxTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags)
{
union handlerdata data;
if ((arg2 & 2) && inputs->select) {
if ((tickflags & MENUTICKFLAG_ITEMISFOCUSED) && inputs->select) {
if (item->handler && item->handler(MENUOP_GET, item, &data) == 1) {
data.checkbox.value = 0;
menuPlaySound(MENUSOUND_TOGGLEOFF);
@ -8974,7 +8974,7 @@ Gfx *menuitemScrollableRender(Gfx *gdl, struct menurendercontext *context)
x = context->x + 2;
y = context->y + 2;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
colour = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
colour = colourBlend(
@ -9015,14 +9015,14 @@ Gfx *menuitemScrollableRender(Gfx *gdl, struct menurendercontext *context)
return func0f153780(gdl);
}
bool menuitemScrollableTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data)
bool menuitemScrollableTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
u32 stack;
#if PAL
if ((s16)dialog->height20 != data->scrollable.unk06 || data->scrollable.unk08 != g_LanguageId) {
if ((s16)dialog->height != data->scrollable.unk06 || data->scrollable.unk08 != g_LanguageId) {
#else
if ((s16)dialog->height20 != data->scrollable.unk06) {
if ((s16)dialog->height != data->scrollable.unk06) {
#endif
char wrapped[8000] = "";
char *rawtext;
@ -9062,12 +9062,12 @@ bool menuitemScrollableTick(struct menuitem *item, struct menudialog *dialog, st
data->scrollable.unk04 = -10;
}
data->scrollable.unk06 = dialog->height20;
data->scrollable.unk06 = dialog->height;
}
if (menuIsScrollableUnscrollable(item)) {
data->scrollable.unk00 = 0;
} else if (arg3 & 2) {
} else if (tickflags & MENUTICKFLAG_ITEMISFOCUSED) {
f32 floatval;
s32 intval = 0;
@ -9756,7 +9756,7 @@ u32 var800711ec = 0x20000000;
// }
//
// // 5b8
// if (context->dialog->transitiontimer < 0) {
// if (context->dialog->transitionfrac < 0) {
// colour = g_MenuColourPalettes[context->dialog->type].unfocused;
// } else {
// colour = colourBlend(
@ -10056,7 +10056,7 @@ Gfx *menuitemRankingRender(Gfx *gdl, struct menurendercontext *context)
data->scrolloffset = gap;
}
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
textcolour = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
textcolour = colourBlend(
@ -10088,7 +10088,7 @@ Gfx *menuitemRankingRender(Gfx *gdl, struct menurendercontext *context)
dialog = context->dialog;
if (dialog->transitiontimer < 0) {
if (dialog->transitionfrac < 0) {
linecolour1 = g_MenuColourPalettes[dialog->type].unk00;
} else {
linecolour1 = colourBlend(
@ -10101,7 +10101,7 @@ Gfx *menuitemRankingRender(Gfx *gdl, struct menurendercontext *context)
linecolour1 = colourBlend(linecolour1, 0, 44) & 0xffffff00 | linecolour1 & 0xff;
}
if (dialog->transitiontimer < 0) {
if (dialog->transitionfrac < 0) {
linecolour2 = g_MenuColourPalettes[dialog->type].unk08;
} else {
linecolour2 = colourBlend(
@ -10821,12 +10821,12 @@ glabel menuitemRankingRender
);
#endif
bool menuitemRankingTick(struct menuinputs *inputs, u32 arg1, union menuitemdata *data)
bool menuitemRankingTick(struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
f32 floatval;
s32 intval;
if (arg1 & 2) {
if (tickflags & MENUTICKFLAG_ITEMISFOCUSED) {
intval = 0;
floatval = inputs->yaxis < 0 ? -(f32)inputs->yaxis : inputs->yaxis;
@ -10887,7 +10887,7 @@ Gfx *menuitemPlayerStatsRender(Gfx *gdl, struct menurendercontext *context)
// Write selected player's name
weight = func0f006b08(40) * 255;
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
selectioncolour = g_MenuColourPalettes[context->dialog->type].focused;
} else {
selectioncolour = colourBlend(
@ -10904,7 +10904,7 @@ Gfx *menuitemPlayerStatsRender(Gfx *gdl, struct menurendercontext *context)
selectioncolour, context->width, context->height, 0, 0);
// "Suicides" heading
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
maincolour = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
maincolour = colourBlend(
@ -10937,7 +10937,7 @@ Gfx *menuitemPlayerStatsRender(Gfx *gdl, struct menurendercontext *context)
ypos += 12;
if (mpGetNumChrs() >= 2) {
if (context->dialog->transitiontimer < 0) {
if (context->dialog->transitionfrac < 0) {
maincolour = g_MenuColourPalettes[context->dialog->type].unfocused;
} else {
maincolour = colourBlend(
@ -11729,12 +11729,12 @@ glabel menuitemPlayerStatsRender
);
#endif
bool menuitemPlayerStatsTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data)
bool menuitemPlayerStatsTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
f32 floatval;
s32 intval;
if ((arg3 & 2) && !dialog->dimmed) {
if ((tickflags & MENUTICKFLAG_ITEMISFOCUSED) && !dialog->dimmed) {
intval = 0;
floatval = inputs->yaxis < 0 ? -(f32)inputs->yaxis : inputs->yaxis;
@ -11761,7 +11761,7 @@ bool menuitemPlayerStatsTick(struct menuitem *item, struct menudialog *dialog, s
}
}
menuitemDropdownTick(item, dialog, inputs, arg3, data);
menuitemDropdownTick(item, dialog, inputs, tickflags, data);
}
Gfx *menuitemPlayerStatsOverlay(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, struct menudialog *dialog, union menuitemdata *data)
@ -12502,7 +12502,7 @@ Gfx *menuitemControllerRender(Gfx *gdl, struct menurendercontext *context)
contalpha = data->contfadetimer;
gdl = func0f153628(gdl);
if (dialog->transitiontimer < 0) {
if (dialog->transitionfrac < 0) {
colour = g_MenuColourPalettes[dialog->type].unfocused;
} else {
colour = colourBlend(
@ -12601,20 +12601,20 @@ Gfx *menuitemRender(Gfx *gdl, struct menurendercontext *context)
/**
* Return true if default up/down/left/right/back behaviour should be used.
*/
bool menuitemTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data)
bool menuitemTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data)
{
switch (item->type) {
case MENUITEMTYPE_LIST: return menuitemListTick(item, inputs, arg3, data);
case MENUITEMTYPE_SELECTABLE: return menuitemSelectableTick(item, inputs, arg3);
case MENUITEMTYPE_SLIDER: return menuitemSliderTick(item, dialog, inputs, arg3, data);
case MENUITEMTYPE_CHECKBOX: return menuitemCheckboxTick(item, inputs, arg3);
case MENUITEMTYPE_SCROLLABLE: return menuitemScrollableTick(item, dialog, inputs, arg3, data);
case MENUITEMTYPE_LIST: return menuitemListTick(item, inputs, tickflags, data);
case MENUITEMTYPE_SELECTABLE: return menuitemSelectableTick(item, inputs, tickflags);
case MENUITEMTYPE_SLIDER: return menuitemSliderTick(item, dialog, inputs, tickflags, data);
case MENUITEMTYPE_CHECKBOX: return menuitemCheckboxTick(item, inputs, tickflags);
case MENUITEMTYPE_SCROLLABLE: return menuitemScrollableTick(item, dialog, inputs, tickflags, data);
case MENUITEMTYPE_MARQUEE: return menuitemMarqueeTick(item, data);
case MENUITEMTYPE_RANKING: return menuitemRankingTick(inputs, arg3, data);
case MENUITEMTYPE_DROPDOWN: return menuitemDropdownTick(item, dialog, inputs, arg3, data);
case MENUITEMTYPE_KEYBOARD: return menuitemKeyboardTick(item, inputs, arg3, data);
case MENUITEMTYPE_CAROUSEL: return menuitemCarouselTick(item, inputs, arg3);
case MENUITEMTYPE_PLAYERSTATS: return menuitemPlayerStatsTick(item, dialog, inputs, arg3, data);
case MENUITEMTYPE_RANKING: return menuitemRankingTick(inputs, tickflags, data);
case MENUITEMTYPE_DROPDOWN: return menuitemDropdownTick(item, dialog, inputs, tickflags, data);
case MENUITEMTYPE_KEYBOARD: return menuitemKeyboardTick(item, inputs, tickflags, data);
case MENUITEMTYPE_CAROUSEL: return menuitemCarouselTick(item, inputs, tickflags);
case MENUITEMTYPE_PLAYERSTATS: return menuitemPlayerStatsTick(item, dialog, inputs, tickflags, data);
}
return true;

View File

@ -4145,7 +4145,7 @@ u32 mpGetLockPlayerNum(void)
return g_MpLockInfo.lockedplayernum;
}
bool mpIsPlayerLockedOut(u32 playernum)
bool mpIsPlayerLockedOut(s32 playernum)
{
if (g_BossFile.locktype == MPLOCKTYPE_NONE) {
return false;

View File

@ -1457,9 +1457,16 @@
#define MENUDIALOGFLAG_0400 0x0400
#define MENUDIALOGFLAG_0800 0x0800
#define MENUDIALOGSTATE_PREOPEN 0
#define MENUDIALOGSTATE_OPENING 1
#define MENUDIALOGSTATE_POPULATING 2
#define MENUDIALOGSTATE_POPULATED 3
#define MENUDIALOGTYPE_DEFAULT 1
#define MENUDIALOGTYPE_DANGER 2
#define MENUDIALOGTYPE_SUCCESS 3
#define MENUDIALOGTYPE_4 4
#define MENUDIALOGTYPE_WHITE 5
#define MENUITEMFLAG_00000001 0x00000001
#define MENUITEMFLAG_00000004 0x00000004
@ -1474,11 +1481,14 @@
#define MENUITEMFLAG_00000800 0x00000800
#define MENUITEMFLAG_00001000 0x00001000
#define MENUITEMFLAG_00008000 0x00008000
#define MENUITEMFLAG_00010000 0x00010000
#define MENUITEMFLAG_00020000 0x00020000
#define MENUITEMFLAG_00040000 0x00040000
#define MENUITEMFLAG_00080000 0x00080000
#define MENUITEMFLAG_00100000 0x00100000
#define MENUITEMFLAG_00200000 0x00200000
#define MENUITEMFLAG_00400000 0x00400000
#define MENUITEMFLAG_00800000 0x00800000
#define MENUITEMFLAG_01000000 0x01000000
#define MENUITEMFLAG_02000000 0x02000000
#define MENUITEMFLAG_04000000 0x04000000
@ -1551,6 +1561,7 @@
#define MENUROOT_COOPCONTINUE 9
#define MENUROOT_4MBFILEMGR 10
#define MENUROOT_4MBMAINMENU 11
#define MENUROOT_12 12
#define MENUROOT_TRAINING 13
#define MENUSOUND_SWIPE 0x00 // Navigating to left/right dialog
@ -1565,6 +1576,11 @@
#define MENUSOUND_0B 0x0b
#define MENUSOUND_KEYBOARDFOCUS 0x0c // Changing focus within a keyboard item
#define MENUSOUND_KEYBOARDCANCEL 0x0d // Pressing A on a keyboard's cancel button
#define MENUSOUND_SUCCESS 0x0e
#define MENUTICKFLAG_DIALOGISCURRENT 0x01
#define MENUTICKFLAG_ITEMISFOCUSED 0x02
#define MENUTICKFLAG_DIALOGISDIMMED 0x04
#define MISCBIO_MAIANS 0
#define MISCBIO_SKEDAR 1

View File

@ -31,7 +31,7 @@ char *menuResolveDialogTitle(struct menudialogdef *dialogdef);
void func0f0f15a4(struct menuitem *item, s32 *arg1);
void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struct menudialog *dialog);
void func0f0f1d6c(struct menudialogdef *dialogdef, struct menudialog *dialog, struct menu *menu);
u32 func0f0f1ef4(void);
void func0f0f1ef4(struct menudialog *dialog);
void dialogCalculateContentSize(struct menudialogdef *dialogdef, struct menudialog *dialog, struct menu *menu);
s32 dialogFindItem(struct menudialog *dialog, struct menuitem *item, s32 *rowindex, s32 *colindex);
bool menuIsScrollableUnscrollable(struct menuitem *item);
@ -42,7 +42,7 @@ struct menuitem *dialogFindFirstItem(struct menudialog *dialog);
u32 func0f0f2928(void);
u32 func0f0f29cc(void);
u32 func0f0f2b2c(void);
u32 func0f0f2c44(void);
s32 func0f0f2c44(struct menudialog *dialog, s32 leftright, s32 updown);
void menuOpenDialog(struct menudialogdef *dialogdef, struct menudialog *arg1, struct menu *menu);
void menuPushDialog(struct menudialogdef *dialogdef);
@ -77,8 +77,8 @@ Gfx *menuRenderDialog(Gfx *gdl, struct menudialog *dialog, struct menu *menu, s3
Gfx *menuRenderDialogs(Gfx *gdl);
void func0f0f8bb4(u8 *arg0, u32 arg1, u32 arg2);
void menuInit(void);
u32 func0f0f9030(void);
void dialogProcessInput(struct menudialog *dialog, struct menuinputs *inputs, bool iscurrent);
void func0f0f9030(s32 arg0);
void dialogTick(struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags);
void dialogInitItems(struct menudialog *dialog);
void func0f0fa6ac(void);
void menuProcessInput(void);

View File

@ -9,16 +9,16 @@ s32 menuitem0f0e5ef8(s16 arg0, struct menuitem *item);
u32 menuitem0f0e6038(void);
Gfx *menuitemListOverlay(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2);
Gfx *menuitemListRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data);
bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
void menuitemDropdownInit(struct menuitem *item, union menuitemdata *data);
Gfx *menuitemDropdownRender(Gfx *gdl);
bool menuitemDropdownTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data);
bool menuitemDropdownTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
Gfx *menuitemDropdownOverlay(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, struct menudialog *dialog, union menuitemdata *data);
bool menuitemKeyboardIsStringEmptyOrSpaces(char *text);
Gfx *menuitemKeyboardRender(Gfx *gdl, struct menurendercontext *thing);
bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data);
bool menuitemKeyboardTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
void menuitemKeyboardInit(struct menuitem *item, union menuitemdata *data);
Gfx *menuitemSeparatorRender(Gfx *gdl, struct menurendercontext *context);
@ -33,21 +33,21 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context);
Gfx *menuitemMeterRender(Gfx *gdl, struct menurendercontext *context);
Gfx *menuitemSelectableRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemSelectableTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2);
bool menuitemSelectableTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags);
Gfx *menuitemSliderRender(Gfx *gdl);
bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data);
bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
void menuitemSliderInit(union menuitemdata *data);
Gfx *menuitemCarouselRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemCarouselTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2);
bool menuitemCarouselTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags);
Gfx *menuitemCheckboxRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemCheckboxTick(struct menuitem *item, struct menuinputs *inputs, u32 arg2);
bool menuitemCheckboxTick(struct menuitem *item, struct menuinputs *inputs, u32 tickflags);
char *menuitemScrollableGetText(u32 type);
Gfx *menuitemScrollableRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemScrollableTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data);
bool menuitemScrollableTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
void menuitemScrollableInit(union menuitemdata *data);
Gfx *menuitemMarqueeRender(Gfx *gdl, struct menurendercontext *context);
@ -57,11 +57,11 @@ void menuitemMarqueeInit(union menuitemdata *data);
Gfx *menuitem07Render(Gfx *gdl);
Gfx *menuitemRankingRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemRankingTick(struct menuinputs *inputs, u32 arg1, union menuitemdata *data);
bool menuitemRankingTick(struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
void menuitemRankingInit(union menuitemdata *data);
Gfx *menuitemPlayerStatsRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemPlayerStatsTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data);
bool menuitemPlayerStatsTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
Gfx *menuitemPlayerStatsOverlay(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, struct menudialog *dialog, union menuitemdata *data);
void menuitemPlayerStatsInit(struct menuitem *item, union menuitemdata *data);
@ -75,7 +75,7 @@ Gfx *menuitemControllerRender(Gfx *gdl, struct menurendercontext *context);
void menuitemControllerInit(union menuitemdata *data);
Gfx *menuitemRender(Gfx *gdl, struct menurendercontext *context);
bool menuitemTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 arg3, union menuitemdata *data);
bool menuitemTick(struct menuitem *item, struct menudialog *dialog, struct menuinputs *inputs, u32 tickflags, union menuitemdata *data);
void menuitemInit(struct menuitem *item, union menuitemdata *data);
Gfx *menuitemOverlay(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, struct menudialog *dialog, union menuitemdata *data);

View File

@ -61,7 +61,7 @@ s32 mpChooseRandomLockPlayer(void);
bool mpSetLock(s32 locktype, s32 playernum);
s32 mpGetLockType(void);
u32 mpGetLockPlayerNum(void);
bool mpIsPlayerLockedOut(u32 playernum);
bool mpIsPlayerLockedOut(s32 playernum);
void mpCalculateLockIfLastWinnerOrLoser(void);
bool mpIsTrackUnlocked(s32 tracknum);
s32 mpGetTrackSlotIndex(s32 tracknum);

View File

@ -3777,29 +3777,29 @@ struct menudialog {
struct menuitem *focuseditem;
/*0x0c*/ bool dimmed; // when dropdown is open or slider is active
/*0x10*/ u32 unk10;
/*0x14*/ s32 x14;
/*0x18*/ s32 y18;
/*0x1c*/ s32 width1c;
/*0x20*/ s32 height20;
/*0x14*/ s32 x;
/*0x18*/ s32 y;
/*0x1c*/ s32 width;
/*0x20*/ s32 height;
/*0x24*/ s32 contentwidth;
/*0x28*/ s32 contentheight;
/*0x2c*/ s32 x2c;
/*0x30*/ s32 y30;
/*0x34*/ s32 width34;
/*0x38*/ s32 height38;
/*0x2c*/ s32 dstx;
/*0x30*/ s32 dsty;
/*0x34*/ s32 dstwidth;
/*0x38*/ s32 dstheight;
/*0x3c*/ u8 type; // dialog type
/*0x3d*/ u8 type2; // used when transitioning
/*0x40*/ f32 transitiontimer; // >= 0 means transitioning from one dialog type to another
/*0x40*/ f32 transitionfrac; // >= 0 means transitioning from one dialog type to another
/*0x44*/ u32 colourweight;
/*0x48*/ f32 unk48;
/*0x48*/ f32 redrawtimer;
/*0x4c*/ f32 unk4c;
/*0x50*/ f32 unk50;
/*0x54*/ u32 unk54;
/*0x50*/ f32 statefrac;
/*0x54*/ s32 unk54;
/*0x58*/ u32 unk58;
/*0x5c*/ u32 unk5c;
/*0x60*/ u8 unk60;
/*0x64*/ u32 unk64;
/*0x68*/ u32 unk68;
/*0x5c*/ s32 unk5c;
/*0x60*/ u8 state;
/*0x64*/ s32 scroll; // scroll related, 0 when at top, negative when scrolled down
/*0x68*/ s32 dstscroll; // same value as unk64
/*0x6c*/ u8 unk6c;
/*0x6d*/ s8 unk6d;
/*0x6e*/ u8 unk6e;