From 0b50f9c85568e5b8b6ee32e40990e39cfdf515b5 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Wed, 2 Sep 2020 21:13:18 -0700 Subject: Start adding gain offsets --- common/accel-base.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'common/accel-base.hpp') diff --git a/common/accel-base.hpp b/common/accel-base.hpp index 560c0b5..b42f23d 100644 --- a/common/accel-base.hpp +++ b/common/accel-base.hpp @@ -36,7 +36,8 @@ namespace rawaccel { } inline double operator()(double speed) const { - return 1 + fn(maxsd(speed - offset, 0)) * weight; + double offset_speed = speed - offset; + return offset_speed > 0 ? 1 + fn(offset_speed) * weight : 1; } }; -- cgit v1.2.3 From 01f870a493378a62ab76dcbf5dc37c0390ca7afe Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 3 Sep 2020 19:36:44 -0700 Subject: Refactor for nice gain offset --- common/accel-base.hpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'common/accel-base.hpp') diff --git a/common/accel-base.hpp b/common/accel-base.hpp index b42f23d..714162f 100644 --- a/common/accel-base.hpp +++ b/common/accel-base.hpp @@ -5,6 +5,7 @@ namespace rawaccel { /// Struct to hold arguments for an acceleration function. struct accel_args { double offset = 0; + double legacy_offset = 0; double accel = 0; double limit = 2; double exponent = 2; @@ -19,6 +20,7 @@ namespace rawaccel { template struct accel_val_base { + bool legacy_offset = false; double offset = 0; double weight = 1; Func fn; @@ -31,15 +33,15 @@ namespace rawaccel { struct additive_accel : accel_val_base { additive_accel(const accel_args& args) : accel_val_base(args) { - offset = args.offset; + legacy_offset = args.offset <= 0 && args.legacy_offset > 0; + offset = legacy_offset ? args.legacy_offset : args.offset; weight = args.weight; } inline double operator()(double speed) const { double offset_speed = speed - offset; - return offset_speed > 0 ? 1 + fn(offset_speed) * weight : 1; + return offset_speed > 0 ? ( legacy_offset ? 1 + fn.legacy_offset(offset_speed) * weight : 1 + fn(offset_speed) ) : 1; } - }; template -- cgit v1.2.3