summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-09-30 17:08:23 -0400
committera1xd <[email protected]>2021-09-30 17:08:23 -0400
commit13a61c568dc27a0d205ba216331d06ad783198b2 (patch)
tree911e54f976c550bdc4d9fba89761a368e5d6bf48
parentMerge pull request #108 from a1xd/1.6r2 (diff)
downloadrawaccel-13a61c568dc27a0d205ba216331d06ad783198b2.tar.xz
rawaccel-13a61c568dc27a0d205ba216331d06ad783198b2.zip
add special handling for out cap=1 in classic
fixes gui crash / avoids div-by-0
-rw-r--r--common/accel-classic.hpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/common/accel-classic.hpp b/common/accel-classic.hpp
index 2ca1233..435d42f 100644
--- a/common/accel-classic.hpp
+++ b/common/accel-classic.hpp
@@ -116,13 +116,21 @@ namespace rawaccel {
if (args.cap.y > 0) {
cap.y = args.cap.y - 1;
- if (cap.y < 0) {
- cap.y = -cap.y;
- sign = -sign;
+ if (cap.y == 0) {
+ cap.x = 0;
+ }
+ else {
+ if (cap.y < 0) {
+ cap.y = -cap.y;
+ sign = -sign;
+ }
+
+ cap.x = gain_inverse(cap.y,
+ args.acceleration,
+ args.exponent_classic,
+ args.input_offset);
+ constant = (base_fn(cap.x, accel_raised, args) - cap.y) * cap.x;
}
-
- cap.x = gain_inverse(cap.y, args.acceleration, args.exponent_classic, args.input_offset);
- constant = (base_fn(cap.x, accel_raised, args) - cap.y) * cap.x;
}
break;
}