about summary refs log tree commit diff
path: root/src/engine/server
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-10-28 16:48:52 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-10-28 16:48:52 +0000
commit5f8c4522fd0c78f517f127e3a1afe1201b9bf996 (patch)
treeafd9d4019fdfbf35e3b7a04b86a6550fa7a338a0 /src/engine/server
parenta3ce2eb90cd26fe87042344175e5c9669adb7dcd (diff)
downloadzcatch-5f8c4522fd0c78f517f127e3a1afe1201b9bf996.tar.gz
zcatch-5f8c4522fd0c78f517f127e3a1afe1201b9bf996.zip
fixed errors in input and prediction handling
Diffstat (limited to 'src/engine/server')
-rw-r--r--src/engine/server/server.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/engine/server/server.c b/src/engine/server/server.c
index 0262c65f..8fa10d7b 100644
--- a/src/engine/server/server.c
+++ b/src/engine/server/server.c
@@ -236,13 +236,6 @@ int server_send_msg(int client_id)
 	return 0;
 }
 
-
-static void server_do_tick()
-{
-	current_tick++;
-	mods_tick();
-}
-
 static void server_do_snap()
 {
 	int i, k;
@@ -464,7 +457,7 @@ static void server_process_client_packet(NETPACKET *packet)
 			input->timeleft = server_tick_start_time(tick)-time_get();
 			input->pred_tick = tick;
 			
-			if(tick < server_tick())
+			if(tick <= server_tick())
 			{
 				/* TODO: how should we handle this */
 				dbg_msg("server", "input got in late for=%d cur=%d", tick, server_tick());
@@ -713,6 +706,8 @@ static int server_run()
 			
 			if(t > server_tick_start_time(current_tick+1))
 			{
+				current_tick++;
+				
 				/* apply new input */
 				{
 					int c, i;
@@ -734,7 +729,7 @@ static int server_run()
 				/* progress game */
 				{
 					int64 start = time_get();
-					server_do_tick();
+					mods_tick();
 					simulationtime += time_get()-start;
 				}