]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/anticheat.qc
Merge branch 'master' into TimePath/unified_weapons
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / anticheat.qc
index 33c82913116b2b350ba1ff0ea1c3917a09da76df..32742d82d9555e41330fa559acbee64314a1b7f3 100644 (file)
@@ -1,29 +1,17 @@
-.float anticheat_jointime;
+#include "anticheat.qh"
 
-void mean_accumulate(entity e, .float a, .float c, float mean, float value, float weight)
-{
-       if(weight == 0)
-               return;
-       if(mean == 0)
-               e.a *= pow(value, weight);
-       else
-               e.a += pow(value, mean) * weight;
-       e.c += weight;
-}
+#include "antilag.qh"
+#include "autocvars.qh"
+#include "defs.qh"
+#include "miscfunctions.qh"
 
-float mean_evaluate(entity e, .float a, .float c, float mean)
-{
-       if(e.c == 0)
-               return 0;
-       if(mean == 0)
-               return pow(e.a, 1.0 / e.c);
-       else
-               return pow(e.a / e.c, 1.0 / mean);
-}
+#include "../dpdefs/progsdefs.qh"
+#include "../dpdefs/dpextensions.qh"
 
-#define MEAN_ACCUMULATE(prefix,v,w) mean_accumulate(self,prefix##_accumulator,prefix##_count,prefix##_mean,v,w)
-#define MEAN_EVALUATE(prefix) mean_evaluate(self,prefix##_accumulator,prefix##_count,prefix##_mean)
-#define MEAN_DECLARE(prefix,m) float prefix##_mean = m; .float prefix##_count, prefix##_accumulator
+
+#include "command/common.qh"
+
+.float anticheat_jointime;
 
 .float anticheat_fixangle_endtime;
 
@@ -75,7 +63,7 @@ float movement_oddity(vector m0, vector m1)
 }
 
 void anticheat_physics()
-{
+{SELFPARAM();
        float f;
 
        // div0_evade -> SPECTATORS
@@ -162,13 +150,13 @@ void anticheat_physics()
 }
 
 void anticheat_spectatecopy(entity spectatee)
-{
+{SELFPARAM();
        // div0_evade -> SPECTATORS
        self.angles = spectatee.anticheat_div0_evade_v_angle;
 }
 
 void anticheat_prethink()
-{
+{SELFPARAM();
        // div0_evade -> SPECTATORS
        self.anticheat_div0_evade_offset = 0;
 }
@@ -185,7 +173,7 @@ string anticheat_display(float f, float tmin, float mi, float ma)
 }
 
 void anticheat_report()
-{
+{SELFPARAM();
        if(!autocvar_sv_eventlog)
                return;
        // TODO(divVerent): Use xonstat to acquire good thresholds.
@@ -210,7 +198,7 @@ void anticheat_report()
 }
 
 float anticheat_getvalue(string id)
-{
+{SELFPARAM();
        switch(id) {
                case "_time": return servertime - self.anticheat_jointime;
                case "speedhack": return MEAN_EVALUATE(anticheat_speedhack);
@@ -240,22 +228,22 @@ void anticheat_startframe()
 }
 
 void anticheat_fixangle()
-{
+{SELFPARAM();
        self.anticheat_fixangle_endtime = servertime + ANTILAG_LATENCY(self) + 0.2;
 }
 
 void anticheat_endframe()
-{
-       entity oldself = self;
-       FOR_EACH_CLIENT(self)
-               if (self.fixangle)
-                       anticheat_fixangle();
-       self = oldself;
+{SELFPARAM();
+       entity e;
+       FOR_EACH_CLIENT(e)
+               if (e.fixangle) {
+                       WITH(entity, self, e, anticheat_fixangle());
+               }
        anticheat_div0_evade_evasion_delta += frametime * (0.5 + random());
 }
 
 void anticheat_init()
-{
+{SELFPARAM();
        self.anticheat_speedhack_offset = 0;
        self.anticheat_jointime = servertime;
 }