diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-17 01:03:14 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-17 01:03:14 +0000 |
| commit | ad19e0702efa07fbe7df073ade599573917b9250 (patch) | |
| tree | e2b57dde40772a7534cc50d0c3b3bd92c19e519e /src/game/server | |
| parent | 259d2886334e443f533d27244386e9e003b2cf34 (diff) | |
| download | zcatch-ad19e0702efa07fbe7df073ade599573917b9250.tar.gz zcatch-ad19e0702efa07fbe7df073ade599573917b9250.zip | |
tweaked the rifle and added rifle sounds
Diffstat (limited to 'src/game/server')
| -rw-r--r-- | src/game/server/gs_common.h | 1 | ||||
| -rw-r--r-- | src/game/server/gs_server.cpp | 27 |
2 files changed, 18 insertions, 10 deletions
diff --git a/src/game/server/gs_common.h b/src/game/server/gs_common.h index 0de81318..494a16eb 100644 --- a/src/game/server/gs_common.h +++ b/src/game/server/gs_common.h @@ -204,6 +204,7 @@ public: projectile(int type, int owner, vec2 pos, vec2 vel, int span, entity* powner, int damage, int flags, float force, int sound_impact, int weapon); + vec2 get_pos(float time); void fill_info(NETOBJ_PROJECTILE *proj); virtual void reset(); diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp index fa3f9925..753a53a3 100644 --- a/src/game/server/gs_server.cpp +++ b/src/game/server/gs_server.cpp @@ -406,7 +406,7 @@ void projectile::reset() world->destroy_entity(this); } -void projectile::tick() +vec2 projectile::get_pos(float time) { float curvature = 0; float speed = 0; @@ -426,10 +426,17 @@ void projectile::tick() speed = tuning.gun_speed; } + return calc_pos(pos, direction, curvature, speed, time); +} + + +void projectile::tick() +{ + float pt = (server_tick()-start_tick-1)/(float)server_tickspeed(); float ct = (server_tick()-start_tick)/(float)server_tickspeed(); - vec2 prevpos = calc_pos(pos, direction, curvature, speed, pt); - vec2 curpos = calc_pos(pos, direction, curvature, speed, ct); + vec2 prevpos = get_pos(pt); + vec2 curpos = get_pos(ct); lifespan--; @@ -466,13 +473,10 @@ void projectile::fill_info(NETOBJ_PROJECTILE *proj) void projectile::snap(int snapping_client) { - /*float ct = (server_tick()-start_tick)/(float)server_tickspeed();*/ - /*vec2 curpos = calc_pos(pos, vel, -7.5f*server_tickspeed(), ct);*/ - - /*if(distance(players[snapping_client].pos, curpos) > 1000.0f) - return;*/ - - /* TODO: FIX ME */ + float ct = (server_tick()-start_tick)/(float)server_tickspeed(); + + if(distance(players[snapping_client].pos, get_pos(ct)) > 1000.0f) + return; NETOBJ_PROJECTILE *proj = (NETOBJ_PROJECTILE *)snap_new_item(NETOBJTYPE_PROJECTILE, id, sizeof(NETOBJ_PROJECTILE)); fill_info(proj); @@ -564,7 +568,10 @@ void laser::reset() void laser::tick() { if(server_tick() > eval_tick+(server_tickspeed()*tuning.laser_bounce_delay)/1000.0f) + { + create_sound(pos, SOUND_RIFLE_BOUNCE); do_bounce(); + } } |