summaryrefslogtreecommitdiff
path: root/converter/converter.cpp
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-09-22 18:25:27 -0400
committera1xd <[email protected]>2021-09-22 18:25:27 -0400
commitadb528c121791f020c3bed9ff09d7623b51d76dc (patch)
treedf36529a344d5d21ff11f5ba021ec80afb4b68a4 /converter/converter.cpp
parentfix docs (diff)
downloadrawaccel-adb528c121791f020c3bed9ff09d7623b51d76dc.tar.xz
rawaccel-adb528c121791f020c3bed9ff09d7623b51d76dc.zip
improve converter + docs
remove note about not supporting prescale use relative links on conversion - flip rotation sign - set angle snapping - set domain weights to prescale
Diffstat (limited to 'converter/converter.cpp')
-rw-r--r--converter/converter.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/converter/converter.cpp b/converter/converter.cpp
index 46adc02..61ed877 100644
--- a/converter/converter.cpp
+++ b/converter/converter.cpp
@@ -115,12 +115,11 @@ ra::accel_args convert_natural(const ia_settings_t& ia_settings, bool legacy) {
double accel = get("Acceleration").value_or(0);
double cap = get("SensitivityCap").value_or(0);
double sens = get("Sensitivity").value_or(1);
- double prescale = get("Pre-ScaleX").value_or(1);
ra::accel_args args;
args.limit = 1 + std::abs(cap - sens) / sens;
- args.decay_rate = accel * prescale / sens;
+ args.decay_rate = accel / sens;
args.offset = get("Offset").value_or(0);
args.mode = ra::accel_mode::natural;
args.legacy = legacy;
@@ -135,11 +134,10 @@ ra::accel_args convert_quake(const ia_settings_t& ia_settings, bool legacy) {
double accel = get("Acceleration").value_or(0);
double cap = get("SensitivityCap").value_or(0);
double sens = get("Sensitivity").value_or(1);
- double prescale = get("Pre-ScaleX").value_or(1);
ra::accel_args args;
- double accel_b = std::pow(accel * prescale, power - 1) / sens;
+ double accel_b = std::pow(accel, power - 1) / sens;
args.accel_classic = std::pow(accel_b, 1 / (power - 1));
args.cap = cap / sens;
args.power = power;
@@ -155,10 +153,14 @@ bool try_convert(const ia_settings_t& ia_settings) {
ra::settings& ra_settings = *(new ra::settings());
- ra_settings.degrees_rotation = get("Angle", "AngleAdjustment").value_or(0);
+ vec2d prescale = { get("Pre-ScaleX").value_or(1), get("Pre-ScaleY").value_or(1) };
+
+ ra_settings.dom_args.domain_weights = prescale;
+ ra_settings.degrees_rotation = -1 * get("Angle", "AngleAdjustment").value_or(0);
+ ra_settings.degrees_snap = get("AngleSnapping").value_or(0);
ra_settings.sens = {
- get("Post-ScaleX").value_or(1) * get("Pre-ScaleX").value_or(1),
- get("Post-ScaleY").value_or(1) * get("Pre-ScaleY").value_or(1)
+ get("Post-ScaleX").value_or(1) * prescale.x,
+ get("Post-ScaleY").value_or(1) * prescale.y
};
double mode = get("AccelMode").value_or(IA_QL);