diff options
| author | a1xd <[email protected]> | 2021-09-30 17:08:23 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2021-09-30 17:08:23 -0400 |
| commit | 13a61c568dc27a0d205ba216331d06ad783198b2 (patch) | |
| tree | 911e54f976c550bdc4d9fba89761a368e5d6bf48 | |
| parent | Merge pull request #108 from a1xd/1.6r2 (diff) | |
| download | rawaccel-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.hpp | 20 |
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; } |