about summary refs log tree commit diff
path: root/src/game/server/player.cpp
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-03-01 18:31:20 +0100
committeroy <Tom_Adams@web.de>2011-03-01 18:31:20 +0100
commit4bede550be18cfc9bb4df669c147032917160066 (patch)
tree56652609b0a47df5e1cf27abbbaf8a3d5cf9756d /src/game/server/player.cpp
parent0bc13c91ebcc6404fc67e079e5a9acad10176c98 (diff)
downloadzcatch-4bede550be18cfc9bb4df669c147032917160066.tar.gz
zcatch-4bede550be18cfc9bb4df669c147032917160066.zip
only update the ping if the scoreboard is active. Closes #27
Diffstat (limited to 'src/game/server/player.cpp')
-rw-r--r--src/game/server/player.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp
index 32eec986..573d996d 100644
--- a/src/game/server/player.cpp
+++ b/src/game/server/player.cpp
@@ -99,8 +99,13 @@ void CPlayer::Snap(int SnappingClient)
 	if(!pPlayerInfo)
 		return;
 
-	pPlayerInfo->m_Latency = m_Latency.m_Min;
-	pPlayerInfo->m_LatencyFlux = m_Latency.m_Max-m_Latency.m_Min;
+	// update latency value
+	if(SnappingClient != -1 && m_Team != -1 && GameServer()->m_apPlayers[SnappingClient]->m_PlayerFlags&PLAYERFLAG_SCOREBOARD)
+	{
+		GameServer()->m_apPlayers[SnappingClient]->m_aActLatency[m_ClientID] = m_Latency.m_Min;
+	}
+
+	pPlayerInfo->m_Latency = SnappingClient == -1 ? m_Latency.m_Min : GameServer()->m_apPlayers[SnappingClient]->m_aActLatency[m_ClientID];
 	pPlayerInfo->m_Local = 0;
 	pPlayerInfo->m_ClientID = m_ClientID;
 	pPlayerInfo->m_Score = m_Score;
@@ -133,6 +138,8 @@ void CPlayer::OnPredictedInput(CNetObj_PlayerInput *NewInput)
 
 void CPlayer::OnDirectInput(CNetObj_PlayerInput *NewInput)
 {
+	m_PlayerFlags = NewInput->m_PlayerFlags;
+
 	if(Character)
 		Character->OnDirectInput(NewInput);