//if(w_shotdir != prevdir) { printf("SERVER: shotDIR differs: %s - %s\n", vtos(w_shotdir), vtos(prevdir)); }
}
-vector W_CalculateProjectileVelocity(vector pvelocity, vector mvelocity, float forceAbsolute)
+vector W_CalculateProjectileVelocity(entity actor, vector pvelocity, vector mvelocity, float forceAbsolute)
{
vector mdirection;
float mspeed;
vector outvelocity;
- mvelocity = mvelocity * W_WeaponSpeedFactor();
+ mvelocity = mvelocity * W_WeaponSpeedFactor(actor);
mdirection = normalize(mvelocity);
mspeed = vlen(mvelocity);
LOG_INFO("avg: ", ftos(mspercallcount / mspercallsum), " per sec\n");
#endif
- proj.velocity = W_CalculateProjectileVelocity(proj.owner.velocity, pSpeed * dir, forceAbsolute);
+ proj.velocity = W_CalculateProjectileVelocity(proj.owner, proj.owner.velocity, pSpeed * dir, forceAbsolute);
}
fireBullet_last_hit = hit;
yoda = 0;
MUTATOR_CALLHOOK(FireBullet_Hit, this, hit, start, end, damage);
- damage = frag_damage;
+ damage = M_ARGV(4, float);
float g = accuracy_isgooddamage(this, hit);
Damage(hit, this, this, damage * solid_penetration_left, dtype, start, force * dir * solid_penetration_left);
// calculate hits for ballistic weapons