diff options
| author | a1xd <[email protected]> | 2020-10-11 22:47:34 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2020-10-11 22:47:34 -0400 |
| commit | 283dd200c79827f1c1e55273f3b5a07fddf1c391 (patch) | |
| tree | 6bf40778b22ade9fefd1e4d221aa4e081544457e | |
| parent | refactor converter (diff) | |
| download | rawaccel-283dd200c79827f1c1e55273f3b5a07fddf1c391.tar.xz rawaccel-283dd200c79827f1c1e55273f3b5a07fddf1c391.zip | |
fix #34 bad cap and sens conversion
| -rw-r--r-- | converter/converter.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/converter/converter.cpp b/converter/converter.cpp index e91da13..8d4280e 100644 --- a/converter/converter.cpp +++ b/converter/converter.cpp @@ -112,7 +112,7 @@ ra::accel_args convert_natural(const ia_settings_t& ia_settings) { double prescale = get("Pre-ScaleX").value_or(1); ra::accel_args args; - args.limit = 1 + std::abs(cap - sens); + args.limit = 1 + std::abs(cap - sens) / sens; args.accel = accel * prescale / sens; return args; } @@ -134,11 +134,13 @@ ra::accel_args convert_quake(const ia_settings_t& ia_settings, bool legacy) { args.legacy_offset = legacy; args.offset = offset; - if (legacy || cap <= 1) { - args.scale_cap = cap; + double cap_converted = cap / sens; + + if (legacy || cap_converted <= 1) { + args.scale_cap = cap_converted; } else { - double b = (cap - 1) / power; + double b = (cap_converted - 1) / power; double e = 1 / (power - 1); args.gain_cap = offset + (1 / accel) * std::pow(b, e); } @@ -153,8 +155,8 @@ bool try_convert(const ia_settings_t& ia_settings) { ra_settings.degrees_rotation = get("Angle", "AngleAdjustment").value_or(0); ra_settings.sens = { - get("Post-ScaleX").value_or(1), - get("Post-ScaleY").value_or(1) + get("Post-ScaleX").value_or(1) * get("Pre-ScaleX").value_or(1), + get("Post-ScaleY").value_or(1) * get("Pre-ScaleY").value_or(1) }; double mode = get("AccelMode").value_or(IA_QL); |