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