From 5870d145b29c325f4b2f01527e23af3826bd2577 Mon Sep 17 00:00:00 2001
From: mazmazz <mar.marcoz@outlook.com>
Date: Tue, 20 Nov 2018 18:13:18 -0500
Subject: [PATCH] Draw connection screen correctly; make scroll speed inherit
 global setting

---
 src/d_clisrv.c | 2 +-
 src/f_finale.c | 2 +-
 src/m_menu.c   | 6 ++++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index 271a09363..c8a017947 100644
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -1127,7 +1127,7 @@ static inline void CL_DrawConnectionStatus(void)
 
 	// Draw background fade
 	if (!menuactive) // menu already draws its own fade
-		V_DrawFadeScreen(0xFF00, curfadevalue);
+		V_DrawFadeScreen(0xFF00, 16); // force default
 
 	// Draw the bottom box.
 	M_DrawTextBox(BASEVIDWIDTH/2-128-8, BASEVIDHEIGHT-24-8, 32, 1);
diff --git a/src/f_finale.c b/src/f_finale.c
index 525ba2e28..583910f67 100644
--- a/src/f_finale.c
+++ b/src/f_finale.c
@@ -1465,7 +1465,7 @@ void F_TitleScreenDrawer(void)
 	// Draw that sky!
 	if (curbgcolor >= 0)
 		V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, curbgcolor);
-	else if (!curbghide || !titlemapinaction)
+	else if (!curbghide || !titlemapinaction || gamestate == GS_WAITINGPLAYERS)
 		M_SkyScroll(curbgxspeed, curbgyspeed, curbgname);
 
 	// Don't draw outside of the title screewn, or if the patch isn't there.
diff --git a/src/m_menu.c b/src/m_menu.c
index 5efed4b7f..32885bc64 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -2230,6 +2230,8 @@ void MN_InitInfoTables(void)
 		menumeta[i].enterwipe = -1;
 		menumeta[i].exitwipe = -1;
 		menumeta[i].bgcolor = -1;
+		menumeta[i].titlescrollxspeed = INT32_MAX;
+		menumeta[i].titlescrollyspeed = INT32_MAX;
 		// default true
 		menumeta[i].enterbubble = true;
 		menumeta[i].exitbubble = true;
@@ -2359,8 +2361,8 @@ static boolean MIT_SetCurBackground(UINT32 menutype, INT32 level, INT32 *retval,
 	else if (menumeta[menutype].bgname[0] && (!menumeta[menutype].bghide || !titlemapinaction))
 	{
 		strncpy(curbgname, menumeta[menutype].bgname, 8);
-		curbgxspeed = menumeta[menutype].titlescrollxspeed;
-		curbgyspeed = menumeta[menutype].titlescrollyspeed;
+		curbgxspeed = menumeta[menutype].titlescrollxspeed != INT32_MAX ? menumeta[menutype].titlescrollxspeed : titlescrollxspeed;
+		curbgyspeed = menumeta[menutype].titlescrollyspeed != INT32_MAX ? menumeta[menutype].titlescrollyspeed : titlescrollyspeed;
 		return true;
 	}
 	else if (menumeta[menutype].bghide && titlemapinaction) // hide the background