[nexuiz-commits] r6786 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri May 29 15:27:58 EDT 2009


Author: div0
Date: 2009-05-29 15:27:58 -0400 (Fri, 29 May 2009)
New Revision: 6786

Modified:
   trunk/data/qcsrc/server/cl_weaponsystem.qc
   trunk/data/qcsrc/server/w_crylink.qc
   trunk/data/qcsrc/server/w_electro.qc
   trunk/data/qcsrc/server/w_grenadelauncher.qc
   trunk/data/qcsrc/server/w_hagar.qc
   trunk/data/qcsrc/server/w_hlac.qc
   trunk/data/qcsrc/server/w_hook.qc
   trunk/data/qcsrc/server/w_laser.qc
   trunk/data/qcsrc/server/w_porto.qc
   trunk/data/qcsrc/server/w_rocketlauncher.qc
   trunk/data/qcsrc/server/w_seeker.qc
Log:
fix grenade launcher through floor


Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -103,7 +103,7 @@
 // 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?)
-void W_SetupShot(entity ent, float antilag, float recoil, string snd)
+void W_SetupShot_ProjectileSize(entity ent, vector mi, vector ma, float antilag, float recoil, string snd)
 {
 	float nudge = 1; // added to traceline target and subtracted from result
 	local vector trueaimpoint;
@@ -130,12 +130,8 @@
 	dv = v_right * vecs_y + v_up * vecs_z;
 	w_shotorg = ent.origin + ent.view_ofs + dv;
 
-	// move the vecs sideways as much as requested if possible
-	traceline(ent.origin + ent.view_ofs, w_shotorg + normalize(dv) * nudge, MOVE_NORMAL, ent);
-	w_shotorg = trace_endpos - normalize(dv) * nudge;
-
 	// now move the shotorg forward as much as requested if possible
-	traceline(w_shotorg, w_shotorg + v_forward * (vecs_x + nudge), MOVE_NORMAL, ent);
+	tracebox(w_shotorg, mi, ma, w_shotorg + v_forward * (vecs_x + nudge), MOVE_NORMAL, ent);
 	w_shotorg = trace_endpos - v_forward * nudge;
 	// calculate the shotdir from the chosen shotorg
 	w_shotdir = normalize(trueaimpoint - w_shotorg);
@@ -267,6 +263,11 @@
 		sound (ent, CHAN_AUTO, "weapons/strength_fire.wav", VOL_BASE, ATTN_NORM);
 };
 
