From f951509e5fd495d4bed68f8bc8181e00e2daf57f Mon Sep 17 00:00:00 2001 From: toaster Date: Sat, 30 Aug 2025 23:07:26 +0100 Subject: [PATCH] Add input UI for M_DrawLevelSelect (resolves #1572) --- src/k_menudraw.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/k_menudraw.c b/src/k_menudraw.c index 0e40688c7..b5c155726 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -3738,6 +3738,43 @@ void M_DrawLevelSelect(void) } M_DrawCupTitle(tay, &levellist.levelsearch); + + t = (abs(t)/2) + BASEVIDWIDTH - 4; + tay += 30; + + const boolean queuewithinsize = (menuqueue.size + roundqueue.size < ROUNDQUEUE_MAX); + + const char *worktext = "Go to Course"; + if (levellist.levelsearch.timeattack) + worktext = "Select Course"; + else if (levellist.canqueue && menuqueue.size && queuewithinsize) + worktext = roundqueue.size ? "Add to Queue" : "Start Queue"; + + if (worktext) + { + K_DrawGameControl(t, tay, 0, va(" %s", worktext), 2, TINY_FONT, 0); + tay += 13; + } + + if (levellist.canqueue) + { + worktext = queuewithinsize + ? "" : ""; + K_DrawGameControl(t, tay, 0, va("%s Queue Course", worktext), 2, TINY_FONT, 0); + tay += 13; + + worktext = NULL; + if (menuqueue.size) + worktext = "Undo"; + else if (roundqueue.size) + worktext = "Clear Queue"; + + if (worktext) + { + K_DrawGameControl(t, tay, 0, va(" %s", worktext), 2, TINY_FONT, 0); + tay += 13; + } + } } static boolean M_LevelSelectHasBG(menu_t *check)