about summary refs log tree commit diff
path: root/src/game/server
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-18 22:10:04 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-03-18 22:10:04 +0000
commit6bd1e6902442840a6cb5955d6303cc0740e459ed (patch)
treec7c35e17f9f9e9227c163677e883b89a33d4c365 /src/game/server
parent46560cdb5077e459dabcb79081eb5ae3e185c0af (diff)
downloadzcatch-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.cpp10
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)
 			{