[nexuiz-commits] r7853 - trunk/data/qcsrc/server/bot

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Sep 21 02:48:13 EDT 2009


Author: div0
Date: 2009-09-21 02:48:12 -0400 (Mon, 21 Sep 2009)
New Revision: 7853

Modified:
   trunk/data/qcsrc/server/bot/aim.qc
   trunk/data/qcsrc/server/bot/aim.qh
Log:
mand1nga really shouldn't do a revert-fight against LordHavoc, as LordHavoc can revoke svn access and mand1nga can't :)
bring the non-array lag function handling back, as it compiles to way faster code and bots cause enough of a performance hit already


Modified: trunk/data/qcsrc/server/bot/aim.qc
===================================================================
--- trunk/data/qcsrc/server/bot/aim.qc	2009-09-21 06:39:34 UTC (rev 7852)
+++ trunk/data/qcsrc/server/bot/aim.qc	2009-09-21 06:48:12 UTC (rev 7853)
@@ -80,44 +80,23 @@
 
 void lag_update()
 {
-	float i;
-	for(i=0;i<LAG_QUEUE_LENGTH;++i)
-	{
-		if (self.lag_time[i])
-		if (time > self.lag_time[i])
-		{
-			self.lag_func(
-				self.lag_time[i], self.lag_float1[i], self.lag_float2[i],
-				self.lag_entity1[i], self.lag_vec1[i], self.lag_vec2[i], self.lag_vec3[i],
-				self.lag_vec4[i]
-			);
-			// Clear this position on the queue
-			self.(lag_time[i]) = 0;
-		}
-	}
- };
+	if (self.lag1_time) if (time > self.lag1_time) {self.lag_func(self.lag1_time, self.lag1_float1, self.lag1_float2, self.lag1_entity1, self.lag1_vec1, self.lag1_vec2, self.lag1_vec3, self.lag1_vec4);self.lag1_time = 0;}
+	if (self.lag2_time) if (time > self.lag2_time) {self.lag_func(self.lag2_time, self.lag2_float1, self.lag2_float2, self.lag2_entity1, self.lag2_vec1, self.lag2_vec2, self.lag2_vec3, self.lag2_vec4);self.lag2_time = 0;}
+	if (self.lag3_time) if (time > self.lag3_time) {self.lag_func(self.lag3_time, self.lag3_float1, self.lag3_float2, self.lag3_entity1, self.lag3_vec1, self.lag3_vec2, self.lag3_vec3, self.lag3_vec4);self.lag3_time = 0;}
+	if (self.lag4_time) if (time > self.lag4_time) {self.lag_func(self.lag4_time, self.lag4_float1, self.lag4_float2, self.lag4_entity1, self.lag4_vec1, self.lag4_vec2, self.lag4_vec3, self.lag4_vec4);self.lag4_time = 0;}
+	if (self.lag5_time) if (time > self.lag5_time) {self.lag_func(self.lag5_time, self.lag5_float1, self.lag5_float2, self.lag5_entity1, self.lag5_vec1, self.lag5_vec2, self.lag5_vec3, self.lag5_vec4);self.lag5_time = 0;}
+};
 
