From: Rudolf Polzer <divverent@xonotic.org>
Date: Mon, 11 Nov 2013 16:18:58 +0000 (+0100)
Subject: Kill g_antilag_bullets (always assume 1); kill bullet gravity.
X-Git-Tag: xonotic-v0.8.0~261
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=0141f75c97bb3f15455bfa8dd1e0225817bb8081;p=xonotic%2Fxonotic-data.pk3dir.git

Kill g_antilag_bullets (always assume 1); kill bullet gravity.

Real code simplification to be done later.
---

diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg
index 5b6637fa9..217aab90a 100644
--- a/defaultXonotic.cfg
+++ b/defaultXonotic.cfg
@@ -400,7 +400,6 @@ pausable 0
 set g_spawnshieldtime 1 "number of seconds you are invincible after you spawned, this shield is lost after you fire"
 set g_antilag 2	"AntiLag (0 = no AntiLag, 1 = verified client side hit scan, 2 = server side hit scan in the past, 3 = unverified client side hit scan)"
 set g_antilag_nudge 0 "don't touch"
-set g_antilag_bullets 1 "Bullets AntiLag (0 = no AntiLag, 1 = server side hit scan in the past) - DO NOT TOUCH (severely changes weapon balance)"
 set g_shootfromclient 2 "let client decide if it has the gun left or right; if set to 2, center handedness is allowed; see also cl_gunalign"
 set g_shootfromeye 0 "shots are fired from your eye/crosshair; visual gun position can still be influenced by cl_gunalign 1 and 2"
 set g_shootfromcenter 0 "weapon gets moved to the center, shots still come from the barrel of your weapon; visual gun position can still be influenced by cl_gunalign 1 and 2"
diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc
index e00e25e6e..52f6e2324 100644
--- a/qcsrc/client/projectile.qc
+++ b/qcsrc/client/projectile.qc
@@ -167,10 +167,7 @@ void Projectile_Draw()
 
 	switch(self.cnt)
 	{
-		case PROJECTILE_BULLET_GLOWING:
-		case PROJECTILE_BULLET_GLOWING_TRACER:
-			adddynamiclight(self.origin, 50 * a, '1 1 0');
-			break;
+		// Possibly add dlights here.
 		default:
 			break;
 	}
