r4211 - in trunk/data: qcsrc/client qcsrc/server scripts

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Aug 26 14:12:30 EDT 2008


Author: div0
Date: 2008-08-26 14:12:25 -0400 (Tue, 26 Aug 2008)
New Revision: 4211

Modified:
   trunk/data/qcsrc/client/particles.qc
   trunk/data/qcsrc/server/g_triggers.qc
   trunk/data/scripts/entities.def
Log:
more particles fixes


Modified: trunk/data/qcsrc/client/particles.qc
===================================================================
--- trunk/data/qcsrc/client/particles.qc	2008-08-26 17:40:32 UTC (rev 4210)
+++ trunk/data/qcsrc/client/particles.qc	2008-08-26 18:12:25 UTC (rev 4211)
@@ -58,6 +58,8 @@
 	o = self.origin;
 	sz = self.maxs - self.mins;
 	n = self.impulse * drawframetime;
+	if(n == 0)
+		return;
 	fail = 0;
 	for(i = random(); i <= n && fail <= 64*n; ++i)
 	{
@@ -97,8 +99,6 @@
 	if(f & 2)
 	{
 		self.impulse = ReadCoord(); // density (<0: point, >0: volume)
-		if(self.impulse == 0)
-			self.impulse = 1; // one per sec
 		self.absolute = (self.impulse >= 0);
 		if(!self.absolute)
 			self.impulse *= -self.maxs_x * self.maxs_y * self.maxs_z / 262144; // relative: particles per 64^3 cube

Modified: trunk/data/qcsrc/server/g_triggers.qc
===================================================================
--- trunk/data/qcsrc/server/g_triggers.qc	2008-08-26 17:40:32 UTC (rev 4210)
+++ trunk/data/qcsrc/server/g_triggers.qc	2008-08-26 18:12:25 UTC (rev 4211)
@@ -491,6 +491,7 @@
 	WriteByte(MSG_ENTITY, fl);
 	if(fl & 2)
 	{
+		print("state changed, sending: ", ftos(self.state), "\n");
 		if(self.state)
 			WriteCoord(MSG_ENTITY, self.impulse);
 		else
@@ -545,6 +546,7 @@
 		self.SendFlags |= 4;
 		self.oldorigin = self.origin;
 	}
+	self.nextthink = time;
 }
 
 void spawnfunc_func_pointparticles()
@@ -556,7 +558,7 @@
 
 	self.effects = EF_NODEPTHTEST;
 	self.SendEntity = pointparticles_SendEntity;
-	self.SendFlags = 3;
+	self.SendFlags = 7;
 	if(!self.modelindex)
 	{
 		self.modelindex = 4.2;
@@ -1038,6 +1040,14 @@
 	self.state = 1;
 	SUB_UseTargets();
 }
+void monoflop_fixed_use()
+{
+	if(self.state)
+		return;
+	self.nextthink = time + self.wait;
+	self.state = 1;
+	SUB_UseTargets();
+}
 
 void monoflop_think()
 {
@@ -1049,8 +1059,11 @@
 {
 	if(!self.wait)
 		self.wait = 1;
-    self.use = monoflop_use;
-    self.think = monoflop_think;
+	if(self.spawnflags & 1)
+		self.use = monoflop_fixed_use;
+	else
+		self.use = monoflop_use;
+	self.think = monoflop_think;
 	self.state = 0;
 }
 

Modified: trunk/data/scripts/entities.def
===================================================================
--- trunk/data/scripts/entities.def	2008-08-26 17:40:32 UTC (rev 4210)
+++ trunk/data/scripts/entities.def	2008-08-26 18:12:25 UTC (rev 4211)
@@ -939,12 +939,14 @@
 START_ON: assume it is already turned on (so the first event is NOT passed through)
 */
 
-/*QUAKED trigger_monoflop (.5 .5 .5) (-8 -8 -8) (8 8 8)
+/*QUAKED trigger_monoflop (.5 .5 .5) (-8 -8 -8) (8 8 8) FIXED
 "Mono-flop" trigger gate... turns trigger events into pairs of events
 -------- KEYS --------
 target: trigger all entities with this targetname when triggered
 targetname: name that identifies this entity so it can be triggered
-wait: time to wait until the "off" event is fired (when it is triggered again in the meantime, the "off" delay is extended and no new "on" event is fired)
+wait: time to wait until the "off" event is fired
+-------- SPAWNFLAGS --------
+FIXED: do pulses of fixed length (so the "off" delay is NOT extended as usual and new events are just ignored)
 */
 
 /*QUAKED misc_follow (.5 .5 .5) (-8 -8 -8) (8 8 8)




More information about the nexuiz-commits mailing list