diff options
| author | Jacob Palecki <[email protected]> | 2020-08-11 23:06:39 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-08-11 23:06:39 -0700 |
| commit | 65a74b97c0c9ac8ca10312c0749e33df9e64b3d9 (patch) | |
| tree | d15dbadb2497ae5df3d734b534d73ea613a0e943 | |
| parent | Merge branch 'master' into GainCap (diff) | |
| download | rawaccel-65a74b97c0c9ac8ca10312c0749e33df9e64b3d9.tar.xz rawaccel-65a74b97c0c9ac8ca10312c0749e33df9e64b3d9.zip | |
Disallow differing x and y weights with gain cap
| -rw-r--r-- | common/accel-base.hpp | 2 | ||||
| -rw-r--r-- | common/rawaccel.hpp | 3 | ||||
| -rw-r--r-- | grapher/CapOptions.cs | 29 | ||||
| -rw-r--r-- | grapher/FieldXY.cs | 54 | ||||
| -rw-r--r-- | grapher/Form1.cs | 5 | ||||
| -rw-r--r-- | grapher/OptionXY.cs | 6 | ||||
| -rw-r--r-- | wrapper/wrapper.cpp | 2 |
7 files changed, 73 insertions, 28 deletions
diff --git a/common/accel-base.hpp b/common/accel-base.hpp index 91510a4..60b7362 100644 --- a/common/accel-base.hpp +++ b/common/accel-base.hpp @@ -24,6 +24,7 @@ namespace rawaccel { double exponent = 2; double midpoint = 0; double power_scale = 1; + double gain_cap = 0; vec2d weight = { 1, 1 }; }; @@ -68,6 +69,7 @@ namespace rawaccel { /// <param name="args">Arguments to verified.</param> void verify(const accel_args& args) const { if (args.accel < 0) bad_arg("accel can not be negative, use a negative weight to compensate"); + if (args.gain_cap > 0 && weight.x != weight.y) bad_arg("weight x and y values must be equal with a gain cap"); } accel_base() = default; diff --git a/common/rawaccel.hpp b/common/rawaccel.hpp index fc06731..8dc4825 100644 --- a/common/rawaccel.hpp +++ b/common/rawaccel.hpp @@ -160,7 +160,6 @@ namespace rawaccel { int accel_mode = accel_impl_t::id<accel_noaccel>; milliseconds time_min = 0.4; vec2d cap = { 0, 0 }; - double gain_cap = 0; }; /// <summary> Struct for holding acceleration application details. </summary> @@ -196,7 +195,7 @@ namespace rawaccel { speed_offset = args.acc_args.offset; clamp.x = accel_scale_clamp(args.cap.x); clamp.y = accel_scale_clamp(args.cap.y); - gain_cap = velocity_gain_cap(args.gain_cap, speed_offset, accel); + gain_cap = velocity_gain_cap(args.acc_args.gain_cap, speed_offset, accel); } /// <summary> diff --git a/grapher/CapOptions.cs b/grapher/CapOptions.cs index 310a214..2ee7f6b 100644 --- a/grapher/CapOptions.cs +++ b/grapher/CapOptions.cs @@ -12,12 +12,14 @@ namespace grapher public CapOptions( ToolStripMenuItem sensitivityCapCheck, ToolStripMenuItem velocityGainCapCheck, - OptionXY capOptionFields) + OptionXY capOption, + OptionXY weightOption) { SensitivityCapCheck = sensitivityCapCheck; VelocityGainCapCheck = velocityGainCapCheck; - CapOptionsFields = capOptionFields; + CapOption = capOption; + WeightOption = weightOption; SensitivityCapCheck.Click += new System.EventHandler(OnSensitivityCapCheckClick); VelocityGainCapCheck.Click += new System.EventHandler(OnVelocityGainCapCheckClick); @@ -32,14 +34,16 @@ namespace grapher ToolStripMenuItem VelocityGainCapCheck { get; } - OptionXY CapOptionsFields { get; } + OptionXY CapOption { get; } + + OptionXY WeightOption { get; } public double SensitivityCapX { get { if (IsSensitivityGain) { - return CapOptionsFields.Fields.X; + return CapOption.Fields.X; } else { @@ -53,7 +57,7 @@ namespace grapher { if (IsSensitivityGain) { - return CapOptionsFields.Fields.Y; + return CapOption.Fields.Y; } else { @@ -71,7 +75,7 @@ namespace grapher } else { - return CapOptionsFields.Fields.X; + return CapOption.Fields.X; } } } @@ -115,16 +119,19 @@ namespace grapher void EnableSensitivityCap() { IsSensitivityGain = true; - CapOptionsFields.Fields.LockCheckBox.Enabled = true; - CapOptionsFields.SetName("Sensitivity Cap"); + CapOption.Fields.LockCheckBox.Enabled = true; + WeightOption.Fields.LockCheckBox.Enabled = true; + CapOption.SetName("Sensitivity Cap"); } void EnableVelocityGainCap() { IsSensitivityGain = false; - CapOptionsFields.Fields.LockCheckBox.Checked = true; - CapOptionsFields.Fields.LockCheckBox.Enabled = false; - CapOptionsFields.SetName("Velocity Gain Cap"); + CapOption.Fields.LockCheckBox.Checked = true; + CapOption.Fields.LockCheckBox.Enabled = false; + WeightOption.Fields.LockCheckBox.Checked = true; + WeightOption.Fields.LockCheckBox.Enabled = false; + CapOption.SetName("Velocity Gain Cap"); } } } diff --git a/grapher/FieldXY.cs b/grapher/FieldXY.cs index 42232c8..7338962 100644 --- a/grapher/FieldXY.cs +++ b/grapher/FieldXY.cs @@ -15,7 +15,10 @@ namespace grapher YField = new Field(yBox, containingForm, defaultData); LockCheckBox = lockCheckBox; LockCheckBox.CheckedChanged += new System.EventHandler(CheckChanged); - SetLocked(); + DefaultWidthX = XField.Box.Width; + DefaultWidthY = YField.Box.Width; + CombinedWidth = DefaultWidthX + DefaultWidthY + YField.Box.Left - (XField.Box.Left + DefaultWidthX); + SetCombined(); } public double X { @@ -26,7 +29,7 @@ namespace grapher { get { - if (Locked) + if (Combined) { return X; } @@ -43,29 +46,41 @@ namespace grapher public Field YField { get; } - private bool Locked { get; set; } + private bool Combined { get; set; } + + private int DefaultWidthX { get; } + + private int DefaultWidthY { get; } + + private int CombinedWidth { get; } private void CheckChanged(object sender, EventArgs e) { if (LockCheckBox.CheckState == CheckState.Checked) { - SetLocked(); + SetCombined(); } else { - SetUnlocked(); + SetSeparate(); } } - public void SetLocked() + public void SetCombined() { - Locked = true; + Combined = true; YField.SetToUnavailable(); + YField.Box.Hide(); + XField.Box.Width = CombinedWidth; } - public void SetUnlocked() + public void SetSeparate() { - Locked = false; + Combined = false; + + XField.Box.Width = DefaultWidthX; + YField.Box.Width = DefaultWidthY; + if (XField.State == Field.FieldState.Default) { YField.SetToDefault(); @@ -74,6 +89,27 @@ namespace grapher { YField.SetToEntered(XField.Data); } + + if (XField.Box.Visible) + { + YField.Box.Show(); + } + } + + public void Show() + { + XField.Box.Show(); + + if (!Combined) + { + YField.Box.Show(); + } + } + + public void Hide() + { + XField.Box.Hide(); + YField.Box.Hide(); } } } diff --git a/grapher/Form1.cs b/grapher/Form1.cs index 03168f3..518ffc3 100644 --- a/grapher/Form1.cs +++ b/grapher/Form1.cs @@ -33,6 +33,7 @@ namespace grapher public double exponent; public double midpoint; public double power_scale; + public double gain_cap; public vec2d weight; } @@ -75,6 +76,7 @@ namespace grapher args.acc_fn_args.acc_args.power_scale = 1; args.acc_fn_args.acc_args.weight.x = 1; args.acc_fn_args.acc_args.weight.y = 1; + args.acc_fn_args.acc_args.gain_cap = 0; args.acc_fn_args.accel_mode = (int)accel_mode.natural; args.acc_fn_args.time_min = 0.4; args.acc_fn_args.cap.x = 0; @@ -117,7 +119,8 @@ namespace grapher var capOptions = new CapOptions( sensitivityToolStripMenuItem, velocityGainToolStripMenuItem, - cap); + cap, + weight); AccelGUI = new AccelGUI( this, diff --git a/grapher/OptionXY.cs b/grapher/OptionXY.cs index 1fdf244..ca1559d 100644 --- a/grapher/OptionXY.cs +++ b/grapher/OptionXY.cs @@ -57,16 +57,14 @@ namespace grapher public void Hide() { - Fields.XField.Box.Hide(); - Fields.YField.Box.Hide(); + Fields.Hide(); Fields.LockCheckBox.Hide(); Label.Hide(); } public void Show() { - Fields.XField.Box.Show(); - Fields.YField.Box.Show(); + Fields.Show(); Fields.LockCheckBox.Show(); Label.Show(); } diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index 1745ae8..0afb386 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -45,7 +45,7 @@ void ManagedAccel::UpdateAccel( args.acc_fn_args.acc_args.limit = lim_exp; args.acc_fn_args.acc_args.exponent = lim_exp; args.acc_fn_args.acc_args.midpoint = midpoint; - args.acc_fn_args.gain_cap = gain_cap; + args.acc_fn_args.acc_args.gain_cap = gain_cap; mouse_modifier* temp_modifier = new mouse_modifier(args); driverWriter->writeToDriver(temp_modifier); |