@@ -292,9 +289,6 @@ void Ent_Projectile()
 		{
 			case PROJECTILE_ELECTRO: setmodel(self, "models/ebomb.mdl");self.traileffect = particleeffectnum("TR_NEXUIZPLASMA"); break;
 			case PROJECTILE_ROCKET: setmodel(self, "models/rocket.md3");self.traileffect = particleeffectnum("TR_ROCKET"); self.scale = 2; break;
-			case PROJECTILE_BULLET: setmodel(self, "models/tracer.mdl");self.traileffect = particleeffectnum("tr_bullet"); break;
-			case PROJECTILE_BULLET_GLOWING: setmodel(self, "models/tracer.mdl");self.traileffect = particleeffectnum("tr_rifle_weak"); break;
-			case PROJECTILE_BULLET_GLOWING_TRACER: setmodel(self, "models/tracer.mdl");self.traileffect = particleeffectnum("tr_rifle"); break;
 			case PROJECTILE_CRYLINK: setmodel(self, "models/plasmatrail.mdl");self.traileffect = particleeffectnum("TR_CRYLINKPLASMA"); break;
 			case PROJECTILE_CRYLINK_BOUNCING: setmodel(self, "models/plasmatrail.mdl");self.traileffect = particleeffectnum("TR_CRYLINKPLASMA"); break;
 			case PROJECTILE_ELECTRO_BEAM: setmodel(self, "models/elaser.mdl");self.traileffect = particleeffectnum("TR_NEXUIZPLASMA"); break;
diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh
index b3dafaaf7..55d16953f 100644
--- a/qcsrc/common/constants.qh
+++ b/qcsrc/common/constants.qh
@@ -327,7 +327,6 @@ const float ATTEN_MAX = 3.984375;
 const float PROJECTILE_ELECTRO = 1;
 const float PROJECTILE_ROCKET = 2;
 const float PROJECTILE_TAG = 3;
-const float PROJECTILE_BULLET = 4;
 const float PROJECTILE_CRYLINK = 5;
 const float PROJECTILE_ELECTRO_BEAM = 6;
 const float PROJECTILE_GRENADE = 7;
@@ -342,11 +341,9 @@ const float PROJECTILE_PORTO_BLUE = 15;
 const float PROJECTILE_HOOKBOMB = 16;
 const float PROJECTILE_HAGAR = 17;
 const float PROJECTILE_HAGAR_BOUNCING = 18;
-const float PROJECTILE_BULLET_GLOWING = 19;
 const float PROJECTILE_CRYLINK_BOUNCING = 20;
 const float PROJECTILE_FIREBALL = 21;
 const float PROJECTILE_FIREMINE = 22;
-const float PROJECTILE_BULLET_GLOWING_TRACER = 23;
 
 const float PROJECTILE_RAPTORCANNON = 24;
 const float PROJECTILE_RAPTORBOMB = 25;
diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh
index 759aea6ad..7d920fb0c 100644
--- a/qcsrc/server/autocvars.qh
+++ b/qcsrc/server/autocvars.qh
@@ -70,7 +70,6 @@ float autocvar_ekg;
 #define autocvar_fraglimit_override cvar("fraglimit_override")
 float autocvar_g_allow_oldnexbeam;
 float autocvar_g_antilag;
-float autocvar_g_antilag_bullets;
 float autocvar_g_antilag_nudge;
 float autocvar_g_arena_maxspawned;
 float autocvar_g_arena_point_leadlimit;
diff --git a/qcsrc/server/tturrets/units/unit_machinegun.qc b/qcsrc/server/tturrets/units/unit_machinegun.qc
index 10d186193..46c46d7f8 100644
--- a/qcsrc/server/tturrets/units/unit_machinegun.qc
+++ b/qcsrc/server/tturrets/units/unit_machinegun.qc
@@ -5,7 +5,7 @@ void turret_machinegun_attack();
 //.float bulletcounter;
 void turret_machinegun_attack()
 {
-    fireBallisticBullet (self.tur_shotorg, self.tur_shotdir_updated,self.shot_spread, self.shot_speed, 5, self.shot_dmg, self.shot_force, DEATH_TURRET_MACHINEGUN, 0, 1, autocvar_g_balance_uzi_bulletconstant);
+    fireBallisticBullet (self.tur_shotorg, self.tur_shotdir_updated,self.shot_spread, self.shot_speed, 5, self.shot_dmg, self.shot_force, DEATH_TURRET_MACHINEGUN, 0, autocvar_g_balance_uzi_bulletconstant);
     endFireBallisticBullet();
 
     UziFlash();
@@ -21,8 +21,7 @@ void turret_machinegun_std_init()
     self.turrcaps_flags = TFL_TURRCAPS_PLAYERKILL;
     self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE;
 
-	if (!autocvar_g_antilag_bullets)
-		self.turrcaps_flags |= TFL_TURRCAPS_HITSCAN;
+    self.turrcaps_flags |= TFL_TURRCAPS_HITSCAN;
 
     if (turret_stdproc_init("machinegun_std", "models/turrets/base.md3", "models/turrets/machinegun.md3", TID_MACHINEGUN) == 0)
     {
diff --git a/qcsrc/server/tturrets/units/unit_walker.qc b/qcsrc/server/tturrets/units/unit_walker.qc
index 615622e3b..1ce59dd27 100644
--- a/qcsrc/server/tturrets/units/unit_walker.qc
+++ b/qcsrc/server/tturrets/units/unit_walker.qc
@@ -515,7 +515,7 @@ void walker_postthink()
 void walker_attack()
 {
     sound (self, CH_WEAPON_A, "weapons/uzi_fire.wav", VOL_BASE, ATTEN_NORM);
-    fireBallisticBullet (self.tur_shotorg, self.tur_shotdir_updated, self.shot_spread, self.shot_speed, 5, self.shot_dmg, self.shot_force, DEATH_TURRET_WALK_GUN, 0, 1, autocvar_g_balance_uzi_bulletconstant);
+    fireBallisticBullet (self.tur_shotorg, self.tur_shotdir_updated, self.shot_spread, self.shot_speed, 5, self.shot_dmg, self.shot_force, DEATH_TURRET_WALK_GUN, 0, autocvar_g_balance_uzi_bulletconstant);
     endFireBallisticBullet();
     pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);
 }
@@ -574,10 +574,7 @@ void turret_walker_dinit()
     self.turrcaps_flags = TFL_TURRCAPS_PLAYERKILL | TFL_TURRCAPS_MOVE ;
     self.aim_flags = TFL_AIM_LEAD;
 
-    if (autocvar_g_antilag_bullets)
-        self.turrcaps_flags |= TFL_TURRCAPS_HITSCAN;
-    else
-        self.aim_flags      |= TFL_AIM_SHOTTIMECOMPENSATE;
+    self.turrcaps_flags |= TFL_TURRCAPS_HITSCAN;
 
 
     self.turret_respawnhook = walker_respawnhook;
diff --git a/qcsrc/server/vehicles/spiderbot.qc b/qcsrc/server/vehicles/spiderbot.qc
index a36904139..bdbcb8288 100644
--- a/qcsrc/server/vehicles/spiderbot.qc
+++ b/qcsrc/server/vehicles/spiderbot.qc
@@ -495,10 +495,10 @@ float spiderbot_frame()
             v_forward = normalize(v_forward);
             v += v_forward * 50;
 
-//void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, float lifetime, float damage, float force, float dtype, float tracereffects, float gravityfactor, float bulletconstant)
+//void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, float lifetime, float damage, float force, float dtype, float tracereffects, float bulletconstant)
 
             fireBallisticBullet(v, v_forward, autocvar_g_vehicle_spiderbot_minigun_spread, autocvar_g_vehicle_spiderbot_minigun_speed,
-                                5, autocvar_g_vehicle_spiderbot_minigun_damage, autocvar_g_vehicle_spiderbot_minigun_force, DEATH_VH_SPID_MINIGUN, 0, 1, autocvar_g_vehicle_spiderbot_minigun_bulletconstant);
+                                5, autocvar_g_vehicle_spiderbot_minigun_damage, autocvar_g_vehicle_spiderbot_minigun_force, DEATH_VH_SPID_MINIGUN, 0, autocvar_g_vehicle_spiderbot_minigun_bulletconstant);
 
             endFireBallisticBullet();
 
diff --git a/qcsrc/server/w_common.qc b/qcsrc/server/w_common.qc
index 0734a58db..72cac7985 100644
--- a/qcsrc/server/w_common.qc
+++ b/qcsrc/server/w_common.qc
@@ -389,29 +389,20 @@ void fireBallisticBullet_trace_callback(vector start, vector hit, vector end)
 	self.owner = world;
 }
 
