Browse Source

Sync controller mappings DB with SDL2 community repo

Synced with gabomdq/SDL_GameControllerDB@322aac4bb71d8c62ec7dcd4eb627a9d338b37684.

Also improve parser errors to allow identifying the problematic mappings.

(cherry picked from commit 4b247e7ffaa74f1556f84c02637c42ef9fe4efd8)
Rémi Verschelde 3 years ago
parent
commit
7afb784269
3 changed files with 510 additions and 161 deletions
  1. 0 2
      DONORS.md
  2. 503 153
      main/gamecontrollerdb.txt
  3. 7 6
      main/input_default.cpp

+ 0 - 2
DONORS.md

@@ -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
+ 503 - 153
main/gamecontrollerdb.txt


+ 7 - 6
main/input_default.cpp

@@ -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);

Some files were not shown because too many files changed in this diff