]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Extract mean
authorTimePath <andrew.hardaker1995@gmail.com>
Thu, 27 Aug 2015 02:45:07 +0000 (12:45 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Thu, 27 Aug 2015 02:45:07 +0000 (12:45 +1000)
qcsrc/lib/Mean.qh [new file with mode: 0644]
qcsrc/lib/_all.inc
qcsrc/server/anticheat.qc

diff --git a/qcsrc/lib/Mean.qh b/qcsrc/lib/Mean.qh
new file mode 100644 (file)
index 0000000..19d9f38
--- /dev/null
@@ -0,0 +1,29 @@
+#ifndef MEAN_H
+#define MEAN_H
+
+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;
+}
+
+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);
+}
+
+#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
+
+#endif
index a3bcbcb5c0e8c8e2a20b9b8f71b2f29ca4c64a1c..ee665bcf94823997b03a60d6a3555516eac2ff55 100644 (file)
@@ -6,6 +6,7 @@
 #include "Draw.qh"
 #include "I18N.qh"
 #include "Lazy.qh"
+#include "Mean.qh"
 #include "Nil.qh"
 #include "noise.qc"
 #include "OO.qh"
index d065cb59f838db7949b8bf2294458b0df9a8e7fe..6647633ff9c9eec920d6f24d8ea73e9f55ca2e80 100644 (file)
 
 .float anticheat_jointime;
 
-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;
-}
-
-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);
-}
-
-#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
-
 .float anticheat_fixangle_endtime;
 
 float anticheat_div0_evade_evasion_delta;