-void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, float lifetime, float damage, float force, float dtype, float tracereffects, float gravityfactor, float bulletconstant)
+void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, float lifetime, float damage, float force, float dtype, float tracereffects, float bulletconstant)
 {
 	float lag, dt, savetime; //, density;
 	entity pl, oldself;
-	float antilagging;
-
-	antilagging = (autocvar_g_antilag_bullets && (pSpeed >= autocvar_g_antilag_bullets));
 
 	entity proj;
 	proj = spawn();
 	proj.classname = "bullet";
 	proj.owner = proj.realowner = self;
 	PROJECTILE_MAKETRIGGER(proj);
-	if(gravityfactor > 0)
-	{
-		proj.movetype = MOVETYPE_TOSS;
-		proj.gravity = gravityfactor;
-	}
-	else
-		proj.movetype = MOVETYPE_FLY;
+	proj.movetype = MOVETYPE_FLY;
 	proj.think = SUB_Remove;
 	proj.nextthink = time + lifetime; // min(pLifetime, vlen(world.maxs - world.mins) / pSpeed);
-	W_SetupProjectileVelocityEx(proj, dir, v_up, pSpeed, 0, 0, spread, antilagging);
+	W_SetupProjectileVelocityEx(proj, dir, v_up, pSpeed, 0, 0, spread, TRUE);
 	proj.angles = vectoangles(proj.velocity);
 	if(bulletconstant > 0)
 		proj.dmg_radius = autocvar_g_ballistics_materialconstant / bulletconstant;
@@ -432,122 +423,108 @@ void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, f
 
 	other = proj; MUTATOR_CALLHOOK(EditProjectile);
 
-	if(antilagging)
-	{
-		float eff;
+	float eff;
 
-		if(tracereffects & EF_RED)
-			eff = particleeffectnum("tr_rifle");
-		else if(tracereffects & EF_BLUE)
-			eff = particleeffectnum("tr_rifle_weak");
-		else
-			eff = particleeffectnum("tr_bullet");
+	if(tracereffects & EF_RED)
+		eff = particleeffectnum("tr_rifle");
+	else if(tracereffects & EF_BLUE)
+		eff = particleeffectnum("tr_rifle_weak");
+	else
+		eff = particleeffectnum("tr_bullet");
+
+	// NOTE: this may severely throw off weapon balance
+	lag = ANTILAG_LATENCY(self);
+	if(lag < 0.001)
+		lag = 0;
+	if (!IS_REAL_CLIENT(self))
+		lag = 0;
+	if(autocvar_g_antilag == 0 || self.cvar_cl_noantilag)
+		lag = 0; // only do hitscan, but no antilag
+
+	if(lag)
+		FOR_EACH_PLAYER(pl)
+			if(pl != self)
+				antilag_takeback(pl, time - lag);
 
-		// NOTE: this may severely throw off weapon balance
-		lag = ANTILAG_LATENCY(self);
-		if(lag < 0.001)
-			lag = 0;
-		if (!IS_REAL_CLIENT(self))
-			lag = 0;
-		if(autocvar_g_antilag == 0 || self.cvar_cl_noantilag)
-			lag = 0; // only do hitscan, but no antilag
+	oldself = self;
+	self = proj;
 
-		if(lag)
-			FOR_EACH_PLAYER(pl)
-				if(pl != self)
-					antilag_takeback(pl, time - lag);
+	savetime = frametime;
+	frametime = 0.05;
 
-		oldself = self;
-		self = proj;
+	for(;;)
+	{
+		// DP tracetoss is stupid and always traces in 0.05s
+		// ticks. This makes it trace in 0.05*0.125s ticks
+		// instead.
+		vector v0;
+		v0 = self.velocity;
+		self.velocity = self.velocity * 0.125;
+		trace_fraction = 0;
+		fireBallisticBullet_trace_callback_ent = self;
+		fireBallisticBullet_trace_callback_eff = eff;
+		WarpZone_TraceToss_ThroughZone(self, self.owner, world, fireBallisticBullet_trace_callback);
+		self.velocity = v0;
+
+		if(trace_fraction == 1)
+			break;
+			// won't hit anything anytime soon (DP's
+			// tracetoss does 200 tics of, here,
+			// 0.05*0.125s, that is, 1.25 seconds
 
-		savetime = frametime;
-		frametime = 0.05;
+		other = trace_ent;
+		dt = WarpZone_tracetoss_time * 0.125; // this is only approximate!
+		setorigin(self, trace_endpos);
+		self.velocity = WarpZone_tracetoss_velocity * (1 / 0.125);
 
-		for(;;)
+		if(!SUB_OwnerCheck())
 		{
-			// DP tracetoss is stupid and always traces in 0.05s
-			// ticks. This makes it trace in 0.05*0.125s ticks
-			// instead.
-			vector v0;
-			float g0;
-			v0 = self.velocity;
-			g0 = self.gravity;
-			self.velocity = self.velocity * 0.125;
-			self.gravity *= 0.125 * 0.125;
-			trace_fraction = 0;
-			fireBallisticBullet_trace_callback_ent = self;
-			fireBallisticBullet_trace_callback_eff = eff;
-			WarpZone_TraceToss_ThroughZone(self, self.owner, world, fireBallisticBullet_trace_callback);
-			self.velocity = v0;
-			self.gravity = g0;
-
-			if(trace_fraction == 1)
+			if(SUB_NoImpactCheck())
 				break;
-				// won't hit anything anytime soon (DP's
-				// tracetoss does 200 tics of, here,
-				// 0.05*0.125s, that is, 1.25 seconds
-
-			other = trace_ent;
-			dt = WarpZone_tracetoss_time * 0.125; // this is only approximate!
-			setorigin(self, trace_endpos);
-			self.velocity = WarpZone_tracetoss_velocity * (1 / 0.125);
-
-			if(!SUB_OwnerCheck())
-			{
-				if(SUB_NoImpactCheck())
-					break;
-
-				// hit the player
-				W_BallisticBullet_Hit();
-			}
 
-			if(proj.dmg_radius < 0) // these NEVER penetrate solid
-				break;
+			// hit the player
+			W_BallisticBullet_Hit();
+		}
 
-			// if we hit "weapclip", bail out
-			//
-			// rationale of this check:
-			//
-			// any shader that is solid, nodraw AND trans is meant to clip weapon
-			// shots and players, but has no other effect!
-			//
-			// if it is not trans, it is caulk and should not have this side effect
-			//
-			// matching shaders:
-			//   common/weapclip (intended)
-			//   common/noimpact (is supposed to eat projectiles, but is erased farther above)
-			if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NODRAW)
-			if (!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NONSOLID))
-			if (!(trace_dphitcontents & DPCONTENTS_OPAQUE))
-				break;
+		if(proj.dmg_radius < 0) // these NEVER penetrate solid
+			break;
 
-			// go through solid!
-			if(!W_BallisticBullet_LeaveSolid((other && (other.solid != SOLID_BSP)) ? eff : -1))
-				break;
+		// if we hit "weapclip", bail out
+		//
+		// rationale of this check:
+		//
+		// any shader that is solid, nodraw AND trans is meant to clip weapon
+		// shots and players, but has no other effect!
+		//
+		// if it is not trans, it is caulk and should not have this side effect
+		//
+		// matching shaders:
+		//   common/weapclip (intended)
+		//   common/noimpact (is supposed to eat projectiles, but is erased farther above)
+		if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NODRAW)
+		if (!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NONSOLID))
+		if (!(trace_dphitcontents & DPCONTENTS_OPAQUE))
+			break;
 
