Decompile menuTickItemScrollable

This commit is contained in:
Ryan Dwyer 2020-09-25 23:05:20 +10:00
parent 14fcaa08b4
commit 3d923f5d0b
5 changed files with 234 additions and 2370 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1938,7 +1938,7 @@ bool menuIsScrollableUnscrollable(struct menuitem *item)
return false;
}
bool menuIsItemDisabled(struct menuitem *item, struct menurenderthing10 *thing10)
bool menuIsItemDisabled(struct menuitem *item, struct menuframe *frame)
{
union handlerdata sp30;
s16 sp2e;
@ -1963,7 +1963,7 @@ bool menuIsItemDisabled(struct menuitem *item, struct menurenderthing10 *thing10
return true;
}
func0f0f1618(item, &sp2e, &sp2c, thing10);
func0f0f1618(item, &sp2e, &sp2c, frame);
if (sp2c == 0) {
return true;
@ -1972,7 +1972,7 @@ bool menuIsItemDisabled(struct menuitem *item, struct menurenderthing10 *thing10
return false;
}
bool func0f0f2674(struct menuitem *item, struct menurenderthing10 *thing10, u32 arg2)
bool func0f0f2674(struct menuitem *item, struct menuframe *frame, u32 arg2)
{
u32 thing1;
u32 thing2;
@ -1992,10 +1992,10 @@ bool func0f0f2674(struct menuitem *item, struct menurenderthing10 *thing10, u32
case MENUITEMTYPE_14:
case MENUITEMTYPE_16:
case MENUITEMTYPE_18:
func0f0f2354(thing10, item, &thing1, &thing2);
func0f0f2354(frame, item, &thing1, &thing2);
}
if (menuIsItemDisabled(item, thing10)) {
if (menuIsItemDisabled(item, frame)) {
return false;
}
@ -2458,8 +2458,8 @@ void menuOpenDialog(struct menudialog *dialog, struct menuframe *frame, struct m
func0f0f1d6c(dialog, frame, menu);
func0f0fa574(frame);
frame->dialogtype = dialog->type;
frame->unk40 = -1;
frame->type = dialog->type;
frame->transitiontimer = -1;
frame->unk48 = 0;
frame->unk4c = random() * (1.0f / U32_MAX) * M_TAU;
@ -2910,7 +2910,7 @@ void menuCloseDialog(void)
g_Menus[g_MpPlayerNum].numframes--;
}
g_Menus[g_MpPlayerNum].unk65c = g_Menus[g_MpPlayerNum].unk666[layer->siblings[0]->unk04][0];
g_Menus[g_MpPlayerNum].unk65c = g_Menus[g_MpPlayerNum].unk660[layer->siblings[0]->unk04][3];
g_Menus[g_MpPlayerNum].unk6d8 = layer->siblings[0]->unk04;
g_Menus[g_MpPlayerNum].unk81c = layer->siblings[0]->unk06;
g_Menus[g_MpPlayerNum].depth--;

View File

@ -22,7 +22,7 @@ void menuInitItemKeyboard(struct menuitem *item, union menuitemtickdata *data);
Gfx *menuRenderItemSeparator(Gfx *gdl, struct menurenderthing *thing);
Gfx *menuRenderObjective(Gfx *gfx, struct menurenderthing10 *thing10, s32 index, s32 position, s32 x, s32 y, s32 width, s32 height, s32 arg8, s32 arg9);
Gfx *menuRenderObjective(Gfx *gfx, struct menuframe *frame, s32 index, s32 position, s32 x, s32 y, s32 width, s32 height, s32 arg8, s32 arg9);
Gfx *menuRenderItemObjectives(Gfx *gdl, struct menurenderthing *thing);
Gfx *menuRenderItemModel(Gfx *gdl, struct menurenderthing *thing);

View File

@ -22,14 +22,14 @@ char *menuResolveText(u32 thing, struct menuitem *item);
char *menuResolveParam2Text(struct menuitem *item);
char *menuResolveParam1Text(struct menuitem *item);
void func0f0f15a4(u8 *arg0, u32 *arg1);
void func0f0f1618(struct menuitem *item, void *arg1, void *arg2, struct menurenderthing10 *arg3);
void func0f0f1618(struct menuitem *item, void *arg1, void *arg2, struct menuframe *frame);
void func0f0f1d6c(struct menudialog *dialog, struct menuframe *frame, struct menu *menu);
u32 func0f0f1ef4(void);
void func0f0f2134(struct menudialog *dialog, struct menuframe *frame, struct menu *menu);
void func0f0f2354(struct menurenderthing10 *thing10, struct menuitem *item, u32 *arg2, u32 *arg3);
u32 func0f0f2354(struct menuframe *frame, struct menuitem *item, u32 *arg2, u32 *arg3);
bool menuIsScrollableUnscrollable(struct menuitem *item);
bool menuIsItemDisabled(struct menuitem *item, struct menurenderthing10 *thing10);
bool func0f0f2674(struct menuitem *item, struct menurenderthing10 *thing10, u32 arg2);
bool menuIsItemDisabled(struct menuitem *item, struct menuframe *frame);
bool func0f0f2674(struct menuitem *item, struct menuframe *frame, u32 arg2);
u32 func0f0f26fc(void);
struct menuitem *func0f0f288c(struct menuframe *frame);
u32 func0f0f2928(void);

View File

@ -3290,8 +3290,8 @@ struct menuitemtickdata_ranking {
struct menuitemtickdata_scrollable {
s16 unk00;
u16 unk02;
u16 unk04;
s16 unk02;
s16 unk04;
s16 unk06;
};
@ -3607,9 +3607,10 @@ struct menuframe {
/*0x30*/ u32 unk30;
/*0x34*/ u32 unk34;
/*0x38*/ u32 unk38;
/*0x3c*/ u8 dialogtype;
/*0x40*/ f32 unk40;
/*0x44*/ u32 unk44;
/*0x3c*/ u8 type; // dialog type
/*0x3c*/ u8 type2; // used when transitioning
/*0x40*/ f32 transitiontimer; // >= 0 means transitioning from one dialog type to another
/*0x44*/ u32 colourweight;
/*0x48*/ f32 unk48;
/*0x4c*/ f32 unk4c;
/*0x50*/ f32 unk50;
@ -3703,7 +3704,7 @@ struct menu {
/*0x464*/ struct menulayer layers[6];
/*0x4f4*/ s16 depth; // index into layers. 1-indexed?
/*0x4f8*/ struct menuframe *curframe;
/*0x4fc*/ u32 unk4fc;
/*0x4fc*/ s16 unk4fc[1][2];
/*0x500*/ u32 unk500;
/*0x504*/ u32 unk504;
/*0x508*/ u32 unk508;
@ -3792,9 +3793,8 @@ struct menu {
/*0x654*/ u32 unk654;
/*0x658*/ u32 unk658;
/*0x65c*/ s32 unk65c;
/*0x660*/ u32 unk660;
/*0x664*/ u16 unk664;
/*0x666*/ u16 unk666[1][5]; // length unknown
/*0x660*/ u16 unk660[1][5]; // length unknown
/*0x66c*/ u32 unk66c;
/*0x670*/ u32 unk670;
/*0x674*/ u32 unk674;
/*0x678*/ u32 unk678;
@ -6843,29 +6843,6 @@ struct splat {
/*0x440*/ u32 unk440;
};
struct menurenderthing10 {
/*0x00*/ u32 unk00;
/*0x04*/ u32 unk04;
/*0x08*/ u32 unk08;
/*0x0c*/ u32 unk0c;
/*0x10*/ u32 unk10;
/*0x14*/ u32 unk14;
/*0x18*/ u32 unk18;
/*0x1c*/ u32 unk1c;
/*0x20*/ u32 unk20;
/*0x24*/ u32 unk24;
/*0x28*/ u32 unk28;
/*0x2c*/ u32 unk2c;
/*0x30*/ u32 unk30;
/*0x34*/ u32 unk34;
/*0x38*/ u32 unk38;
/*0x3c*/ u8 type; // dialog type
/*0x3c*/ u8 type2; // used when transitioning
/*0x40*/ f32 transitiontimer; // >= 0 means transitioning from one dialog type to another
/*0x44*/ u32 colourweight;
/*0x48*/ f32 unk48;
};
struct menurenderthing14_controller {
u8 textfadetimer;
u8 contfadetimer;
@ -6881,7 +6858,7 @@ struct menurenderthing {
s16 height;
struct menuitem *item;
bool focused;
struct menurenderthing10 *unk10;
struct menuframe *frame;
// Suspected to be handlerdata
union {