about summary refs log tree commit diff
path: root/src/game/client/gameclient.cpp
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-01-11 23:03:01 +0100
committeroy <Tom_Adams@web.de>2011-01-11 23:03:01 +0100
commitb60d6deb513d217727c92972061ce7afcb072c9a (patch)
treed5909d7b6398e186af89f7f7c28dce441fcc8309 /src/game/client/gameclient.cpp
parent3f9708b263d101e5df5219f0e032da616ddfe107 (diff)
downloadzcatch-b60d6deb513d217727c92972061ce7afcb072c9a.tar.gz
zcatch-b60d6deb513d217727c92972061ce7afcb072c9a.zip
made m_paInfoByScore within gameclient's snap state work and cleaned up render scoreboard
Diffstat (limited to 'src/game/client/gameclient.cpp')
-rw-r--r--src/game/client/gameclient.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp
index 2bebf486..9a05cc88 100644
--- a/src/game/client/gameclient.cpp
+++ b/src/game/client/gameclient.cpp
@@ -814,6 +814,21 @@ void CGameClient::OnNewSnapshot()
 	}
 	else
 		m_Snap.m_Spectate = true;
+
+	// sort player infos by score
+	mem_copy(m_Snap.m_paInfoByScore, m_Snap.m_paPlayerInfos, sizeof(m_Snap.m_paInfoByScore));
+	for(int k = 0; k < MAX_CLIENTS-1; k++) // ffs, bubblesort
+	{
+		for(int i = 0; i < MAX_CLIENTS-k-1; i++)
+		{
+			if(m_Snap.m_paInfoByScore[i+1] && (!m_Snap.m_paInfoByScore[i] || m_Snap.m_paInfoByScore[i]->m_Score < m_Snap.m_paInfoByScore[i+1]->m_Score))
+			{
+				const CNetObj_PlayerInfo *pTmp = m_Snap.m_paInfoByScore[i];
+				m_Snap.m_paInfoByScore[i] = m_Snap.m_paInfoByScore[i+1];
+				m_Snap.m_paInfoByScore[i+1] = pTmp;
+			}
+		}
+	}
 	
 	CTuningParams StandardTuning;
 	CServerInfo CurrentServerInfo;