Added packed menu threshold constant for UI, minor cleanup

This commit is contained in:
VanGorkum 2023-12-27 10:38:30 +01:00
parent 03a6395dce
commit 8d9f001ffd
2 changed files with 21 additions and 14 deletions

View file

@ -23,6 +23,7 @@
#define LANDING_MENU_TEXT_START_Y 132 #define LANDING_MENU_TEXT_START_Y 132
#define STRIDE_OPTION_1 12 #define STRIDE_OPTION_1 12
#define STRIDE_OPTION_2 16 #define STRIDE_OPTION_2 16
#define PACKED_MENU_THRESHOLD 4
Gfx portal_logo_gfx[] = { Gfx portal_logo_gfx[] = {
gsSPTextureRectangle( gsSPTextureRectangle(
@ -61,11 +62,14 @@ Gfx portal_logo_gfx[] = {
void landingMenuInitText(struct LandingMenu* landingMenu) { void landingMenuInitText(struct LandingMenu* landingMenu) {
int y = LANDING_MENU_TEXT_START_Y; int y = LANDING_MENU_TEXT_START_Y;
int stride = getCurrentStrideValue(landingMenu);
int stride = landingMenu->optionCount > 4 ? STRIDE_OPTION_1 : STRIDE_OPTION_2;
for (int i = 0; i < landingMenu->optionCount; ++i) { for (int i = 0; i < landingMenu->optionCount; ++i) {
landingMenu->optionText[i] = menuBuildPrerenderedText(&gDejaVuSansFont, translationsGet(landingMenu->options[i].messageId), LANDING_MENU_TEXT_START_X, y, SCREEN_WD); landingMenu->optionText[i] = menuBuildPrerenderedText(&gDejaVuSansFont,
translationsGet(landingMenu->options[i].messageId),
LANDING_MENU_TEXT_START_X,
y,
SCREEN_WD);
y += stride; y += stride;
} }
} }
@ -143,9 +147,9 @@ void landingMenuRender(struct LandingMenu* landingMenu, struct RenderState* rend
int paddingDepthY = 2; int paddingDepthY = 2;
int paddingDepthX = 4; int paddingDepthX = 4;
int highlightWidth = 120; int highlightWidth = 120;
int stride = landingMenu->optionCount > 4 ? STRIDE_OPTION_1 : STRIDE_OPTION_2;
int landingMenuTextY = LANDING_MENU_TEXT_START_Y; int landingMenuTextY = LANDING_MENU_TEXT_START_Y;
if (landingMenu->optionCount > 4){ int stride = getCurrentStrideValue(landingMenu);
if (landingMenu->optionCount > PACKED_MENU_THRESHOLD){
paddingDepthY = 0; paddingDepthY = 0;
highlightWidth = 140; highlightWidth = 140;
} }
@ -161,12 +165,15 @@ void landingMenuRender(struct LandingMenu* landingMenu, struct RenderState* rend
landingMenuTextY - paddingDepthY, landingMenuTextY - paddingDepthY,
highlightWidth + paddingDepthX, highlightWidth + paddingDepthX,
landingMenuTextY + stride - paddingDepthY); landingMenuTextY + stride - paddingDepthY);
gSPDisplayList(renderState->dl++, ui_material_revert_list[ORANGE_TRANSPARENT_OVERLAY_INDEX]);
gSPDisplayList(renderState->dl++, ui_material_revert_list[SOLID_ENV_INDEX]);
} }
landingMenuTextY += stride; landingMenuTextY += stride;
} }
renderState->dl = prerenderedBatchFinish(batch, gDejaVuSansImages, renderState->dl); renderState->dl = prerenderedBatchFinish(batch, gDejaVuSansImages, renderState->dl);
gSPDisplayList(renderState->dl++, ui_material_revert_list[DEJAVU_SANS_0_INDEX]); gSPDisplayList(renderState->dl++, ui_material_revert_list[DEJAVU_SANS_0_INDEX]);
} }
int getCurrentStrideValue(struct LandingMenu* landingMenu)
{
return (landingMenu->optionCount > PACKED_MENU_THRESHOLD ? STRIDE_OPTION_1 : STRIDE_OPTION_2);
}

View file

@ -22,6 +22,6 @@ void landingMenuInit(struct LandingMenu* landingMenu, struct LandingMenuOption*
void landingMenuRebuildText(struct LandingMenu* landingMenu); void landingMenuRebuildText(struct LandingMenu* landingMenu);
struct LandingMenuOption* landingMenuUpdate(struct LandingMenu* landingMenu); struct LandingMenuOption* landingMenuUpdate(struct LandingMenu* landingMenu);
void landingMenuRender(struct LandingMenu* landingMenu, struct RenderState* renderState, struct GraphicsTask* task); void landingMenuRender(struct LandingMenu* landingMenu, struct RenderState* renderState, struct GraphicsTask* task);
int getCurrentStrideValue(struct LandingMenu* landingMenu);
#endif #endif