|
|
@ -518,7 +518,10 @@ class GamepadManager : public InputInterface { |
|
|
|
|
|
|
|
|
// Analog sticks - facing and movement direction
|
|
|
// Analog sticks - facing and movement direction
|
|
|
if (std::abs(rx_) > dead_zone_ || std::abs(ry_) > dead_zone_) { |
|
|
if (std::abs(rx_) > dead_zone_ || std::abs(ry_) > dead_zone_) { |
|
|
planner_facing_angle_ = planner_facing_angle_ - 0.004 * rx_; // ~45°/s max at full stick
|
|
|
|
|
|
|
|
|
// Remap rx_ so dead zone edge = 0, full stick = 1
|
|
|
|
|
|
double rx_sign = (rx_ > 0) ? 1.0 : -1.0; |
|
|
|
|
|
double rx_remapped = std::max(0.0, (std::abs(rx_) - dead_zone_) / (1.0 - dead_zone_)) * rx_sign; |
|
|
|
|
|
planner_facing_angle_ = planner_facing_angle_ - 0.004 * rx_remapped; // ~45°/s max at full stick
|
|
|
if constexpr (DEBUG_LOGGING) { |
|
|
if constexpr (DEBUG_LOGGING) { |
|
|
std::cout << "[GamepadManager DEBUG] Right stick - Facing angle: " << planner_facing_angle_ << " rad" << std::endl; |
|
|
std::cout << "[GamepadManager DEBUG] Right stick - Facing angle: " << planner_facing_angle_ << " rad" << std::endl; |
|
|
} |
|
|
} |
|
|
|