r5726 - in trunk/data/qcsrc: client server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Feb 3 08:26:28 EST 2009


Author: div0
Date: 2009-02-03 08:26:28 -0500 (Tue, 03 Feb 2009)
New Revision: 5726

Modified:
   trunk/data/qcsrc/client/Main.qc
   trunk/data/qcsrc/client/prandom.qc
   trunk/data/qcsrc/client/prandom.qh
   trunk/data/qcsrc/server/g_world.qc
Log:
fixed prandom. It should now actually work - i.e. gibs should move the same way when playing back a demo!


Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc	2009-02-03 13:09:16 UTC (rev 5725)
+++ trunk/data/qcsrc/client/Main.qc	2009-02-03 13:26:28 UTC (rev 5726)
@@ -603,7 +603,10 @@
 
 void Ent_RandomSeed()
 {
-	psrandom(ReadShort());
+	float s;
+	prandom_debug();
+	s = ReadShort();
+	psrandom(s);
 }
 
 // CSQC_Ent_Update : Called every frame that the server has indicated an update to the SSQC / CSQC entity has occured.

Modified: trunk/data/qcsrc/client/prandom.qc
===================================================================
--- trunk/data/qcsrc/client/prandom.qc	2009-02-03 13:09:16 UTC (rev 5725)
+++ trunk/data/qcsrc/client/prandom.qc	2009-02-03 13:26:28 UTC (rev 5726)
@@ -7,6 +7,11 @@
 	float c;
 	c = crc16(FALSE, strcat(ftos(prandom_seed), ftos(prandom_seed + 3.1415926535)));
 	prandom_seed = c;
+
+#ifdef USE_PRANDOM_DEBUG
+	print("RANDOM -> ", ftos(c), "\n");
+#endif
+
 	return c / 65536; // in [0..1[
 }
 
@@ -28,5 +33,15 @@
 void psrandom(float seed)
 {
 	prandom_seed = seed;
+#ifdef USE_PRANDOM_DEBUG
+	print("SRANDOM ", ftos(seed), "\n");
+#endif
 }
+
+#ifdef USE_PRANDOM_DEBUG
+void prandom_debug()
+{
+	print("Current random seed = ", ftos(prandom_seed), "\n");
+}
 #endif
+#endif

Modified: trunk/data/qcsrc/client/prandom.qh
===================================================================
--- trunk/data/qcsrc/client/prandom.qh	2009-02-03 13:09:16 UTC (rev 5725)
+++ trunk/data/qcsrc/client/prandom.qh	2009-02-03 13:26:28 UTC (rev 5726)
@@ -1,12 +1,20 @@
 // prandom - PREDICTABLE random number generator
 
+#define USE_PRANDOM
+
 #ifdef USE_PRANDOM
 float prandom();
 vector prandomvec();
 
 void psrandom(float seed);
+#ifdef USE_PRANDOM_DEBUG
+void prandom_debug();
 #else
+#define prandom_debug()
+#endif
+#else
 #define prandom random
 #define prandomvec randomvec
 #define psrandom(x)
+#define prandom_debug()
 #endif

Modified: trunk/data/qcsrc/server/g_world.qc
===================================================================
--- trunk/data/qcsrc/server/g_world.qc	2009-02-03 13:09:16 UTC (rev 5725)
+++ trunk/data/qcsrc/server/g_world.qc	2009-02-03 13:26:28 UTC (rev 5726)
@@ -309,6 +309,8 @@
 {
 	self.cnt = bound(0, floor(random() * 65536), 65535);
 	self.nextthink = time + 5;
+
+	self.SendFlags |= 1;
 }
 void RandomSeed_Spawn()
 {




More information about the nexuiz-commits mailing list