about summary refs log tree commit diff
path: root/src/game/server/entities/character.cpp
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-01-08 11:34:19 +0100
committeroy <Tom_Adams@web.de>2011-01-08 11:34:19 +0100
commitdf47aedbfebd9d5ab71cb8aeeede83a77c36de95 (patch)
treef69e1083a8da580265fd139807588ac21e722bc1 /src/game/server/entities/character.cpp
parent26f7c67895dd49e8ed91bf7a4c67aff485119087 (diff)
downloadzcatch-df47aedbfebd9d5ab71cb8aeeede83a77c36de95.tar.gz
zcatch-df47aedbfebd9d5ab71cb8aeeede83a77c36de95.zip
reset flags and projectiles when leaving the game layer too much. Closes #385
Diffstat (limited to 'src/game/server/entities/character.cpp')
-rw-r--r--src/game/server/entities/character.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp
index e6bb0680..77755925 100644
--- a/src/game/server/entities/character.cpp
+++ b/src/game/server/entities/character.cpp
@@ -544,18 +544,12 @@ void CCharacter::Tick()
 	m_Core.m_Input = m_Input;
 	m_Core.Tick(true);
 	
-	// handle death-tiles
+	// handle death-tiles and leaving gamelayer
 	if(GameServer()->Collision()->GetCollisionAt(m_Pos.x+m_ProximityRadius/3.f, m_Pos.y-m_ProximityRadius/3.f)&CCollision::COLFLAG_DEATH ||
 		GameServer()->Collision()->GetCollisionAt(m_Pos.x+m_ProximityRadius/3.f, m_Pos.y+m_ProximityRadius/3.f)&CCollision::COLFLAG_DEATH ||
 		GameServer()->Collision()->GetCollisionAt(m_Pos.x-m_ProximityRadius/3.f, m_Pos.y-m_ProximityRadius/3.f)&CCollision::COLFLAG_DEATH ||
-		GameServer()->Collision()->GetCollisionAt(m_Pos.x-m_ProximityRadius/3.f, m_Pos.y+m_ProximityRadius/3.f)&CCollision::COLFLAG_DEATH)
-	{
-		Die(m_pPlayer->GetCID(), WEAPON_WORLD);
-	}
-
-	// kill player when leaving gamelayer
-	if((int)m_Pos.x/32 < -200 || (int)m_Pos.x/32 > GameServer()->Collision()->GetWidth()+200 ||
-		(int)m_Pos.y/32 < -200 || (int)m_Pos.y/32 > GameServer()->Collision()->GetHeight()+200)
+		GameServer()->Collision()->GetCollisionAt(m_Pos.x-m_ProximityRadius/3.f, m_Pos.y+m_ProximityRadius/3.f)&CCollision::COLFLAG_DEATH ||
+		GameLayerClipped(m_Pos))
 	{
 		Die(m_pPlayer->GetCID(), WEAPON_WORLD);
 	}