]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
hack that hopefully fixes the count fields for some weapons: only run them once per...
authorFruitieX <fruitiex@gmail.com>
Mon, 18 Apr 2011 16:26:20 +0000 (19:26 +0300)
committerFruitieX <fruitiex@gmail.com>
Mon, 18 Apr 2011 16:26:20 +0000 (19:26 +0300)
qcsrc/server/accuracy.qc

index a0a557c3ccb7df33f6daae7b3f11bcd753f963ed..95ddf78e1f9e498ec889ebe4ef8c985c1b000f5b 100644 (file)
@@ -80,7 +80,7 @@ void accuracy_set(entity e, float w, float fired, float hit)
 
     if(hit)
         a.(accuracy_cnt_hit[w]) = 1;
-       a.(accuracy_cnt_fired[w]) = 1;
+    a.(accuracy_cnt_fired[w]) = 1;
 
        if(b == accuracy_byte(hit, fired))
                return;
@@ -92,6 +92,9 @@ void accuracy_set(entity e, float w, float fired, float hit)
                                a.SendFlags |= w;
 }
 
+.float hit_time;
+.float fired_time;
+
 void accuracy_add(entity e, float w, float fired, float hit)
 {
        entity a;
@@ -106,9 +109,17 @@ void accuracy_add(entity e, float w, float fired, float hit)
        if(fired)
                a.(accuracy_fired[w]) += fired;
 
-    if(hit)
+    if(hit && a.hit_time != time) // only run this once per frame
+    {
         a.(accuracy_cnt_hit[w]) += 1;
-       a.(accuracy_cnt_fired[w]) += 1;
+        a.hit_time = time;
+    }
+
+    if(fired && a.fired_time != time) // only run this once per frame
+    {
+        a.(accuracy_cnt_fired[w]) += 1;
+        a.fired_time = time;
+    }
 
        if(b == accuracy_byte(a.(accuracy_hit[w]), a.(accuracy_fired[w])))
                return;