-			W_BallisticBullet_LeaveSolid_think();
+		// go through solid!
+		if(!W_BallisticBullet_LeaveSolid((other && (other.solid != SOLID_BSP)) ? eff : -1))
+			break;
 
-			self.projectiledeathtype |= HITTYPE_BOUNCE;
-		}
-		frametime = savetime;
-		self = oldself;
+		W_BallisticBullet_LeaveSolid_think();
 
-		if(lag)
-			FOR_EACH_PLAYER(pl)
-				if(pl != self)
-					antilag_restore(pl);
+		self.projectiledeathtype |= HITTYPE_BOUNCE;
+	}
+	frametime = savetime;
+	self = oldself;
 
-		remove(proj);
+	if(lag)
+		FOR_EACH_PLAYER(pl)
+			if(pl != self)
+				antilag_restore(pl);
 
-		return;
-	}
+	remove(proj);
 
-	if(tracereffects & EF_RED)
-		CSQCProjectile(proj, TRUE, PROJECTILE_BULLET_GLOWING_TRACER, TRUE);
-	else if(tracereffects & EF_BLUE)
-		CSQCProjectile(proj, TRUE, PROJECTILE_BULLET_GLOWING, TRUE);
-	else
-		CSQCProjectile(proj, TRUE, PROJECTILE_BULLET, TRUE);
+	return;
 }
 
 void fireBullet (vector start, vector dir, float spread, float damage, float force, float dtype, float tracer)
