r5837 - in trunk/data: . qcsrc/client qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Feb 11 10:32:12 EST 2009


Author: div0
Date: 2009-02-11 10:32:12 -0500 (Wed, 11 Feb 2009)
New Revision: 5837

Modified:
   trunk/data/effectinfo.txt
   trunk/data/qcsrc/client/particles.qc
   trunk/data/qcsrc/client/projectile.qc
   trunk/data/qcsrc/server/miscfunctions.qc
   trunk/data/qcsrc/server/w_common.qc
Log:
add a somewhat working tr_bullet trail effect to make antilagged bullets visible


Modified: trunk/data/effectinfo.txt
===================================================================
--- trunk/data/effectinfo.txt	2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/effectinfo.txt	2009-02-11 15:32:12 UTC (rev 5837)
@@ -3152,4 +3152,12 @@
 velocityjitter 256 256 256
 
 
-
+// bullet trail (somewhat like a tracer)
+effect tr_bullet
+trailspacing 16
+type spark
+color 0x800000 0xFF8020
+alpha 256 256 10240
+size 2 2
+stretchfactor 0.3
+velocitymultiplier 1

Modified: trunk/data/qcsrc/client/particles.qc
===================================================================
--- trunk/data/qcsrc/client/particles.qc	2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/client/particles.qc	2009-02-11 15:32:12 UTC (rev 5837)
@@ -190,7 +190,8 @@
 		self.draw = Draw_Snow;
 }
 
-void zcurveparticles(float effectnum, vector start, vector end, float end_dz, float depth)
+entity zcurve;
+void zcurveparticles(float effectnum, vector start, vector end, float end_dz, float speed, float depth)
 {
 	// end_dz:
 	//   IF IT WERE A STRAIGHT LINE, it'd end end_dz above end
@@ -207,12 +208,13 @@
 	// currently: 0.081 degrees
 	// 0.99999 would be 0.256 degrees and is visible
 	{
-		trailparticles(world, effectnum, start, end);
+		zcurve.velocity = speed * normalize(end - start);
+		trailparticles(zcurve, effectnum, start, end);
 	}
 	else
 	{
-		zcurveparticles(effectnum, start, mid, end_dz, depth);
-		zcurveparticles(effectnum, mid, end, end_dz, depth);
+		zcurveparticles(effectnum, start, mid, end_dz, speed, depth);
+		zcurveparticles(effectnum, mid, end, end_dz, speed, depth);
 	}
 }
 
@@ -220,8 +222,14 @@
 {
 	vector start, end;
 	float end_dz;
-	float effectnum;
+	float effectnum, speed;
 
+	if(!zcurve)
+	{
+		zcurve = spawn();
+		zcurve.classname = "zcurve";
+	}
+
 	effectnum = ReadShort();
 
 	start_x = ReadCoord();
@@ -231,6 +239,7 @@
 	end_y = ReadCoord();
 	end_z = ReadCoord();
 	end_dz = ReadCoord();
+	speed = ReadShort() * 16;
 
-	zcurveparticles(effectnum, start, end, end_dz, 5); // at most 32 segments
+	zcurveparticles(effectnum, start, end, end_dz, speed, 5); // at most 32 segments
 }

Modified: trunk/data/qcsrc/client/projectile.qc
===================================================================
--- trunk/data/qcsrc/client/projectile.qc	2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/client/projectile.qc	2009-02-11 15:32:12 UTC (rev 5837)
@@ -59,6 +59,10 @@
 		case PROJECTILE_HAGAR_BOUNCING:
 			trailparticles(self, particleeffectnum("TR_GRENADE"), from, to);
 			break;
+		case PROJECTILE_BULLET:
+		case PROJECTILE_BULLET_GLOWING:
+			trailparticles(self, particleeffectnum("tr_bullet"), from, to);
+			break;
 		default:
 			break;
 	}

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2009-02-11 15:32:12 UTC (rev 5837)
@@ -1968,7 +1968,7 @@
 		return FALSE;
 }
 
-void zcurveparticles(float effectno, vector start, vector end, float end_dz)
+void zcurveparticles(float effectno, vector start, vector end, float end_dz, float spd)
 {
 	WriteByte(MSG_BROADCAST, SVC_TEMPENTITY);
 	WriteByte(MSG_BROADCAST, TE_CSQC_ZCURVEPARTICLES);
@@ -1980,6 +1980,7 @@
 	WriteCoord(MSG_BROADCAST, end_y);
 	WriteCoord(MSG_BROADCAST, end_z);
 	WriteCoord(MSG_BROADCAST, end_dz);
+	WriteShort(MSG_BROADCAST, spd / 16);
 }
 
 void zcurveparticles_from_tracetoss(float effectno, vector start, vector end, vector vel)
@@ -1997,5 +1998,5 @@
 	}
 
 	end_dz = vlen(vecxy) / vlen(velxy) * vel_z - (end_z - start_z);
-	zcurveparticles(effectno, start, end, end_dz);
+	zcurveparticles(effectno, start, end, end_dz, vlen(vel));
 }

Modified: trunk/data/qcsrc/server/w_common.qc
===================================================================
--- trunk/data/qcsrc/server/w_common.qc	2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/server/w_common.qc	2009-02-11 15:32:12 UTC (rev 5837)
@@ -333,7 +333,7 @@
 			self.velocity = v0;
 			self.gravity = g0;
 
-			zcurveparticles_from_tracetoss(particleeffectnum("TR_VORESPIKE"), self.origin, trace_endpos, self.velocity);
+			zcurveparticles_from_tracetoss(particleeffectnum("tr_bullet"), self.origin, trace_endpos, self.velocity);
 			if(trace_fraction == 1)
 				break;
 				// won't hit anything anytime soon (DP's




More information about the nexuiz-commits mailing list