void FireRailgunBullet (entity this, .entity weaponentity, vector start, vector end, float bdamage, float bforce, float mindist, float maxdist, float halflifedist, float forcehalflifedist, int deathtype)
{
- entity pseudoprojectile = NULL;
-
vector dir = normalize(end - start);
- //float max_length = vlen(end - start);
vector force = dir * bforce;
// go a little bit into the wall because we need to hit this wall later
//explosion = spawn();
// Find all non-hit players the beam passed close by
- float length = vlen(trace_endpos - start);
- if(deathtype == WEP_VAPORIZER.m_id || deathtype == WEP_VORTEX.m_id) // WEAPONTODO
- {
- FOREACH_CLIENT(IS_REAL_CLIENT(it) && it != this, {
- if (!it.railgunhit && !(IS_SPEC(it) && it.enemy == this))
- {
- // nearest point on the beam
- vector beampos = start + dir * bound(0, (it.origin - start) * dir, length);
+ float length = vlen(endpoint - start);
+ entity pseudoprojectile = NULL;
+ FOREACH_CLIENT(IS_REAL_CLIENT(it) && it != this, {
+ if (!it.railgunhit && !(IS_SPEC(it) && it.enemy == this))
+ {
+ // nearest point on the beam
+ vector beampos = start + dir * bound(0, (it.origin - start) * dir, length);
- float f = bound(0, 1 - vlen(beampos - it.origin) / 512, 1);
- if(f <= 0)
- continue;
+ float f = bound(0, 1 - vlen(beampos - it.origin) / 512, 1);
+ if(f <= 0)
+ continue;
- if(!pseudoprojectile)
- pseudoprojectile = spawn(); // we need this so the sound uses the "entchannel4" volume
- msg_entity = it;
- soundtoat(MSG_ONE, pseudoprojectile, beampos, CH_SHOTS, SND(NEXWHOOSH_RANDOM()), VOL_BASE * f, ATTEN_NONE);
- }
- });
+ if(!pseudoprojectile)
+ pseudoprojectile = spawn(); // we need this so the sound uses the "entchannel4" volume
+ msg_entity = it;
+ soundtoat(MSG_ONE, pseudoprojectile, beampos, CH_SHOTS, SND(NEXWHOOSH_RANDOM()), VOL_BASE * f, ATTEN_NONE);
+ }
+ });
- if(pseudoprojectile)
- delete(pseudoprojectile);
- }
+ if(pseudoprojectile)
+ delete(pseudoprojectile);
// find all the entities the railgun hit and hurt them
IL_EACH(g_railgunhit, it.railgunhit,