about summary refs log tree commit diff
path: root/src/game/server
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-11-26 20:19:59 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-11-26 20:19:59 +0000
commit263001dceca3cf95ae42d110a7fe46245428e89a (patch)
tree907774e717ea7042caa4fd18c51edbe4dc68a8bb /src/game/server
parent7715ab0059fbfb44af8a448ba3605e1d6a8b58f3 (diff)
downloadzcatch-263001dceca3cf95ae42d110a7fe46245428e89a.tar.gz
zcatch-263001dceca3cf95ae42d110a7fe46245428e89a.zip
fixed spectator and dead physics
Diffstat (limited to 'src/game/server')
-rw-r--r--src/game/server/game_server.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp
index 9b2e358e..b8b23960 100644
--- a/src/game/server/game_server.cpp
+++ b/src/game/server/game_server.cpp
@@ -929,12 +929,15 @@ void player::tick()
 		}
 	}
 
+	// enable / disable physics
+	if(team == -1 || dead)
+		world->core.players[client_id] = 0;
+	else
+		world->core.players[client_id] = &core;
+
+	// spectator
 	if(team == -1)
-	{
-		// spectator
 		return;
-	}
-
 
 	if(spawning)
 		try_respawn();
@@ -985,6 +988,12 @@ void player::tick_defered()
 	core.quantize();
 	//dbg_msg("", "%d %.0f,%.0f -> %.0f,%.0f", client_id, pos.x, pos.y, core.pos.x, core.pos.y);
 	pos = core.pos;
+	
+	if(team == -1)
+	{
+		pos.x = input.target_x;
+		pos.y = input.target_y;
+	}
 
 	// apply the new position
 	//pos = defered_pos;
@@ -1689,10 +1698,7 @@ void mods_init()
 
 	// setup core world
 	for(int i = 0; i < MAX_CLIENTS; i++)
-	{
 		players[i].core.world = &world->core;
-		world->core.players[i] = &players[i].core;
-	}
 
 	//
 	int start, num;