#include "tracing.qh"
-#include "../_all.qh"
#include "accuracy.qh"
#include "common.qh"
#include "hitplot.qh"
+#include "weaponsystem.qh"
#include "../g_damage.qh"
#include "../g_subs.qh"
#include "../../common/weapons/all.qh"
-#include "../../warpzonelib/common.qh"
+#include "../../lib/warpzone/common.qh"
// this function calculates w_shotorg and w_shotdir based on the weapon model
// offset, trueaim and antilag, and won't put w_shotorg inside a wall.
float oldsolid;
vector vecs, dv;
oldsolid = ent.dphitcontentsmask;
- if(ent.weapon == WEP_RIFLE.m_id)
+ if(PS(ent).m_weapon == WEP_RIFLE)
ent.dphitcontentsmask = DPCONTENTS_BODY | DPCONTENTS_CORPSE;
else
ent.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
// track max damage
if(accuracy_canbegooddamage(ent))
- accuracy_add(ent, ent.weapon, maxdamage, 0);
+ accuracy_add(ent, PS(ent).m_weapon.m_id, maxdamage, 0);
W_HitPlotAnalysis(ent, v_forward, v_right, v_up);
- if(ent.weaponentity.movedir.x > 0)
- vecs = ent.weaponentity.movedir;
+ .entity weaponentity = weaponentities[0]; // TODO: unhardcode
+ vector md = ent.(weaponentity).movedir;
+ if(md.x > 0)
+ vecs = md;
else
vecs = '0 0 0';
}
// calculate hits and fired shots for hitscan
- accuracy_add(self, self.weapon, 0, min(bdamage, totaldmg));
+ accuracy_add(self, PS(self).m_weapon.m_id, 0, min(bdamage, totaldmg));
trace_endpos = endpoint;
trace_ent = endent;
float total_damage = 0;
if(tracereffects & EF_RED)
- fireBullet_trace_callback_eff = particleeffectnum(EFFECT_RIFLE);
+ fireBullet_trace_callback_eff = EFFECT_RIFLE;
else if(tracereffects & EF_BLUE)
- fireBullet_trace_callback_eff = particleeffectnum(EFFECT_RIFLE_WEAK);
+ fireBullet_trace_callback_eff = EFFECT_RIFLE_WEAK;
else
- fireBullet_trace_callback_eff = particleeffectnum(EFFECT_BULLET);
+ fireBullet_trace_callback_eff = EFFECT_BULLET;
float lag = ANTILAG_LATENCY(self);
if(lag < 0.001)
// do not exceed 100%
float added_damage = min(damage - total_damage, damage * solid_penetration_left);
total_damage += damage * solid_penetration_left;
- accuracy_add(self, self.weapon, 0, added_damage);
+ accuracy_add(self, PS(self).m_weapon.m_id, 0, added_damage);
}
}