From: Rudolf Polzer Date: Wed, 24 Nov 2010 19:01:30 +0000 (+0100) Subject: better handle >100% accuracy X-Git-Tag: xonotic-v0.1.0preview~106 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c91f592638f0707cac8a8966b0c79149abb17fa4;p=xonotic%2Fxonotic-data.pk3dir.git better handle >100% accuracy --- diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index 0bcb9c46d..ef220acef 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -917,6 +917,8 @@ void Ent_ReadAccuracy(void) b = ReadByte(); if(b == 0) weapon_accuracy[w] = -1; + else if(b == 255) + weapon_accuracy[w] = 1.0; // no better error handling yet, sorry else weapon_accuracy[w] = (b - 1.0) / 100.0; } diff --git a/qcsrc/server/accuracy.qc b/qcsrc/server/accuracy.qc index 783c0aceb..335683c73 100644 --- a/qcsrc/server/accuracy.qc +++ b/qcsrc/server/accuracy.qc @@ -7,8 +7,10 @@ FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(accuracy_fired); float accuracy_byte(float n, float d) { print(sprintf("accuracy: %d / %d\n", n, d)); - if(d == 0) + if(n <= 0) return 0; + if(n > d) + return 255; return 1 + rint(n * 100.0 / d); }