about summary refs log tree commit diff
path: root/src/game/server/player.cpp
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-09-24 14:54:51 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-09-24 14:54:51 +0000
commiteb812244d9fba85f6a117e7b5dc1ee500544a08a (patch)
treee32f5de3b2cc0f288a5a0c21b5a4dd012aa20235 /src/game/server/player.cpp
parent917ebc17c617dfd27e4e997dce713cb1dfb6cfdc (diff)
downloadzcatch-eb812244d9fba85f6a117e7b5dc1ee500544a08a.tar.gz
zcatch-eb812244d9fba85f6a117e7b5dc1ee500544a08a.zip
fixed server crash when dieing
Diffstat (limited to 'src/game/server/player.cpp')
-rw-r--r--src/game/server/player.cpp30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp
index 252e23e3..45d56388 100644
--- a/src/game/server/player.cpp
+++ b/src/game/server/player.cpp
@@ -19,17 +19,6 @@ PLAYER::~PLAYER()
 	character = 0;
 }
 
-/*
-void PLAYER::init(int client_id)
-{
-	// clear everything
-	~PLAYER();
-	mem_zero(this, sizeof(*this));
-	new(this) PLAYER();
-	
-	this->client_id = client_id;
-}*/
-
 void PLAYER::tick()
 {
 	server_setclientscore(client_id, score);
@@ -54,12 +43,21 @@ void PLAYER::tick()
 			latency.accum_max = 0;
 		}
 	}
-	
-	if(spawning && !get_character())
+
+	if(character)
+	{
+		if(character->alive)
+		{
+			view_pos = character->pos;
+		}
+		else
+		{
+			delete character;
+			character = 0;
+		}
+	}
+	else if(spawning)
 		try_respawn();
-	
-	if(get_character())
-		view_pos = get_character()->pos;
 }
 
 void PLAYER::snap(int snaping_client)