From e12db019d673e6889e491cc58a5b415f7e8eac24 Mon Sep 17 00:00:00 2001
From: ashifolfi <anticream39@yahoo.com>
Date: Sat, 5 Nov 2022 18:28:36 -0400
Subject: [PATCH 1/3] fix addon menu down arrow always being visible

---
 src/m_menu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/m_menu.c b/src/m_menu.c
index 3a5a1a13a..93ac85191 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -6682,7 +6682,7 @@ static void M_DrawAddons(void)
 	}
 
 	// draw down arrow that bobs down and up
-	if (b != sizedirmenu)
+	if ((b != sizedirmenu) && !(sizedirmenu < addonmenusize))
 		V_DrawString(19, y-12 + (skullAnimCounter/5), highlightflags, "\x1B");
 
 	// draw search box

From 4c08daa01fe017fa73ed6178b22be6939d09f836 Mon Sep 17 00:00:00 2001
From: ashifolfi <anticream39@yahoo.com>
Date: Sat, 5 Nov 2022 18:37:36 -0400
Subject: [PATCH 2/3] remove down arrow at bottom of addon list

---
 src/m_menu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/m_menu.c b/src/m_menu.c
index 93ac85191..39f0094ce 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -6682,7 +6682,7 @@ static void M_DrawAddons(void)
 	}
 
 	// draw down arrow that bobs down and up
-	if ((b != sizedirmenu) && !(sizedirmenu < addonmenusize))
+	if (!(sizedirmenu < addonmenusize) && (b != sizedirmenu - 1))
 		V_DrawString(19, y-12 + (skullAnimCounter/5), highlightflags, "\x1B");
 
 	// draw search box

From 60ab28c1ab338ac4723213d1d0b5f9f4200ef5a8 Mon Sep 17 00:00:00 2001
From: ashifolfi <anticream39@yahoo.com>
Date: Sat, 5 Nov 2022 19:16:02 -0400
Subject: [PATCH 3/3] improved down arrow check + t->b/b->t looping

---
 src/m_menu.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/m_menu.c b/src/m_menu.c
index 39f0094ce..5edd4a932 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -6682,7 +6682,7 @@ static void M_DrawAddons(void)
 	}
 
 	// draw down arrow that bobs down and up
-	if (!(sizedirmenu < addonmenusize) && (b != sizedirmenu - 1))
+	if (b != sizedirmenu - 1)
 		V_DrawString(19, y-12 + (skullAnimCounter/5), highlightflags, "\x1B");
 
 	// draw search box
@@ -6781,11 +6781,15 @@ static void M_HandleAddons(INT32 choice)
 		case KEY_DOWNARROW:
 			if (dir_on[menudepthleft] < sizedirmenu-1)
 				dir_on[menudepthleft]++;
+			else if (dir_on[menudepthleft] == sizedirmenu-1)
+				dir_on[menudepthleft] = 0;
 			S_StartSound(NULL, sfx_menu1);
 			break;
 		case KEY_UPARROW:
 			if (dir_on[menudepthleft])
 				dir_on[menudepthleft]--;
+			else if (!dir_on[menudepthleft])
+				dir_on[menudepthleft] = sizedirmenu-1;
 			S_StartSound(NULL, sfx_menu1);
 			break;
 		case KEY_PGDN: