diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-11 21:02:36 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-11-11 21:02:36 +0000 |
| commit | 7efefe27163548b7f61c516d6b650258a3c7d033 (patch) | |
| tree | 3615438a87ead4a9552db85b871b82ac5972b53e /src/game/client/game_client.cpp | |
| parent | 5702b3bfd0e20a0f99c8fecdada033e8d8802f01 (diff) | |
| download | zcatch-7efefe27163548b7f61c516d6b650258a3c7d033.tar.gz zcatch-7efefe27163548b7f61c516d6b650258a3c7d033.zip | |
many smaller changes. changed how projectiles are handled. fixed joining bug
Diffstat (limited to 'src/game/client/game_client.cpp')
| -rw-r--r-- | src/game/client/game_client.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/game/client/game_client.cpp b/src/game/client/game_client.cpp index f04d7712..7d01311e 100644 --- a/src/game/client/game_client.cpp +++ b/src/game/client/game_client.cpp @@ -932,9 +932,17 @@ static void render_projectile(const obj_projectile *prev, const obj_projectile * gfx_texture_set(data->images[IMAGE_GAME].id); gfx_quads_begin(); + // get positions + float gravity = -400; + float ct = (client_tick()-current->start_tick)/(float)SERVER_TICK_SPEED + client_intratick()*1/(float)SERVER_TICK_SPEED; + vec2 startpos(current->x, current->y); + vec2 startvel(current->vx, current->vy); + vec2 pos = calc_pos(startpos, startvel, gravity, ct); + vec2 prevpos = calc_pos(startpos, startvel, gravity, ct-0.001f); + select_sprite(data->weapons[current->type%data->num_weapons].sprite_proj); - vec2 vel = mix(vec2(prev->vx, prev->vy), vec2(current->vx, current->vy), client_intratick()); - vec2 pos = mix(vec2(prev->x, prev->y), vec2(current->x, current->y), client_intratick()); + vec2 vel = pos-prevpos; + //vec2 pos = mix(vec2(prev->x, prev->y), vec2(current->x, current->y), client_intratick()); // add particle for this projectile proj_particles.addparticle(current->type, itemid, pos, vel); |