Inlined adding elements to connections list

This commit is contained in:
kalaposfos13 2025-01-17 21:33:42 +01:00
parent aafabf2038
commit 9c1326f003

View File

@ -257,11 +257,11 @@ void ParseInputConfig(const std::string game_id = "") {
line); line);
continue; continue;
} }
ControllerOutput* toggle_out = &*std::ranges::find( connections.emplace_back(BindingConnection(
output_array, ControllerOutput((OrbisPadButtonDataOffset)KEY_TOGGLE)); InputBinding(toggle_keys.keys[0]),
BindingConnection toggle_connection = BindingConnection( &*std::ranges::find(output_array,
InputBinding(toggle_keys.keys[0]), toggle_out, 0, toggle_keys.keys[1]); ControllerOutput((OrbisPadButtonDataOffset)KEY_TOGGLE)),
connections.insert(connections.end(), toggle_connection); 0, toggle_keys.keys[1]));
continue; continue;
} }
LOG_WARNING(Input, "Invalid format at line: {}, data: \"{}\", skipping line.", LOG_WARNING(Input, "Invalid format at line: {}, data: \"{}\", skipping line.",
@ -282,7 +282,6 @@ void ParseInputConfig(const std::string game_id = "") {
// normal cases // normal cases
InputBinding binding = GetBindingFromString(input_string); InputBinding binding = GetBindingFromString(input_string);
BindingConnection connection(InputID(), nullptr);
auto button_it = string_to_cbutton_map.find(output_string); auto button_it = string_to_cbutton_map.find(output_string);
auto axis_it = string_to_axis_map.find(output_string); auto axis_it = string_to_axis_map.find(output_string);
@ -292,9 +291,8 @@ void ParseInputConfig(const std::string game_id = "") {
continue; continue;
} }
if (button_it != string_to_cbutton_map.end()) { if (button_it != string_to_cbutton_map.end()) {
connection = BindingConnection( connections.emplace_back(BindingConnection(
binding, &*std::ranges::find(output_array, ControllerOutput(button_it->second))); binding, &*std::ranges::find(output_array, ControllerOutput(button_it->second))));
connections.insert(connections.end(), connection);
} else if (axis_it != string_to_axis_map.end()) { } else if (axis_it != string_to_axis_map.end()) {
int value_to_set = binding.keys[2].type == InputType::Axis ? 0 int value_to_set = binding.keys[2].type == InputType::Axis ? 0
@ -302,12 +300,11 @@ void ParseInputConfig(const std::string game_id = "") {
axis_it->second.axis == Axis::TriggerRight) axis_it->second.axis == Axis::TriggerRight)
? 127 ? 127
: axis_it->second.value; : axis_it->second.value;
connection = BindingConnection( connections.emplace_back(BindingConnection(
binding, binding,
&*std::ranges::find(output_array, ControllerOutput(OrbisPadButtonDataOffset::None, &*std::ranges::find(output_array, ControllerOutput(OrbisPadButtonDataOffset::None,
axis_it->second.axis)), axis_it->second.axis)),
value_to_set); value_to_set));
connections.insert(connections.end(), connection);
} else { } else {
LOG_WARNING(Input, "Invalid format at line: {}, data: \"{}\", skipping line.", LOG_WARNING(Input, "Invalid format at line: {}, data: \"{}\", skipping line.",
lineCount, line); lineCount, line);