diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-19 20:12:30 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-19 20:12:30 +0000 |
| commit | 4b868fb02921e9c6bd3eed01c70226738b049a75 (patch) | |
| tree | 53adb193b99ce702cb61272fc6cf9d1eacd2db51 /src/game/client | |
| parent | 34698e13e9c98d4665f31157d32639b426afbed6 (diff) | |
| download | zcatch-4b868fb02921e9c6bd3eed01c70226738b049a75.tar.gz zcatch-4b868fb02921e9c6bd3eed01c70226738b049a75.zip | |
fixed so the hook_pos is set correctly
Diffstat (limited to 'src/game/client')
| -rw-r--r-- | src/game/client/gc_client.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --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); |