Merge pull request #18280 from groud/fix_input
Fixes left/up axis not mappable as actions
This commit is contained in:
commit
8ae042a895
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue