diff --git a/src/input/event/value.rs b/src/input/event/value.rs index 9640890b..24ef556a 100644 --- a/src/input/event/value.rs +++ b/src/input/event/value.rs @@ -172,7 +172,16 @@ impl InputValue { // Axis -> Button Gamepad::Button(_) => self.translate_axis_to_button(source_config), // Axis -> Axis - Gamepad::Axis(_) => Ok(self.clone()), + Gamepad::Axis(_) => { + match self { + InputValue::Vector2 { x, y } => { + let scaled_x = x.map(|v| v * v.abs()); + let scaled_y = y.map(|v| v * v.abs()); + Ok(InputValue::Vector2 { x: scaled_x, y: scaled_y }) + }, + _ => Ok(self.clone()), + } + }, // Axis -> Trigger Gamepad::Trigger(_) => Err(TranslationError::NotImplemented), // Axis -> Accelerometer