diff --git a/qcsrc/server/w_rifle.qc b/qcsrc/server/w_rifle.qc
index c1ed230cf..90db2ad75 100644
--- a/qcsrc/server/w_rifle.qc
+++ b/qcsrc/server/w_rifle.qc
@@ -21,7 +21,7 @@ void W_Rifle_FireBullet(float pSpread, float pDamage, float pForce, float pSpeed
 
 	W_DecreaseAmmo(ammo_nails, pAmmo, autocvar_g_balance_rifle_reload_ammo);
 
-	W_SetupShot (self, autocvar_g_antilag_bullets && pSpeed >= autocvar_g_antilag_bullets, 2, pSound, CH_WEAPON_A, pDamage * pShots);
+	W_SetupShot (self, TRUE, 2, pSound, CH_WEAPON_A, pDamage * pShots);
 
 	pointparticles(particleeffectnum("rifle_muzzleflash"), w_shotorg, w_shotdir * 2000, 1);
 
@@ -32,7 +32,7 @@ void W_Rifle_FireBullet(float pSpread, float pDamage, float pForce, float pSpeed
 	}
 
 	for(i = 0; i < pShots; ++i)
-		fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pForce, deathtype, (pTracer ? EF_RED : EF_BLUE), 1, pBulletConstant);
+		fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pForce, deathtype, (pTracer ? EF_RED : EF_BLUE), pBulletConstant);
 	endFireBallisticBullet();
 
 	if (autocvar_g_casings >= 2)
