From b5be97cbfc1c4a6ef89f265f51e114ea5c547086 Mon Sep 17 00:00:00 2001 From: toaster Date: Mon, 13 Mar 2023 14:25:44 +0000 Subject: [PATCH] level-select.c: Fix incorrect responses for level-finding functions - Fix the case where invalid levelsearch_t were providing values of false instead of NEXTMAP_INVALID - Fix the case where M_GetFirstLevelInList was not returning NEXTMAP_INVALID for rearching nummapheaders --- src/menus/transient/level-select.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/menus/transient/level-select.c b/src/menus/transient/level-select.c index 8550339e9..6cede5901 100644 --- a/src/menus/transient/level-select.c +++ b/src/menus/transient/level-select.c @@ -98,7 +98,7 @@ UINT16 M_CountLevelsToShowInList(levelsearch_t *levelsearch) INT16 i, count = 0; if (!levelsearch) - return false; + return 0; if (levelsearch->cup) { @@ -127,7 +127,7 @@ UINT16 M_GetFirstLevelInList(UINT8 *i, levelsearch_t *levelsearch) INT16 mapnum = NEXTMAP_INVALID; if (!levelsearch) - return false; + return NEXTMAP_INVALID; if (levelsearch->cup) { @@ -152,6 +152,9 @@ UINT16 M_GetFirstLevelInList(UINT8 *i, levelsearch_t *levelsearch) for (mapnum = 0; mapnum < nummapheaders; mapnum++) if (M_CanShowLevelInList(mapnum, levelsearch)) break; + + if (mapnum >= nummapheaders) + mapnum = NEXTMAP_INVALID; } return mapnum; @@ -160,7 +163,7 @@ UINT16 M_GetFirstLevelInList(UINT8 *i, levelsearch_t *levelsearch) UINT16 M_GetNextLevelInList(UINT16 mapnum, UINT8 *i, levelsearch_t *levelsearch) { if (!levelsearch) - return false; + return NEXTMAP_INVALID; if (levelsearch->cup) {