From 860f9504a328f5e8c68f0312d83bf3ba1f85bcfe Mon Sep 17 00:00:00 2001 From: Julia Nechaevskaya Date: Tue, 5 Mar 2024 20:03:15 +0300 Subject: [PATCH] Raven: allow multiple jumps over menu items with same first letters (#1182) * Allow multiple jumps over menu items with same first letters * Small correction --- src/heretic/mn_menu.c | 15 ++++++++++++++- src/hexen/mn_menu.c | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/heretic/mn_menu.c b/src/heretic/mn_menu.c index 0ac5fac5..cfba3562 100644 --- a/src/heretic/mn_menu.c +++ b/src/heretic/mn_menu.c @@ -2415,7 +2415,20 @@ boolean MN_Responder(event_t * event) { // Jump to menu item based on first letter: - for (i = 0; i < CurrentMenu->itemCount; i++) + // [crispy] allow multiple jumps over menu items with same first letters. + for (i = CurrentItPos + 1; i < CurrentMenu->itemCount; i++) + { + if (CurrentMenu->items[i].text) + { + if (toupper(charTyped) + == toupper(DEH_String(CurrentMenu->items[i].text)[0])) + { + CurrentItPos = i; + return (true); + } + } + } + for (i = 0; i <= CurrentItPos; i++) { if (CurrentMenu->items[i].text) { diff --git a/src/hexen/mn_menu.c b/src/hexen/mn_menu.c index bea2afd5..97c887d2 100644 --- a/src/hexen/mn_menu.c +++ b/src/hexen/mn_menu.c @@ -2416,7 +2416,20 @@ boolean MN_Responder(event_t * event) } else if (charTyped != 0) { - for (i = 0; i < CurrentMenu->itemCount; i++) + // [crispy] allow multiple jumps over menu items with same first letters. + for (i = CurrentItPos + 1; i < CurrentMenu->itemCount; i++) + { + if (CurrentMenu->items[i].text) + { + if (toupper(charTyped) + == toupper(CurrentMenu->items[i].text[0])) + { + CurrentItPos = i; + return (true); + } + } + } + for (i = 0; i <= CurrentItPos; i++) { if (CurrentMenu->items[i].text) {