Updated implementation to use max text width property

This commit is contained in:
VanGorkum 2023-12-28 23:56:37 +01:00
parent 3c5b8c9e7c
commit e9b21e0d38

View file

@ -146,12 +146,17 @@ void landingMenuRender(struct LandingMenu* landingMenu, struct RenderState* rend
int paddingDepthY = 2; int paddingDepthY = 2;
int paddingDepthX = 4; int paddingDepthX = 4;
int highlightWidth = 160;
if (landingMenu->optionCount > PACKED_MENU_THRESHOLD){ if (landingMenu->optionCount > PACKED_MENU_THRESHOLD){
paddingDepthY = 0; paddingDepthY = 0;
highlightWidth = 185;
} }
int maxTextWidth = 0;
for (int i = 0; i < landingMenu->optionCount; ++i) {
if (landingMenu->optionText[i]->width > maxTextWidth) {
maxTextWidth = landingMenu->optionText[i]->width;
}
}
struct PrerenderedTextBatch* batch = prerenderedBatchStart(); struct PrerenderedTextBatch* batch = prerenderedBatchStart();
for (int i = 0; i < landingMenu->optionCount; ++i) { for (int i = 0; i < landingMenu->optionCount; ++i) {
prerenderedBatchAdd(batch, landingMenu->optionText[i], &gColorWhite); prerenderedBatchAdd(batch, landingMenu->optionText[i], &gColorWhite);
@ -161,7 +166,7 @@ void landingMenuRender(struct LandingMenu* landingMenu, struct RenderState* rend
gDPFillRectangle(renderState->dl++, gDPFillRectangle(renderState->dl++,
landingMenu->optionText[i]->x - paddingDepthX, landingMenu->optionText[i]->x - paddingDepthX,
landingMenu->optionText[i]->y - paddingDepthY, landingMenu->optionText[i]->y - paddingDepthY,
highlightWidth + paddingDepthX, landingMenu->optionText[i]->x + maxTextWidth + paddingDepthX,
landingMenu->optionText[i]->y + getCurrentStrideValue(landingMenu) - paddingDepthY); landingMenu->optionText[i]->y + getCurrentStrideValue(landingMenu) - paddingDepthY);
gSPDisplayList(renderState->dl++, ui_material_revert_list[ORANGE_TRANSPARENT_OVERLAY_INDEX]); gSPDisplayList(renderState->dl++, ui_material_revert_list[ORANGE_TRANSPARENT_OVERLAY_INDEX]);
} }