Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@322aac4bb7.
Also improve parser errors to allow identifying the problematic mappings.
(cherry picked from commit 4b247e7ffa
)
This commit is contained in:
parent
feecd894d8
commit
7afb784269
3 changed files with 764 additions and 289 deletions
|
@ -22,9 +22,7 @@ generous deed immortalized in the next stable release of Godot Engine.
|
||||||
|
|
||||||
## Silver sponsors
|
## Silver sponsors
|
||||||
|
|
||||||
ABE
|
|
||||||
ASIFA-Hollywood <https://www.asifa-hollywood.org>
|
ASIFA-Hollywood <https://www.asifa-hollywood.org>
|
||||||
jong
|
|
||||||
|
|
||||||
## Bronze sponsors
|
## Bronze sponsors
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1142,7 +1142,7 @@ void InputDefault::parse_mapping(String p_mapping) {
|
||||||
String output = entry[idx].get_slice(":", 0).replace(" ", "");
|
String output = entry[idx].get_slice(":", 0).replace(" ", "");
|
||||||
String input = entry[idx].get_slice(":", 1).replace(" ", "");
|
String input = entry[idx].get_slice(":", 1).replace(" ", "");
|
||||||
ERR_CONTINUE_MSG(output.length() < 1 || input.length() < 2,
|
ERR_CONTINUE_MSG(output.length() < 1 || input.length() < 2,
|
||||||
String(entry[idx] + "\nInvalid device mapping entry: " + entry[idx]));
|
vformat("Invalid device mapping entry \"%s\" in mapping:\n%s", entry[idx], p_mapping));
|
||||||
|
|
||||||
if (output == "platform" || output == "hint") {
|
if (output == "platform" || output == "hint") {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1150,7 +1150,8 @@ void InputDefault::parse_mapping(String p_mapping) {
|
||||||
|
|
||||||
JoyAxisRange output_range = FULL_AXIS;
|
JoyAxisRange output_range = FULL_AXIS;
|
||||||
if (output[0] == '+' || output[0] == '-') {
|
if (output[0] == '+' || output[0] == '-') {
|
||||||
ERR_CONTINUE_MSG(output.length() < 2, String(entry[idx] + "\nInvalid output: " + entry[idx]));
|
ERR_CONTINUE_MSG(output.length() < 2,
|
||||||
|
vformat("Invalid output entry \"%s\" in mapping:\n%s", entry[idx], p_mapping));
|
||||||
if (output[0] == '+') {
|
if (output[0] == '+') {
|
||||||
output_range = POSITIVE_HALF_AXIS;
|
output_range = POSITIVE_HALF_AXIS;
|
||||||
} else if (output[0] == '-') {
|
} else if (output[0] == '-') {
|
||||||
|
@ -1176,9 +1177,9 @@ void InputDefault::parse_mapping(String p_mapping) {
|
||||||
JoystickList output_button = _get_output_button(output);
|
JoystickList output_button = _get_output_button(output);
|
||||||
JoystickList output_axis = _get_output_axis(output);
|
JoystickList output_axis = _get_output_axis(output);
|
||||||
ERR_CONTINUE_MSG(output_button == JOY_INVALID_OPTION && output_axis == JOY_INVALID_OPTION,
|
ERR_CONTINUE_MSG(output_button == JOY_INVALID_OPTION && output_axis == JOY_INVALID_OPTION,
|
||||||
String(entry[idx] + "\nUnrecognised output string: " + output));
|
vformat("Unrecognised output string \"%s\" in mapping:\n%s", output, p_mapping));
|
||||||
ERR_CONTINUE_MSG(output_button != JOY_INVALID_OPTION && output_axis != JOY_INVALID_OPTION,
|
ERR_CONTINUE_MSG(output_button != JOY_INVALID_OPTION && output_axis != JOY_INVALID_OPTION,
|
||||||
String("BUG: Output string matched both button and axis: " + output));
|
vformat("Output string \"%s\" matched both button and axis in mapping:\n%s", output, p_mapping));
|
||||||
|
|
||||||
JoyBinding binding;
|
JoyBinding binding;
|
||||||
if (output_button != JOY_INVALID_OPTION) {
|
if (output_button != JOY_INVALID_OPTION) {
|
||||||
|
@ -1203,13 +1204,13 @@ void InputDefault::parse_mapping(String p_mapping) {
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
ERR_CONTINUE_MSG(input.length() != 4 || input[2] != '.',
|
ERR_CONTINUE_MSG(input.length() != 4 || input[2] != '.',
|
||||||
String(entry[idx] + "\nInvalid hat input: " + input));
|
vformat("Invalid had input \"%s\" in mapping:\n%s", input, p_mapping));
|
||||||
binding.inputType = TYPE_HAT;
|
binding.inputType = TYPE_HAT;
|
||||||
binding.input.hat.hat = input.substr(1, 1).to_int();
|
binding.input.hat.hat = input.substr(1, 1).to_int();
|
||||||
binding.input.hat.hat_mask = static_cast<HatMask>(input.right(3).to_int());
|
binding.input.hat.hat_mask = static_cast<HatMask>(input.right(3).to_int());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ERR_CONTINUE_MSG(true, String(entry[idx] + "\nUnrecognised input string: " + input));
|
ERR_CONTINUE_MSG(true, vformat("Unrecognized input string \"%s\" in mapping:\n%s", input, p_mapping));
|
||||||
}
|
}
|
||||||
|
|
||||||
mapping.bindings.push_back(binding);
|
mapping.bindings.push_back(binding);
|
||||||
|
|
Loading…
Reference in a new issue