diff --git a/qcsrc/server/w_shotgun.qc b/qcsrc/server/w_shotgun.qc
index a40a2da4b..2fb621401 100644
--- a/qcsrc/server/w_shotgun.qc
+++ b/qcsrc/server/w_shotgun.qc
@@ -35,9 +35,9 @@ void W_Shotgun_Attack (void)
 
 	W_DecreaseAmmo(ammo_shells, ammoamount, autocvar_g_balance_shotgun_reload_ammo);
 
-	W_SetupShot (self, autocvar_g_antilag_bullets && bulletspeed >= autocvar_g_antilag_bullets, 5, "weapons/shotgun_fire.wav", CH_WEAPON_A, d * bullets);
+	W_SetupShot (self, TRUE, 5, "weapons/shotgun_fire.wav", CH_WEAPON_A, d * bullets);
 	for (sc = 0;sc < bullets;sc = sc + 1)
-		fireBallisticBullet(w_shotorg, w_shotdir, spread, bulletspeed, 5, d, f, WEP_SHOTGUN, 0, 1, bulletconstant);
+		fireBallisticBullet(w_shotorg, w_shotdir, spread, bulletspeed, 5, d, f, WEP_SHOTGUN, 0, bulletconstant);
 	endFireBallisticBullet();
 
 	pointparticles(particleeffectnum("shotgun_muzzleflash"), w_shotorg, w_shotdir * 1000, autocvar_g_balance_shotgun_primary_ammo);
@@ -178,12 +178,7 @@ float w_shotgun(float req)
 		if(vlen(self.origin-self.enemy.origin) <= autocvar_g_balance_shotgun_secondary_melee_range)
 			self.BUTTON_ATCK2 = bot_aim(1000000, 0, 0.001, FALSE);
 		else
