Qt: Handle inverted+negated axes when mapping
This commit is contained in:
parent
ec7c83a58e
commit
be970bcfe4
|
@ -2270,7 +2270,8 @@ void FullscreenUI::BeginInputBinding(SettingsInterface* bsi, InputBindingInfo::T
|
|||
}
|
||||
|
||||
const float abs_value = std::abs(value);
|
||||
const bool reverse_threshold = (key.source_subtype == InputSubclass::ControllerAxis && initial_value > 0.5f);
|
||||
const bool reverse_threshold =
|
||||
(key.source_subtype == InputSubclass::ControllerAxis && std::abs(initial_value) > 0.5f);
|
||||
|
||||
for (InputBindingKey& other_key : s_state.input_binding_new_bindings)
|
||||
{
|
||||
|
@ -2305,7 +2306,7 @@ void FullscreenUI::BeginInputBinding(SettingsInterface* bsi, InputBindingInfo::T
|
|||
if ((reverse_threshold ? (abs_value < 0.5f) : (abs_value >= 0.5f)))
|
||||
{
|
||||
InputBindingKey key_to_add = key;
|
||||
key_to_add.modifier = (value < 0.0f && !reverse_threshold) ? InputModifier::Negate : InputModifier::None;
|
||||
key_to_add.modifier = (value < 0.0f) ? InputModifier::Negate : InputModifier::None;
|
||||
key_to_add.invert = reverse_threshold;
|
||||
s_state.input_binding_new_bindings.push_back(key_to_add);
|
||||
}
|
||||
|
|
|
@ -306,7 +306,8 @@ void InputBindingDialog::inputManagerHookCallback(InputBindingKey key, float val
|
|||
}
|
||||
|
||||
const float abs_value = std::abs(value);
|
||||
const bool reverse_threshold = (key.source_subtype == InputSubclass::ControllerAxis && initial_value > 0.5f);
|
||||
const bool reverse_threshold =
|
||||
(key.source_subtype == InputSubclass::ControllerAxis && std::abs(initial_value) > 0.5f);
|
||||
|
||||
for (InputBindingKey& other_key : m_new_bindings)
|
||||
{
|
||||
|
@ -334,7 +335,7 @@ void InputBindingDialog::inputManagerHookCallback(InputBindingKey key, float val
|
|||
if ((reverse_threshold ? (abs_value < 0.5f) : (abs_value >= 0.5f)))
|
||||
{
|
||||
InputBindingKey key_to_add = key;
|
||||
key_to_add.modifier = (value < 0.0f && !reverse_threshold) ? InputModifier::Negate : InputModifier::None;
|
||||
key_to_add.modifier = (value < 0.0f) ? InputModifier::Negate : InputModifier::None;
|
||||
key_to_add.invert = reverse_threshold;
|
||||
m_new_bindings.push_back(key_to_add);
|
||||
}
|
||||
|
|
|
@ -346,7 +346,8 @@ void InputBindingWidget::inputManagerHookCallback(InputBindingKey key, float val
|
|||
}
|
||||
|
||||
const float abs_value = std::abs(value);
|
||||
const bool reverse_threshold = (key.source_subtype == InputSubclass::ControllerAxis && initial_value > 0.5f);
|
||||
const bool reverse_threshold =
|
||||
(key.source_subtype == InputSubclass::ControllerAxis && std::abs(initial_value) > 0.5f);
|
||||
|
||||
for (InputBindingKey& other_key : m_new_bindings)
|
||||
{
|
||||
|
@ -374,7 +375,7 @@ void InputBindingWidget::inputManagerHookCallback(InputBindingKey key, float val
|
|||
if ((reverse_threshold ? (abs_value < 0.5f) : (abs_value >= 0.5f)))
|
||||
{
|
||||
InputBindingKey key_to_add = key;
|
||||
key_to_add.modifier = (value < 0.0f && !reverse_threshold) ? InputModifier::Negate : InputModifier::None;
|
||||
key_to_add.modifier = (value < 0.0f) ? InputModifier::Negate : InputModifier::None;
|
||||
key_to_add.invert = reverse_threshold;
|
||||
m_new_bindings.push_back(key_to_add);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue