about summary refs log tree commit diff
path: root/src/game/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server')
-rw-r--r--src/game/server/entities/character.cpp5
-rw-r--r--src/game/server/entities/character.h2
-rw-r--r--src/game/server/player.cpp11
-rw-r--r--src/game/server/player.h6
4 files changed, 16 insertions, 8 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp
index 1221d438..ddd416d1 100644
--- a/src/game/server/entities/character.cpp
+++ b/src/game/server/entities/character.cpp
@@ -54,7 +54,6 @@ void CCharacter::Reset()
 
 bool CCharacter::Spawn(CPlayer *pPlayer, vec2 Pos)
 {
-	m_PlayerState = PLAYERSTATE_UNKNOWN;
 	m_EmoteStop = -1;
 	m_LastAction = -1;
 	m_ActiveWeapon = WEAPON_GUN;
@@ -559,8 +558,6 @@ void CCharacter::Tick()
 	// handle Weapons
 	HandleWeapons();
 
-	m_PlayerState = m_Input.m_PlayerState;
-
 	// Previnput
 	m_PrevInput = m_Input;
 	return;
@@ -839,5 +836,5 @@ void CCharacter::Snap(int SnappingClient)
 			pCharacter->m_Emote = EMOTE_BLINK;
 	}
 
-	pCharacter->m_PlayerState = m_PlayerState;
+	pCharacter->m_PlayerFlags = GetPlayer()->m_PlayerFlags;
 }
diff --git a/src/game/server/entities/character.h b/src/game/server/entities/character.h
index 6346570f..b874fd0c 100644
--- a/src/game/server/entities/character.h
+++ b/src/game/server/entities/character.h
@@ -120,8 +120,6 @@ private:
 		
 	} m_Ninja;
 
-	int m_PlayerState;// if the client is chatting, accessing a menu or so
-
 	// the player core for the physics	
 	CCharacterCore m_Core;
 	
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);
 
diff --git a/src/game/server/player.h b/src/game/server/player.h
index fbbf5567..f4d82d24 100644
--- a/src/game/server/player.h
+++ b/src/game/server/player.h
@@ -37,6 +37,12 @@ public:
 	//---------------------------------------------------------
 	// this is used for snapping so we know how we can clip the view for the player
 	vec2 m_ViewPos;
+
+	// states if the client is chatting, accessing a menu etc.
+	int m_PlayerFlags;
+
+	// used for snapping to just update latency if the scoreboard is active
+	int m_aActLatency[MAX_CLIENTS];
 	
 	//
 	int m_Vote;