about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-19 20:12:30 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-19 20:12:30 +0000
commit4b868fb02921e9c6bd3eed01c70226738b049a75 (patch)
tree53adb193b99ce702cb61272fc6cf9d1eacd2db51
parent34698e13e9c98d4665f31157d32639b426afbed6 (diff)
downloadzcatch-4b868fb02921e9c6bd3eed01c70226738b049a75.tar.gz
zcatch-4b868fb02921e9c6bd3eed01c70226738b049a75.zip
fixed so the hook_pos is set correctly
-rw-r--r--data/maps/ctf2.mapbin321777 -> 321774 bytes
-rw-r--r--src/game/client/gc_client.cpp15
2 files changed, 14 insertions, 1 deletions
diff --git a/data/maps/ctf2.map b/data/maps/ctf2.map
index daaaff15..272ac8b8 100644
--- a/data/maps/ctf2.map
+++ b/data/maps/ctf2.map
Binary files differdiff --git a/src/game/client/gc_client.cpp b/src/game/client/gc_client.cpp
index 5409549c..a9e5c75d 100644
--- a/src/game/client/gc_client.cpp
+++ b/src/game/client/gc_client.cpp
@@ -1423,7 +1423,20 @@ static void render_player(
 		//gfx_quads_begin();
 
 		vec2 pos = position;
-		vec2 hook_pos = mix(vec2(prev.hook_x, prev.hook_y), vec2(player.hook_x, player.hook_y), intratick);
+		vec2 hook_pos;
+		
+		if(player_char->hooked_player != -1)
+		{
+			if(local_info && player_char->hooked_player == local_info->clientid)
+			{
+				hook_pos = mix(vec2(predicted_prev_player.pos.x, predicted_prev_player.pos.y),
+					vec2(predicted_player.pos.x, predicted_player.pos.y), client_intrapredtick());
+			}
+			else
+				hook_pos = mix(vec2(prev_char->hook_x, prev_char->hook_y), vec2(player_char->hook_x, player_char->hook_y), client_intratick());
+		}
+		else
+			hook_pos = mix(vec2(prev.hook_x, prev.hook_y), vec2(player.hook_x, player.hook_y), intratick);
 
 		float d = distance(pos, hook_pos);
 		vec2 dir = normalize(pos-hook_pos);