-		{
-			if(autocvar_g_antilag_bullets)
-				self.BUTTON_ATCK = bot_aim(1000000, 0, 0.001, FALSE);
-			else
-				self.BUTTON_ATCK = bot_aim(autocvar_g_balance_shotgun_primary_speed, 0, 0.001, FALSE);
-		}
+			self.BUTTON_ATCK = bot_aim(1000000, 0, 0.001, FALSE);
 
 	else if (req == WR_THINK)
 	{
diff --git a/qcsrc/server/w_uzi.qc b/qcsrc/server/w_uzi.qc
index 88dcc8c9f..5fd890a0b 100644
--- a/qcsrc/server/w_uzi.qc
+++ b/qcsrc/server/w_uzi.qc
@@ -51,7 +51,7 @@ void UziFlash()
 
 void W_UZI_Attack (float deathtype)
 {
-	W_SetupShot (self, autocvar_g_antilag_bullets && autocvar_g_balance_uzi_speed >= autocvar_g_antilag_bullets, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, ((self.misc_bulletcounter == 1) ? autocvar_g_balance_uzi_first_damage : autocvar_g_balance_uzi_sustained_damage));
+	W_SetupShot (self, TRUE, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, ((self.misc_bulletcounter == 1) ? autocvar_g_balance_uzi_first_damage : autocvar_g_balance_uzi_sustained_damage));
 	if (!autocvar_g_norecoil)
 	{
 		self.punchangle_x = random () - 0.5;
@@ -62,9 +62,9 @@ void W_UZI_Attack (float deathtype)
 	ATTACK_FINISHED(self) = time + autocvar_g_balance_uzi_first_refire * W_WeaponRateFactor();
 
 	if (self.misc_bulletcounter == 1)
-		fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_balance_uzi_first_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_first_damage, autocvar_g_balance_uzi_first_force, deathtype, 0, 1, autocvar_g_balance_uzi_bulletconstant);
+		fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_balance_uzi_first_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_first_damage, autocvar_g_balance_uzi_first_force, deathtype, 0, autocvar_g_balance_uzi_bulletconstant);
 	else
-		fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_balance_uzi_sustained_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, autocvar_g_balance_uzi_sustained_force, deathtype, 0, 1, autocvar_g_balance_uzi_bulletconstant);
+		fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_balance_uzi_sustained_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, autocvar_g_balance_uzi_sustained_force, deathtype, 0, autocvar_g_balance_uzi_bulletconstant);
 	endFireBallisticBullet();
 
 	pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -128,7 +128,7 @@ void uzi_mode1_fire_auto()
 
 	W_DecreaseAmmo(ammo_nails, autocvar_g_balance_uzi_sustained_ammo, autocvar_g_balance_uzi_reload_ammo);
 
-	W_SetupShot (self, autocvar_g_antilag_bullets && autocvar_g_balance_uzi_speed >= autocvar_g_antilag_bullets, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, autocvar_g_balance_uzi_sustained_damage);
+	W_SetupShot (self, TRUE, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, autocvar_g_balance_uzi_sustained_damage);
 	if (!autocvar_g_norecoil)
 	{
 		self.punchangle_x = random () - 0.5;
@@ -136,7 +136,7 @@ void uzi_mode1_fire_auto()
 	}
 
 	uzi_spread = bound(autocvar_g_balance_uzi_spread_min, autocvar_g_balance_uzi_spread_min + (autocvar_g_balance_uzi_spread_add * self.misc_bulletcounter), autocvar_g_balance_uzi_spread_max);
-	fireBallisticBullet(w_shotorg, w_shotdir, uzi_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, autocvar_g_balance_uzi_sustained_force, WEP_UZI, 0, 1, autocvar_g_balance_uzi_bulletconstant);
+	fireBallisticBullet(w_shotorg, w_shotdir, uzi_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, autocvar_g_balance_uzi_sustained_force, WEP_UZI, 0, autocvar_g_balance_uzi_bulletconstant);
 	endFireBallisticBullet();
 
 	self.misc_bulletcounter = self.misc_bulletcounter + 1;
@@ -155,14 +155,14 @@ void uzi_mode1_fire_auto()
 
 void uzi_mode1_fire_burst()
 {
-	W_SetupShot (self, autocvar_g_antilag_bullets && autocvar_g_balance_uzi_speed >= autocvar_g_antilag_bullets, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, autocvar_g_balance_uzi_sustained_damage);
+	W_SetupShot (self, TRUE, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, autocvar_g_balance_uzi_sustained_damage);
 	if (!autocvar_g_norecoil)
 	{
 		self.punchangle_x = random () - 0.5;
 		self.punchangle_y = random () - 0.5;
 	}
 
-	fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_balance_uzi_burst_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, autocvar_g_balance_uzi_sustained_force, WEP_UZI, 0, 1, autocvar_g_balance_uzi_bulletconstant);
+	fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_balance_uzi_burst_spread, autocvar_g_balance_uzi_speed, 5, autocvar_g_balance_uzi_sustained_damage, autocvar_g_balance_uzi_sustained_force, WEP_UZI, 0, autocvar_g_balance_uzi_bulletconstant);
 	endFireBallisticBullet();