about summary refs log tree commit diff
path: root/src/game/server
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-07-05 22:58:54 +0200
committeroy <Tom_Adams@web.de>2011-07-05 22:58:54 +0200
commitab1f7d6f95346c7bf86dfbdfa015c7e850097918 (patch)
tree3e942e07ef88ce211baa0458198cc83a59e02e36 /src/game/server
parent1ae474689d564e1feba9924842f05e06600d83a1 (diff)
downloadzcatch-ab1f7d6f95346c7bf86dfbdfa015c7e850097918.tar.gz
zcatch-ab1f7d6f95346c7bf86dfbdfa015c7e850097918.zip
clamped information flow when moving as spectator in free-view. Closes #551
Diffstat (limited to 'src/game/server')
-rw-r--r--src/game/server/player.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp
index 1f822524..3e4d7be5 100644
--- a/src/game/server/player.cpp
+++ b/src/game/server/player.cpp
@@ -60,6 +60,9 @@ void CPlayer::Tick()
 		}
 	}
 
+	if(!m_pCharacter && m_Team == TEAM_SPECTATORS && m_SpectatorID == SPEC_FREEVIEW)
+		m_ViewPos -= vec2(clamp(m_ViewPos.x-m_LatestActivity.m_TargetX, -5000.0f, 500.0f), clamp(m_ViewPos.y-m_LatestActivity.m_TargetY, -400.0f, 400.0f));
+
 	if(!m_pCharacter && m_DieTick+Server()->TickSpeed()*3 <= Server()->Tick())
 		m_Spawning = true;
 
@@ -193,9 +196,6 @@ void CPlayer::OnDirectInput(CNetObj_PlayerInput *NewInput)
 	if(!m_pCharacter && m_Team != TEAM_SPECTATORS && (NewInput->m_Fire&1))
 		m_Spawning = true;
 
-	if(!m_pCharacter && m_Team == TEAM_SPECTATORS && m_SpectatorID == SPEC_FREEVIEW)
-		m_ViewPos = vec2(NewInput->m_TargetX, NewInput->m_TargetY);
-
 	// check for activity
 	if(NewInput->m_Direction || m_LatestActivity.m_TargetX != NewInput->m_TargetX ||
 		m_LatestActivity.m_TargetY != NewInput->m_TargetY || NewInput->m_Jump ||