From 9f2347b8dc5e00d437a372209773fbe7e1e58a73 Mon Sep 17 00:00:00 2001
From: terencehill <piuntn@gmail.com>
Date: Wed, 29 Jan 2014 18:53:16 +0100
Subject: [PATCH] CA: ignore respawn settings (delay, forced respawn) as dead
 players can't respawn anyway.

---
 qcsrc/server/cl_player.qc | 55 +++++++++++++++++++++------------------
 1 file changed, 29 insertions(+), 26 deletions(-)

diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc
index 0229d3ed57..f87cb8831c 100644
--- a/qcsrc/server/cl_player.qc
+++ b/qcsrc/server/cl_player.qc
@@ -620,35 +620,38 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
 		self.flags &= ~FL_ONGROUND;
 		// dying animation
 		self.deadflag = DEAD_DYING;
-		// when to allow respawn
-		sdelay = 0;
-		waves = 0;
-		sdelay = cvar(strcat("g_", GetGametype(), "_respawn_delay"));
-		if(!sdelay)
+		if(!g_ca)
 		{
-			if(g_cts)
-				sdelay = 0; // no respawn delay in CTS
+			// when to allow respawn
+			sdelay = 0;
+			waves = 0;
+			sdelay = cvar(strcat("g_", GetGametype(), "_respawn_delay"));
+			if(!sdelay)
+			{
+				if(g_cts)
+					sdelay = 0; // no respawn delay in CTS
+				else
+					sdelay = autocvar_g_respawn_delay;
+			}
+			waves = cvar(strcat("g_", GetGametype(), "_respawn_waves"));
+			if(!waves)
+				waves = autocvar_g_respawn_waves;
+			if(waves)
+				self.respawn_time = ceil((time + sdelay) / waves) * waves;
 			else
-				sdelay = autocvar_g_respawn_delay;
-		}
-		waves = cvar(strcat("g_", GetGametype(), "_respawn_waves"));
-		if(!waves)
-			waves = autocvar_g_respawn_waves;
-		if(waves)
-			self.respawn_time = ceil((time + sdelay) / waves) * waves;
-		else
-			self.respawn_time = time + sdelay;
-		if(autocvar_g_respawn_delay_max > sdelay)
-			self.respawn_time_max = time + autocvar_g_respawn_delay_max;
-		else
-			self.respawn_time_max = self.respawn_time;
-		if((sdelay + waves >= 5.0) && (self.respawn_time - time > 1.75))
-			self.respawn_countdown = 10; // first number to count down from is 10
-		else
-			self.respawn_countdown = -1; // do not count down
+				self.respawn_time = time + sdelay;
+			if(autocvar_g_respawn_delay_max > sdelay)
+				self.respawn_time_max = time + autocvar_g_respawn_delay_max;
+			else
+				self.respawn_time_max = self.respawn_time;
+			if((sdelay + waves >= 5.0) && (self.respawn_time - time > 1.75))
+				self.respawn_countdown = 10; // first number to count down from is 10
+			else
+				self.respawn_countdown = -1; // do not count down
 
-		if(g_cts || autocvar_g_forced_respawn)
-			self.respawn_flags = self.respawn_flags | RESPAWN_FORCE;
+			if(g_cts || autocvar_g_forced_respawn)
+				self.respawn_flags = self.respawn_flags | RESPAWN_FORCE;
+		}
 
 		self.death_time = time;
 		if (random() < 0.5)
-- 
2.39.5