+void W_SetupShot(entity ent, float antilag, float recoil, string snd)
+{
+	W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd);
+}
+
 void LaserTarget_Think()
 {
 	entity e;

Modified: trunk/data/qcsrc/server/w_crylink.qc
===================================================================
--- trunk/data/qcsrc/server/w_crylink.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_crylink.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -88,6 +88,7 @@
 		//proj.gravity = 0.001;
 
 		setorigin (proj, w_shotorg);
+		setsize(proj, '0 0 0', '0 0 0');
 
 
 		s = '0 0 0';
@@ -151,6 +152,7 @@
 		//proj.gravity = 0.001;
 
 		setorigin (proj, w_shotorg);
+		setsize(proj, '0 0 0', '0 0 0');
 
 		proj.velocity = (w_shotdir + (((counter + 0.5) / shots) * 2 - 1) * v_right * cvar("g_balance_crylink_secondary_spread")) * cvar("g_balance_crylink_secondary_speed");
 		W_SetupProjectileVelocity(proj);

Modified: trunk/data/qcsrc/server/w_electro.qc
===================================================================
--- trunk/data/qcsrc/server/w_electro.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_electro.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -69,7 +69,7 @@
 {
 	local entity proj;
 
-	W_SetupShot (self, FALSE, 2, "weapons/electro_fire.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire.wav");
 
 	pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
@@ -92,6 +92,7 @@
 	W_SetupProjectileVelocity(proj);
 	proj.angles = vectoangles(proj.velocity);
 	proj.touch = W_Plasma_TouchExplode;
+	setsize(proj, '0 0 -3', '0 0 -3');
 	proj.flags = FL_PROJECTILE;
 
 	//sound (proj, CHAN_PAIN, "weapons/electro_fly.wav", VOL_BASE, ATTN_NORM);
@@ -104,7 +105,7 @@
 {
 	local entity proj;
 
-	W_SetupShot (self, FALSE, 2, "weapons/electro_fire2.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire2.wav");
 	w_shotdir = v_forward; // no TrueAim for grenades please
 
 	pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);

Modified: trunk/data/qcsrc/server/w_grenadelauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_grenadelauncher.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_grenadelauncher.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -74,7 +74,7 @@
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_primary_ammo");
-	W_SetupShot (self, FALSE, 4, "weapons/grenade_fire.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav");
 	w_shotdir = v_forward; // no TrueAim for grenades please
 
 	pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -88,6 +88,7 @@
 	gren.solid = SOLID_BBOX;
 	gren.projectiledeathtype = WEP_GRENADE_LAUNCHER;
 	setorigin(gren, w_shotorg);
+	setsize(gren, '0 0 -3', '0 0 -3');
 
 	gren.nextthink = time + cvar("g_balance_grenadelauncher_primary_lifetime");
 	gren.think = adaptor_think2use;
@@ -108,7 +109,7 @@
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_secondary_ammo");
-	W_SetupShot (self, FALSE, 4, "weapons/grenade_fire.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav");
 	w_shotdir = v_forward; // no TrueAim for grenades please
 
 	pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -121,7 +122,7 @@
 	gren.movetype = MOVETYPE_BOUNCE;
 	gren.solid = SOLID_BBOX;
 	gren.projectiledeathtype = WEP_GRENADE_LAUNCHER | HITTYPE_SECONDARY;
-	setsize(gren, '0 0 -3', '0 0 -3'); // why, just, why?
+	setsize(gren, '0 0 -3', '0 0 -3');
 	setorigin(gren, w_shotorg);
 
 	gren.nextthink = time + cvar("g_balance_grenadelauncher_secondary_lifetime");

Modified: trunk/data/qcsrc/server/w_hagar.qc
===================================================================
--- trunk/data/qcsrc/server/w_hagar.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_hagar.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -65,6 +65,7 @@
 	missile.solid = SOLID_BBOX;
 	missile.projectiledeathtype = WEP_HAGAR;
 	setorigin (missile, w_shotorg);
+	setsize(missile, '0 0 0', '0 0 0');
 	//missile.takedamage = DAMAGE_YES;
 	//missile.damageforcescale = 4;
 	//missile.health = 10;
@@ -104,6 +105,7 @@
 	missile.solid = SOLID_BBOX;
 	missile.projectiledeathtype = WEP_HAGAR | HITTYPE_SECONDARY;
 	setorigin (missile, w_shotorg);
+	setsize(missile, '0 0 0', '0 0 0');
 	//missile.takedamage = DAMAGE_YES;
 	//missile.damageforcescale = 4;
 	//missile.health = 10;

Modified: trunk/data/qcsrc/server/w_hlac.qc
===================================================================
--- trunk/data/qcsrc/server/w_hlac.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_hlac.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -56,6 +56,7 @@
 	missile.solid = SOLID_BBOX;
 
 	setorigin (missile, w_shotorg);
+	setsize(missile, '0 0 0', '0 0 0');
 
     missile.velocity = (w_shotdir + randomvec() * spread) * cvar("g_balance_hlac_primary_speed");
 
@@ -99,6 +100,7 @@
 	missile.solid = SOLID_BBOX;
 
 	setorigin (missile, w_shotorg);
+	setsize(missile, '0 0 0', '0 0 0');
 
     missile.velocity = (w_shotdir + randomvec() * spread) * cvar("g_balance_hlac_secondary_speed");
 

Modified: trunk/data/qcsrc/server/w_hook.qc
===================================================================
--- trunk/data/qcsrc/server/w_hook.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_hook.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -71,6 +71,7 @@
 	gren.solid = SOLID_BBOX;
 	gren.projectiledeathtype = WEP_HOOK | HITTYPE_SECONDARY;
 	setorigin(gren, w_shotorg);
+	setsize(gren, '0 0 0', '0 0 0');
 
 	gren.nextthink = time + cvar("g_balance_hook_secondary_lifetime");
 	gren.think = adaptor_think2use;

Modified: trunk/data/qcsrc/server/w_laser.qc
===================================================================
--- trunk/data/qcsrc/server/w_laser.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_laser.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -37,6 +37,7 @@
 		missile.projectiledeathtype |= HITTYPE_SECONDARY;
 
 	setorigin (missile, w_shotorg);
+	setsize(missile, '0 0 0', '0 0 0');
 
 	if (issecondary)
 		missile.velocity = w_shotdir * cvar("g_balance_laser_secondary_speed");

Modified: trunk/data/qcsrc/server/w_porto.qc
===================================================================
--- trunk/data/qcsrc/server/w_porto.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_porto.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -174,6 +174,7 @@
 	gren.effects = EF_RED;
 	gren.scale = 4;
 	setorigin(gren, w_shotorg);
+	setsize(gren, '0 0 0', '0 0 0');
 
 	gren.nextthink = time + cvar("g_balance_porto_primary_lifetime");
 	gren.think = W_Porto_Think;

Modified: trunk/data/qcsrc/server/w_rocketlauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_rocketlauncher.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_rocketlauncher.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -198,7 +198,7 @@
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_rocketlauncher_ammo");
 
-	W_SetupShot (self, FALSE, 5, "weapons/rocket_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav");
 	pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
 	missile = spawn ();

Modified: trunk/data/qcsrc/server/w_seeker.qc
===================================================================
--- trunk/data/qcsrc/server/w_seeker.qc	2009-05-29 02:32:21 UTC (rev 6785)
+++ trunk/data/qcsrc/server/w_seeker.qc	2009-05-29 19:27:58 UTC (rev 6786)
@@ -160,7 +160,7 @@
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_missile_ammo");
 
 	makevectors(self.v_angle);
-	W_SetupShot (self, FALSE, 2, "weapons/seeker_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/seeker_fire.wav");
 	w_shotorg += f_diff;
 	pointparticles(particleeffectnum("seeker_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
@@ -312,7 +312,7 @@
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_tag_ammo");
 
-	W_SetupShot (self, FALSE, 2, "weapons/tag_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/tag_fire.wav");
 
 	missile                 = spawn();
 	missile.owner           = self;
@@ -331,6 +331,7 @@
 	missile.health          = 5;
 
 	setorigin (missile, w_shotorg);
+	setsize (missile, '-2 -2 -2', '2 2 2');
 
 	missile.flags       = FL_PROJECTILE;
 
@@ -385,7 +386,7 @@
 			f_diff = '+1.25 +3.75 0';
 			break;
 	}
-	W_SetupShot (self, FALSE, 2, "weapons/flac_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav");
 	w_shotorg += f_diff;
 
 	pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -403,6 +404,7 @@
 	missile.scale = 0.4; // BUG: the model is too big
 	missile.projectiledeathtype = WEP_SEEKER;
 	setorigin (missile, w_shotorg);
+	setsize (missile, '-2 -2 -2', '2 2 2');
 	missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
 
 	missile.movetype = MOVETYPE_FLY;



More information about the nexuiz-commits mailing list