From c82557529e2a2dcb74f5fcfd8ac74292fed24e67 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Tue, 9 Sep 2025 14:04:00 -0400 Subject: [PATCH] hide bar-style stat backer in grid mode --- src/m_menu.c | 25 +++++++++++++++++-------- src/m_menu.h | 1 + src/r_skins.c | 2 -- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/m_menu.c b/src/m_menu.c index 0514ba4d4..17e7a2eca 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -379,7 +379,7 @@ static CV_PossibleValue_t skins_cons_t[] = {{0, "MIN"}, {MAXSKINS, "MAX"}, {0, N consvar_t cv_chooseskin = CVAR_INIT ("chooseskin", "0", CV_HIDEN|CV_CALL|CV_NOINIT, skins_cons_t, Nextmap_OnChange); static CV_PossibleValue_t skinselectstyle_cons_t[] = {{0, "Bar"}, {1, "Grid"}, {0, NULL}}; -consvar_t cv_skinselectstyle = CVAR_INIT ("skinselectstyle", "Grid", CV_SAVE, skinselectstyle_cons_t, NULL); +consvar_t cv_skinselectstyle = CVAR_INIT ("skinselectstyle", "Grid", CV_SAVE|CV_CALL|CV_NOINIT, skinselectstyle_cons_t, Skinselectstyle_option_Onchange); static CV_PossibleValue_t skinselectsort_cons_t[] = { {SKINMENUSORT_ID, "Order Added"}, @@ -849,10 +849,22 @@ void Skinsort_option_Onchange(void) INT32 sortedIndex = FindSortedSkinIndex(cv_chooseskin.value); gridcss_row = sortedIndex % SKINGRIDWIDTH; gridcss_column = sortedIndex / SKINGRIDWIDTH; - + // I really need to macro this lol gridcss_skinydrag = CLAMP(gridcss_column - SKINGRIDHEIGHT + 1, 0, ((numskins - 1) / SKINGRIDWIDTH) - SKINGRIDHEIGHT - 1); } +void Skinselectstyle_option_Onchange(void) +{ + boolean visible = cv_skinselectstyle.value == 0; + M_SetItemVisible(MN_MP_PLAYERSETUP, "ACCELERATION", visible); + M_SetItemVisible(MN_MP_PLAYERSETUP, "MAXSPEED", visible); + M_SetItemVisible(MN_MP_PLAYERSETUP, "HANDLING", visible); + M_SetItemVisible(MN_MP_PLAYERSETUP, "WEIGHT", visible); + M_SetItemVisible(MN_MP_PLAYERSETUP, "ARROWLR", visible); + M_SetItemVisible(MN_MP_PLAYERSETUP, "ARROWUD", visible); + M_SetItemVisible(MN_MP_PLAYERSETUP, "STATBG", visible); +} + // ========================================================================== // END ORGANIZATION STUFF. // ========================================================================== @@ -7303,7 +7315,7 @@ INT32 MR_HandleSetupMultiPlayerMenu(INT32 choice) gridcss_column = (numskins - 1) / SKINGRIDWIDTH; } - gridcss_skinydrag = min(gridcss_column - SKINGRIDHEIGHT + 1, ((numskins - 1) / SKINGRIDWIDTH) - SKINGRIDHEIGHT + 1); + gridcss_skinydrag = CLAMP(gridcss_column - SKINGRIDHEIGHT + 1, 0, ((numskins - 1) / SKINGRIDWIDTH) - SKINGRIDHEIGHT + 1); S_StartSound(NULL, sfx_menu1); } @@ -7365,7 +7377,6 @@ static void M_GetFollowerState(void) // start the multiplayer setup menu INT32 MR_SetupMultiPlayer(INT32 arg) { - INT32 sortedIndex; if (arg < 0 || arg >= MAXSPLITSCREENPLAYERS) return false; @@ -7381,15 +7392,13 @@ INT32 MR_SetupMultiPlayer(INT32 arg) CV_SetValue(&cv_dummyfollower, cv_follower[arg].value); CV_SetValue(&cv_dummycolor, cv_playercolor[arg].value); - sortedIndex = FindSortedSkinIndex(gridcss_skinmemory); - gridcss_row = sortedIndex % SKINGRIDWIDTH; - gridcss_column = sortedIndex / SKINGRIDWIDTH; - gridcss_skinydrag = CLAMP(gridcss_column - SKINGRIDHEIGHT + 1, 0, ((numskins - 1) / SKINGRIDWIDTH) - SKINGRIDHEIGHT - 1); + Skinsort_option_Onchange(); M_GetFollowerState(); // update follower state // disable skin changes if we can't actually change skins M_SetItemDisabled(MN_MP_PLAYERSETUP, "SKIN", splitscreen >= arg && !CanChangeSkin(arg == 0 ? consoleplayer : g_localplayers[arg])); + Skinselectstyle_option_Onchange(); return true; } diff --git a/src/m_menu.h b/src/m_menu.h index 58d4a8172..c359e72fc 100644 --- a/src/m_menu.h +++ b/src/m_menu.h @@ -470,6 +470,7 @@ fixed_t M_GetMapThumbnail(INT16 mapnum, patch_t **out); void Moviemode_option_Onchange(void); void Skinsort_option_Onchange(void); +void Skinselectstyle_option_Onchange(void); // Player Setup menu colors linked list struct menucolor_t { diff --git a/src/r_skins.c b/src/r_skins.c index c39d37309..009a61452 100644 --- a/src/r_skins.c +++ b/src/r_skins.c @@ -346,8 +346,6 @@ static int CompareSkinColours(const void *a, const void *b) void SortSkins(void) { - CONS_Printf("Sorting skin list (sort type %d)...\n", cv_skinselectsort.value); - int (*_sortingFunc)(const void *, const void *); switch (cv_skinselectsort.value) {