- float lag_additem(float t, float f1, float f2, entity e1, vector v1, vector v2, vector v3, vector v4)
- {
-	float i;
-	for(i=0;i<LAG_QUEUE_LENGTH;++i)
-	{
-		// Find a free position on the queue
-		if (self.lag_time[i] == 0)
-		{
-			self.(lag_time[i]) = t;
-			self.(lag_vec1[i]) = v1;
-			self.(lag_vec2[i]) = v2;
-			self.(lag_vec3[i]) = v3;
-			self.(lag_vec4[i]) = v4;
-			self.(lag_float1[i]) = f1;
-			self.(lag_float2[i]) = f2;
-			self.(lag_entity1[i]) = e1;
-			return TRUE;
-		}
-	}
- 	return FALSE;
- };
+float lag_additem(float t, float f1, float f2, entity e1, vector v1, vector v2, vector v3, vector v4)
+{
+	if (self.lag1_time == 0) {self.lag1_time = t;self.lag1_float1 = f1;self.lag1_float2 = f2;self.lag1_entity1 = e1;self.lag1_vec1 = v1;self.lag1_vec2 = v2;self.lag1_vec3 = v3;self.lag1_vec4 = v4;return TRUE;}
+	if (self.lag2_time == 0) {self.lag2_time = t;self.lag2_float1 = f1;self.lag2_float2 = f2;self.lag2_entity1 = e1;self.lag2_vec1 = v1;self.lag2_vec2 = v2;self.lag2_vec3 = v3;self.lag2_vec4 = v4;return TRUE;}
+	if (self.lag3_time == 0) {self.lag3_time = t;self.lag3_float1 = f1;self.lag3_float2 = f2;self.lag3_entity1 = e1;self.lag3_vec1 = v1;self.lag3_vec2 = v2;self.lag3_vec3 = v3;self.lag3_vec4 = v4;return TRUE;}
+	if (self.lag4_time == 0) {self.lag4_time = t;self.lag4_float1 = f1;self.lag4_float2 = f2;self.lag4_entity1 = e1;self.lag4_vec1 = v1;self.lag4_vec2 = v2;self.lag4_vec3 = v3;self.lag4_vec4 = v4;return TRUE;}
+	if (self.lag5_time == 0) {self.lag5_time = t;self.lag5_float1 = f1;self.lag5_float2 = f2;self.lag5_entity1 = e1;self.lag5_vec1 = v1;self.lag5_vec2 = v2;self.lag5_vec3 = v3;self.lag5_vec4 = v4;return TRUE;}
+	// no room for it (what is the best thing to do here??)
+	return FALSE;
+};
 
 float bot_shouldattack(entity e)
 {

Modified: trunk/data/qcsrc/server/bot/aim.qh
===================================================================
--- trunk/data/qcsrc/server/bot/aim.qh	2009-09-21 06:39:34 UTC (rev 7852)
+++ trunk/data/qcsrc/server/bot/aim.qh	2009-09-21 06:48:12 UTC (rev 7853)
@@ -6,32 +6,58 @@
 entity tracetossfaketarget;
 vector findtrajectory_velocity;
 
-// Lag simulation
-#define LAG_QUEUE_LENGTH 4
 
-.float lag_time[LAG_QUEUE_LENGTH];
-.float lag_float1[LAG_QUEUE_LENGTH];
-.float lag_float2[LAG_QUEUE_LENGTH];
-.vector lag_vec1[LAG_QUEUE_LENGTH];
-.vector lag_vec2[LAG_QUEUE_LENGTH];
-.vector lag_vec3[LAG_QUEUE_LENGTH];
-.vector lag_vec4[LAG_QUEUE_LENGTH];
-.entity lag_entity1[LAG_QUEUE_LENGTH];
 
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_time);
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_float1);
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_float2);
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_vec1);
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_vec2);
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_vec3);
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_vec4);
-FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(lag_entity1);
-
 vector shotorg;
 vector shotdir;
 
-//
+// lag simulation
+// upto 5 queued messages
+.float lag1_time;
+.float lag1_float1;
+.float lag1_float2;
+.entity lag1_entity1;
+.vector lag1_vec1;
+.vector lag1_vec2;
+.vector lag1_vec3;
+.vector lag1_vec4;
 
+.float lag2_time;
+.float lag2_float1;
+.float lag2_float2;
+.entity lag2_entity1;
+.vector lag2_vec1;
+.vector lag2_vec2;
+.vector lag2_vec3;
+.vector lag2_vec4;
+
+.float lag3_time;
+.float lag3_float1;
+.float lag3_float2;
+.entity lag3_entity1;
+.vector lag3_vec1;
+.vector lag3_vec2;
+.vector lag3_vec3;
+.vector lag3_vec4;
+
+.float lag4_time;
+.float lag4_float1;
+.float lag4_float2;
+.entity lag4_entity1;
+.vector lag4_vec1;
+.vector lag4_vec2;
+.vector lag4_vec3;
+.vector lag4_vec4;
+
+.float lag5_time;
+.float lag5_float1;
+.float lag5_float2;
+.entity lag5_entity1;
+.vector lag5_vec1;
+.vector lag5_vec2;
+.vector lag5_vec3;
+.vector lag5_vec4;
+
 .float bot_badaimtime;
 .float bot_aimthinktime;
 .float bot_prevaimtime;



More information about the nexuiz-commits mailing list