From e4898a24a61dedc02720f72c32b164c5ecc6bed6 Mon Sep 17 00:00:00 2001
From: Rudolf Polzer <divverent@alientrap.org>
Date: Mon, 17 Oct 2011 15:32:18 +0200
Subject: [PATCH] Arena, LMS, CA: decide scoreboard validity by alivetime, not
 by spectator state

---
 qcsrc/server/playerstats.qc | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/qcsrc/server/playerstats.qc b/qcsrc/server/playerstats.qc
index 43c8d8d89..d74cb0f38 100644
--- a/qcsrc/server/playerstats.qc
+++ b/qcsrc/server/playerstats.qc
@@ -344,11 +344,21 @@ void PlayerStats_AddGlobalInfo(entity p)
 void PlayerStats_EndMatch(float finished)
 {
 	entity p, winner;
-    winner = PlayerScore_Sort(score_dummyfield);
-	FOR_EACH_PLAYER(p) // spectators intentionally not included
+	winner = PlayerScore_Sort(score_dummyfield);
+	FOR_EACH_CLIENT(p) // spectators intentionally not included
 	{
-		PlayerScore_PlayerStats(p);
 		PlayerStats_Accuracy(p);
+		if(g_arena || g_lms || g_ca)
+		{
+			if(p.alivetime <= 0)
+				continue;
+		}
+		else
+		{
+			if(p.classname != "player")
+				continue;
+		}
+		PlayerScore_PlayerStats(p);
 		PlayerStats_Event(p, PLAYERSTATS_SCOREBOARD_VALID, 1);
 		if(finished)
 		{
-- 
2.39.5