sniper trail ends when collides

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6385 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
Lucas GAUTHERON
2011-04-28 08:51:42 +00:00
parent 005b40a48f
commit 627feb7bd4
3 changed files with 19 additions and 16 deletions
+1 -9
View File
@@ -1,13 +1,6 @@
#ifndef BOT_UTIL_H
#define BOT_UTIL_H
// Structure for storing traceresults
struct traceresult_s
{
vec end;
bool collided;
};
long RandomLong(long from, long to);
float RandomFloat(float from, float to);
void lsrand(unsigned long initial_seed);
@@ -15,8 +8,7 @@ void lsrand(unsigned long initial_seed);
void AnglesToVectors(vec angles, vec &forward, vec &right, vec &up);
float WrapXAngle(float angle);
float WrapYZAngle(float angle);
void TraceLine(vec from, vec to, dynent *pTracer, bool CheckPlayers, traceresult_s *tr,
bool SkipTags=false);
float GetDistance(vec v1, vec v2);
float Get2DDistance(vec v1, vec v2);
bool IsVisible(vec v1, vec v2, dynent *tracer = NULL, bool SkipTags=false);
+7
View File
@@ -677,6 +677,13 @@ extern void setscope(bool activate);
extern void setburst(bool activate);
extern int intersect(playerent *d, const vec &from, const vec &to, vec *end = NULL);
extern bool intersect(entity *e, const vec &from, const vec &to, vec *end = NULL);
// Structure for storing traceresults
struct traceresult_s
{
vec end;
bool collided;
};
void TraceLine(vec from, vec to, dynent *pTracer, bool CheckPlayers, traceresult_s *tr, bool SkipTags=false);
extern void damageeffect(int damage, playerent *d);
extern void tryreload(playerent *p);
extern void checkakimbo();
+11 -7
View File
@@ -1193,9 +1193,11 @@ bool gun::attack(vec &targ)
void gun::attackfx(const vec &from, const vec &to, int millis)
{
addbullethole(owner, from, to);
addshotline(owner, from, to);
particle_splash(0, 5, 250, to);
traceresult_s tr;
TraceLine(from, to, owner, true, &tr);
addbullethole(owner, from, tr.end);
addshotline(owner, from, tr.end);
particle_splash(0, 5, 250, tr.end);
adddynlight(owner, from, 4, 100, 50, 96, 80, 64);
attacksound();
}
@@ -1251,10 +1253,12 @@ sniperrifle::sniperrifle(playerent *owner) : gun(owner, GUN_SNIPER), scoped(fals
void sniperrifle::attackfx(const vec &from, const vec &to, int millis)
{
addbullethole(owner, from, to);
addshotline(owner, from, to);
particle_splash(0, 50, 200, to);
particle_trail(1, 500, from, to);
traceresult_s tr;
TraceLine(from, to, owner, true, &tr);
addbullethole(owner, from, tr.end);
addshotline(owner, from, tr.end);
particle_splash(0, 50, 200, tr.end);
particle_trail(1, 500, from, tr.end);
adddynlight(owner, from, 4, 100, 50, 96, 80, 64);
attacksound();
}