Fixes left/up axis not mappable as actions

This commit is contained in:
Gilles Roudiere 2018-04-18 21:38:52 +02:00
parent 9ce8d8ddda
commit 7e89dc432c
2 changed files with 4 additions and 3 deletions

View file

@ -656,10 +656,10 @@ bool InputEventJoypadMotion::action_match(const Ref<InputEvent> &p_event, bool *
if (jm.is_null())
return false;
bool match = (axis == jm->axis && ((axis_value < 0) == (jm->axis_value < 0) || jm->axis_value == 0));
bool match = (axis == jm->axis && (((axis_value < 0) == (jm->axis_value < 0)) || jm->axis_value == 0));
if (match) {
if (p_pressed != NULL)
*p_pressed = Math::abs(jm->get_axis_value() >= p_deadzone);
*p_pressed = Math::abs(jm->get_axis_value()) >= p_deadzone;
if (p_strength != NULL)
*p_strength = (*p_pressed) ? Math::inverse_lerp(p_deadzone, 1.0f, Math::abs(jm->get_axis_value())) : 0.0f;
}

View file

@ -234,6 +234,7 @@ void ProjectSettingsEditor::_device_input_add() {
Ref<InputEventJoypadMotion> jm;
jm.instance();
jm->set_axis(device_index->get_selected() >> 1);
jm->set_axis_value(device_index->get_selected() & 1 ? 1 : -1);
jm->set_device(_get_current_device());
bool should_update_event = true;
@ -243,7 +244,7 @@ void ProjectSettingsEditor::_device_input_add() {
Ref<InputEventJoypadMotion> aie = events[i];
if (aie.is_null())
continue;
if (aie->get_device() == jm->get_device() && aie->get_axis() == jm->get_axis()) {
if (aie->get_device() == jm->get_device() && aie->get_axis() == jm->get_axis() && aie->get_axis_value() == jm->get_axis_value()) {
should_update_event = false;
break;
}