about summary refs log tree commit diff
path: root/src/engine/server/es_server.c
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-02-10 15:32:30 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-02-10 15:32:30 +0000
commit294cbe18c17cd20f70f965e7f89a3250ef39b990 (patch)
treedb942402bd39bfb8336e2a2d134f96f2ad5b2ab1 /src/engine/server/es_server.c
parentacffe66ebe63f3ecc970db0feab33a6e85a7d1f4 (diff)
downloadzcatch-294cbe18c17cd20f70f965e7f89a3250ef39b990.tar.gz
zcatch-294cbe18c17cd20f70f965e7f89a3250ef39b990.zip
done some more latency work. added the extra message for projectiles to reduce latency
Diffstat (limited to 'src/engine/server/es_server.c')
-rw-r--r--src/engine/server/es_server.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c
index 8d805e42..9c2aac41 100644
--- a/src/engine/server/es_server.c
+++ b/src/engine/server/es_server.c
@@ -642,6 +642,9 @@ static void server_process_client_packet(NETPACKET *packet)
 			
 			clients[cid].current_input++;
 			clients[cid].current_input %= 200;
+		
+			/* call the mod with the fresh input data */
+			mods_client_direct_input(cid, clients[cid].latestinput.data);
 		}
 		else if(msg == NETMSG_CMD)
 		{
@@ -653,6 +656,12 @@ static void server_process_client_packet(NETPACKET *packet)
 				console_execute(cmd);
 			}
 		}
+		else if(msg == NETMSG_PING)
+		{
+			msg_pack_start_system(NETMSG_PING_REPLY, 0);
+			msg_pack_end();
+			server_send_msg(cid);
+		}
 		else
 		{
 			dbg_msg("server", "strange message cid=%d msg=%d data_size=%d", cid, msg, packet->data_size);
@@ -948,7 +957,7 @@ static int server_run()
 						{
 							if(clients[c].inputs[i].game_tick == server_tick())
 							{
-								mods_client_input(c, clients[c].inputs[i].data);
+								mods_client_predicted_input(c, clients[c].inputs[i].data);
 								break;
 							}
 						}
@@ -986,7 +995,7 @@ static int server_run()
 					lastheartbeat = t+time_per_heartbeat;
 				}
 			}
-	
+
 			{
 				static PERFORMACE_INFO scope = {"net", 0};
 				perf_start(&scope);
@@ -1025,6 +1034,10 @@ static int server_run()
 				config.sv_status = 0;
 			}
 			
+			/* wait for incomming data */
+			net_socket_read_wait(netserver_socket(net), 5);
+	
+			/*
 			if(config.dbg_hitch)
 			{
 				thread_sleep(config.dbg_hitch);
@@ -1032,7 +1045,7 @@ static int server_run()
 			}
 			else
 				thread_sleep(1);
-			
+			*/
 		}
 	}