diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-18 22:10:04 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-18 22:10:04 +0000 |
| commit | 6bd1e6902442840a6cb5955d6303cc0740e459ed (patch) | |
| tree | c7c35e17f9f9e9227c163677e883b89a33d4c365 /src/game/server | |
| parent | 46560cdb5077e459dabcb79081eb5ae3e185c0af (diff) | |
| download | zcatch-6bd1e6902442840a6cb5955d6303cc0740e459ed.tar.gz zcatch-6bd1e6902442840a6cb5955d6303cc0740e459ed.zip | |
added radius to the projectiles
Diffstat (limited to 'src/game/server')
| -rw-r--r-- | src/game/server/gs_server.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp index 9e17361f..604e2f0d 100644 --- a/src/game/server/gs_server.cpp +++ b/src/game/server/gs_server.cpp @@ -23,7 +23,7 @@ void create_smoke(vec2 p); void create_playerspawn(vec2 p); void create_death(vec2 p, int who); void create_sound(vec2 pos, int sound, int mask=-1); -class player *intersect_player(vec2 pos0, vec2 pos1, vec2 &new_pos, class entity *notthis = 0); +class player *intersect_player(vec2 pos0, vec2 pos1, float radius, vec2 &new_pos, class entity *notthis = 0); class player *closest_player(vec2 pos, float radius, entity *notthis); game_world *world; @@ -443,7 +443,7 @@ void projectile::tick() int collide = col_check_point((int)curpos.x, (int)curpos.y); vec2 new_pos; - entity *targetplayer = (entity*)intersect_player(prevpos, curpos, new_pos, powner); + entity *targetplayer = (entity*)intersect_player(prevpos, curpos, 8.0f, new_pos, powner); if(targetplayer || collide || lifespan < 0) { @@ -503,7 +503,7 @@ laser::laser(vec2 pos, vec2 direction, float start_energy, player *owner) bool laser::hit_player(vec2 from, vec2 to) { vec2 at; - player *hit = intersect_player(pos, to, at, owner); + player *hit = intersect_player(pos, to, 8.0f, at, owner); if(!hit) return false; @@ -1837,7 +1837,7 @@ float closest_point_on_line(vec2 line_point0, vec2 line_point1, vec2 target_poin } // TODO: should be more general -player *intersect_player(vec2 pos0, vec2 pos1, vec2& new_pos, entity *notthis) +player *intersect_player(vec2 pos0, vec2 pos1, float radius, vec2& new_pos, entity *notthis) { // Find other players float closest_time = distance(pos0, pos1) * 100.0f; @@ -1855,7 +1855,7 @@ player *intersect_player(vec2 pos0, vec2 pos1, vec2& new_pos, entity *notthis) float t = closest_point_on_line(pos0, pos1, players[i].pos); vec2 intersect_pos = pos0 + line_dir*t; float len = distance(players[i].pos, intersect_pos); - if(len < player::phys_size) + if(len < player::phys_size+radius) { if(t < closest_time) { |