From e6ddfc7cdf0a94a8f161e0de7062bcd45d3a87bd Mon Sep 17 00:00:00 2001
From: Zwip-Zwap Zapony <ZwipZwapZapony@gmail.com>
Date: Sat, 11 Jan 2020 14:59:10 +0100
Subject: [PATCH] Make >5 <10 emblem hints appear "symmetrical"-ish

With more than 5 but less than 10 emblem hints,
only put half of the hints on each side of the hint menu,
instead of putting e.g. 5 on the left and 1 on the right.
---
 src/m_menu.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/m_menu.c b/src/m_menu.c
index f2287177f..27514df5e 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -7234,7 +7234,7 @@ static void M_EmblemHints(INT32 choice)
 static void M_DrawEmblemHints(void)
 {
 	INT32 i, j = 0, x, y;
-	UINT32 collected = 0, local = 0;
+	UINT32 collected = 0, local = 0, left_hints = NUMHINTS;
 	emblem_t *emblem;
 	const char *hint;
 
@@ -7250,6 +7250,11 @@ static void M_DrawEmblemHints(void)
 	x = (local > NUMHINTS ? 4 : 12);
 	y = 8;
 
+	// If there are more than 1 page's but less than 2 pages' worth of emblems,
+	// put half (rounded up) of the hints on the left, and half (rounded down) on the right
+	if (local > NUMHINTS && local < (NUMHINTS*2)-1)
+		left_hints = (local + 1) / 2;
+
 	if (!local)
 		V_DrawCenteredString(160, 48, V_YELLOWMAP, "No hidden emblems on this map.");
 	else for (i = 0; i < numemblems; i++)
@@ -7282,7 +7287,7 @@ static void M_DrawEmblemHints(void)
 
 		y += 28;
 
-		if (++j == NUMHINTS)
+		if (++j == left_hints)
 		{
 			x = 4+(BASEVIDWIDTH/2);
 			y = 8;
-- 
GitLab