From 49e3e6b500084867cc80e835bd09fa4a33e816d8 Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 6 Aug 2023 23:23:59 +0100 Subject: [PATCH] Instead of calculating relevant medals for every frame, calculate once and store the result --- src/k_menu.h | 2 ++ src/k_menudraw.c | 2 +- src/menus/extras-statistics.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/k_menu.h b/src/k_menu.h index 1505c8e96..32a48bb08 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -1270,6 +1270,8 @@ extern struct statisticsmenu_s { statisticspage_t page; INT32 location; INT32 nummaps; + INT32 gotmedals; + INT32 nummedals; INT32 numextramedals; INT32 maxscroll; UINT16 *maplist; diff --git a/src/k_menudraw.c b/src/k_menudraw.c index 67e703dc9..7bffe0715 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -6038,7 +6038,7 @@ static void M_DrawStatsMaps(void) else V_DrawRightAlignedThinString(BASEVIDWIDTH-20, 70, 0, "(complete)"); - V_DrawThinString(32, 70, 0, va("x %d/%d", M_CountMedals(false, false), M_CountMedals(true, false))); + V_DrawThinString(30, 70, 0, va("x %d/%d", statisticsmenu.gotmedals, statisticsmenu.nummedals)); V_DrawSmallMappedPatch(20, 70, 0, W_CachePatchName("GOTITA", PU_CACHE), R_GetTranslationColormap(TC_DEFAULT, SKINCOLOR_GOLD, GTC_MENUCACHE)); diff --git a/src/menus/extras-statistics.c b/src/menus/extras-statistics.c index 787a633db..90f1859c6 100644 --- a/src/menus/extras-statistics.c +++ b/src/menus/extras-statistics.c @@ -75,7 +75,7 @@ static void M_StatisticsMaps(void) M_StatisticsAddMap(i, NULL, &headerexists); } - if ((i = statisticsmenu.numextramedals = M_CountMedals(true, true)) != 0) + if ((i = statisticsmenu.numextramedals) != 0) i += 2; statisticsmenu.maplist[statisticsmenu.nummaps] = NEXTMAP_INVALID;