summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authora1xd <[email protected]>2020-10-11 22:47:34 -0400
committera1xd <[email protected]>2020-10-11 22:47:34 -0400
commit283dd200c79827f1c1e55273f3b5a07fddf1c391 (patch)
tree6bf40778b22ade9fefd1e4d221aa4e081544457e
parentrefactor converter (diff)
downloadrawaccel-283dd200c79827f1c1e55273f3b5a07fddf1c391.tar.xz
rawaccel-283dd200c79827f1c1e55273f3b5a07fddf1c391.zip
fix #34 bad cap and sens conversion
-rw-r--r--converter/converter.cpp14
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);