diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index fc2c5d360..7d782e081 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -22936,7 +22936,7 @@ glabel hudRenderAmmo /* f0aaf98: afa00028 */ sw $zero,0x28($sp) /* f0aaf9c: afb80014 */ sw $t8,0x14($sp) /* f0aafa0: afb90018 */ sw $t9,0x18($sp) -/* f0aafa4: 0fc5580f */ jal textRenderWhite +/* f0aafa4: 0fc5580f */ jal textRenderProjected /* f0aafa8: afae001c */ sw $t6,0x1c($sp) /* f0aafac: 0fc54f93 */ jal func0f153e4c /* f0aafb0: afa20130 */ sw $v0,0x130($sp) @@ -23136,7 +23136,7 @@ glabel hudRenderAmmo /* f0ab290: afa00028 */ sw $zero,0x28($sp) /* f0ab294: afae0014 */ sw $t6,0x14($sp) /* f0ab298: afb80018 */ sw $t8,0x18($sp) -/* f0ab29c: 0fc5580f */ jal textRenderWhite +/* f0ab29c: 0fc5580f */ jal textRenderProjected /* f0ab2a0: afb9001c */ sw $t9,0x1c($sp) /* f0ab2a4: 0fc54f93 */ jal func0f153e4c /* f0ab2a8: afa20130 */ sw $v0,0x130($sp) diff --git a/src/game/game_0dcdb0.c b/src/game/game_0dcdb0.c index 7435e69c8..ce70f979f 100644 --- a/src/game/game_0dcdb0.c +++ b/src/game/game_0dcdb0.c @@ -4059,7 +4059,7 @@ glabel var7f1adef4 /* f0e005c: afb30018 */ sw $s3,0x18($sp) /* f0e0060: 02e03025 */ or $a2,$s7,$zero /* f0e0064: 26070020 */ addiu $a3,$s0,0x20 -/* f0e0068: 0fc5580f */ jal textRenderWhite +/* f0e0068: 0fc5580f */ jal textRenderProjected /* f0e006c: afac0014 */ sw $t4,0x14($sp) /* f0e0070: 1000001f */ b .L0f0e00f0 /* f0e0074: 00409025 */ or $s2,$v0,$zero @@ -4162,7 +4162,7 @@ glabel var7f1adef4 /* f0e01e4: afb30018 */ sw $s3,0x18($sp) /* f0e01e8: 02e03025 */ or $a2,$s7,$zero /* f0e01ec: 26070020 */ addiu $a3,$s0,0x20 -/* f0e01f0: 0fc5580f */ jal textRenderWhite +/* f0e01f0: 0fc5580f */ jal textRenderProjected /* f0e01f4: afaf0014 */ sw $t7,0x14($sp) /* f0e01f8: 10000021 */ b .L0f0e0280 /* f0e01fc: 00409025 */ or $s2,$v0,$zero @@ -4327,7 +4327,7 @@ glabel var7f1adef4 /* f0e0458: afb30018 */ sw $s3,0x18($sp) /* f0e045c: 02e03025 */ or $a2,$s7,$zero /* f0e0460: 26070020 */ addiu $a3,$s0,0x20 -/* f0e0464: 0fc5580f */ jal textRenderWhite +/* f0e0464: 0fc5580f */ jal textRenderProjected /* f0e0468: afa80014 */ sw $t0,0x14($sp) /* f0e046c: 1000001e */ b .L0f0e04e8 /* f0e0470: 00409025 */ or $s2,$v0,$zero @@ -4653,7 +4653,7 @@ glabel var7f1adef4 // // fe0 // gdl = hudRenderMessageBox(gdl, x - 3, y - 3, x + msg->width + 2, y + msg->height + 2, 1.0f, bordercolour, spc0); // // 020 -// gdl = textRenderWhite(gdl, &x, &y, msg->text, msg->font1, msg->font2, textcolour, viGetX(), viGetY(), 0, 0); +// gdl = textRenderProjected(gdl, &x, &y, msg->text, msg->font1, msg->font2, textcolour, viGetX(), viGetY(), 0, 0); // } else { // // 078 // gdl = func0f153a34(gdl, x, y, x + msg->width, y + msg->height, 0); @@ -4680,7 +4680,7 @@ glabel var7f1adef4 // // 1a0 // gdl = hudRenderMessageBox(gdl, x - 3, y - 3, x + msg->width + 2, y + msg->height + 2, 1.0f, bordercolour, 1.0f); // // 1f0 -// gdl = textRenderWhite(gdl, &x, &y, msg->text, msg->font1, msg->font2, textcolour, viGetX(), viGetY(), 0, 0); +// gdl = textRenderProjected(gdl, &x, &y, msg->text, msg->font1, msg->font2, textcolour, viGetX(), viGetY(), 0, 0); // } else { // // 200 // gdl = func0f153a34(gdl, x, y, x + msg->width, y + msg->height, 0); @@ -4727,7 +4727,7 @@ glabel var7f1adef4 // // 414 // gdl = hudRenderMessageBox(gdl, x - 3, y - 3, x + msg->width + 2, y + msg->height + 2, 1.0f, bordercolour, 1.0f - spa8); // // 464 -// gdl = textRenderWhite(gdl, &x, &y, msg->text, msg->font1, msg->font2, textcolour, viGetX(), viGetY(), 0, 0); +// gdl = textRenderProjected(gdl, &x, &y, msg->text, msg->font1, msg->font2, textcolour, viGetX(), viGetY(), 0, 0); // } else { // // 474 // gdl = func0f153a34(gdl, x, y, x + msg->width, y + msg->height, 0); diff --git a/src/game/game_0e5ce0.c b/src/game/game_0e5ce0.c index 67d177ca6..35302177a 100644 --- a/src/game/game_0e5ce0.c +++ b/src/game/game_0e5ce0.c @@ -441,7 +441,7 @@ glabel func0f0e6038 /* f0e6270: afab0014 */ sw $t3,0x14($sp) /* f0e6274: afaa0010 */ sw $t2,0x10($sp) /* f0e6278: afa8001c */ sw $t0,0x1c($sp) -/* f0e627c: 0fc5580f */ jal textRenderWhite +/* f0e627c: 0fc5580f */ jal textRenderProjected /* f0e6280: afac0020 */ sw $t4,0x20($sp) /* f0e6284: 8fbf003c */ lw $ra,0x3c($sp) /* f0e6288: 8fb00034 */ lw $s0,0x34($sp) @@ -1567,7 +1567,7 @@ glabel menuRenderItemList /* f0e733c: 014dc021 */ addu $t8,$t2,$t5 /* f0e7340: afb8001c */ sw $t8,0x1c($sp) /* f0e7344: afa80024 */ sw $t0,0x24($sp) -/* f0e7348: 0fc5580f */ jal textRenderWhite +/* f0e7348: 0fc5580f */ jal textRenderProjected /* f0e734c: afa30020 */ sw $v1,0x20($sp) /* f0e7350: 240b00ff */ addiu $t3,$zero,0xff /* f0e7354: afb300b8 */ sw $s3,0xb8($sp) @@ -1709,7 +1709,7 @@ glabel menuRenderItemList /* f0e7550: 27a50130 */ addiu $a1,$sp,0x130 /* f0e7554: 27a6012c */ addiu $a2,$sp,0x12c /* f0e7558: 02603825 */ or $a3,$s3,$zero -/* f0e755c: 0fc5580f */ jal textRenderWhite +/* f0e755c: 0fc5580f */ jal textRenderProjected /* f0e7560: afa80024 */ sw $t0,0x24($sp) /* f0e7564: 00409025 */ or $s2,$v0,$zero .L0f0e7568: @@ -1730,7 +1730,7 @@ glabel menuRenderItemList /* f0e759c: 27bd0170 */ addiu $sp,$sp,0x170 ); -bool menuTickItemList(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemtickdata *data) +bool menuTickItemList(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data) { f32 f0; union handlerdata handlerdata; @@ -1863,7 +1863,7 @@ bool menuTickItemList(struct menuitem *item, struct menuinputs *inputs, u32 arg2 return true; } -void menuInitItemDropdown(struct menuitem *item, union menuitemtickdata *data) +void menuInitItemDropdown(struct menuitem *item, union menuitemdata *data) { s32 (*handler)(u32 operation, struct menuitem *item, union handlerdata *data); union handlerdata handlerdata; @@ -2266,7 +2266,7 @@ glabel menuRenderItemDropdown /* f0e7fc8: afa00024 */ sw $zero,0x24($sp) /* f0e7fcc: 27a60070 */ addiu $a2,$sp,0x70 /* f0e7fd0: 8fa70078 */ lw $a3,0x78($sp) -/* f0e7fd4: 0fc5580f */ jal textRenderWhite +/* f0e7fd4: 0fc5580f */ jal textRenderProjected /* f0e7fd8: afaa0020 */ sw $t2,0x20($sp) /* f0e7fdc: afa20080 */ sw $v0,0x80($sp) /* f0e7fe0: 8e0e0010 */ lw $t6,0x10($s0) @@ -2348,7 +2348,7 @@ glabel menuRenderItemDropdown /* f0e8104: afa00024 */ sw $zero,0x24($sp) /* f0e8108: 27a60070 */ addiu $a2,$sp,0x70 /* f0e810c: 8fa70078 */ lw $a3,0x78($sp) -/* f0e8110: 0fc5580f */ jal textRenderWhite +/* f0e8110: 0fc5580f */ jal textRenderProjected /* f0e8114: afac0020 */ sw $t4,0x20($sp) /* f0e8118: afa20080 */ sw $v0,0x80($sp) .L0f0e811c: @@ -2361,7 +2361,7 @@ glabel menuRenderItemDropdown /* f0e8134: 27bd0080 */ addiu $sp,$sp,0x80 ); -bool menuTickItemDropdown(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data) +bool menuTickItemDropdown(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data) { u32 stack; @@ -2634,12 +2634,12 @@ bool menuIsStringEmptyOrSpaces(char *text) * | DEL | CAPS | CANCEL | OK | * +-------+-----------+-----------+-------+ */ -Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurendercontext *context) { char label[8]; s32 x; s32 y; - struct menuitemtickdata_keyboard *data = (struct menuitemtickdata_keyboard *)thing->unk14.s16; + struct menuitemdata_keyboard *data = &context->data->keyboard; u32 cursorcolour; u32 textcolour; u32 tmpcolour; @@ -2655,44 +2655,44 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) label[2] = '\0'; func0f153e38( - g_MenuColourPalettes3[thing->frame->type].unfocused, - g_MenuColourPalettes2[thing->frame->type].unfocused); + g_MenuColourPalettes3[context->frame->type].unfocused, + g_MenuColourPalettes2[context->frame->type].unfocused); // Draw input field background gdl = gfxSetPrimColour(gdl, 0x0000ff7f); - if (thing->item->param3 == 0) { + if (context->item->param3 == 0) { // Half width gDPFillRectangle(gdl++, - (thing->x + 4) * g_ScreenWidthMultiplier, thing->y + 1, - (thing->x + 63) * g_ScreenWidthMultiplier, thing->y + 10); + (context->x + 4) * g_ScreenWidthMultiplier, context->y + 1, + (context->x + 63) * g_ScreenWidthMultiplier, context->y + 10); } else { // Full width gDPFillRectangle(gdl++, - (thing->x + 4) * g_ScreenWidthMultiplier, thing->y + 1, - (thing->x + 125) * g_ScreenWidthMultiplier, thing->y + 10); + (context->x + 4) * g_ScreenWidthMultiplier, context->y + 1, + (context->x + 125) * g_ScreenWidthMultiplier, context->y + 10); } // Render text value gdl = func0f153838(gdl); - x = thing->x + 4; - y = thing->y + 2; + x = context->x + 4; + y = context->y + 2; gdl = func0f153628(gdl); - gdl = textRenderWhite(gdl, &x, &y, data->string, var8007fb10, var8007fb0c, 0xffffffff, thing->width, thing->height, 0, 0); + gdl = textRenderProjected(gdl, &x, &y, data->string, var8007fb10, var8007fb0c, 0xffffffff, context->width, context->height, 0, 0); gdl = func0f153780(gdl); // Render cursor alpha = func0f006b08(40) * 255; - if (thing->frame->transitiontimer < 0) { - cursorcolour = g_MenuColourPalettes[thing->frame->type].focused; + if (context->frame->transitiontimer < 0) { + cursorcolour = g_MenuColourPalettes[context->frame->type].focused; } else { cursorcolour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].focused, - g_MenuColourPalettes[thing->frame->type].focused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].focused, + g_MenuColourPalettes[context->frame->type].focused, + context->frame->colourweight); } cursorcolour = colourBlend(colourBlend(0x0000ffff, 0x000000ff, 127), cursorcolour, alpha); @@ -2700,15 +2700,15 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) gdl = gfxSetPrimColour(gdl, cursorcolour); gDPFillRectangle(gdl++, - (x + 1) * g_ScreenWidthMultiplier, thing->y + 2, - (x + 3) * g_ScreenWidthMultiplier, thing->y + 9); + (x + 1) * g_ScreenWidthMultiplier, context->y + 2, + (x + 3) * g_ScreenWidthMultiplier, context->y + 9); gdl = func0f153838(gdl); // Render horizontal grid lines for (row = 0; row < 6; row++) { - gdl = renderFilledRect(gdl, thing->x + 4, thing->y + row * 11 + 13, - thing->x + 124, thing->y + row * 11 + 14, 0x00ffff7f, 0x00ffff7f); + gdl = renderFilledRect(gdl, context->x + 4, context->y + row * 11 + 13, + context->x + 124, context->y + row * 11 + 14, 0x00ffff7f, 0x00ffff7f); } // Render vertical grid lines @@ -2719,27 +2719,27 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) rowspan = 4; } - gdl = renderFilledRect(gdl, thing->x + col * 12 + 4, thing->y + 13, - thing->x + col * 12 + 5, thing->y + rowspan * 11 + 14, 0x00ffff7f, 0x00ffff7f); + gdl = renderFilledRect(gdl, context->x + col * 12 + 4, context->y + 13, + context->x + col * 12 + 5, context->y + rowspan * 11 + 14, 0x00ffff7f, 0x00ffff7f); } gdl = func0f153628(gdl); - x = thing->x + 10; - y = thing->y + 2; + x = context->x + 10; + y = context->y + 2; for (col = 0; col < 10; col++) { for (row = 0; row < 5; row++) { - if (thing->frame->transitiontimer < 0) { - textcolour = g_MenuColourPalettes[thing->frame->type].unfocused; + if (context->frame->transitiontimer < 0) { + textcolour = g_MenuColourPalettes[context->frame->type].unfocused; } else { textcolour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].unfocused, - g_MenuColourPalettes[thing->frame->type].unfocused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].unfocused, + g_MenuColourPalettes[context->frame->type].unfocused, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { textcolour = colourBlend(textcolour, 0x00000000, 127) & 0xffffff00 | textcolour & 0xff; } @@ -2752,20 +2752,20 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) if (col == data->col && row == data->row) { alpha = func0f006b08(40) * 255; - if (thing->frame->transitiontimer < 0) { - tmpcolour = g_MenuColourPalettes[thing->frame->type].focused; + if (context->frame->transitiontimer < 0) { + tmpcolour = g_MenuColourPalettes[context->frame->type].focused; } else { tmpcolour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].focused, - g_MenuColourPalettes[thing->frame->type].focused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].focused, + g_MenuColourPalettes[context->frame->type].focused, + context->frame->colourweight); } textcolour = colourBlend(colourBlend(textcolour, textcolour & 0xff, 127), tmpcolour, alpha); } - x = thing->x + col * 12 + 4; - y = thing->y + row * 11 + 15; + x = context->x + col * 12 + 4; + y = context->y + row * 11 + 15; if (row == 4) { u16 labels[] = { @@ -2806,30 +2806,30 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) // Dim the OK button if string is empty if (index == 3 && menuIsStringEmptyOrSpaces(data->string)) { - if (thing->frame->transitiontimer < 0) { - textcolour = g_MenuColourPalettes[thing->frame->type].disabled; + if (context->frame->transitiontimer < 0) { + textcolour = g_MenuColourPalettes[context->frame->type].disabled; } else { textcolour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].disabled, - g_MenuColourPalettes[thing->frame->type].disabled, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].disabled, + g_MenuColourPalettes[context->frame->type].disabled, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { textcolour = colourBlend(textcolour, 0, 127) & 0xffffff00 | textcolour & 0xff; } func0f153e38( - g_MenuColourPalettes3[thing->frame->type].disabled, - g_MenuColourPalettes2[thing->frame->type].disabled); + g_MenuColourPalettes3[context->frame->type].disabled, + g_MenuColourPalettes2[context->frame->type].disabled); } - gdl = textRenderWhite(gdl, &x, &y, langGet(labels[index]), var8007fb08, var8007fb04, textcolour, thing->width, thing->height, 0, 0); + gdl = textRenderProjected(gdl, &x, &y, langGet(labels[index]), var8007fb08, var8007fb04, textcolour, context->width, context->height, 0, 0); if (index == 3 && menuIsStringEmptyOrSpaces(data->string)) { func0f153e38( - g_MenuColourPalettes3[thing->frame->type].unfocused, - g_MenuColourPalettes2[thing->frame->type].unfocused); + g_MenuColourPalettes3[context->frame->type].unfocused, + g_MenuColourPalettes2[context->frame->type].unfocused); } } } else { @@ -2843,7 +2843,7 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) textMeasure(&textheight, &textwidth, label, var8007fb10, var8007fb0c, 0); x = (12 - textwidth) / 2 + x; - gdl = textRenderWhite(gdl, &x, &y, label, var8007fb10, var8007fb0c, textcolour, thing->width, thing->height, 0, 0); + gdl = textRenderProjected(gdl, &x, &y, label, var8007fb10, var8007fb0c, textcolour, context->width, context->height, 0, 0); } } } @@ -2852,10 +2852,10 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) // Highlight border of focused button { - s32 x1 = thing->x + data->col * 12 + 4; - s32 x2 = thing->x + data->col * 12 + 16; - s32 y1 = thing->y + data->row * 11 + 13; - s32 y2 = thing->y + data->row * 11 + 24; + s32 x1 = context->x + data->col * 12 + 4; + s32 x2 = context->x + data->col * 12 + 16; + s32 y1 = context->y + data->row * 11 + 13; + s32 y2 = context->y + data->row * 11 + 24; if (data->row == 4) { if (data->col == 8) { @@ -2898,9 +2898,9 @@ Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing) * | DEL | CAPS | CANCEL | OK | * +-------+-----------+-----------+-------+ */ -bool menuTickItemKeyboard(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemtickdata *data) +bool menuTickItemKeyboard(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data) { - struct menuitemtickdata_keyboard *kb = &data->keyboard; + struct menuitemdata_keyboard *kb = &data->keyboard; union handlerdata handlerdata; s32 delete = false; @@ -3098,7 +3098,7 @@ bool menuTickItemKeyboard(struct menuitem *item, struct menuinputs *inputs, u32 return true; } -void menuInitItemKeyboard(struct menuitem *item, union menuitemtickdata *data) +void menuInitItemKeyboard(struct menuitem *item, union menuitemdata *data) { u32 stack; s32 i; @@ -3119,23 +3119,23 @@ void menuInitItemKeyboard(struct menuitem *item, union menuitemtickdata *data) data->keyboard.capslock = 0; } -Gfx *menuRenderItemSeparator(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemSeparator(Gfx *gdl, struct menurendercontext *context) { u32 colour; - if (thing->frame->transitiontimer < 0) { - colour = g_MenuColourPalettes[thing->frame->type].unfocused; + if (context->frame->transitiontimer < 0) { + colour = g_MenuColourPalettes[context->frame->type].unfocused; } else { colour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].unfocused, - g_MenuColourPalettes[thing->frame->type].unfocused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].unfocused, + g_MenuColourPalettes[context->frame->type].unfocused, + context->frame->colourweight); } colour = (colour & 0xffffff00) | 0x3f; return renderFilledRect(gdl, - thing->x, thing->y + 2, thing->x + thing->width, thing->y + 3, + context->x, context->y + 2, context->x + context->width, context->y + 3, colour, colour); } @@ -3272,7 +3272,7 @@ glabel menuRenderObjective /* f0e9a94: afab0010 */ sw $t3,0x10($sp) /* f0e9a98: afaf0018 */ sw $t7,0x18($sp) /* f0e9a9c: afb8001c */ sw $t8,0x1c($sp) -/* f0e9aa0: 0fc5580f */ jal textRenderWhite +/* f0e9aa0: 0fc5580f */ jal textRenderProjected /* f0e9aa4: afb90020 */ sw $t9,0x20($sp) /* f0e9aa8: 87ae0142 */ lh $t6,0x142($sp) /* f0e9aac: 8faa0154 */ lw $t2,0x154($sp) @@ -3306,7 +3306,7 @@ glabel menuRenderObjective /* f0e9b1c: afab0010 */ sw $t3,0x10($sp) /* f0e9b20: afaf0018 */ sw $t7,0x18($sp) /* f0e9b24: afb8001c */ sw $t8,0x1c($sp) -/* f0e9b28: 0fc5580f */ jal textRenderWhite +/* f0e9b28: 0fc5580f */ jal textRenderProjected /* f0e9b2c: afb90020 */ sw $t9,0x20($sp) /* f0e9b30: 1000001a */ b .L0f0e9b9c /* f0e9b34: afa20130 */ sw $v0,0x130($sp) @@ -3333,7 +3333,7 @@ glabel menuRenderObjective /* f0e9b84: afae0010 */ sw $t6,0x10($sp) /* f0e9b88: afaa0018 */ sw $t2,0x18($sp) /* f0e9b8c: afac001c */ sw $t4,0x1c($sp) -/* f0e9b90: 0fc5580f */ jal textRenderWhite +/* f0e9b90: 0fc5580f */ jal textRenderProjected /* f0e9b94: afab0020 */ sw $t3,0x20($sp) /* f0e9b98: afa20130 */ sw $v0,0x130($sp) .L0f0e9b9c: @@ -3438,7 +3438,7 @@ glabel menuRenderObjective /* f0e9d0c: afab0014 */ sw $t3,0x14($sp) /* f0e9d10: afaf0020 */ sw $t7,0x20($sp) /* f0e9d14: afac0010 */ sw $t4,0x10($sp) -/* f0e9d18: 0fc5580f */ jal textRenderWhite +/* f0e9d18: 0fc5580f */ jal textRenderProjected /* f0e9d1c: afad0018 */ sw $t5,0x18($sp) /* f0e9d20: 8fb800c4 */ lw $t8,0xc4($sp) /* f0e9d24: 8fac00c8 */ lw $t4,0xc8($sp) @@ -3465,7 +3465,7 @@ glabel menuRenderObjective /* f0e9d78: afae0014 */ sw $t6,0x14($sp) /* f0e9d7c: afaa0010 */ sw $t2,0x10($sp) /* f0e9d80: afad001c */ sw $t5,0x1c($sp) -/* f0e9d84: 0fc5580f */ jal textRenderWhite +/* f0e9d84: 0fc5580f */ jal textRenderProjected /* f0e9d88: afaf0020 */ sw $t7,0x20($sp) /* f0e9d8c: 8fb800c4 */ lw $t8,0xc4($sp) /* f0e9d90: 87b90146 */ lh $t9,0x146($sp) @@ -3794,9 +3794,9 @@ glabel menuRenderObjective /* f0ea28c: 27bd0130 */ addiu $sp,$sp,0x130 ); -Gfx *menuRenderItemObjectives(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemObjectives(Gfx *gdl, struct menurendercontext *context) { - s32 y = thing->y + 5; + s32 y = context->y + 5; s32 position = 1; s32 i; @@ -3804,16 +3804,16 @@ Gfx *menuRenderItemObjectives(Gfx *gdl, struct menurenderthing *thing) if (g_Briefing.objectivenames[i + 1] && g_Briefing.objectivedifficulties[i + 1] & (1 << getDifficulty())) { gdl = menuRenderObjective(gdl, - thing->frame, - i, position, thing->x, y, thing->width, thing->height, - thing->item->param != 1, - thing->item->param == 2); + context->frame, + i, position, context->x, y, context->width, context->height, + context->item->param != 1, + context->item->param == 2); position++; - if (thing->item->param == 0) { + if (context->item->param == 0) { y += 18; - } else if (thing->item->param == 2) { + } else if (context->item->param == 2) { y += 30; } else { y += 14; @@ -3824,26 +3824,26 @@ Gfx *menuRenderItemObjectives(Gfx *gdl, struct menurenderthing *thing) return gdl; } -Gfx *menuRenderItemModel(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemModel(Gfx *gdl, struct menurendercontext *context) { - if (thing->item->param1 & 0x00200000) { + if (context->item->param1 & 0x00200000) { struct menuitemmodelrenderdata renderdata; union handlerdata data; - renderdata.x = thing->x; - renderdata.y = thing->y; - renderdata.width = thing->width; + renderdata.x = context->x; + renderdata.y = context->y; + renderdata.width = context->width; - if (thing->frame->transitiontimer < 0) { - renderdata.colour = g_MenuColourPalettes[thing->frame->type].focused; + if (context->frame->transitiontimer < 0) { + renderdata.colour = g_MenuColourPalettes[context->frame->type].focused; } else { renderdata.colour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].focused, - g_MenuColourPalettes[thing->frame->type].focused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].focused, + g_MenuColourPalettes[context->frame->type].focused, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { renderdata.colour = (colourBlend(renderdata.colour, 0, 127) & 0xffffff00) | (renderdata.colour & 0xff); } @@ -3853,13 +3853,13 @@ Gfx *menuRenderItemModel(Gfx *gdl, struct menurenderthing *thing) data.type19.renderdata1 = &renderdata; data.type19.renderdata2 = &renderdata; - gdl = (Gfx *)thing->item->handler(MENUOP_19, thing->item, &data); + gdl = (Gfx *)context->item->handler(MENUOP_19, context->item, &data); } return gdl; } -Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemLabel(Gfx *gdl, struct menurendercontext *context) { u32 colour1; u32 colour2; @@ -3871,89 +3871,89 @@ Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing) u32 font1 = var8007fb10; u32 font2 = var8007fb0c; - x = thing->x + 10; - y = thing->y + 2; + x = context->x + 10; + y = context->y + 2; - if (thing->item->param1 & 0x00000010) { + if (context->item->param1 & 0x00000010) { x -= 6; } - text = menuResolveParam2Text(thing->item); + text = menuResolveParam2Text(context->item); if (!text) { return gdl; } - if (thing->item->param1 & 0x00000200) { + if (context->item->param1 & 0x00000200) { font1 = var8007fb08; font2 = var8007fb04; y -= 2; } - if (thing->item->param1 & 0x00000020) { + if (context->item->param1 & 0x00000020) { // Center s32 textheight; s32 textwidth; textMeasure(&textheight, &textwidth, text, font1, font2, 0); - x = thing->x + (thing->width - textwidth) / 2; + x = context->x + (context->width - textwidth) / 2; } - if (thing->item->param1 & 0x00000100) { - if (thing->frame->transitiontimer < 0) { - colour1 = g_MenuColourPalettes[thing->frame->type].checkedunfocused; + if (context->item->param1 & 0x00000100) { + if (context->frame->transitiontimer < 0) { + colour1 = g_MenuColourPalettes[context->frame->type].checkedunfocused; } else { colour1 = colourBlend( - g_MenuColourPalettes[thing->frame->type2].checkedunfocused, - g_MenuColourPalettes[thing->frame->type].checkedunfocused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].checkedunfocused, + g_MenuColourPalettes[context->frame->type].checkedunfocused, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { colour1 = (colourBlend(colour1, 0, 127) & 0xffffff00) | (colour1 & 0xff); } func0f153e38( - g_MenuColourPalettes3[thing->frame->type].checkedunfocused, - g_MenuColourPalettes2[thing->frame->type].checkedunfocused); + g_MenuColourPalettes3[context->frame->type].checkedunfocused, + g_MenuColourPalettes2[context->frame->type].checkedunfocused); } else { - if (thing->frame->transitiontimer < 0) { - colour1 = g_MenuColourPalettes[thing->frame->type].unfocused; + if (context->frame->transitiontimer < 0) { + colour1 = g_MenuColourPalettes[context->frame->type].unfocused; } else { colour1 = colourBlend( - g_MenuColourPalettes[thing->frame->type2].unfocused, - g_MenuColourPalettes[thing->frame->type].unfocused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].unfocused, + g_MenuColourPalettes[context->frame->type].unfocused, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { colour1 = (colourBlend(colour1, 0, 127) & 0xffffff00) | (colour1 & 0xff); } func0f153e38( - g_MenuColourPalettes3[thing->frame->type].unfocused, - g_MenuColourPalettes2[thing->frame->type].unfocused); + g_MenuColourPalettes3[context->frame->type].unfocused, + g_MenuColourPalettes2[context->frame->type].unfocused); } - if (menuIsItemDisabled(thing->item, thing->frame)) { - if (thing->frame->transitiontimer < 0) { - colour1 = g_MenuColourPalettes[thing->frame->type].disabled; + if (menuIsItemDisabled(context->item, context->frame)) { + if (context->frame->transitiontimer < 0) { + colour1 = g_MenuColourPalettes[context->frame->type].disabled; } else { colour1 = colourBlend( - g_MenuColourPalettes[thing->frame->type2].disabled, - g_MenuColourPalettes[thing->frame->type].disabled, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].disabled, + g_MenuColourPalettes[context->frame->type].disabled, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { colour1 = (colourBlend(colour1, 0, 127) & 0xffffff00) | (colour1 & 0xff); } func0f153e38( - g_MenuColourPalettes3[thing->frame->type].disabled, - g_MenuColourPalettes2[thing->frame->type].disabled); + g_MenuColourPalettes3[context->frame->type].disabled, + g_MenuColourPalettes2[context->frame->type].disabled); } - menudfc = func0f0f1338(thing->item); + menudfc = func0f0f1338(context->item); if (menudfc) { if (menudfc->unk04 < 0) { @@ -3967,16 +3967,16 @@ Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing) colour2 = colour1; - if (thing->item->param1 & 0x01000000) { + if (context->item->param1 & 0x01000000) { union handlerdata data; data.label.colour2 = colour2; data.label.colour1 = colour1; - if (thing->item->handlervoid) { - thing->item->handlervoid(MENUOP_GETCOLOUR, thing->item, &data); + if (context->item->handlervoid) { + context->item->handlervoid(MENUOP_GETCOLOUR, context->item, &data); } - if (thing->item->handlervoid) { + if (context->item->handlervoid) { } colour2 = data.label.colour2; @@ -3984,41 +3984,41 @@ Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing) } gdl = func0f153628(gdl); - gdl = textRenderWhite(gdl, &x, &y, text, - font1, font2, colour1, thing->width, thing->height, 0, 0); + gdl = textRenderProjected(gdl, &x, &y, text, + font1, font2, colour1, context->width, context->height, 0, 0); - if ((thing->item->param1 & 0x00008000) == 0) { + if ((context->item->param1 & 0x00008000) == 0) { // Right side text - text = menuResolveText(thing->item->param3, thing->item); + text = menuResolveText(context->item->param3, context->item); // This is not how you check if a string is empty... if (text != NULL && text != "") { s32 textheight; s32 textwidth; - y = thing->y + 2; + y = context->y + 2; - if (thing->item->param1 & 0x00000200) { + if (context->item->param1 & 0x00000200) { y -= 2; } textMeasure(&textheight, &textwidth, text, font1, font2, 0); - x = thing->x + thing->width - textwidth - 10; + x = context->x + context->width - textwidth - 10; - if (thing->item->param1 & 0x00000010) { + if (context->item->param1 & 0x00000010) { x += 6; } - gdl = textRenderWhite(gdl, &x, &y, text, - font1, font2, colour2, thing->width, thing->height, 0, 0); + gdl = textRenderProjected(gdl, &x, &y, text, + font1, font2, colour2, context->width, context->height, 0, 0); } } gdl = func0f153780(gdl); if (menudfc) { - if (thing->width + 200 < menudfc->unk04 * 300 && thing->frame->unk48 < 0) { - func0f0f13ec(thing->item); + if (context->width + 200 < menudfc->unk04 * 300 && context->frame->unk48 < 0) { + func0f0f13ec(context->item); } var8007fb9c = savedvalue; @@ -4026,13 +4026,13 @@ Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing) func0f153c88(); } - if (thing->item->param1 & 0x00200000) { + if (context->item->param1 & 0x00200000) { struct menuitemmodelrenderdata renderdata; union handlerdata data; - renderdata.x = thing->x; - renderdata.y = thing->y; - renderdata.width = thing->width; + renderdata.x = context->x; + renderdata.y = context->y; + renderdata.width = context->width; renderdata.colour = colour1; renderdata.arg10 = 0; @@ -4040,7 +4040,7 @@ Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing) data.type19.renderdata1 = NULL; data.type19.renderdata2 = &renderdata; - gdl = (Gfx *) thing->item->handler(MENUOP_19, thing->item, &data); + gdl = (Gfx *) context->item->handler(MENUOP_19, context->item, &data); } return gdl; @@ -4050,7 +4050,7 @@ Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing) * Renders two yellow bars and an optional label. Suspected to be a resource * meter but with the calculations ifdeffed out, so the widths are static. */ -Gfx *menuRenderItemMeter(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemMeter(Gfx *gdl, struct menurendercontext *context) { u32 a = 9; char *text; @@ -4063,46 +4063,46 @@ Gfx *menuRenderItemMeter(Gfx *gdl, struct menurenderthing *thing) s32 x2; s32 x3; - if (thing->frame->transitiontimer < 0) { - colour = g_MenuColourPalettes[thing->frame->type].unfocused; + if (context->frame->transitiontimer < 0) { + colour = g_MenuColourPalettes[context->frame->type].unfocused; } else { colour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].unfocused, - g_MenuColourPalettes[thing->frame->type].unfocused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].unfocused, + g_MenuColourPalettes[context->frame->type].unfocused, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { colour = (colourBlend(colour, 0, 127) & 0xffffff00) | (colour & 0xff); } colour2 = 0xffff0000 | (colour & 0xff); colour1 = colourBlend(colour2, colour2 & 0xff, 127); - x1 = thing->x + 32; + x1 = context->x + 32; x2 = x1 + a; x3 = x2 + 6; gdl = gfxSetPrimColour(gdl, colour1); gDPFillRectangle(gdl++, - x1 * g_ScreenWidthMultiplier, thing->y, - x2 * g_ScreenWidthMultiplier, thing->y + 5); + x1 * g_ScreenWidthMultiplier, context->y, + x2 * g_ScreenWidthMultiplier, context->y + 5); gdl = func0f153838(gdl); gdl = gfxSetPrimColour(gdl, colour2); gDPFillRectangle(gdl++, - x2 * g_ScreenWidthMultiplier, thing->y, - x3 * g_ScreenWidthMultiplier, thing->y + 5); + x2 * g_ScreenWidthMultiplier, context->y, + x3 * g_ScreenWidthMultiplier, context->y + 5); gdl = func0f153838(gdl); - text = menuResolveParam2Text(thing->item); + text = menuResolveParam2Text(context->item); if (text) { gdl = func0f153628(gdl); - x = thing->x; - y = thing->y - 1; - gdl = textRenderWhite(gdl, &x, &y, text, var8007fb08, var8007fb04, - colour2 & 0xffffff7f, thing->width, thing->height, 0, 0); + x = context->x; + y = context->y - 1; + gdl = textRenderProjected(gdl, &x, &y, text, var8007fb08, var8007fb04, + colour2 & 0xffffff7f, context->width, context->height, 0, 0); gdl = func0f153780(gdl); } @@ -4432,7 +4432,7 @@ glabel menuRenderItemSelectable /* f0eb36c: afa00024 */ sw $zero,0x24($sp) /* f0eb370: 27a6006c */ addiu $a2,$sp,0x6c /* f0eb374: 8fa70074 */ lw $a3,0x74($sp) -/* f0eb378: 0fc5580f */ jal textRenderWhite +/* f0eb378: 0fc5580f */ jal textRenderProjected /* f0eb37c: afaa0020 */ sw $t2,0x20($sp) /* f0eb380: afa20080 */ sw $v0,0x80($sp) /* f0eb384: 8e060008 */ lw $a2,0x8($s0) @@ -4483,7 +4483,7 @@ glabel menuRenderItemSelectable /* f0eb438: afa00024 */ sw $zero,0x24($sp) /* f0eb43c: 27a6006c */ addiu $a2,$sp,0x6c /* f0eb440: 8fa70074 */ lw $a3,0x74($sp) -/* f0eb444: 0fc5580f */ jal textRenderWhite +/* f0eb444: 0fc5580f */ jal textRenderProjected /* f0eb448: afa80020 */ sw $t0,0x20($sp) /* f0eb44c: afa20080 */ sw $v0,0x80($sp) .L0f0eb450: @@ -4498,43 +4498,43 @@ glabel menuRenderItemSelectable const char var7f1adfb8[] = ""; -//Gfx *menuRenderItemSelectable(Gfx *gdl, struct menurenderthing *thing) +//Gfx *menuRenderItemSelectable(Gfx *gdl, struct menurendercontext *context) //{ // u32 leftcolour; // u32 rightcolour; // char *text; -// s32 x = thing->x + 10; -// s32 y = thing->y + 2; +// s32 x = context->x + 10; +// s32 y = context->y + 2; // u32 font1 = var8007fb10; // u32 font2 = var8007fb0c; // -// if (thing->item->param1 & 0x00000010) { +// if (context->item->param1 & 0x00000010) { // x -= 6; // } // -// if (thing->item->param1 & 0x00400000) { +// if (context->item->param1 & 0x00400000) { // font1 = var8007fb18; // font2 = var8007fb14; // } // -// text = menuResolveParam2Text(thing->item); +// text = menuResolveParam2Text(context->item); // -// if (thing->frame->transitiontimer < 0) { -// leftcolour = g_MenuColourPalettes[thing->frame->type].unfocused; +// if (context->frame->transitiontimer < 0) { +// leftcolour = g_MenuColourPalettes[context->frame->type].unfocused; // } else { // leftcolour = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].unfocused, -// g_MenuColourPalettes[thing->frame->type].unfocused, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].unfocused, +// g_MenuColourPalettes[context->frame->type].unfocused, +// context->frame->colourweight); // } // -// if (thing->frame->dimmed) { +// if (context->frame->dimmed) { // leftcolour = colourBlend(leftcolour, 0, 127) & 0xffffff00 | leftcolour & 0xff; // } // // rightcolour = leftcolour; // -// if (thing->focused) { +// if (context->focused) { // // Mismatch: The addiu and lui at eb030 and eb034 are swapped. The addiu // // is adding the lower half of the address of g_MenuColourPalettes for // // use in the else branch. The lui is loading a value into $at for the @@ -4542,79 +4542,79 @@ const char var7f1adfb8[] = ""; // u32 colour2; // u32 weight = func0f006b08(40) * 255; // -// if (thing->frame->transitiontimer < 0) { -// colour2 = g_MenuColourPalettes[thing->frame->type].focused; +// if (context->frame->transitiontimer < 0) { +// colour2 = g_MenuColourPalettes[context->frame->type].focused; // } else { // colour2 = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].focused, -// g_MenuColourPalettes[thing->frame->type].focused, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].focused, +// g_MenuColourPalettes[context->frame->type].focused, +// context->frame->colourweight); // } // // leftcolour = colourBlend(colourBlend(leftcolour, leftcolour & 0x000000ff, 127), colour2, weight); // // func0f153e38( -// g_MenuColourPalettes3[thing->frame->type].focused, -// g_MenuColourPalettes2[thing->frame->type].focused); +// g_MenuColourPalettes3[context->frame->type].focused, +// g_MenuColourPalettes2[context->frame->type].focused); // } else { // func0f153e38( -// g_MenuColourPalettes3[thing->frame->type].unfocused, -// g_MenuColourPalettes2[thing->frame->type].unfocused); +// g_MenuColourPalettes3[context->frame->type].unfocused, +// g_MenuColourPalettes2[context->frame->type].unfocused); // } // -// if (menuIsItemDisabled(thing->item, thing->frame)) { -// if (thing->frame->transitiontimer < 0) { -// leftcolour = g_MenuColourPalettes[thing->frame->type].disabled; +// if (menuIsItemDisabled(context->item, context->frame)) { +// if (context->frame->transitiontimer < 0) { +// leftcolour = g_MenuColourPalettes[context->frame->type].disabled; // } else { // leftcolour = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].disabled, -// g_MenuColourPalettes[thing->frame->type].disabled, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].disabled, +// g_MenuColourPalettes[context->frame->type].disabled, +// context->frame->colourweight); // } // -// if (thing->frame->dimmed) { +// if (context->frame->dimmed) { // leftcolour = colourBlend(leftcolour, 0x00000000, 127) & 0xffffff00 | leftcolour & 0xff; // } // // rightcolour = leftcolour; // // func0f153e38( -// g_MenuColourPalettes3[thing->frame->type].disabled, -// g_MenuColourPalettes2[thing->frame->type].disabled); +// g_MenuColourPalettes3[context->frame->type].disabled, +// g_MenuColourPalettes2[context->frame->type].disabled); // } // -// if (thing->item->param1 & 0x00000020) { +// if (context->item->param1 & 0x00000020) { // // Center text // s32 textheight; // s32 textwidth; // textMeasure(&textheight, &textwidth, text, font1, font2, 0); -// x = thing->x + (thing->width - textwidth) / 2; +// x = context->x + (context->width - textwidth) / 2; // } // -// if (thing->item->param1 & 0x00400000) { +// if (context->item->param1 & 0x00400000) { // x += 35; // y += 6; // } // // gdl = func0f153628(gdl); -// gdl = textRenderWhite(gdl, &x, &y, text, font1, font2, -// leftcolour, thing->width, thing->height, 0, 0); +// gdl = textRenderProjected(gdl, &x, &y, text, font1, font2, +// leftcolour, context->width, context->height, 0, 0); // -// if ((thing->item->param1 & 0x00408000) == 0) { +// if ((context->item->param1 & 0x00408000) == 0) { // // Right side text -// text = menuResolveText(thing->item->param3, thing->item); +// text = menuResolveText(context->item->param3, context->item); // // // This is not how you check if a string is empty... // if (text != NULL && text != "") { // s32 textheight; // s32 textwidth; // -// y = thing->y + 2; +// y = context->y + 2; // textMeasure(&textheight, &textwidth, text, font1, font2, 0); -// x = thing->x + thing->width - textwidth - 10; +// x = context->x + context->width - textwidth - 10; // -// gdl = textRenderWhite(gdl, &x, &y, text, font1, font2, -// rightcolour, thing->width, thing->height, 0, 0); +// gdl = textRenderProjected(gdl, &x, &y, text, font1, font2, +// rightcolour, context->width, context->height, 0, 0); // } // } // @@ -5169,7 +5169,7 @@ glabel menuRenderItemSlider /* f0ebc9c: afa00024 */ sw $zero,0x24($sp) /* f0ebca0: 27a60090 */ addiu $a2,$sp,0x90 /* f0ebca4: 8fa700a8 */ lw $a3,0xa8($sp) -/* f0ebca8: 0fc5580f */ jal textRenderWhite +/* f0ebca8: 0fc5580f */ jal textRenderProjected /* f0ebcac: afad0020 */ sw $t5,0x20($sp) /* f0ebcb0: afa200b0 */ sw $v0,0xb0($sp) /* f0ebcb4: 8e2b0008 */ lw $t3,0x8($s1) @@ -5298,7 +5298,7 @@ glabel menuRenderItemSlider /* f0ebe90: afa00024 */ sw $zero,0x24($sp) /* f0ebe94: 27a60090 */ addiu $a2,$sp,0x90 /* f0ebe98: 27a70098 */ addiu $a3,$sp,0x98 -/* f0ebe9c: 0fc5580f */ jal textRenderWhite +/* f0ebe9c: 0fc5580f */ jal textRenderProjected /* f0ebea0: afa80020 */ sw $t0,0x20($sp) /* f0ebea4: afa200b0 */ sw $v0,0xb0($sp) .L0f0ebea8: @@ -5312,7 +5312,7 @@ glabel menuRenderItemSlider /* f0ebec4: 27bd00b0 */ addiu $sp,$sp,0xb0 ); -bool menuTickItemSlider(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data) +bool menuTickItemSlider(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data) { s32 index; union handlerdata handlerdata; @@ -5413,54 +5413,54 @@ bool menuTickItemSlider(struct menuitem *item, struct menuframe *frame, struct m return true; } -void menuInitItemSlider(union menuitemtickdata *data) +void menuInitItemSlider(union menuitemdata *data) { data->slider.unk00 = 0; } -Gfx *menuRenderItemCarousel(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemCarousel(Gfx *gdl, struct menurendercontext *context) { u32 colour = 0xff0000ff; - if (thing->focused) { + if (context->focused) { u32 colour1; u32 weight = func0f006b08(40) * 255; - if (thing->frame->transitiontimer < 0) { - colour1 = g_MenuColourPalettes[thing->frame->type].focused; + if (context->frame->transitiontimer < 0) { + colour1 = g_MenuColourPalettes[context->frame->type].focused; } else { colour1 = colourBlend( - g_MenuColourPalettes[thing->frame->type2].focused, - g_MenuColourPalettes[thing->frame->type].focused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].focused, + g_MenuColourPalettes[context->frame->type].focused, + context->frame->colourweight); } colour = colourBlend(colourBlend(colour, 0x000000ff, 127), colour1, weight); } // Left arrow - gdl = menuRenderCarouselArrow(gdl, thing->x, thing->y + thing->height / 2, 8, 1, -1, colour); + gdl = menuRenderCarouselArrow(gdl, context->x, context->y + context->height / 2, 8, 1, -1, colour); // Right arrow - gdl = menuRenderCarouselArrow(gdl, thing->x + thing->width, thing->y + thing->height / 2, 8, 3, -1, colour); + gdl = menuRenderCarouselArrow(gdl, context->x + context->width, context->y + context->height / 2, 8, 3, -1, colour); // This part of the function is unused because param2 is always zero. // Setting it to 0x7b causes a crash. - // 0x7c and 0x7d don't do anything with the option value, so it's probable + // 0x7c and 0x7d don't do anycontext with the option value, so it's probable // that the original source has a commented function call in that block. - if (thing->item->param2 == 0x7b && thing->item->handler) { + if (context->item->param2 == 0x7b && context->item->handler) { union handlerdata data; s32 headorbodynum = 0; - thing->item->handler(MENUOP_GETOPTIONVALUE, thing->item, &data); + context->item->handler(MENUOP_GETOPTIONVALUE, context->item, &data); headorbodynum += data.carousel.value; gdl = func0f14f07c(gdl, headorbodynum, - thing->x + thing->width / 2 - 32, thing->y, - thing->x + thing->width / 2 + 32, thing->y + 64); - } else if ((thing->item->param2 == 0x7c || thing->item->param2 == 0x7d) && thing->item->handler) { + context->x + context->width / 2 - 32, context->y, + context->x + context->width / 2 + 32, context->y + 64); + } else if ((context->item->param2 == 0x7c || context->item->param2 == 0x7d) && context->item->handler) { union handlerdata data; - thing->item->handler(MENUOP_GETOPTIONVALUE, thing->item, &data); + context->item->handler(MENUOP_GETOPTIONVALUE, context->item, &data); } return gdl; @@ -5897,7 +5897,7 @@ glabel menuRenderItemCheckbox /* f0ecbcc: afa00024 */ sw $zero,0x24($sp) /* f0ecbd0: 27a60068 */ addiu $a2,$sp,0x68 /* f0ecbd4: 8fa70070 */ lw $a3,0x70($sp) -/* f0ecbd8: 0fc5580f */ jal textRenderWhite +/* f0ecbd8: 0fc5580f */ jal textRenderProjected /* f0ecbdc: afb80020 */ sw $t8,0x20($sp) /* f0ecbe0: 0fc54de0 */ jal func0f153780 /* f0ecbe4: 00402025 */ or $a0,$v0,$zero @@ -5908,7 +5908,7 @@ glabel menuRenderItemCheckbox /* f0ecbf8: 27bd0078 */ addiu $sp,$sp,0x78 ); -//Gfx *menuRenderItemCheckbox(Gfx *gdl, struct menurenderthing *thing) +//Gfx *menuRenderItemCheckbox(Gfx *gdl, struct menurendercontext *context) //{ // u32 maincolour = 0x00000000; // char *text; @@ -5920,58 +5920,58 @@ glabel menuRenderItemCheckbox // u32 font2 = var8007fb0c; // u32 font1 = var8007fb10; // -// if (thing->item->param1 & 0x00000200) { +// if (context->item->param1 & 0x00000200) { // font2 = var8007fb04; // font1 = var8007fb08; // } // -// x = thing->x; -// y = thing->y; -// text = menuResolveParam2Text(thing->item); +// x = context->x; +// y = context->y; +// text = menuResolveParam2Text(context->item); // data[0] = 0; // -// if (thing->item->handler -// && thing->item->handler(MENUOP_GET, thing->item, (union handlerdata *)data) == true) { +// if (context->item->handler +// && context->item->handler(MENUOP_GET, context->item, (union handlerdata *)data) == true) { // checked = true; // -// if (thing->frame->transitiontimer < 0) { -// maincolour = g_MenuColourPalettes[thing->frame->type].checkedunfocused; +// if (context->frame->transitiontimer < 0) { +// maincolour = g_MenuColourPalettes[context->frame->type].checkedunfocused; // } else { // maincolour = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].checkedunfocused, -// g_MenuColourPalettes[thing->frame->type].checkedunfocused, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].checkedunfocused, +// g_MenuColourPalettes[context->frame->type].checkedunfocused, +// context->frame->colourweight); // } // -// if (thing->frame->dimmed) { +// if (context->frame->dimmed) { // maincolour = colourBlend(maincolour, 0, 127) & 0xffffff00 | maincolour & 0xff; // } // // func0f153e38( -// g_MenuColourPalettes3[thing->frame->type].checkedunfocused, -// g_MenuColourPalettes2[thing->frame->type].checkedunfocused); +// g_MenuColourPalettes3[context->frame->type].checkedunfocused, +// g_MenuColourPalettes2[context->frame->type].checkedunfocused); // } else { -// if (thing->frame->transitiontimer < 0) { -// maincolour = g_MenuColourPalettes[thing->frame->type].unfocused; +// if (context->frame->transitiontimer < 0) { +// maincolour = g_MenuColourPalettes[context->frame->type].unfocused; // } else { // maincolour = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].unfocused, -// g_MenuColourPalettes[thing->frame->type].unfocused, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].unfocused, +// g_MenuColourPalettes[context->frame->type].unfocused, +// context->frame->colourweight); // } // -// if (thing->frame->dimmed) { +// if (context->frame->dimmed) { // maincolour = colourBlend(maincolour, 0, 127) & 0xffffff00 | maincolour & 0xff; // } // // func0f153e38( -// g_MenuColourPalettes3[thing->frame->type].unfocused, -// g_MenuColourPalettes2[thing->frame->type].unfocused); +// g_MenuColourPalettes3[context->frame->type].unfocused, +// g_MenuColourPalettes2[context->frame->type].unfocused); // } // // gdl = func0f153628(gdl); // -// if (thing->focused) { +// if (context->focused) { // // Mismatch: The addiu and lui at ec8fc and ec900 are swapped. The addiu // // is adding the lower half of the address of g_MenuColourPalettes for // // use in the else branch. The lui is loading a value into $at for the @@ -5979,50 +5979,50 @@ glabel menuRenderItemCheckbox // u32 focuscolour; // u32 weight = func0f006b08(40) * 255; // -// if (thing->frame->transitiontimer < 0) { -// focuscolour = g_MenuColourPalettes[thing->frame->type].focused; +// if (context->frame->transitiontimer < 0) { +// focuscolour = g_MenuColourPalettes[context->frame->type].focused; // } else { // focuscolour = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].focused, -// g_MenuColourPalettes[thing->frame->type].focused, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].focused, +// g_MenuColourPalettes[context->frame->type].focused, +// context->frame->colourweight); // } // // maincolour = colourBlend(colourBlend(maincolour, maincolour & 0xff, 127), focuscolour, weight); // // func0f153e38( -// g_MenuColourPalettes3[thing->frame->type].focused, -// g_MenuColourPalettes2[thing->frame->type].focused); +// g_MenuColourPalettes3[context->frame->type].focused, +// g_MenuColourPalettes2[context->frame->type].focused); // } // -// if (menuIsItemDisabled(thing->item, thing->frame)) { -// if (thing->frame->transitiontimer < 0) { -// maincolour = g_MenuColourPalettes[thing->frame->type].disabled; +// if (menuIsItemDisabled(context->item, context->frame)) { +// if (context->frame->transitiontimer < 0) { +// maincolour = g_MenuColourPalettes[context->frame->type].disabled; // } else { // maincolour = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].disabled, -// g_MenuColourPalettes[thing->frame->type].disabled, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].disabled, +// g_MenuColourPalettes[context->frame->type].disabled, +// context->frame->colourweight); // } // -// if (thing->frame->dimmed) { +// if (context->frame->dimmed) { // maincolour = colourBlend(maincolour, 0, 127) & 0xffffff00 | maincolour & 0xff; // } // // func0f153e38( -// g_MenuColourPalettes3[thing->frame->type].disabled, -// g_MenuColourPalettes2[thing->frame->type].disabled); +// g_MenuColourPalettes3[context->frame->type].disabled, +// g_MenuColourPalettes2[context->frame->type].disabled); // // fillcolour = 0x7f002faf; // } // -// gdl = renderCheckbox(gdl, thing->x + thing->width - 16, thing->y + 2, 6, +// gdl = renderCheckbox(gdl, context->x + context->width - 16, context->y + 2, 6, // checked, maincolour, fillcolour); // -// x = thing->x + 10; -// y = thing->y + 2; -// gdl = textRenderWhite(gdl, &x, &y, text, font1, font2, -// maincolour, thing->width, thing->height, 0, 0); +// x = context->x + 10; +// y = context->y + 2; +// gdl = textRenderProjected(gdl, &x, &y, text, font1, font2, +// maincolour, context->width, context->height, 0, 0); // // return func0f153780(gdl); //} @@ -6083,11 +6083,11 @@ char *menuItemScrollableGetText(u32 type) * * headings - which are started with the pipe character and ended with a * double line break - * body text - which is anything else + * body text - which is anycontext else * * Headings are rendered in red, with a dropshadow and are outdented. */ -Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurendercontext *context) { char alltext[8000] = ""; char headingtext[8000]; @@ -6096,21 +6096,21 @@ Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurenderthing *thing) char *streams[2]; char *inptr; s32 inheading; - s16 *unk14 = thing->unk14.s16; + struct menuitemdata_scrollable *data = &context->data->scrollable; u32 colour; s32 x; s32 y; char *rawtext; s32 paddingright = 24; - rawtext = menuItemScrollableGetText(thing->item->param); + rawtext = menuItemScrollableGetText(context->item->param); - if (menuIsScrollableUnscrollable(thing->item)) { + if (menuIsScrollableUnscrollable(context->item)) { paddingright = 10; } if (rawtext) { - textWrap(thing->width - paddingright, rawtext, alltext, var8007fb10, var8007fb0c); + textWrap(context->width - paddingright, rawtext, alltext, var8007fb10, var8007fb0c); } inptr = alltext; @@ -6151,51 +6151,51 @@ Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurenderthing *thing) *streams[0] = '\0'; *streams[1] = '\0'; - x = thing->x + 2; - y = thing->y + 2; + x = context->x + 2; + y = context->y + 2; - if (thing->frame->transitiontimer < 0) { - colour = g_MenuColourPalettes[thing->frame->type].unfocused; + if (context->frame->transitiontimer < 0) { + colour = g_MenuColourPalettes[context->frame->type].unfocused; } else { colour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].unfocused, - g_MenuColourPalettes[thing->frame->type].unfocused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].unfocused, + g_MenuColourPalettes[context->frame->type].unfocused, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { colour = colourBlend(colour, 0, 0x7f) & 0xffffff00 | colour & 0xff; } func0f153e38( - g_MenuColourPalettes3[thing->frame->type].unfocused, - g_MenuColourPalettes2[thing->frame->type].unfocused); + g_MenuColourPalettes3[context->frame->type].unfocused, + g_MenuColourPalettes2[context->frame->type].unfocused); gdl = func0f153628(gdl); // Heading text shadow - x = thing->x + 3; - y = thing->y + 3; - gdl = textRenderWhite(gdl, &x, &y, headingtext, var8007fb10, var8007fb0c, - 0x000000ff, thing->width - 4, thing->height - 4, -*unk14, 0); + x = context->x + 3; + y = context->y + 3; + gdl = textRenderProjected(gdl, &x, &y, headingtext, var8007fb10, var8007fb0c, + 0x000000ff, context->width - 4, context->height - 4, -data->unk00, 0); // Heading text (red) - x = thing->x + 2; - y = thing->y + 2; - gdl = textRenderWhite(gdl, &x, &y, headingtext, var8007fb10, var8007fb0c, - 0xff4444ff, thing->width - 4, thing->height - 4, -*unk14, 0); + x = context->x + 2; + y = context->y + 2; + gdl = textRenderProjected(gdl, &x, &y, headingtext, var8007fb10, var8007fb0c, + 0xff4444ff, context->width - 4, context->height - 4, -data->unk00, 0); // Body text - x = menuIsScrollableUnscrollable(thing->item) ? thing->x + 5 : thing->x + 12; - y = thing->y + 2; + x = menuIsScrollableUnscrollable(context->item) ? context->x + 5 : context->x + 12; + y = context->y + 2; - gdl = textRenderWhite(gdl, &x, &y, bodytext, var8007fb10, var8007fb0c, - colour, thing->width - 4, thing->height - 1, -*unk14, 0); + gdl = textRenderProjected(gdl, &x, &y, bodytext, var8007fb10, var8007fb0c, + colour, context->width - 4, context->height - 1, -data->unk00, 0); return func0f153780(gdl); } -bool menuTickItemScrollable(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data) +bool menuTickItemScrollable(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data) { u32 stack; @@ -6275,7 +6275,7 @@ bool menuTickItemScrollable(struct menuitem *item, struct menuframe *frame, stru return true; } -void menuInitItemScrollable(union menuitemtickdata *data) +void menuInitItemScrollable(union menuitemdata *data) { data->scrollable.unk06 = -1; data->scrollable.unk00 = -10; @@ -6610,7 +6610,7 @@ glabel menuRenderItemMarquee /* f0ed9e4: 27a5007c */ addiu $a1,$sp,0x7c /* f0ed9e8: 27a60078 */ addiu $a2,$sp,0x78 /* f0ed9ec: 02003825 */ or $a3,$s0,$zero -/* f0ed9f0: 0fc5580f */ jal textRenderWhite +/* f0ed9f0: 0fc5580f */ jal textRenderProjected /* f0ed9f4: afac0020 */ sw $t4,0x20($sp) /* f0ed9f8: 0fc54de0 */ jal func0f153780 /* f0ed9fc: 00402025 */ or $a0,$v0,$zero @@ -6633,10 +6633,10 @@ glabel menuRenderItemMarquee u32 var800711ec = 0x20000000; // Mismatch at 718 -//Gfx *menuRenderItemMarquee(Gfx *gdl, struct menurenderthing *thing) +//Gfx *menuRenderItemMarquee(Gfx *gdl, struct menurendercontext *context) //{ -// u16 *unk14 = thing->unk14.u16; // 84 -// char *text = menuResolveParam2Text(thing->item); // 80 +// u16 *unk14 = context->unk14.u16; // 84 +// char *text = menuResolveParam2Text(context->item); // 80 // s32 x; // 7c // s32 y; // 78 // u32 colour; // 74 @@ -6648,7 +6648,7 @@ u32 var800711ec = 0x20000000; // u32 font2 = var8007fb0c; // 5c // u32 font1 = var8007fb10; // 58 // -// if (thing->item->param1 & 0x00000200) { +// if (context->item->param1 & 0x00000200) { // font2 = var8007fb04; // font1 = var8007fb08; // } @@ -6658,23 +6658,23 @@ u32 var800711ec = 0x20000000; // } // // // 5b8 -// if (thing->frame->transitiontimer < 0) { -// colour = g_MenuColourPalettes[thing->frame->type].unfocused; +// if (context->frame->transitiontimer < 0) { +// colour = g_MenuColourPalettes[context->frame->type].unfocused; // } else { // colour = colourBlend( -// g_MenuColourPalettes[thing->frame->type2].unfocused, -// g_MenuColourPalettes[thing->frame->type].unfocused, -// thing->frame->colourweight); +// g_MenuColourPalettes[context->frame->type2].unfocused, +// g_MenuColourPalettes[context->frame->type].unfocused, +// context->frame->colourweight); // } // // // 644 -// if (thing->frame->dimmed) { +// if (context->frame->dimmed) { // colour = colourBlend(colour, 0, 127) & 0xffffff00 | colour & 0xff; // } // // // 674 -// x = thing->x + thing->width - *unk14; -// y = thing->y + 2; +// x = context->x + context->width - *unk14; +// y = context->y + 2; // hasmore = true; // // while (hasmore == true) { @@ -6684,7 +6684,7 @@ u32 var800711ec = 0x20000000; // string[0] = text[i]; // textMeasure(&textheight, &textwidth, string, font1, font2, 0); // -// if (x + textwidth > thing->x) { +// if (x + textwidth > context->x) { // hasmore = false; // } else { // x += textwidth; @@ -6695,12 +6695,12 @@ u32 var800711ec = 0x20000000; // } // // // 718 -// // thing->x is loaded into a0 but should be t4. Additionally, the loads of -// // thing->x and g_ScreenWidthMultiplier are swapped. -// var80071190 = thing->x * g_ScreenWidthMultiplier; -// var80071194 = (thing->x + thing->width) * g_ScreenWidthMultiplier; -// var80071198 = thing->y; -// var8007119c = thing->y + thing->height - 1; +// // context->x is loaded into a0 but should be t4. Additionally, the loads of +// // context->x and g_ScreenWidthMultiplier are swapped. +// var80071190 = context->x * g_ScreenWidthMultiplier; +// var80071194 = (context->x + context->width) * g_ScreenWidthMultiplier; +// var80071198 = context->y; +// var8007119c = context->y + context->height - 1; // // if (var80071190 < 0) { // var80071190 = 0; @@ -6746,21 +6746,21 @@ u32 var800711ec = 0x20000000; // // func0f153d24(); // -// if (thing->item->param1 & 0x00000800) { -// func0f153ce8(thing->x, thing->x + thing->width, 0xe); +// if (context->item->param1 & 0x00000800) { +// func0f153ce8(context->x, context->x + context->width, 0xe); // } else { -// func0f153ce8(thing->x, thing->x, 0xe); +// func0f153ce8(context->x, context->x, 0xe); // } // // gdl = func0f153628(gdl); -// gdl = textRenderWhite(gdl, &x, &y, &text[i], font1, font2, -// colour, thing->width + thing->x - x, thing->height, 0, 0); +// gdl = textRenderProjected(gdl, &x, &y, &text[i], font1, font2, +// colour, context->width + context->x - x, context->height, 0, 0); // gdl = func0f153780(gdl); // gdl = func0f0f50fc(gdl); // // func0f153d3c(); // -// unk14[2] = thing->width; +// unk14[2] = context->width; // // return gdl; //} @@ -6855,7 +6855,7 @@ u32 var80071348 = 0x0000003b; u32 var8007134c = 0x0000004b; u32 var80071350 = 0xffffffff; -bool menuTickItemMarquee(struct menuitem *item, union menuitemtickdata *data) +bool menuTickItemMarquee(struct menuitem *item, union menuitemdata *data) { s32 i; s32 textheight; @@ -6908,7 +6908,7 @@ bool menuTickItemMarquee(struct menuitem *item, union menuitemtickdata *data) return true; } -void menuInitItemMarquee(union menuitemtickdata *data) +void menuInitItemMarquee(union menuitemdata *data) { data->marquee.totalmoved = 0; data->marquee.unk04 = 50; @@ -6920,7 +6920,7 @@ Gfx *menuRenderItem07(Gfx *gdl) return gdl; } -Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemRanking(Gfx *gdl, struct menurendercontext *context) { struct mpteaminfo info[12]; s32 numrows; @@ -6932,12 +6932,12 @@ Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing) s32 textheight; s32 team = false; u32 linecolour1; - struct menuitemtickdata_ranking *data = (struct menuitemtickdata_ranking *)thing->unk14.s16; + struct menuitemdata_ranking *data = &context->data->ranking; struct menuframe *frame; s32 gap; s32 i; - if (thing->item->param2 == 1) { + if (context->item->param2 == 1) { team = true; numrows = mpGetTeamRankings(info); } else { @@ -6947,7 +6947,7 @@ Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing) gdl = func0f153628(gdl); // Gap from last item to bottom of dialog + header height - gap = numrows * 10 - thing->height + 18; + gap = numrows * 10 - context->height + 18; if (gap < 0) { gap = 0; @@ -6957,37 +6957,37 @@ Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing) data->scrolloffset = gap; } - if (thing->frame->transitiontimer < 0) { - textcolour = g_MenuColourPalettes[thing->frame->type].unfocused; + if (context->frame->transitiontimer < 0) { + textcolour = g_MenuColourPalettes[context->frame->type].unfocused; } else { textcolour = colourBlend( - g_MenuColourPalettes[thing->frame->type2].unfocused, - g_MenuColourPalettes[thing->frame->type].unfocused, - thing->frame->colourweight); + g_MenuColourPalettes[context->frame->type2].unfocused, + g_MenuColourPalettes[context->frame->type].unfocused, + context->frame->colourweight); } - if (thing->frame->dimmed) { + if (context->frame->dimmed) { textcolour = colourBlend(textcolour, 0, 127) & 0xffffff00 | textcolour & 0xff; } if (!team) { // "Deaths" textMeasure(&textheight, &textwidth, langGet(L_MPMENU(277)), var8007fb08, var8007fb04, 0); - x = (thing->x - textwidth) + 91; - y = thing->y + 1; - gdl = textRenderWhite(gdl, &x, &y, langGet(L_MPMENU(277)), var8007fb08, var8007fb04, - textcolour, thing->width, thing->height, 0, 0); + x = (context->x - textwidth) + 91; + y = context->y + 1; + gdl = textRenderProjected(gdl, &x, &y, langGet(L_MPMENU(277)), var8007fb08, var8007fb04, + textcolour, context->width, context->height, 0, 0); } // "Score" textMeasure(&textheight, &textwidth, langGet(L_MPMENU(278)), var8007fb08, var8007fb04, 0); - x = (thing->x - textwidth) + 120; - y = thing->y + 1; - gdl = textRenderWhite(gdl, &x, &y, langGet(L_MPMENU(278)), var8007fb08, var8007fb04, - textcolour, thing->width, thing->height, 0, 0); + x = (context->x - textwidth) + 120; + y = context->y + 1; + gdl = textRenderProjected(gdl, &x, &y, langGet(L_MPMENU(278)), var8007fb08, var8007fb04, + textcolour, context->width, context->height, 0, 0); gdl = func0f153780(gdl); - frame = thing->frame; + frame = context->frame; if (frame->transitiontimer < 0) { linecolour1 = g_MenuColourPalettes[frame->type].unk00; @@ -7015,21 +7015,21 @@ Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing) linecolour2 = colourBlend(linecolour2, 0, 44) & 0xffffff00 | linecolour2 & 0xff; } - linecolour1 = func0f153e94(thing->x, thing->y + 2, -129) & 0xff | linecolour1 & 0xffffff00; - linecolour2 = func0f153e94(thing->x + thing->width, thing->y + 2, -129) & 0xff | linecolour2 & 0xffffff00; + linecolour1 = func0f153e94(context->x, context->y + 2, -129) & 0xff | linecolour1 & 0xffffff00; + linecolour2 = func0f153e94(context->x + context->width, context->y + 2, -129) & 0xff | linecolour2 & 0xffffff00; // Horizontal line between header and body gdl = renderFilledRect(gdl, - thing->x, thing->y + 9, - thing->x + thing->width, thing->y + 10, + context->x, context->y + 9, + context->x + context->width, context->y + 10, linecolour1, linecolour1); gDPPipeSync(gdl++); - var80071190 = thing->x * g_ScreenWidthMultiplier; - var80071194 = (thing->x + thing->width) * g_ScreenWidthMultiplier; - var80071198 = thing->y + 10; - var8007119c = thing->y + thing->height - 1; + var80071190 = context->x * g_ScreenWidthMultiplier; + var80071194 = (context->x + context->width) * g_ScreenWidthMultiplier; + var80071198 = context->y + 10; + var8007119c = context->y + context->height - 1; if (var80071190 < 0) { var80071190 = 0; @@ -7085,15 +7085,15 @@ Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing) } textcolour = colourBlend(0x008888ff, 0x00ffffff, weight); - x = thing->x + 5; - y = thing->y + i * 10 - data->scrolloffset + 14; + x = context->x + 5; + y = context->y + i * 10 - data->scrolloffset + 14; if (team) { - gdl = textRenderWhite(gdl, &x, &y, g_MpSetupSaveFile.teamnames[thisinfo->teamnum], - var8007fb10, var8007fb0c, textcolour, thing->width, thing->height, 0, 0); + gdl = textRenderProjected(gdl, &x, &y, g_MpSetupSaveFile.teamnames[thisinfo->teamnum], + var8007fb10, var8007fb0c, textcolour, context->width, context->height, 0, 0); } else { - gdl = textRenderWhite(gdl, &x, &y, thisinfo->mpchr->name, - var8007fb10, var8007fb0c, textcolour, thing->width, thing->height, 0, 0); + gdl = textRenderProjected(gdl, &x, &y, thisinfo->mpchr->name, + var8007fb10, var8007fb0c, textcolour, context->width, context->height, 0, 0); } if (!team) { @@ -7101,26 +7101,26 @@ Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing) textcolour = colourBlend(0xcf0000ff, 0xff4040ff, weight); sprintf(valuebuffer, "%d\n", thisinfo->mpchr->numdeaths); textMeasure(&textheight, &textwidth, valuebuffer, var8007fb10, var8007fb0c, 0); - x = thing->x - textwidth + 91; - y = thing->y + i * 10 - data->scrolloffset + 14; - gdl = textRenderWhite(gdl, &x, &y, valuebuffer, var8007fb10, var8007fb0c, - textcolour, thing->width, thing->height, 0, 0); + x = context->x - textwidth + 91; + y = context->y + i * 10 - data->scrolloffset + 14; + gdl = textRenderProjected(gdl, &x, &y, valuebuffer, var8007fb10, var8007fb0c, + textcolour, context->width, context->height, 0, 0); } // Score value (green) textcolour = colourBlend(0x009f00ff, 0x00ff00ff, weight); sprintf(valuebuffer, "%d\n", thisinfo->score); textMeasure(&textheight, &textwidth, valuebuffer, var8007fb10, var8007fb0c, 0); - x = thing->x - textwidth + 120; - y = thing->y + i * 10 - data->scrolloffset + 14; - gdl = textRenderWhite(gdl, &x, &y, valuebuffer, var8007fb10, var8007fb0c, - textcolour, thing->width, thing->height, 0, 0); + x = context->x - textwidth + 120; + y = context->y + i * 10 - data->scrolloffset + 14; + gdl = textRenderProjected(gdl, &x, &y, valuebuffer, var8007fb10, var8007fb0c, + textcolour, context->width, context->height, 0, 0); } return func0f153780(gdl); } -bool menuTickItemRanking(struct menuinputs *inputs, u32 arg1, union menuitemtickdata *data) +bool menuTickItemRanking(struct menuinputs *inputs, u32 arg1, union menuitemdata *data) { f32 floatval; s32 intval; @@ -7147,7 +7147,7 @@ bool menuTickItemRanking(struct menuinputs *inputs, u32 arg1, union menuitemtick return true; } -void menuInitItemRanking(union menuitemtickdata *data) +void menuInitItemRanking(union menuitemdata *data) { data->ranking.scrolloffset = 0; } @@ -7316,7 +7316,7 @@ glabel menuRenderItemPlayerStats /* f0ee898: 02e02825 */ or $a1,$s7,$zero /* f0ee89c: 02802025 */ or $a0,$s4,$zero /* f0ee8a0: 8fa700b0 */ lw $a3,0xb0($sp) -/* f0ee8a4: 0fc5580f */ jal textRenderWhite +/* f0ee8a4: 0fc5580f */ jal textRenderProjected /* f0ee8a8: afac0020 */ sw $t4,0x20($sp) /* f0ee8ac: 8e300010 */ lw $s0,0x10($s1) /* f0ee8b0: 44802000 */ mtc1 $zero,$f4 @@ -7408,7 +7408,7 @@ glabel menuRenderItemPlayerStats /* f0ee9fc: afa00024 */ sw $zero,0x24($sp) /* f0eea00: 03c03025 */ or $a2,$s8,$zero /* f0eea04: 00403825 */ or $a3,$v0,$zero -/* f0eea08: 0fc5580f */ jal textRenderWhite +/* f0eea08: 0fc5580f */ jal textRenderProjected /* f0eea0c: afaf0020 */ sw $t7,0x20($sp) /* f0eea10: 86380000 */ lh $t8,0x0($s1) /* f0eea14: 8fa800a4 */ lw $t0,0xa4($sp) @@ -7459,7 +7459,7 @@ glabel menuRenderItemPlayerStats /* f0eeac8: afa00024 */ sw $zero,0x24($sp) /* f0eeacc: 03c03025 */ or $a2,$s8,$zero /* f0eead0: 02603825 */ or $a3,$s3,$zero -/* f0eead4: 0fc5580f */ jal textRenderWhite +/* f0eead4: 0fc5580f */ jal textRenderProjected /* f0eead8: afad0020 */ sw $t5,0x20($sp) /* f0eeadc: 0040a025 */ or $s4,$v0,$zero /* f0eeae0: 0fc6321f */ jal mpGetNumChrs @@ -7555,7 +7555,7 @@ glabel menuRenderItemPlayerStats /* f0eec3c: afa00024 */ sw $zero,0x24($sp) /* f0eec40: 03c03025 */ or $a2,$s8,$zero /* f0eec44: 00403825 */ or $a3,$v0,$zero -/* f0eec48: 0fc5580f */ jal textRenderWhite +/* f0eec48: 0fc5580f */ jal textRenderProjected /* f0eec4c: afb80020 */ sw $t8,0x20($sp) /* f0eec50: 0040a025 */ or $s4,$v0,$zero /* f0eec54: 0fc5b9f1 */ jal langGet @@ -7596,7 +7596,7 @@ glabel menuRenderItemPlayerStats /* f0eece0: afa00024 */ sw $zero,0x24($sp) /* f0eece4: 03c03025 */ or $a2,$s8,$zero /* f0eece8: 00403825 */ or $a3,$v0,$zero -/* f0eecec: 0fc5580f */ jal textRenderWhite +/* f0eecec: 0fc5580f */ jal textRenderProjected /* f0eecf0: afa80020 */ sw $t0,0x20($sp) /* f0eecf4: 8faa00a0 */ lw $t2,0xa0($sp) /* f0eecf8: 86390006 */ lh $t9,0x6($s1) @@ -7830,7 +7830,7 @@ glabel menuRenderItemPlayerStats /* f0ef04c: afa00024 */ sw $zero,0x24($sp) /* f0ef050: 02e02825 */ or $a1,$s7,$zero /* f0ef054: 03c03025 */ or $a2,$s8,$zero -/* f0ef058: 0fc5580f */ jal textRenderWhite +/* f0ef058: 0fc5580f */ jal textRenderProjected /* f0ef05c: afa90020 */ sw $t1,0x20($sp) /* f0ef060: 8fa70078 */ lw $a3,0x78($sp) /* f0ef064: 8faa006c */ lw $t2,0x6c($sp) @@ -7873,7 +7873,7 @@ glabel menuRenderItemPlayerStats /* f0ef0f8: afa00024 */ sw $zero,0x24($sp) /* f0ef0fc: 03c03025 */ or $a2,$s8,$zero /* f0ef100: 02603825 */ or $a3,$s3,$zero -/* f0ef104: 0fc5580f */ jal textRenderWhite +/* f0ef104: 0fc5580f */ jal textRenderProjected /* f0ef108: afb80020 */ sw $t8,0x20($sp) /* f0ef10c: 8fb90070 */ lw $t9,0x70($sp) /* f0ef110: 3c057f1b */ lui $a1,%hi(var7f1b1e54) @@ -7914,7 +7914,7 @@ glabel menuRenderItemPlayerStats /* f0ef19c: afa00024 */ sw $zero,0x24($sp) /* f0ef1a0: 03c03025 */ or $a2,$s8,$zero /* f0ef1a4: 02603825 */ or $a3,$s3,$zero -/* f0ef1a8: 0fc5580f */ jal textRenderWhite +/* f0ef1a8: 0fc5580f */ jal textRenderProjected /* f0ef1ac: afa90020 */ sw $t1,0x20($sp) /* f0ef1b0: 0040a025 */ or $s4,$v0,$zero /* f0ef1b4: 2652000a */ addiu $s2,$s2,0xa @@ -7940,7 +7940,7 @@ glabel menuRenderItemPlayerStats /* f0ef1fc: 27bd00c8 */ addiu $sp,$sp,0xc8 ); -bool menuTickItemPlayerStats(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data) +bool menuTickItemPlayerStats(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data) { f32 floatval; s32 intval; @@ -7972,7 +7972,7 @@ Gfx *func0f0ef2fc(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, return func0f0e8290(gdl, x + 1, y, -1, y2, item, arg6, arg7); } -void menuInitItemPlayerStats(struct menuitem *item, union menuitemtickdata *data) +void menuInitItemPlayerStats(struct menuitem *item, union menuitemdata *data) { data->dropdown.scrolloffset = 0; var8009deb0[g_MpPlayerNum] = g_MpPlayerNum; @@ -8360,7 +8360,7 @@ u16 menuControllerGetButtonAction(s32 mode, s32 buttonnum) * Note that the valuecolour argument is mostly unused - only the alpha channel * is used because the rest is bitwise or'ed to white. */ -Gfx *menuRenderControllerText(Gfx *gdl, s32 curmode, struct menurenderthing *thing, s32 x, s32 y, u32 valuecolour, u32 labelcolour, s8 prevmode) +Gfx *menuRenderControllerText(Gfx *gdl, s32 curmode, struct menurendercontext *context, s32 x, s32 y, u32 valuecolour, u32 labelcolour, s8 prevmode) { s32 rx; s32 ry; @@ -8384,13 +8384,13 @@ Gfx *menuRenderControllerText(Gfx *gdl, s32 curmode, struct menurenderthing *thi gdl = func0f153628(gdl); for (i = 0; i < ARRAYCOUNT(labels); i++) { - ry = i * 7 + thing->y + y; + ry = i * 7 + context->y + y; // For the 2.x styles, only labels 4-7 are shown if (curmode < CONTROLMODE_21 || (i >= 4 && i <= 7)) { // Rendering a label such as "L/R BUTTONS:" - rx = thing->x + x + 76; - gdl = textRenderWhite(gdl, &rx, &ry, langGet(labels[i]), + rx = context->x + x + 76; + gdl = textRenderProjected(gdl, &rx, &ry, langGet(labels[i]), var8007fb08, var8007fb04, labelcolour, viGetX(), viGetY(), 0, 0); } @@ -8417,7 +8417,7 @@ Gfx *menuRenderControllerText(Gfx *gdl, s32 curmode, struct menurenderthing *thi if (curmode >= CONTROLMODE_21 && i == 2) { // Rendering a "CONTROLLER 1" or "CONTROLLER 2" heading - rx = thing->x + x + 63; + rx = context->x + x + 63; colour = labelcolour; } else { // Rendering a value such as "WALK/TURN" @@ -8425,17 +8425,17 @@ Gfx *menuRenderControllerText(Gfx *gdl, s32 curmode, struct menurenderthing *thi colour |= 0xffffff00; } - gdl = textRenderWhite(gdl, &rx, &ry, langGet(textnum), + gdl = textRenderProjected(gdl, &rx, &ry, langGet(textnum), var8007fb08, var8007fb04, colour, viGetX(), viGetY(), 0, 0); } return func0f153780(gdl); } -Gfx *menuRenderControllerInfo(Gfx *gdl, struct menurenderthing *thing, s32 x, s32 y, s32 curmode, u32 alpha, u32 colour1, u32 colour2, s8 prevmode) +Gfx *menuRenderControllerInfo(Gfx *gdl, struct menurendercontext *context, s32 x, s32 y, s32 curmode, u32 alpha, u32 colour1, u32 colour2, s8 prevmode) { - s32 rx = thing->x + x; - s32 ry = thing->y + y + 4; + s32 rx = context->x + x; + s32 ry = context->y + y + 4; // The controller graphic is split into 4 textures gdl = menuRenderControllerTexture(gdl, rx, ry, 0x33, alpha); @@ -8444,23 +8444,23 @@ Gfx *menuRenderControllerInfo(Gfx *gdl, struct menurenderthing *thing, s32 x, s3 gdl = menuRenderControllerTexture(gdl, rx + 32, ry + 32, 0x36, alpha); if (curmode >= CONTROLMODE_21) { - gdl = menuRenderControllerLines(gdl, thing, 13, 19, x, y, alpha); + gdl = menuRenderControllerLines(gdl, context, 13, 19, x, y, alpha); } else { - gdl = menuRenderControllerLines(gdl, thing, 0, 21, x, y, alpha); + gdl = menuRenderControllerLines(gdl, context, 0, 21, x, y, alpha); } - return menuRenderControllerText(gdl, curmode, thing, x, y, colour1, colour2, prevmode); + return menuRenderControllerText(gdl, curmode, context, x, y, colour1, colour2, prevmode); } -Gfx *menuRenderItemController(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItemController(Gfx *gdl, struct menurendercontext *context) { - struct menurenderthing14_controller *data = thing->unk14.controller; + struct menuitemdata_controller *data = &context->data->controller; u32 colour; u32 textcolour; s32 x; s32 y; char text[32]; - struct menuframe *frame = thing->frame; + struct menuframe *frame = context->frame; u32 contalpha; u32 textalpha; @@ -8541,9 +8541,9 @@ Gfx *menuRenderItemController(Gfx *gdl, struct menurenderthing *thing) langGet(L_MPWEAPONS(214))); // "(One-Handed)" } - x = thing->x + 2; - y = thing->y + 2; - gdl = textRenderWhite(gdl, &x, &y, text, + x = context->x + 2; + y = context->y + 2; + gdl = textRenderProjected(gdl, &x, &y, text, var8007fb10, var8007fb0c, colour, viGetX(), viGetY(), 0, 0); gdl = func0f153780(gdl); @@ -8551,21 +8551,21 @@ Gfx *menuRenderItemController(Gfx *gdl, struct menurenderthing *thing) colour = colourBlend(colour, colour & 0xffffff00, contalpha); if (g_Menus[g_MpPlayerNum].data.main.controlmode >= CONTROLMODE_21) { - gdl = menuRenderControllerInfo(gdl, thing, 0, 12, + gdl = menuRenderControllerInfo(gdl, context, 0, 12, g_Menus[g_MpPlayerNum].data.main.controlmode, contalpha, textcolour, colour, data->prevmode); - gdl = menuRenderControllerInfo(gdl, thing, 0, 80, + gdl = menuRenderControllerInfo(gdl, context, 0, 80, g_Menus[g_MpPlayerNum].data.main.controlmode + 4, contalpha, textcolour, colour, data->prevmode); } else { - gdl = menuRenderControllerInfo(gdl, thing, 0, 15, + gdl = menuRenderControllerInfo(gdl, context, 0, 15, g_Menus[g_MpPlayerNum].data.main.controlmode, contalpha, textcolour, colour, data->prevmode); - x = thing->x; - y = thing->y + 92; + x = context->x; + y = context->y + 92; gdl = func0f153628(gdl); - gdl = textRenderWhite(gdl, &x, &y, langGet(L_MPWEAPONS(216)), // "Hold weapon button for ..." + gdl = textRenderProjected(gdl, &x, &y, langGet(L_MPWEAPONS(216)), // "Hold weapon button for ..." var8007fb10, var8007fb0c, colour, viGetX(), viGetY(), 0, 0); gdl = func0f153780(gdl); } @@ -8575,36 +8575,36 @@ Gfx *menuRenderItemController(Gfx *gdl, struct menurenderthing *thing) return gdl; } -void menuInitItemController(union menuitemtickdata *data) +void menuInitItemController(union menuitemdata *data) { - data->controller.unk00 = 0; - data->controller.unk01 = 0; - data->controller.unk02 = 255; - data->controller.unk03 = 255; - data->controller.unk04 = -1; + data->controller.textfadetimer = 0; + data->controller.contfadetimer = 0; + data->controller.curmode = 255; + data->controller.controlgroup = 255; + data->controller.prevmode = -1; } -Gfx *menuRenderItem(Gfx *gdl, struct menurenderthing *thing) +Gfx *menuRenderItem(Gfx *gdl, struct menurendercontext *context) { - switch (thing->item->type) { + switch (context->item->type) { case MENUITEMTYPE_LIST: return menuRenderItemList(gdl); - case MENUITEMTYPE_SELECTABLE: return menuRenderItemSelectable(gdl, thing); + case MENUITEMTYPE_SELECTABLE: return menuRenderItemSelectable(gdl, context); case MENUITEMTYPE_SLIDER: return menuRenderItemSlider(gdl); - case MENUITEMTYPE_CHECKBOX: return menuRenderItemCheckbox(gdl, thing); - case MENUITEMTYPE_SCROLLABLE: return menuRenderItemScrollable(gdl, thing); - case MENUITEMTYPE_MARQUEE: return menuRenderItemMarquee(gdl, thing); - case MENUITEMTYPE_LABEL: return menuRenderItemLabel(gdl, thing); - case MENUITEMTYPE_METER: return menuRenderItemMeter(gdl, thing); - case MENUITEMTYPE_SEPARATOR: return menuRenderItemSeparator(gdl, thing); - case MENUITEMTYPE_OBJECTIVES: return menuRenderItemObjectives(gdl, thing); + case MENUITEMTYPE_CHECKBOX: return menuRenderItemCheckbox(gdl, context); + case MENUITEMTYPE_SCROLLABLE: return menuRenderItemScrollable(gdl, context); + case MENUITEMTYPE_MARQUEE: return menuRenderItemMarquee(gdl, context); + case MENUITEMTYPE_LABEL: return menuRenderItemLabel(gdl, context); + case MENUITEMTYPE_METER: return menuRenderItemMeter(gdl, context); + case MENUITEMTYPE_SEPARATOR: return menuRenderItemSeparator(gdl, context); + case MENUITEMTYPE_OBJECTIVES: return menuRenderItemObjectives(gdl, context); case MENUITEMTYPE_07: return menuRenderItem07(gdl); case MENUITEMTYPE_DROPDOWN: return menuRenderItemDropdown(gdl); - case MENUITEMTYPE_KEYBOARD: return menuRenderItemKeyboard(gdl, thing); - case MENUITEMTYPE_RANKING: return menuRenderItemRanking(gdl, thing); + case MENUITEMTYPE_KEYBOARD: return menuRenderItemKeyboard(gdl, context); + case MENUITEMTYPE_RANKING: return menuRenderItemRanking(gdl, context); case MENUITEMTYPE_PLAYERSTATS: return menuRenderItemPlayerStats(gdl); - case MENUITEMTYPE_CAROUSEL: return menuRenderItemCarousel(gdl, thing); - case MENUITEMTYPE_MODEL: return menuRenderItemModel(gdl, thing); - case MENUITEMTYPE_CONTROLLER: return menuRenderItemController(gdl, thing); + case MENUITEMTYPE_CAROUSEL: return menuRenderItemCarousel(gdl, context); + case MENUITEMTYPE_MODEL: return menuRenderItemModel(gdl, context); + case MENUITEMTYPE_CONTROLLER: return menuRenderItemController(gdl, context); } return gdl; @@ -8613,7 +8613,7 @@ Gfx *menuRenderItem(Gfx *gdl, struct menurenderthing *thing) /** * Return true if default up/down/left/right/back behaviour should be used. */ -bool menuTickItem(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data) +bool menuTickItem(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data) { switch (item->type) { case MENUITEMTYPE_LIST: return menuTickItemList(item, inputs, arg3, data); @@ -8632,7 +8632,7 @@ bool menuTickItem(struct menuitem *item, struct menuframe *frame, struct menuinp return true; } -void menuInitItem(struct menuitem *item, union menuitemtickdata *data) +void menuInitItem(struct menuitem *item, union menuitemdata *data) { switch (item->type) { case MENUITEMTYPE_LIST: diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index d19f65d3a..061736ba3 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -468,7 +468,7 @@ glabel func0f0f0ce8 /* f0f10b0: afa00024 */ sw $zero,0x24($sp) /* f0f10b4: afa00028 */ sw $zero,0x28($sp) /* f0f10b8: afb90010 */ sw $t9,0x10($sp) -/* f0f10bc: 0fc5580f */ jal textRenderWhite +/* f0f10bc: 0fc5580f */ jal textRenderProjected /* f0f10c0: afb80014 */ sw $t8,0x14($sp) /* f0f10c4: 8faa0070 */ lw $t2,0x70($sp) /* f0f10c8: 8fa90044 */ lw $t1,0x44($sp) @@ -505,7 +505,7 @@ glabel func0f0f0ce8 /* f0f1140: afa00024 */ sw $zero,0x24($sp) /* f0f1144: afa00028 */ sw $zero,0x28($sp) /* f0f1148: afb90010 */ sw $t9,0x10($sp) -/* f0f114c: 0fc5580f */ jal textRenderWhite +/* f0f114c: 0fc5580f */ jal textRenderProjected /* f0f1150: afb80014 */ sw $t8,0x14($sp) /* f0f1154: 8fa90078 */ lw $t1,0x78($sp) /* f0f1158: 8faa0044 */ lw $t2,0x44($sp) @@ -542,7 +542,7 @@ glabel func0f0f0ce8 /* f0f11d0: afa00024 */ sw $zero,0x24($sp) /* f0f11d4: afa00028 */ sw $zero,0x28($sp) /* f0f11d8: afb90010 */ sw $t9,0x10($sp) -/* f0f11dc: 0fc5580f */ jal textRenderWhite +/* f0f11dc: 0fc5580f */ jal textRenderProjected /* f0f11e0: afb80014 */ sw $t8,0x14($sp) /* f0f11e4: 8faa0070 */ lw $t2,0x70($sp) /* f0f11e8: 8fa60084 */ lw $a2,0x84($sp) @@ -579,7 +579,7 @@ glabel func0f0f0ce8 /* f0f1260: afa00024 */ sw $zero,0x24($sp) /* f0f1264: afa00028 */ sw $zero,0x28($sp) /* f0f1268: afae0010 */ sw $t6,0x10($sp) -/* f0f126c: 0fc5580f */ jal textRenderWhite +/* f0f126c: 0fc5580f */ jal textRenderProjected /* f0f1270: afb90014 */ sw $t9,0x14($sp) /* f0f1274: 8fab0040 */ lw $t3,0x40($sp) /* f0f1278: 8fa60080 */ lw $a2,0x80($sp) @@ -621,7 +621,7 @@ glabel func0f0f0ce8 /* f0f1304: afa00024 */ sw $zero,0x24($sp) /* f0f1308: afa00028 */ sw $zero,0x28($sp) /* f0f130c: afab0014 */ sw $t3,0x14($sp) -/* f0f1310: 0fc5580f */ jal textRenderWhite +/* f0f1310: 0fc5580f */ jal textRenderProjected /* f0f1314: afb80010 */ sw $t8,0x10($sp) /* f0f1318: 00408825 */ or $s1,$v0,$zero .L0f0f131c: @@ -5584,7 +5584,7 @@ glabel func0f0f5360 /* f0f5c88: afa00028 */ sw $zero,0x28($sp) /* f0f5c8c: afb80010 */ sw $t8,0x10($sp) /* f0f5c90: afb90014 */ sw $t9,0x14($sp) -/* f0f5c94: 0fc5580f */ jal textRenderWhite +/* f0f5c94: 0fc5580f */ jal textRenderProjected /* f0f5c98: afae001c */ sw $t6,0x1c($sp) /* f0f5c9c: afa201e8 */ sw $v0,0x1e8($sp) /* f0f5ca0: afb201d0 */ sw $s2,0x1d0($sp) @@ -5604,7 +5604,7 @@ glabel func0f0f5360 /* f0f5cd8: afab0010 */ sw $t3,0x10($sp) /* f0f5cdc: afac0014 */ sw $t4,0x14($sp) /* f0f5ce0: afb80018 */ sw $t8,0x18($sp) -/* f0f5ce4: 0fc5580f */ jal textRenderWhite +/* f0f5ce4: 0fc5580f */ jal textRenderProjected /* f0f5ce8: afb9001c */ sw $t9,0x1c($sp) /* f0f5cec: 3c03800a */ lui $v1,%hi(g_MenuData+0x4) /* f0f5cf0: 8c6319c4 */ lw $v1,%lo(g_MenuData+0x4)($v1) @@ -5642,7 +5642,7 @@ glabel func0f0f5360 /* f0f5d6c: afab0010 */ sw $t3,0x10($sp) /* f0f5d70: afac0014 */ sw $t4,0x14($sp) /* f0f5d74: afb80018 */ sw $t8,0x18($sp) -/* f0f5d78: 0fc5580f */ jal textRenderWhite +/* f0f5d78: 0fc5580f */ jal textRenderProjected /* f0f5d7c: afb9001c */ sw $t9,0x1c($sp) /* f0f5d80: afa201e8 */ sw $v0,0x1e8($sp) .L0f0f5d84: @@ -7131,7 +7131,7 @@ glabel func0f0f5360 /* f0f7360: afa00028 */ sw $zero,0x28($sp) /* f0f7364: afab0010 */ sw $t3,0x10($sp) /* f0f7368: afb80014 */ sw $t8,0x14($sp) -/* f0f736c: 0fc5580f */ jal textRenderWhite +/* f0f736c: 0fc5580f */ jal textRenderProjected /* f0f7370: afaf001c */ sw $t7,0x1c($sp) /* f0f7374: afa201e8 */ sw $v0,0x1e8($sp) /* f0f7378: 82230015 */ lb $v1,0x15($s1) @@ -7192,7 +7192,7 @@ glabel func0f0f5360 /* f0f7448: afa00028 */ sw $zero,0x28($sp) /* f0f744c: afb90010 */ sw $t9,0x10($sp) /* f0f7450: afae0014 */ sw $t6,0x14($sp) -/* f0f7454: 0fc5580f */ jal textRenderWhite +/* f0f7454: 0fc5580f */ jal textRenderProjected /* f0f7458: afb8001c */ sw $t8,0x1c($sp) /* f0f745c: 0fc54de0 */ jal func0f153780 /* f0f7460: 00402025 */ or $a0,$v0,$zero @@ -13065,7 +13065,7 @@ glabel var7f1b2afc /* f0fc600: afa00024 */ sw $zero,0x24($sp) /* f0fc604: afa00028 */ sw $zero,0x28($sp) /* f0fc608: afaa0014 */ sw $t2,0x14($sp) -/* f0fc60c: 0fc5580f */ jal textRenderWhite +/* f0fc60c: 0fc5580f */ jal textRenderProjected /* f0fc610: afac0010 */ sw $t4,0x10($sp) /* f0fc614: 8ece0490 */ lw $t6,0x490($s6) /* f0fc618: 24010002 */ addiu $at,$zero,0x2 @@ -13121,7 +13121,7 @@ glabel var7f1b2afc /* f0fc6d8: afa00028 */ sw $zero,0x28($sp) /* f0fc6dc: afad0014 */ sw $t5,0x14($sp) /* f0fc6e0: afab0010 */ sw $t3,0x10($sp) -/* f0fc6e4: 0fc5580f */ jal textRenderWhite +/* f0fc6e4: 0fc5580f */ jal textRenderProjected /* f0fc6e8: afa30018 */ sw $v1,0x18($sp) /* f0fc6ec: 0040a825 */ or $s5,$v0,$zero .L0f0fc6f0: diff --git a/src/game/game_0fd660.c b/src/game/game_0fd660.c index 3dcb11496..09c824ba5 100644 --- a/src/game/game_0fd660.c +++ b/src/game/game_0fd660.c @@ -468,7 +468,7 @@ glabel var7f1b2cd8 /* f0fdc30: afb8001c */ sw $t8,0x1c($sp) /* f0fdc34: afaf0014 */ sw $t7,0x14($sp) /* f0fdc38: afb90010 */ sw $t9,0x10($sp) -/* f0fdc3c: 0fc5580f */ jal textRenderWhite +/* f0fdc3c: 0fc5580f */ jal textRenderProjected /* f0fdc40: afae0018 */ sw $t6,0x18($sp) /* f0fdc44: 0fc54de0 */ jal func0f153780 /* f0fdc48: 00402025 */ or $a0,$v0,$zero @@ -1722,7 +1722,7 @@ glabel func0f0ff6f4 /* f0ff798: afa00028 */ sw $zero,0x28($sp) /* f0ff79c: afac0014 */ sw $t4,0x14($sp) /* f0ff7a0: afab0010 */ sw $t3,0x10($sp) -/* f0ff7a4: 0fc5580f */ jal textRenderWhite +/* f0ff7a4: 0fc5580f */ jal textRenderProjected /* f0ff7a8: afad0018 */ sw $t5,0x18($sp) /* f0ff7ac: 8fbf0034 */ lw $ra,0x34($sp) /* f0ff7b0: 27bd0048 */ addiu $sp,$sp,0x48 diff --git a/src/game/game_102240.c b/src/game/game_102240.c index b2f330af8..c85844621 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -2594,7 +2594,7 @@ glabel var7f1b2dfc /* f1054d8: 27a50130 */ addiu $a1,$sp,0x130 /* f1054dc: 27a6012c */ addiu $a2,$sp,0x12c /* f1054e0: 27a700f0 */ addiu $a3,$sp,0xf0 -/* f1054e4: 0fc5580f */ jal textRenderWhite +/* f1054e4: 0fc5580f */ jal textRenderProjected /* f1054e8: afb80018 */ sw $t8,0x18($sp) /* f1054ec: 8faf004c */ lw $t7,0x4c($sp) /* f1054f0: afa20138 */ sw $v0,0x138($sp) @@ -2625,7 +2625,7 @@ glabel var7f1b2dfc /* f105554: 27a50130 */ addiu $a1,$sp,0x130 /* f105558: 27a6012c */ addiu $a2,$sp,0x12c /* f10555c: 27a700f0 */ addiu $a3,$sp,0xf0 -/* f105560: 0fc5580f */ jal textRenderWhite +/* f105560: 0fc5580f */ jal textRenderProjected /* f105564: afaf0018 */ sw $t7,0x18($sp) /* f105568: afa20138 */ sw $v0,0x138($sp) /* f10556c: 0fc54de0 */ jal func0f153780 diff --git a/src/game/game_107fb0.c b/src/game/game_107fb0.c index c250fe7d6..b91d92de6 100644 --- a/src/game/game_107fb0.c +++ b/src/game/game_107fb0.c @@ -3212,7 +3212,7 @@ glabel var7f1b37a8 /* f10acec: afa00024 */ sw $zero,0x24($sp) /* f10acf0: afad0014 */ sw $t5,0x14($sp) /* f10acf4: afac0010 */ sw $t4,0x10($sp) -/* f10acf8: 0fc5580f */ jal textRenderWhite +/* f10acf8: 0fc5580f */ jal textRenderProjected /* f10acfc: afae001c */ sw $t6,0x1c($sp) /* f10ad00: 8fb80070 */ lw $t8,0x70($sp) /* f10ad04: 00408825 */ or $s1,$v0,$zero @@ -3673,7 +3673,7 @@ glabel var7f1b37f8 /* f10b364: 27a60150 */ addiu $a2,$sp,0x150 /* f10b368: 27a700d4 */ addiu $a3,$sp,0xd4 /* f10b36c: afb9001c */ sw $t9,0x1c($sp) -/* f10b370: 0fc5580f */ jal textRenderWhite +/* f10b370: 0fc5580f */ jal textRenderProjected /* f10b374: afb80018 */ sw $t8,0x18($sp) /* f10b378: 8faa0160 */ lw $t2,0x160($sp) /* f10b37c: afa2014c */ sw $v0,0x14c($sp) @@ -3761,7 +3761,7 @@ glabel var7f1b37f8 /* f10b4bc: 27a60150 */ addiu $a2,$sp,0x150 /* f10b4c0: 27a700d4 */ addiu $a3,$sp,0xd4 /* f10b4c4: afae001c */ sw $t6,0x1c($sp) -/* f10b4c8: 0fc5580f */ jal textRenderWhite +/* f10b4c8: 0fc5580f */ jal textRenderProjected /* f10b4cc: afad0018 */ sw $t5,0x18($sp) /* f10b4d0: afa2014c */ sw $v0,0x14c($sp) /* f10b4d4: 8e180000 */ lw $t8,0x0($s0) @@ -3790,7 +3790,7 @@ glabel var7f1b37f8 /* f10b530: 27a60150 */ addiu $a2,$sp,0x150 /* f10b534: 27a70098 */ addiu $a3,$sp,0x98 /* f10b538: afad001c */ sw $t5,0x1c($sp) -/* f10b53c: 0fc5580f */ jal textRenderWhite +/* f10b53c: 0fc5580f */ jal textRenderProjected /* f10b540: afac0018 */ sw $t4,0x18($sp) /* f10b544: 3c0f8008 */ lui $t7,%hi(var8007fb0c) /* f10b548: 8deffb0c */ lw $t7,%lo(var8007fb0c)($t7) @@ -3833,7 +3833,7 @@ glabel var7f1b37f8 /* f10b5dc: 27a60150 */ addiu $a2,$sp,0x150 /* f10b5e0: 27a7005c */ addiu $a3,$sp,0x5c /* f10b5e4: afb9001c */ sw $t9,0x1c($sp) -/* f10b5e8: 0fc5580f */ jal textRenderWhite +/* f10b5e8: 0fc5580f */ jal textRenderProjected /* f10b5ec: afb80018 */ sw $t8,0x18($sp) /* f10b5f0: 1000001c */ b .L0f10b664 /* f10b5f4: 8fbf003c */ lw $ra,0x3c($sp) @@ -4628,7 +4628,7 @@ glabel var7f1b385c /* f10c3a8: 27a50144 */ addiu $a1,$sp,0x144 /* f10c3ac: 27a60140 */ addiu $a2,$sp,0x140 /* f10c3b0: 8fa70058 */ lw $a3,0x58($sp) -/* f10c3b4: 0fc5580f */ jal textRenderWhite +/* f10c3b4: 0fc5580f */ jal textRenderProjected /* f10c3b8: afb90018 */ sw $t9,0x18($sp) /* f10c3bc: 100000c8 */ b .L0f10c6e0 /* f10c3c0: afa20130 */ sw $v0,0x130($sp) @@ -4658,7 +4658,7 @@ glabel var7f1b385c /* f10c41c: 27a50144 */ addiu $a1,$sp,0x144 /* f10c420: 27a60140 */ addiu $a2,$sp,0x140 /* f10c424: 27a70118 */ addiu $a3,$sp,0x118 -/* f10c428: 0fc5580f */ jal textRenderWhite +/* f10c428: 0fc5580f */ jal textRenderProjected /* f10c42c: afb80018 */ sw $t8,0x18($sp) /* f10c430: 8fa3012c */ lw $v1,0x12c($sp) /* f10c434: afa20130 */ sw $v0,0x130($sp) @@ -4727,7 +4727,7 @@ glabel var7f1b385c /* f10c528: 27a50144 */ addiu $a1,$sp,0x144 /* f10c52c: 27a60140 */ addiu $a2,$sp,0x140 /* f10c530: 27a7009c */ addiu $a3,$sp,0x9c -/* f10c534: 0fc5580f */ jal textRenderWhite +/* f10c534: 0fc5580f */ jal textRenderProjected /* f10c538: afab0018 */ sw $t3,0x18($sp) /* f10c53c: 8fb8012c */ lw $t8,0x12c($sp) /* f10c540: afa20130 */ sw $v0,0x130($sp) @@ -4797,7 +4797,7 @@ glabel var7f1b385c /* f10c638: 27a50144 */ addiu $a1,$sp,0x144 /* f10c63c: 27a60140 */ addiu $a2,$sp,0x140 /* f10c640: 27a7009c */ addiu $a3,$sp,0x9c -/* f10c644: 0fc5580f */ jal textRenderWhite +/* f10c644: 0fc5580f */ jal textRenderProjected /* f10c648: afb80018 */ sw $t8,0x18($sp) /* f10c64c: 8fad0140 */ lw $t5,0x140($sp) /* f10c650: 8fae0144 */ lw $t6,0x144($sp) @@ -4833,7 +4833,7 @@ glabel var7f1b385c /* f10c6c8: 27a50144 */ addiu $a1,$sp,0x144 /* f10c6cc: 27a60140 */ addiu $a2,$sp,0x140 /* f10c6d0: 27a7009c */ addiu $a3,$sp,0x9c -/* f10c6d4: 0fc5580f */ jal textRenderWhite +/* f10c6d4: 0fc5580f */ jal textRenderProjected /* f10c6d8: afb90018 */ sw $t9,0x18($sp) /* f10c6dc: afa20130 */ sw $v0,0x130($sp) .L0f10c6e0: diff --git a/src/game/game_141820.c b/src/game/game_141820.c index 877cb1e23..23ecad4c3 100644 --- a/src/game/game_141820.c +++ b/src/game/game_141820.c @@ -7321,7 +7321,7 @@ glabel hudRenderHorizonScanner /* f1482d8: afa00024 */ sw $zero,0x24($sp) /* f1482dc: afa00028 */ sw $zero,0x28($sp) /* f1482e0: afaa0014 */ sw $t2,0x14($sp) -/* f1482e4: 0fc5580f */ jal textRenderWhite +/* f1482e4: 0fc5580f */ jal textRenderProjected /* f1482e8: afa90010 */ sw $t1,0x10($sp) /* f1482ec: 3c057f1b */ lui $a1,%hi(var7f1b5f0c) /* f1482f0: 00409025 */ or $s2,$v0,$zero @@ -7360,7 +7360,7 @@ glabel hudRenderHorizonScanner /* f148370: afa00024 */ sw $zero,0x24($sp) /* f148374: afa00028 */ sw $zero,0x28($sp) /* f148378: afb80014 */ sw $t8,0x14($sp) -/* f14837c: 0fc5580f */ jal textRenderWhite +/* f14837c: 0fc5580f */ jal textRenderProjected /* f148380: afb90010 */ sw $t9,0x10($sp) /* f148384: 8faf00ac */ lw $t7,0xac($sp) /* f148388: 8faa0184 */ lw $t2,0x184($sp) @@ -7398,7 +7398,7 @@ glabel hudRenderHorizonScanner /* f148408: afa00024 */ sw $zero,0x24($sp) /* f14840c: afa00028 */ sw $zero,0x28($sp) /* f148410: afad0014 */ sw $t5,0x14($sp) -/* f148414: 0fc5580f */ jal textRenderWhite +/* f148414: 0fc5580f */ jal textRenderProjected /* f148418: afac0010 */ sw $t4,0x10($sp) /* f14841c: 8fb800a8 */ lw $t8,0xa8($sp) /* f148420: 00409025 */ or $s2,$v0,$zero @@ -7446,7 +7446,7 @@ glabel hudRenderHorizonScanner /* f1484c0: afa00024 */ sw $zero,0x24($sp) /* f1484c4: afa00028 */ sw $zero,0x28($sp) /* f1484c8: afaf0014 */ sw $t7,0x14($sp) -/* f1484cc: 0fc5580f */ jal textRenderWhite +/* f1484cc: 0fc5580f */ jal textRenderProjected /* f1484d0: afae0010 */ sw $t6,0x10($sp) /* f1484d4: 8faa00a8 */ lw $t2,0xa8($sp) /* f1484d8: 8fb900ac */ lw $t9,0xac($sp) @@ -7490,7 +7490,7 @@ glabel hudRenderHorizonScanner /* f148568: afa00024 */ sw $zero,0x24($sp) /* f14856c: afa00028 */ sw $zero,0x28($sp) /* f148570: afac0014 */ sw $t4,0x14($sp) -/* f148574: 0fc5580f */ jal textRenderWhite +/* f148574: 0fc5580f */ jal textRenderProjected /* f148578: afab0010 */ sw $t3,0x10($sp) /* f14857c: 0fc54de0 */ jal func0f153780 /* f148580: 00402025 */ or $a0,$v0,$zero diff --git a/src/game/game_1531a0.c b/src/game/game_1531a0.c index 9ed412936..65c750c64 100644 --- a/src/game/game_1531a0.c +++ b/src/game/game_1531a0.c @@ -3054,7 +3054,7 @@ glabel func0f156030 ); GLOBAL_ASM( -glabel textRenderWhite +glabel textRenderProjected /* f15603c: 27bdff40 */ addiu $sp,$sp,-192 /* f156040: 3c0f8008 */ lui $t7,%hi(var8007fac8) /* f156044: 8deffac8 */ lw $t7,%lo(var8007fac8)($t7) diff --git a/src/game/game_179060.c b/src/game/game_179060.c index dd909da67..54b5f5986 100644 --- a/src/game/game_179060.c +++ b/src/game/game_179060.c @@ -1103,7 +1103,7 @@ glabel menuhandler0017a20c /* f17a320: 27a500b8 */ addiu $a1,$sp,0xb8 /* f17a324: 27a600b4 */ addiu $a2,$sp,0xb4 /* f17a328: 02003825 */ or $a3,$s0,$zero -/* f17a32c: 0fc5580f */ jal textRenderWhite +/* f17a32c: 0fc5580f */ jal textRenderProjected /* f17a330: afb90018 */ sw $t9,0x18($sp) /* f17a334: afa200c4 */ sw $v0,0xc4($sp) /* f17a338: 0fc54de0 */ jal func0f153780 @@ -5270,7 +5270,7 @@ glabel var7f1b8288 /* f17e6b4: 27a500ac */ addiu $a1,$sp,0xac /* f17e6b8: 27a600a8 */ addiu $a2,$sp,0xa8 /* f17e6bc: 02203825 */ or $a3,$s1,$zero -/* f17e6c0: 0fc5580f */ jal textRenderWhite +/* f17e6c0: 0fc5580f */ jal textRenderProjected /* f17e6c4: afab0018 */ sw $t3,0x18($sp) /* f17e6c8: afa200b4 */ sw $v0,0xb4($sp) /* f17e6cc: 0fc54de0 */ jal func0f153780 diff --git a/src/game/game_1a3340.c b/src/game/game_1a3340.c index 3a2986efd..bf0c1bf31 100644 --- a/src/game/game_1a3340.c +++ b/src/game/game_1a3340.c @@ -242,7 +242,7 @@ glabel var7f1b9940 /* f1a363c: 27a60080 */ addiu $a2,$sp,0x80 /* f1a3640: 8fa70044 */ lw $a3,0x44($sp) /* f1a3644: afaf0018 */ sw $t7,0x18($sp) -/* f1a3648: 0fc5580f */ jal textRenderWhite +/* f1a3648: 0fc5580f */ jal textRenderProjected /* f1a364c: afb8001c */ sw $t8,0x1c($sp) /* f1a3650: afa2009c */ sw $v0,0x9c($sp) /* f1a3654: 0fc54de0 */ jal func0f153780 @@ -1411,7 +1411,7 @@ glabel menuhandler001a44c0 /* f1a4d54: afb90014 */ sw $t9,0x14($sp) /* f1a4d58: afad0010 */ sw $t5,0x10($sp) /* f1a4d5c: afae0018 */ sw $t6,0x18($sp) -/* f1a4d60: 0fc5580f */ jal textRenderWhite +/* f1a4d60: 0fc5580f */ jal textRenderProjected /* f1a4d64: afac001c */ sw $t4,0x1c($sp) /* f1a4d68: afa2015c */ sw $v0,0x15c($sp) /* f1a4d6c: 0fc5b9f1 */ jal langGet @@ -1452,7 +1452,7 @@ glabel menuhandler001a44c0 /* f1a4df8: afb80014 */ sw $t8,0x14($sp) /* f1a4dfc: afac0010 */ sw $t4,0x10($sp) /* f1a4e00: afaf0018 */ sw $t7,0x18($sp) -/* f1a4e04: 0fc5580f */ jal textRenderWhite +/* f1a4e04: 0fc5580f */ jal textRenderProjected /* f1a4e08: afad001c */ sw $t5,0x1c($sp) /* f1a4e0c: 8fb90140 */ lw $t9,0x140($sp) /* f1a4e10: afa2015c */ sw $v0,0x15c($sp) @@ -1509,7 +1509,7 @@ glabel menuhandler001a44c0 /* f1a4edc: afad0014 */ sw $t5,0x14($sp) /* f1a4ee0: afaf0010 */ sw $t7,0x10($sp) /* f1a4ee4: afb90018 */ sw $t9,0x18($sp) -/* f1a4ee8: 0fc5580f */ jal textRenderWhite +/* f1a4ee8: 0fc5580f */ jal textRenderProjected /* f1a4eec: afae001c */ sw $t6,0x1c($sp) /* f1a4ef0: 8fac0140 */ lw $t4,0x140($sp) /* f1a4ef4: afa2015c */ sw $v0,0x15c($sp) @@ -1551,7 +1551,7 @@ glabel menuhandler001a44c0 /* f1a4f84: afb80014 */ sw $t8,0x14($sp) /* f1a4f88: afac0010 */ sw $t4,0x10($sp) /* f1a4f8c: afaf0018 */ sw $t7,0x18($sp) -/* f1a4f90: 0fc5580f */ jal textRenderWhite +/* f1a4f90: 0fc5580f */ jal textRenderProjected /* f1a4f94: afad001c */ sw $t5,0x1c($sp) /* f1a4f98: afa2015c */ sw $v0,0x15c($sp) /* f1a4f9c: 0fc5b9f1 */ jal langGet @@ -1592,7 +1592,7 @@ glabel menuhandler001a44c0 /* f1a5028: afb90014 */ sw $t9,0x14($sp) /* f1a502c: afad0010 */ sw $t5,0x10($sp) /* f1a5030: afae0018 */ sw $t6,0x18($sp) -/* f1a5034: 0fc5580f */ jal textRenderWhite +/* f1a5034: 0fc5580f */ jal textRenderProjected /* f1a5038: afac001c */ sw $t4,0x1c($sp) /* f1a503c: 8fb80140 */ lw $t8,0x140($sp) /* f1a5040: afa2015c */ sw $v0,0x15c($sp) @@ -1649,7 +1649,7 @@ glabel menuhandler001a44c0 /* f1a510c: afac0014 */ sw $t4,0x14($sp) /* f1a5110: afae0010 */ sw $t6,0x10($sp) /* f1a5114: afb80018 */ sw $t8,0x18($sp) -/* f1a5118: 0fc5580f */ jal textRenderWhite +/* f1a5118: 0fc5580f */ jal textRenderProjected /* f1a511c: afaf001c */ sw $t7,0x1c($sp) /* f1a5120: 8fad0140 */ lw $t5,0x140($sp) /* f1a5124: afa2015c */ sw $v0,0x15c($sp) @@ -1691,7 +1691,7 @@ glabel menuhandler001a44c0 /* f1a51b4: afb90014 */ sw $t9,0x14($sp) /* f1a51b8: afad0010 */ sw $t5,0x10($sp) /* f1a51bc: afae0018 */ sw $t6,0x18($sp) -/* f1a51c0: 0fc5580f */ jal textRenderWhite +/* f1a51c0: 0fc5580f */ jal textRenderProjected /* f1a51c4: afac001c */ sw $t4,0x1c($sp) /* f1a51c8: afa2015c */ sw $v0,0x15c($sp) /* f1a51cc: 0fc5b9f1 */ jal langGet @@ -1732,7 +1732,7 @@ glabel menuhandler001a44c0 /* f1a5258: afb80014 */ sw $t8,0x14($sp) /* f1a525c: afac0010 */ sw $t4,0x10($sp) /* f1a5260: afaf0018 */ sw $t7,0x18($sp) -/* f1a5264: 0fc5580f */ jal textRenderWhite +/* f1a5264: 0fc5580f */ jal textRenderProjected /* f1a5268: afad001c */ sw $t5,0x1c($sp) /* f1a526c: 8fb90140 */ lw $t9,0x140($sp) /* f1a5270: afa2015c */ sw $v0,0x15c($sp) @@ -1788,7 +1788,7 @@ glabel menuhandler001a44c0 /* f1a5338: afad0014 */ sw $t5,0x14($sp) /* f1a533c: afaf0010 */ sw $t7,0x10($sp) /* f1a5340: afb90018 */ sw $t9,0x18($sp) -/* f1a5344: 0fc5580f */ jal textRenderWhite +/* f1a5344: 0fc5580f */ jal textRenderProjected /* f1a5348: afae001c */ sw $t6,0x1c($sp) /* f1a534c: 8fac0140 */ lw $t4,0x140($sp) /* f1a5350: afa2015c */ sw $v0,0x15c($sp) @@ -1830,7 +1830,7 @@ glabel menuhandler001a44c0 /* f1a53e0: afb80014 */ sw $t8,0x14($sp) /* f1a53e4: afac0010 */ sw $t4,0x10($sp) /* f1a53e8: afaf0018 */ sw $t7,0x18($sp) -/* f1a53ec: 0fc5580f */ jal textRenderWhite +/* f1a53ec: 0fc5580f */ jal textRenderProjected /* f1a53f0: afad001c */ sw $t5,0x1c($sp) /* f1a53f4: afa2015c */ sw $v0,0x15c($sp) /* f1a53f8: 0fc5b9f1 */ jal langGet @@ -1873,7 +1873,7 @@ glabel menuhandler001a44c0 /* f1a548c: afae0014 */ sw $t6,0x14($sp) /* f1a5490: afb90010 */ sw $t9,0x10($sp) /* f1a5494: afac0018 */ sw $t4,0x18($sp) -/* f1a5498: 0fc5580f */ jal textRenderWhite +/* f1a5498: 0fc5580f */ jal textRenderProjected /* f1a549c: afb8001c */ sw $t8,0x1c($sp) /* f1a54a0: 8faf0140 */ lw $t7,0x140($sp) /* f1a54a4: afa2015c */ sw $v0,0x15c($sp) @@ -1927,7 +1927,7 @@ glabel menuhandler001a44c0 /* f1a5564: afac0014 */ sw $t4,0x14($sp) /* f1a5568: afae0010 */ sw $t6,0x10($sp) /* f1a556c: afb80018 */ sw $t8,0x18($sp) -/* f1a5570: 0fc5580f */ jal textRenderWhite +/* f1a5570: 0fc5580f */ jal textRenderProjected /* f1a5574: afaf001c */ sw $t7,0x1c($sp) /* f1a5578: afa2015c */ sw $v0,0x15c($sp) /* f1a557c: 0fc5b9f1 */ jal langGet @@ -1968,7 +1968,7 @@ glabel menuhandler001a44c0 /* f1a5608: afad0014 */ sw $t5,0x14($sp) /* f1a560c: afaf0010 */ sw $t7,0x10($sp) /* f1a5610: afb90018 */ sw $t9,0x18($sp) -/* f1a5614: 0fc5580f */ jal textRenderWhite +/* f1a5614: 0fc5580f */ jal textRenderProjected /* f1a5618: afae001c */ sw $t6,0x1c($sp) /* f1a561c: 8fac0140 */ lw $t4,0x140($sp) /* f1a5620: afa2015c */ sw $v0,0x15c($sp) @@ -2028,7 +2028,7 @@ glabel menuhandler001a44c0 /* f1a56f8: afac0014 */ sw $t4,0x14($sp) /* f1a56fc: afb90010 */ sw $t9,0x10($sp) /* f1a5700: afae0018 */ sw $t6,0x18($sp) -/* f1a5704: 0fc5580f */ jal textRenderWhite +/* f1a5704: 0fc5580f */ jal textRenderProjected /* f1a5708: afb8001c */ sw $t8,0x1c($sp) /* f1a570c: afa2015c */ sw $v0,0x15c($sp) /* f1a5710: 0fc5b9f1 */ jal langGet @@ -2069,7 +2069,7 @@ glabel menuhandler001a44c0 /* f1a579c: afaf0014 */ sw $t7,0x14($sp) /* f1a57a0: afb80010 */ sw $t8,0x10($sp) /* f1a57a4: afad0018 */ sw $t5,0x18($sp) -/* f1a57a8: 0fc5580f */ jal textRenderWhite +/* f1a57a8: 0fc5580f */ jal textRenderProjected /* f1a57ac: afb9001c */ sw $t9,0x1c($sp) /* f1a57b0: afa2015c */ sw $v0,0x15c($sp) /* f1a57b4: 0fc5b9f1 */ jal langGet @@ -2116,7 +2116,7 @@ glabel menuhandler001a44c0 /* f1a5858: 27a50154 */ addiu $a1,$sp,0x154 /* f1a585c: 27a60150 */ addiu $a2,$sp,0x150 /* f1a5860: 27a700c0 */ addiu $a3,$sp,0xc0 -/* f1a5864: 0fc5580f */ jal textRenderWhite +/* f1a5864: 0fc5580f */ jal textRenderProjected /* f1a5868: afac001c */ sw $t4,0x1c($sp) /* f1a586c: afa2015c */ sw $v0,0x15c($sp) /* f1a5870: 0fc5b9f1 */ jal langGet @@ -2163,7 +2163,7 @@ glabel menuhandler001a44c0 /* f1a5914: 27a50154 */ addiu $a1,$sp,0x154 /* f1a5918: 27a60150 */ addiu $a2,$sp,0x150 /* f1a591c: 27a700c0 */ addiu $a3,$sp,0xc0 -/* f1a5920: 0fc5580f */ jal textRenderWhite +/* f1a5920: 0fc5580f */ jal textRenderProjected /* f1a5924: afae001c */ sw $t6,0x1c($sp) /* f1a5928: afa2015c */ sw $v0,0x15c($sp) /* f1a592c: 0fc5b9f1 */ jal langGet @@ -2210,7 +2210,7 @@ glabel menuhandler001a44c0 /* f1a59d0: 27a50154 */ addiu $a1,$sp,0x154 /* f1a59d4: 27a60150 */ addiu $a2,$sp,0x150 /* f1a59d8: 27a700c0 */ addiu $a3,$sp,0xc0 -/* f1a59dc: 0fc5580f */ jal textRenderWhite +/* f1a59dc: 0fc5580f */ jal textRenderProjected /* f1a59e0: afb8001c */ sw $t8,0x1c($sp) /* f1a59e4: afa2015c */ sw $v0,0x15c($sp) /* f1a59e8: 0fc5b9f1 */ jal langGet @@ -2257,7 +2257,7 @@ glabel menuhandler001a44c0 /* f1a5a8c: 27a50154 */ addiu $a1,$sp,0x154 /* f1a5a90: 27a60150 */ addiu $a2,$sp,0x150 /* f1a5a94: 27a700c0 */ addiu $a3,$sp,0xc0 -/* f1a5a98: 0fc5580f */ jal textRenderWhite +/* f1a5a98: 0fc5580f */ jal textRenderProjected /* f1a5a9c: afaf001c */ sw $t7,0x1c($sp) /* f1a5aa0: afa2015c */ sw $v0,0x15c($sp) /* f1a5aa4: 0fc54e0e */ jal func0f153838 @@ -3583,7 +3583,7 @@ glabel menuhandler001a6ea4 /* f1a726c: 27a60098 */ addiu $a2,$sp,0x98 /* f1a7270: 8fa70090 */ lw $a3,0x90($sp) /* f1a7274: afae001c */ sw $t6,0x1c($sp) -/* f1a7278: 0fc5580f */ jal textRenderWhite +/* f1a7278: 0fc5580f */ jal textRenderProjected /* f1a727c: afab0018 */ sw $t3,0x18($sp) /* f1a7280: afa200a4 */ sw $v0,0xa4($sp) /* f1a7284: 0fc69b31 */ jal ciMenuTextHangarBioSubheading @@ -3637,7 +3637,7 @@ glabel menuhandler001a6ea4 /* f1a733c: 27a60098 */ addiu $a2,$sp,0x98 /* f1a7340: 8fa70090 */ lw $a3,0x90($sp) /* f1a7344: afab001c */ sw $t3,0x1c($sp) -/* f1a7348: 0fc5580f */ jal textRenderWhite +/* f1a7348: 0fc5580f */ jal textRenderProjected /* f1a734c: afae0018 */ sw $t6,0x18($sp) /* f1a7350: afa200a4 */ sw $v0,0xa4($sp) /* f1a7354: 0fc54de0 */ jal func0f153780 diff --git a/src/game/title.c b/src/game/title.c index 3dc864700..1ed640d3d 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -533,7 +533,7 @@ glabel func0f0165f0 /* f0166c8: afb90010 */ sw $t9,0x10($sp) /* f0166cc: afa90014 */ sw $t1,0x14($sp) /* f0166d0: afa80018 */ sw $t0,0x18($sp) -/* f0166d4: 0fc5580f */ jal textRenderWhite +/* f0166d4: 0fc5580f */ jal textRenderProjected /* f0166d8: afaa001c */ sw $t2,0x1c($sp) /* f0166dc: 8fbf0034 */ lw $ra,0x34($sp) /* f0166e0: 27bd0050 */ addiu $sp,$sp,0x50 @@ -946,7 +946,7 @@ glabel var7f1a83e4 /* f016cc8: afb4001c */ sw $s4,0x1c($sp) /* f016ccc: afa20020 */ sw $v0,0x20($sp) /* f016cd0: afa00024 */ sw $zero,0x24($sp) -/* f016cd4: 0fc5580f */ jal textRenderWhite +/* f016cd4: 0fc5580f */ jal textRenderProjected /* f016cd8: afa00028 */ sw $zero,0x28($sp) /* f016cdc: afa20128 */ sw $v0,0x128($sp) .L0f016ce0: @@ -3418,7 +3418,7 @@ glabel func0f018ebc /* f019028: afa00024 */ sw $zero,0x24($sp) /* f01902c: afa00028 */ sw $zero,0x28($sp) /* f019030: afad0014 */ sw $t5,0x14($sp) -/* f019034: 0fc5580f */ jal textRenderWhite +/* f019034: 0fc5580f */ jal textRenderProjected /* f019038: afac0010 */ sw $t4,0x10($sp) /* f01903c: 8fa8008c */ lw $t0,0x8c($sp) /* f019040: 26940001 */ addiu $s4,$s4,0x1 @@ -4575,7 +4575,7 @@ glabel titleRenderNoController /* f01a668: afa00028 */ sw $zero,0x28($sp) /* f01a66c: afac0014 */ sw $t4,0x14($sp) /* f01a670: afaa0010 */ sw $t2,0x10($sp) -/* f01a674: 0fc5580f */ jal textRenderWhite +/* f01a674: 0fc5580f */ jal textRenderProjected /* f01a678: afae001c */ sw $t6,0x1c($sp) /* f01a67c: 00408025 */ or $s0,$v0,$zero .L0f01a680: @@ -4660,7 +4660,7 @@ glabel titleRenderNoController /* f01a7b0: afa00028 */ sw $zero,0x28($sp) /* f01a7b4: afad0014 */ sw $t5,0x14($sp) /* f01a7b8: afaa0010 */ sw $t2,0x10($sp) -/* f01a7bc: 0fc5580f */ jal textRenderWhite +/* f01a7bc: 0fc5580f */ jal textRenderProjected /* f01a7c0: afaf001c */ sw $t7,0x1c($sp) /* f01a7c4: 00408025 */ or $s0,$v0,$zero .L0f01a7c8: @@ -4708,7 +4708,7 @@ glabel titleRenderNoController // gdl = textRender(gdl, &x, &y, text, var8007fb20, var8007fb1c, // -1, 0x008000ff, viGetX(), viGetY(), 0, 0); // } else { -// gdl = textRenderWhite(gdl, &x, &y, text, var8007fb20, var8007fb1c, +// gdl = textRenderProjected(gdl, &x, &y, text, var8007fb20, var8007fb1c, // -1, viGetX(), viGetY(), 0, 0); // } // @@ -4725,7 +4725,7 @@ glabel titleRenderNoController // } else { // s16 a = viGetX(); // s16 b = viGetY(); -// gdl = textRenderWhite(gdl, &x, &y, text, var8007fb20, var8007fb1c, +// gdl = textRenderProjected(gdl, &x, &y, text, var8007fb20, var8007fb1c, // -1, a, b, 0, 0); // } // diff --git a/src/include/game/game_0e5ce0.h b/src/include/game/game_0e5ce0.h index f742fcfd7..724a43b17 100644 --- a/src/include/game/game_0e5ce0.h +++ b/src/include/game/game_0e5ce0.h @@ -8,74 +8,74 @@ s32 func0f0e5ef8(s16 arg0, struct menuitem *item); u32 func0f0e6038(void); Gfx *func0f0e6298(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2); Gfx *menuRenderItemList(Gfx *gdl); -bool menuTickItemList(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemtickdata *data); +bool menuTickItemList(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data); -void menuInitItemDropdown(struct menuitem *item, union menuitemtickdata *data); +void menuInitItemDropdown(struct menuitem *item, union menuitemdata *data); Gfx *menuRenderItemDropdown(Gfx *gdl); -bool menuTickItemDropdown(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data); +bool menuTickItemDropdown(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data); Gfx *func0f0e8290(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, u32 arg6, u32 arg7); bool menuIsStringEmptyOrSpaces(char *text); -Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurenderthing *thing); -bool menuTickItemKeyboard(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemtickdata *data); -void menuInitItemKeyboard(struct menuitem *item, union menuitemtickdata *data); +Gfx *menuRenderItemKeyboard(Gfx *gdl, struct menurendercontext *thing); +bool menuTickItemKeyboard(struct menuitem *item, struct menuinputs *inputs, u32 arg2, union menuitemdata *data); +void menuInitItemKeyboard(struct menuitem *item, union menuitemdata *data); -Gfx *menuRenderItemSeparator(Gfx *gdl, struct menurenderthing *thing); +Gfx *menuRenderItemSeparator(Gfx *gdl, struct menurendercontext *context); 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 *menuRenderItemObjectives(Gfx *gdl, struct menurendercontext *context); -Gfx *menuRenderItemModel(Gfx *gdl, struct menurenderthing *thing); +Gfx *menuRenderItemModel(Gfx *gdl, struct menurendercontext *context); -Gfx *menuRenderItemLabel(Gfx *gdl, struct menurenderthing *thing); +Gfx *menuRenderItemLabel(Gfx *gdl, struct menurendercontext *context); -Gfx *menuRenderItemMeter(Gfx *gdl, struct menurenderthing *thing); +Gfx *menuRenderItemMeter(Gfx *gdl, struct menurendercontext *context); -Gfx *menuRenderItemSelectable(Gfx *gdl, struct menurenderthing *thing); +Gfx *menuRenderItemSelectable(Gfx *gdl, struct menurendercontext *context); bool menuTickItemSelectable(struct menuitem *item, struct menuinputs *inputs, u32 arg2); Gfx *menuRenderItemSlider(Gfx *gdl); -bool menuTickItemSlider(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data); -void menuInitItemSlider(union menuitemtickdata *data); +bool menuTickItemSlider(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data); +void menuInitItemSlider(union menuitemdata *data); -Gfx *menuRenderItemCarousel(Gfx *gdl, struct menurenderthing *thing); +Gfx *menuRenderItemCarousel(Gfx *gdl, struct menurendercontext *context); bool menuTickItemCarousel(struct menuitem *item, struct menuinputs *inputs, u32 arg2); -Gfx *menuRenderItemCheckbox(Gfx *gdl, struct menurenderthing *thing); +Gfx *menuRenderItemCheckbox(Gfx *gdl, struct menurendercontext *context); bool menuTickItemCheckbox(struct menuitem *item, struct menuinputs *inputs, u32 arg2); char *menuItemScrollableGetText(u32 type); -Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurenderthing *thing); -bool menuTickItemScrollable(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data); -void menuInitItemScrollable(union menuitemtickdata *data); +Gfx *menuRenderItemScrollable(Gfx *gdl, struct menurendercontext *context); +bool menuTickItemScrollable(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data); +void menuInitItemScrollable(union menuitemdata *data); -Gfx *menuRenderItemMarquee(Gfx *gdl, struct menurenderthing *thing); -bool menuTickItemMarquee(struct menuitem *item, union menuitemtickdata *data); -void menuInitItemMarquee(union menuitemtickdata *data); +Gfx *menuRenderItemMarquee(Gfx *gdl, struct menurendercontext *context); +bool menuTickItemMarquee(struct menuitem *item, union menuitemdata *data); +void menuInitItemMarquee(union menuitemdata *data); Gfx *menuRenderItem07(Gfx *gdl); -Gfx *menuRenderItemRanking(Gfx *gdl, struct menurenderthing *thing); -bool menuTickItemRanking(struct menuinputs *inputs, u32 arg1, union menuitemtickdata *data); -void menuInitItemRanking(union menuitemtickdata *data); +Gfx *menuRenderItemRanking(Gfx *gdl, struct menurendercontext *context); +bool menuTickItemRanking(struct menuinputs *inputs, u32 arg1, union menuitemdata *data); +void menuInitItemRanking(union menuitemdata *data); Gfx *menuRenderItemPlayerStats(Gfx *gdl); -bool menuTickItemPlayerStats(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data); +bool menuTickItemPlayerStats(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data); Gfx *func0f0ef2fc(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, u32 arg6, u32 arg7); -void menuInitItemPlayerStats(struct menuitem *item, union menuitemtickdata *data); +void menuInitItemPlayerStats(struct menuitem *item, union menuitemdata *data); u32 func0f0ef394(void); Gfx *menuRenderControllerTexture(Gfx *gdl, s32 x, s32 y, s32 texturenum, u32 alpha); -Gfx *menuRenderControllerLines(Gfx *gdl, struct menurenderthing *thing, s32 arg2, s32 arg3, s32 x, s32 y, u32 alpha); +Gfx *menuRenderControllerLines(Gfx *gdl, struct menurendercontext *context, s32 arg2, s32 arg3, s32 x, s32 y, u32 alpha); u16 menuControllerGetButtonAction(s32 mode, s32 buttonnum); -Gfx *menuRenderControllerText(Gfx *gdl, s32 curmode, struct menurenderthing *thing, s32 x, s32 y, u32 valuecolour, u32 labelcolour, s8 prevmode); -Gfx *menuRenderControllerInfo(Gfx *gdl, struct menurenderthing *thing, s32 x, s32 y, s32 curmode, u32 alpha, u32 colour1, u32 colour2, s8 prevmode); -Gfx *menuRenderItemController(Gfx *gdl, struct menurenderthing *thing); -void menuInitItemController(union menuitemtickdata *data); +Gfx *menuRenderControllerText(Gfx *gdl, s32 curmode, struct menurendercontext *context, s32 x, s32 y, u32 valuecolour, u32 labelcolour, s8 prevmode); +Gfx *menuRenderControllerInfo(Gfx *gdl, struct menurendercontext *context, s32 x, s32 y, s32 curmode, u32 alpha, u32 colour1, u32 colour2, s8 prevmode); +Gfx *menuRenderItemController(Gfx *gdl, struct menurendercontext *context); +void menuInitItemController(union menuitemdata *data); -Gfx *menuRenderItem(Gfx *gdl, struct menurenderthing *thing); -bool menuTickItem(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemtickdata *data); -void menuInitItem(struct menuitem *item, union menuitemtickdata *data); +Gfx *menuRenderItem(Gfx *gdl, struct menurendercontext *context); +bool menuTickItem(struct menuitem *item, struct menuframe *frame, struct menuinputs *inputs, u32 arg3, union menuitemdata *data); +void menuInitItem(struct menuitem *item, union menuitemdata *data); Gfx *func0f0f0918(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menuitem *item, u32 arg6, u32 arg7); #endif diff --git a/src/include/game/game_1531a0.h b/src/include/game/game_1531a0.h index a4e8b3c86..f2ce429f9 100644 --- a/src/include/game/game_1531a0.h +++ b/src/include/game/game_1531a0.h @@ -38,7 +38,7 @@ u32 func0f1552d4(void); u32 func0f15568c(void); u32 func0f156024(void); u32 func0f156030(void); -Gfx *textRenderWhite(Gfx *gdl, s32 *x, s32 *y, char *text, u32 font1, u32 font2, s32 colour, s16 width, s16 height, s32 arg9, u32 arg10); +Gfx *textRenderProjected(Gfx *gdl, s32 *x, s32 *y, char *text, u32 font1, u32 font2, s32 colour, s16 width, s16 height, s32 arg9, u32 arg10); u32 func0f1566cc(void); u32 func0f156790(void); u32 func0f156a24(void); diff --git a/src/include/types.h b/src/include/types.h index e023ddcae..3c36b9883 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -3248,15 +3248,15 @@ struct hoverprop { u16 size; }; -struct menuitemtickdata_controller { - u8 unk00; - u8 unk01; - u8 unk02; - u8 unk03; - s8 unk04; +struct menuitemdata_controller { + u8 textfadetimer; + u8 contfadetimer; + u8 curmode; + u8 controlgroup; + s8 prevmode; }; -struct menuitemtickdata_dropdown { +struct menuitemdata_dropdown { u16 unk00; u16 unk02; s16 unk04; @@ -3267,7 +3267,7 @@ struct menuitemtickdata_dropdown { u16 unk0e; }; -struct menuitemtickdata_keyboard { +struct menuitemdata_keyboard { char string[11]; s8 col; s8 row; @@ -3275,44 +3275,44 @@ struct menuitemtickdata_keyboard { u8 capseffective : 1; // Same as above, but inverted if holding L or R }; -struct menuitemtickdata_list { +struct menuitemdata_list { s16 unk00; s16 unk02; s16 unk04; s16 unk06; }; -struct menuitemtickdata_marquee { +struct menuitemdata_marquee { u16 totalmoved; u16 sum; u16 unk04; u16 unk06; }; -struct menuitemtickdata_ranking { +struct menuitemdata_ranking { s16 scrolloffset; }; -struct menuitemtickdata_scrollable { +struct menuitemdata_scrollable { s16 unk00; s16 unk02; s16 unk04; s16 unk06; }; -struct menuitemtickdata_slider { +struct menuitemdata_slider { s16 unk00; }; -union menuitemtickdata { - struct menuitemtickdata_controller controller; - struct menuitemtickdata_dropdown dropdown; - struct menuitemtickdata_keyboard keyboard; - struct menuitemtickdata_list list; - struct menuitemtickdata_marquee marquee; - struct menuitemtickdata_ranking ranking; - struct menuitemtickdata_scrollable scrollable; - struct menuitemtickdata_slider slider; +union menuitemdata { + struct menuitemdata_controller controller; + struct menuitemdata_dropdown dropdown; + struct menuitemdata_keyboard keyboard; + struct menuitemdata_list list; + struct menuitemdata_marquee marquee; + struct menuitemdata_ranking ranking; + struct menuitemdata_scrollable scrollable; + struct menuitemdata_slider slider; }; struct handlerdata_carousel { @@ -6868,15 +6868,7 @@ struct splat { /*0x440*/ u32 unk440; }; -struct menurenderthing14_controller { - u8 textfadetimer; - u8 contfadetimer; - u8 curmode; - u8 controlgroup; - s8 prevmode; -}; - -struct menurenderthing { +struct menurendercontext { s16 x; s16 y; s16 width; @@ -6884,13 +6876,7 @@ struct menurenderthing { struct menuitem *item; bool focused; struct menuframe *frame; - - // Suspected to be handlerdata - union { - s16 *s16; - u16 *u16; - struct menurenderthing14_controller *controller; - } unk14; + union menuitemdata *data; }; struct menucolourpalette { diff --git a/src/lib/lib_13130.c b/src/lib/lib_13130.c index 08b1feb65..b50fa51bf 100644 --- a/src/lib/lib_13130.c +++ b/src/lib/lib_13130.c @@ -130,10 +130,6 @@ glabel strcat GLOBAL_ASM( glabel func00013274 .L00013274: -); - -GLOBAL_ASM( -glabel func00013274 /* 13274: 90820000 */ lbu $v0,0x0($a0) /* 13278: 90a30000 */ lbu $v1,0x0($a1) /* 1327c: 24840001 */ addiu $a0,$a0,0x1