+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+ #include "../../dpdefs/progsdefs.qh"
+ #include "../../dpdefs/dpextensions.qh"
+ #include "../../warpzonelib/common.qh"
+ #include "../../common/constants.qh"
+ #include "../../common/util.qh"
+ #include "../../common/weapons/weapons.qh"
+ #include "tracing.qh"
+ #include "../autocvars.qh"
+ #include "../defs.qh"
+ #include "../antilag.qh"
+#endif
+
// 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.
// make sure you call makevectors first (FIXME?)
//vector prevdir = w_shotdir;
//vector prevorg = w_shotorg;
- //vector prevend = w_shotend;
+ //vector prevend = w_shotend;
if (antilag)
if (!ent.cvar_cl_noantilag)
}
mspercallsum -= gettime(GETTIME_HIRES);
#endif
-
+
dir = W_CalculateSpread(dir, spread, g_weaponspreadfactor, autocvar_g_projectiles_spread_style);
-
+
#if 0
mspercallsum += gettime(GETTIME_HIRES);
mspercallcount += 1;
while (1)
{
if(self.antilag_debug)
- WarpZone_traceline_antilag (self, start, end, FALSE, o, self.antilag_debug);
+ WarpZone_traceline_antilag (self, start, end, false, o, self.antilag_debug);
else
- WarpZone_traceline_antilag (self, start, end, FALSE, o, ANTILAG_LATENCY(self));
+ WarpZone_traceline_antilag (self, start, end, false, o, ANTILAG_LATENCY(self));
if(o && WarpZone_trace_firstzone)
{
o = world;
break;
// make the entity non-solid so we can hit the next one
- trace_ent.railgunhit = TRUE;
+ trace_ent.railgunhit = true;
trace_ent.railgunhitloc = end;
trace_ent.railgunhitsolidbackup = trace_ent.solid;
trace_ent.railgundistance = vlen(WarpZone_UnTransformOrigin(WarpZone_trace_transform, trace_endpos) - start);
endq3surfaceflags = trace_dphitq3surfaceflags;
// find all the entities the railgun hit and restore their solid state
- ent = findfloat(world, railgunhit, TRUE);
+ ent = findfloat(world, railgunhit, true);
while (ent)
{
// restore their solid type
ent.solid = ent.railgunhitsolidbackup;
- ent = findfloat(ent, railgunhit, TRUE);
+ ent = findfloat(ent, railgunhit, true);
}
// spawn a temporary explosion entity for RadiusDamage calls
}
// find all the entities the railgun hit and hurt them
- ent = findfloat(world, railgunhit, TRUE);
+ ent = findfloat(world, railgunhit, true);
while (ent)
{
// get the details we need to call the damage function
ent.railgunhitloc = '0 0 0';
ent.railgunhitsolidbackup = SOLID_NOT;
- ent.railgunhit = FALSE;
+ ent.railgunhit = false;
ent.railgundistance = 0;
// advance to the next entity
- ent = findfloat(ent, railgunhit, TRUE);
+ ent = findfloat(ent, railgunhit, true);
}
// calculate hits and fired shots for hitscan
fireBullet_last_hit = world;
}
-void fireBullet(vector start, vector dir, float spread, float max_solid_penetration, float damage, float force, float dtype, float tracereffects)
+void fireBullet(vector start, vector dir, float spread, float max_solid_penetration, float damage, float force, float dtype, int tracereffects)
{
vector end;
WarpZone_trace_forent = self;
- for(0;;)
+ for (;;)
{
// TODO also show effect while tracing
- WarpZone_TraceBox_ThroughZone(start, '0 0 0', '0 0 0', end, FALSE, WarpZone_trace_forent, world, fireBullet_trace_callback);
+ WarpZone_TraceBox_ThroughZone(start, '0 0 0', '0 0 0', end, false, WarpZone_trace_forent, world, fireBullet_trace_callback);
dir = WarpZone_TransformVelocity(WarpZone_trace_transform, dir);
end = WarpZone_TransformOrigin(WarpZone_trace_transform, end);
start = trace_endpos;
// move the entity along its velocity until it's out of solid, then let it resume
// The previously hit entity is ignored here!
- traceline_inverted (start, start + dir * maxdist, MOVE_NORMAL, WarpZone_trace_forent, TRUE, hit);
+ traceline_inverted (start, start + dir * maxdist, MOVE_NORMAL, WarpZone_trace_forent, true, hit);
if(trace_fraction == 1) // 1: we never got out of solid
break;