about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 13:53:10 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 13:53:10 +0000
commite7903130402ef3f0a31dac4825f16fdeef3aab3d (patch)
tree4ee5fb67b0d7d85b9a5d6bf7246b88a8d84f47df /src
parentae8f2d5d5bea1684b39f5084e81d4a8c677856c8 (diff)
downloadzcatch-e7903130402ef3f0a31dac4825f16fdeef3aab3d.tar.gz
zcatch-e7903130402ef3f0a31dac4825f16fdeef3aab3d.zip
fixed some network problems
Diffstat (limited to 'src')
-rw-r--r--src/engine/e_network.c7
-rw-r--r--src/game/g_game.cpp18
2 files changed, 6 insertions, 19 deletions
diff --git a/src/engine/e_network.c b/src/engine/e_network.c
index b26e75f0..9ae05bc0 100644
--- a/src/engine/e_network.c
+++ b/src/engine/e_network.c
@@ -344,7 +344,8 @@ static void conn_disconnect(NETCONNECTION *conn, const char *reason)
 
 static int conn_feed(NETCONNECTION *conn, NETPACKETDATA *p, NETADDR4 *addr)
 {
-	conn->last_recv_time = time_get();
+	int64 now = time_get();
+	conn->last_recv_time = now;
 	conn->stats.recv_packets++;
 	conn->stats.recv_bytes += p->data_size + NETWORK_HEADER_SIZE;
 	
@@ -367,10 +368,14 @@ static int conn_feed(NETCONNECTION *conn, NETPACKETDATA *p, NETADDR4 *addr)
 		if(p->flags == NETWORK_PACKETFLAG_CONNECT)
 		{
 			/* send response and init connection */
+			conn_reset(conn);
 			conn->state = NETWORK_CONNSTATE_ONLINE;
 			conn->connected++;
 			conn->peeraddr = *addr;
 			conn->token = p->token;
+			conn->last_send_time = now;
+			conn->last_recv_time = now;
+			conn->last_update_time = now;
 			conn_send(conn, NETWORK_PACKETFLAG_CONNECT|NETWORK_PACKETFLAG_ACCEPT, 0, 0);
 			if(config.debug)
 				dbg_msg("connection", "got connection, sending connect+accept");
diff --git a/src/game/g_game.cpp b/src/game/g_game.cpp
index b450dfbb..4befc33e 100644
--- a/src/game/g_game.cpp
+++ b/src/game/g_game.cpp
@@ -117,10 +117,6 @@ void player_core::tick()
 	float phys_size = 28.0f;
 	triggered_events = 0;
 	
-	#define MACRO_CHECK_VELOCITY { dbg_assert(length(vel) < 1000.0f, "velocity error"); }
-	
-	MACRO_CHECK_VELOCITY
-	
 	bool grounded = false;
 	if(col_check_point((int)(pos.x+phys_size/2), (int)(pos.y+phys_size/2+5)))
 		grounded = true;
@@ -131,8 +127,6 @@ void player_core::tick()
 
 	vel.y += gravity;
 	
-	MACRO_CHECK_VELOCITY
-	
 	float max_speed = grounded ? ground_control_speed : air_control_speed;
 	float accel = grounded ? ground_control_accel : air_control_accel;
 	float friction = grounded ? ground_friction : air_friction;
@@ -143,13 +137,9 @@ void player_core::tick()
 	if(input.right)
 		vel.x = saturated_add(-max_speed, max_speed, vel.x, accel);
 		
-	MACRO_CHECK_VELOCITY
-		
 	if(!input.left && !input.right)
 		vel.x *= friction;
 	
-	MACRO_CHECK_VELOCITY
-	
 	// handle jumping
 	// 1 bit = to keep track if a jump has been made on this input
 	// 2 bit = to keep track if a air-jump has been made
@@ -177,8 +167,6 @@ void player_core::tick()
 	else
 		jumped &= ~1;
 	
-	MACRO_CHECK_VELOCITY
-	
 	// do hook
 	if(input.hook)
 	{
@@ -313,8 +301,6 @@ void player_core::tick()
 		}
 	}
 	
-	MACRO_CHECK_VELOCITY
-	
 	if(true)
 	{
 		for(int i = 0; i < MAX_CLIENTS; i++)
@@ -341,8 +327,6 @@ void player_core::tick()
 				vel = vel + dir*a*v;
 			}
 			
-			MACRO_CHECK_VELOCITY
-			
 			// handle hook influence
 			if(hooked_player == i)
 			{
@@ -357,8 +341,6 @@ void player_core::tick()
 					// add a little bit force to the guy who has the grip
 					vel.x = saturated_add(-hook_drag_speed, hook_drag_speed, vel.x, -accel*dir.x*0.25f);
 					vel.y = saturated_add(-hook_drag_speed, hook_drag_speed, vel.y, -accel*dir.y*0.25f);
-					
-					MACRO_CHECK_VELOCITY
 				}
 			}
 		}