Fixes left/up axis not mappable as actions
This commit is contained in:
parent
9ce8d8ddda
commit
7e89dc432c
2 changed files with 4 additions and 3 deletions
|
@ -656,10 +656,10 @@ bool InputEventJoypadMotion::action_match(const Ref<InputEvent> &p_event, bool *
|
||||||
if (jm.is_null())
|
if (jm.is_null())
|
||||||
return false;
|
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 (match) {
|
||||||
if (p_pressed != NULL)
|
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)
|
if (p_strength != NULL)
|
||||||
*p_strength = (*p_pressed) ? Math::inverse_lerp(p_deadzone, 1.0f, Math::abs(jm->get_axis_value())) : 0.0f;
|
*p_strength = (*p_pressed) ? Math::inverse_lerp(p_deadzone, 1.0f, Math::abs(jm->get_axis_value())) : 0.0f;
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,6 +234,7 @@ void ProjectSettingsEditor::_device_input_add() {
|
||||||
Ref<InputEventJoypadMotion> jm;
|
Ref<InputEventJoypadMotion> jm;
|
||||||
jm.instance();
|
jm.instance();
|
||||||
jm->set_axis(device_index->get_selected() >> 1);
|
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());
|
jm->set_device(_get_current_device());
|
||||||
|
|
||||||
bool should_update_event = true;
|
bool should_update_event = true;
|
||||||
|
@ -243,7 +244,7 @@ void ProjectSettingsEditor::_device_input_add() {
|
||||||
Ref<InputEventJoypadMotion> aie = events[i];
|
Ref<InputEventJoypadMotion> aie = events[i];
|
||||||
if (aie.is_null())
|
if (aie.is_null())
|
||||||
continue;
|
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;
|
should_update_event = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue