[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