From a518548afde849c93a6eceb03b24dd035dce557e Mon Sep 17 00:00:00 2001
From: terencehill <piuntn@gmail.com>
Date: Sat, 10 Sep 2011 21:44:19 +0200
Subject: [PATCH] Less spammy centerprint msg shown when one tries to play and
 the number of players (not bots) already reached g_maxplayers

---
 qcsrc/common/constants.qh |  1 +
 qcsrc/server/cl_client.qc | 15 ++++++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh
index e13a1071b..fe5f9bcd2 100644
--- a/qcsrc/common/constants.qh
+++ b/qcsrc/common/constants.qh
@@ -610,6 +610,7 @@ float CPID_GAME_STARTING = 7;
 float CPID_TIMEOUT_COUNTDOWN = 8;
 float CPID_MOTD = 9;
 float CPID_KH_MSG = 10;
+float CPID_PREVENT_JOIN = 11;
 
 // CSQC centerprint/notify message types
 float MSG_SUICIDE = 0;
diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc
index 034a61af7..914962ca6 100644
--- a/qcsrc/server/cl_client.qc
+++ b/qcsrc/server/cl_client.qc
@@ -2461,6 +2461,7 @@ void ShowRespawnCountdown()
 	}
 }
 
+.float prevent_join_msgtime;
 void LeaveSpectatorMode()
 {
 	if(nJoinAllowed(1)) {
@@ -2482,6 +2483,12 @@ void LeaveSpectatorMode()
 			if (time < self.jointime + autocvar_welcome_message_time)
 				Send_CSQC_Centerprint_Generic_Expire(self, CPID_MOTD); // clear MOTD
 
+			if (self.prevent_join_msgtime)
+			{
+				Send_CSQC_Centerprint_Generic_Expire(self, CPID_PREVENT_JOIN);
+				self.prevent_join_msgtime = 0;
+			}
+
 			return;
 		} else {
 			if (g_ca && self.caplayer) {
@@ -2493,7 +2500,9 @@ void LeaveSpectatorMode()
 	}
 	else {
 		//player may not join because of g_maxplayers is set
-		centerprint(self, PREVENT_JOIN_TEXT);
+		if (time - self.prevent_join_msgtime > 2)
+			Send_CSQC_Centerprint_Generic(self, CPID_PREVENT_JOIN, PREVENT_JOIN_TEXT, 0, 0);
+		self.prevent_join_msgtime = time;
 	}
 }
 
@@ -2604,7 +2613,7 @@ void ObserverThink()
 			}
 		}
 	}
-	
+
 	PrintWelcomeMessage();
 }
 
@@ -2763,7 +2772,7 @@ void PlayerPreThink (void)
 	self.usekeypressed = self.BUTTON_USE;
 
 	PrintWelcomeMessage();
-	
+
 	if(self.classname == "player") {
 //		if(self.netname == "Wazat")
 //			bprint(self.classname, "\n");
-- 
2.39.5