Browse Source

Merge pull request #43591 from madmiraal/fix-43520

Update joy button and stick names, enums and documentation
Rémi Verschelde 4 years ago
parent
commit
6a683f8016
6 changed files with 68 additions and 336 deletions
  1. 4 37
      core/core_constants.cpp
  2. 10 96
      core/input/input.cpp
  3. 0 5
      core/input/input.h
  4. 6 51
      core/input/input_event.h
  5. 21 120
      doc/classes/@GlobalScope.xml
  6. 27 27
      editor/input_map_editor.cpp

+ 4 - 37
core/core_constants.cpp

@@ -409,7 +409,7 @@ void register_global_constants() {
 	BIND_CORE_ENUM_CONSTANT(BUTTON_MASK_XBUTTON2);
 
 	// Joypad buttons
-	BIND_CORE_ENUM_CONSTANT(JOY_INVALID_BUTTON);
+	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_INVALID);
 	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_A);
 	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_B);
 	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_X);
@@ -425,51 +425,18 @@ void register_global_constants() {
 	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_DPAD_DOWN);
 	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_DPAD_LEFT);
 	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_DPAD_RIGHT);
-	BIND_CORE_ENUM_CONSTANT(JOY_SDL_BUTTONS);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_X);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_CROSS);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_CIRCLE);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_SQUARE);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_TRIANGLE);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_SELECT);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_START);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_PS);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_L1);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_R1);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_L3);
-	BIND_CORE_ENUM_CONSTANT(JOY_SONY_R3);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_A);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_B);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_X);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_Y);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_BACK);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_START);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_HOME);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_LS);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_RS);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_LB);
-	BIND_CORE_ENUM_CONSTANT(JOY_XBOX_RB);
+	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_SDL_MAX);
 	BIND_CORE_ENUM_CONSTANT(JOY_BUTTON_MAX);
 
 	// Joypad axes
-	BIND_CORE_ENUM_CONSTANT(JOY_INVALID_AXIS);
+	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_INVALID);
 	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_LEFT_X);
 	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_LEFT_Y);
 	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_RIGHT_X);
 	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_RIGHT_Y);
 	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_TRIGGER_LEFT);
 	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_TRIGGER_RIGHT);
-	BIND_CORE_ENUM_CONSTANT(JOY_SDL_AXES);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_0_X);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_0_Y);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_1_X);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_1_Y);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_2_X);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_2_Y);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_3_X);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_3_Y);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_4_X);
-	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_4_Y);
+	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_SDL_MAX);
 	BIND_CORE_ENUM_CONSTANT(JOY_AXIS_MAX);
 
 	// midi

+ 10 - 96
core/input/input.cpp

@@ -39,7 +39,7 @@
 #include "editor/editor_settings.h"
 #endif
 
-static const char *_joy_buttons[JOY_SDL_BUTTONS + 1] = {
+static const char *_joy_buttons[JOY_BUTTON_SDL_MAX] = {
 	"a",
 	"b",
 	"x",
@@ -55,69 +55,15 @@ static const char *_joy_buttons[JOY_SDL_BUTTONS + 1] = {
 	"dpdown",
 	"dpleft",
 	"dpright",
-	nullptr
 };
 
-static const char *_joy_button_names[JOY_BUTTON_MAX] = {
-	"Face Bottom",
-	"Face Right",
-	"Face Left",
-	"Face Top",
-	"Select",
-	"Guide",
-	"Start",
-	"Left Stick",
-	"Right Stick",
-	"Left Shoulder",
-	"Right Shoulder",
-	"D-Pad Up",
-	"D-Pad Down",
-	"D-Pad Left",
-	"D-Pad Right",
-	"Button 15",
-	"Button 16",
-	"Button 17",
-	"Button 18",
-	"Button 19",
-	"Button 20",
-	"Button 21",
-	"Button 22",
-	"Button 23",
-	"Button 24",
-	"Button 25",
-	"Button 26",
-	"Button 27",
-	"Button 28",
-	"Button 29",
-	"Button 30",
-	"Button 31",
-	"Button 32",
-	"Button 33",
-	"Button 34",
-	"Button 35"
-};
-
-static const char *_joy_axes[JOY_SDL_AXES + 1] = {
+static const char *_joy_axes[JOY_AXIS_SDL_MAX] = {
 	"leftx",
 	"lefty",
 	"rightx",
 	"righty",
 	"lefttrigger",
 	"righttrigger",
-	nullptr
-};
-
-static const char *_joy_axis_names[JOY_AXIS_MAX] = {
-	"Left Stick X",
-	"Left Stick Y",
-	"Right Stick X",
-	"Right Stick Y",
-	"Left Trigger",
-	"Right Trigger",
-	"Joystick 3 Stick X",
-	"Joystick 3 Stick Y",
-	"Joystick 4 Stick X",
-	"Joystick 4 Stick Y"
 };
 
 Input *Input::singleton = nullptr;
@@ -162,10 +108,6 @@ void Input::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("get_connected_joypads"), &Input::get_connected_joypads);
 	ClassDB::bind_method(D_METHOD("get_joy_vibration_strength", "device"), &Input::get_joy_vibration_strength);
 	ClassDB::bind_method(D_METHOD("get_joy_vibration_duration", "device"), &Input::get_joy_vibration_duration);
-	ClassDB::bind_method(D_METHOD("get_joy_button_string", "button_index"), &Input::get_joy_button_string);
-	ClassDB::bind_method(D_METHOD("get_joy_button_index_from_string", "button"), &Input::get_joy_button_index_from_string);
-	ClassDB::bind_method(D_METHOD("get_joy_axis_string", "axis_index"), &Input::get_joy_axis_string);
-	ClassDB::bind_method(D_METHOD("get_joy_axis_index_from_string", "axis"), &Input::get_joy_axis_index_from_string);
 	ClassDB::bind_method(D_METHOD("start_joy_vibration", "device", "weak_magnitude", "strong_magnitude", "duration"), &Input::start_joy_vibration, DEFVAL(0));
 	ClassDB::bind_method(D_METHOD("stop_joy_vibration", "device"), &Input::stop_joy_vibration);
 	ClassDB::bind_method(D_METHOD("vibrate_handheld", "duration_ms"), &Input::vibrate_handheld, DEFVAL(500));
@@ -1226,21 +1168,21 @@ void Input::_get_mapped_hat_events(const JoyDeviceMapping &mapping, int p_hat, J
 }
 
 JoyButtonList Input::_get_output_button(String output) {
-	for (int i = 0; _joy_buttons[i]; i++) {
+	for (int i = 0; i < JOY_BUTTON_SDL_MAX; i++) {
 		if (output == _joy_buttons[i]) {
 			return JoyButtonList(i);
 		}
 	}
-	return JoyButtonList::JOY_INVALID_BUTTON;
+	return JoyButtonList::JOY_BUTTON_INVALID;
 }
 
 JoyAxisList Input::_get_output_axis(String output) {
-	for (int i = 0; _joy_axes[i]; i++) {
+	for (int i = 0; i < JOY_AXIS_SDL_MAX; i++) {
 		if (output == _joy_axes[i]) {
 			return JoyAxisList(i);
 		}
 	}
-	return JoyAxisList::JOY_INVALID_AXIS;
+	return JoyAxisList::JOY_AXIS_INVALID;
 }
 
 void Input::parse_mapping(String p_mapping) {
@@ -1300,16 +1242,16 @@ void Input::parse_mapping(String p_mapping) {
 
 		JoyButtonList output_button = _get_output_button(output);
 		JoyAxisList output_axis = _get_output_axis(output);
-		ERR_CONTINUE_MSG(output_button == JOY_INVALID_BUTTON && output_axis == JOY_INVALID_AXIS,
+		ERR_CONTINUE_MSG(output_button == JOY_BUTTON_INVALID && output_axis == JOY_AXIS_INVALID,
 				String(entry[idx] + "\nUnrecognised output string: " + output));
-		ERR_CONTINUE_MSG(output_button != JOY_INVALID_BUTTON && output_axis != JOY_INVALID_AXIS,
+		ERR_CONTINUE_MSG(output_button != JOY_BUTTON_INVALID && output_axis != JOY_AXIS_INVALID,
 				String("BUG: Output string matched both button and axis: " + output));
 
 		JoyBinding binding;
-		if (output_button != JOY_INVALID_BUTTON) {
+		if (output_button != JOY_BUTTON_INVALID) {
 			binding.outputType = TYPE_BUTTON;
 			binding.output.button = output_button;
-		} else if (output_axis != JOY_INVALID_AXIS) {
+		} else if (output_axis != JOY_AXIS_INVALID) {
 			binding.outputType = TYPE_AXIS;
 			binding.output.axis.axis = output_axis;
 			binding.output.axis.range = output_range;
@@ -1401,20 +1343,6 @@ Array Input::get_connected_joypads() {
 	return ret;
 }
 
-String Input::get_joy_button_string(int p_button) {
-	ERR_FAIL_INDEX_V(p_button, JOY_BUTTON_MAX, "Invalid button");
-	return _joy_button_names[p_button];
-}
-
-int Input::get_joy_button_index_from_string(String p_button) {
-	for (int i = 0; i < JOY_BUTTON_MAX; i++) {
-		if (p_button == _joy_button_names[i]) {
-			return i;
-		}
-	}
-	ERR_FAIL_V(JOY_INVALID_BUTTON);
-}
-
 int Input::get_unused_joy_id() {
 	for (int i = 0; i < JOYPADS_MAX; i++) {
 		if (!joy_names.has(i) || !joy_names[i].connected) {
@@ -1424,20 +1352,6 @@ int Input::get_unused_joy_id() {
 	return -1;
 }
 
-String Input::get_joy_axis_string(int p_axis) {
-	ERR_FAIL_INDEX_V(p_axis, JOY_AXIS_MAX, "Invalid axis");
-	return _joy_axis_names[p_axis];
-}
-
-int Input::get_joy_axis_index_from_string(String p_axis) {
-	for (int i = 0; i < JOY_AXIS_MAX; i++) {
-		if (p_axis == _joy_axis_names[i]) {
-			return i;
-		}
-	}
-	ERR_FAIL_V(JOY_INVALID_AXIS);
-}
-
 Input::Input() {
 	singleton = this;
 

+ 0 - 5
core/input/input.h

@@ -330,11 +330,6 @@ public:
 	void add_joy_mapping(String p_mapping, bool p_update_existing = false);
 	void remove_joy_mapping(String p_guid);
 
-	String get_joy_button_string(int p_button);
-	String get_joy_axis_string(int p_axis);
-	int get_joy_axis_index_from_string(String p_axis);
-	int get_joy_button_index_from_string(String p_button);
-
 	int get_unused_joy_id();
 
 	bool is_joy_known(int p_device);

+ 6 - 51
core/input/input_event.h

@@ -60,9 +60,7 @@ enum ButtonList {
 };
 
 enum JoyButtonList {
-	JOY_INVALID_BUTTON = -1,
-
-	// SDL Buttons
+	JOY_BUTTON_INVALID = -1,
 	JOY_BUTTON_A = 0,
 	JOY_BUTTON_B = 1,
 	JOY_BUTTON_X = 2,
@@ -78,63 +76,20 @@ enum JoyButtonList {
 	JOY_BUTTON_DPAD_DOWN = 12,
 	JOY_BUTTON_DPAD_LEFT = 13,
 	JOY_BUTTON_DPAD_RIGHT = 14,
-	JOY_SDL_BUTTONS = 15,
-
-	// Sony Buttons
-	JOY_SONY_X = JOY_BUTTON_A,
-	JOY_SONY_CROSS = JOY_BUTTON_A,
-	JOY_SONY_CIRCLE = JOY_BUTTON_B,
-	JOY_SONY_SQUARE = JOY_BUTTON_X,
-	JOY_SONY_TRIANGLE = JOY_BUTTON_Y,
-	JOY_SONY_SELECT = JOY_BUTTON_BACK,
-	JOY_SONY_START = JOY_BUTTON_START,
-	JOY_SONY_PS = JOY_BUTTON_GUIDE,
-	JOY_SONY_L1 = JOY_BUTTON_LEFT_SHOULDER,
-	JOY_SONY_R1 = JOY_BUTTON_RIGHT_SHOULDER,
-	JOY_SONY_L3 = JOY_BUTTON_LEFT_STICK,
-	JOY_SONY_R3 = JOY_BUTTON_RIGHT_STICK,
-
-	// Xbox Buttons
-	JOY_XBOX_A = JOY_BUTTON_A,
-	JOY_XBOX_B = JOY_BUTTON_B,
-	JOY_XBOX_X = JOY_BUTTON_X,
-	JOY_XBOX_Y = JOY_BUTTON_Y,
-	JOY_XBOX_BACK = JOY_BUTTON_BACK,
-	JOY_XBOX_START = JOY_BUTTON_START,
-	JOY_XBOX_HOME = JOY_BUTTON_GUIDE,
-	JOY_XBOX_LS = JOY_BUTTON_LEFT_STICK,
-	JOY_XBOX_RS = JOY_BUTTON_RIGHT_STICK,
-	JOY_XBOX_LB = JOY_BUTTON_LEFT_SHOULDER,
-	JOY_XBOX_RB = JOY_BUTTON_RIGHT_SHOULDER,
-
-	JOY_BUTTON_MAX = 36 // Apparently Android supports up to 36 buttons.
+	JOY_BUTTON_SDL_MAX = 15,
+	JOY_BUTTON_MAX = 36, // Android supports up to 36 buttons.
 };
 
 enum JoyAxisList {
-	JOY_INVALID_AXIS = -1,
-
-	// SDL Axes
+	JOY_AXIS_INVALID = -1,
 	JOY_AXIS_LEFT_X = 0,
 	JOY_AXIS_LEFT_Y = 1,
 	JOY_AXIS_RIGHT_X = 2,
 	JOY_AXIS_RIGHT_Y = 3,
 	JOY_AXIS_TRIGGER_LEFT = 4,
 	JOY_AXIS_TRIGGER_RIGHT = 5,
-	JOY_SDL_AXES = 6,
-
-	// Joystick axes.
-	JOY_AXIS_0_X = 0,
-	JOY_AXIS_0_Y = 1,
-	JOY_AXIS_1_X = 2,
-	JOY_AXIS_1_Y = 3,
-	JOY_AXIS_2_X = 4,
-	JOY_AXIS_2_Y = 5,
-	JOY_AXIS_3_X = 6,
-	JOY_AXIS_3_Y = 7,
-	JOY_AXIS_4_X = 8,
-	JOY_AXIS_4_Y = 9,
-
-	JOY_AXIS_MAX = 10 // OpenVR supports up to 5 Joysticks making a total of 10 axes.
+	JOY_AXIS_SDL_MAX = 6,
+	JOY_AXIS_MAX = 10, // OpenVR supports up to 5 Joysticks making a total of 10 axes.
 };
 
 enum MidiMessageList {

+ 21 - 120
doc/classes/@GlobalScope.xml

@@ -2093,130 +2093,61 @@
 		<constant name="BUTTON_MASK_XBUTTON2" value="256" enum="ButtonList">
 			Extra mouse button 2 mask.
 		</constant>
-		<constant name="JOY_INVALID_BUTTON" value="-1" enum="JoyButtonList">
+		<constant name="JOY_BUTTON_INVALID" value="-1" enum="JoyButtonList">
 			An invalid game controller button.
 		</constant>
 		<constant name="JOY_BUTTON_A" value="0" enum="JoyButtonList">
-			Game controller SDL button A.
+			Game controller SDL button A. Corresponds to the bottom action button: Sony Cross, Xbox A, Nintendo B.
 		</constant>
 		<constant name="JOY_BUTTON_B" value="1" enum="JoyButtonList">
-			Game controller SDL button B.
+			Game controller SDL button B. Corresponds to the right action button: Sony Circle, Xbox B, Nintendo A.
 		</constant>
 		<constant name="JOY_BUTTON_X" value="2" enum="JoyButtonList">
-			Game controller SDL button X.
+			Game controller SDL button X. Corresponds to the left action button: Sony Square, Xbox X, Nintendo Y.
 		</constant>
 		<constant name="JOY_BUTTON_Y" value="3" enum="JoyButtonList">
-			Game controller SDL button Y.
+			Game controller SDL button Y. Corresponds to the top action button: Sony Triangle, Xbox Y, Nintendo X.
 		</constant>
 		<constant name="JOY_BUTTON_BACK" value="4" enum="JoyButtonList">
-			Game controller SDL back button.
+			Game controller SDL back button. Corresponds to the Sony Select, Xbox Back, Nintendo - button.
 		</constant>
 		<constant name="JOY_BUTTON_GUIDE" value="5" enum="JoyButtonList">
-			Game controller SDL guide button.
+			Game controller SDL guide button. Corresponds to the Sony PS, Xbox Home button.
 		</constant>
 		<constant name="JOY_BUTTON_START" value="6" enum="JoyButtonList">
-			Game controller SDL start button.
+			Game controller SDL start button. Corresponds to the Nintendo + button.
 		</constant>
 		<constant name="JOY_BUTTON_LEFT_STICK" value="7" enum="JoyButtonList">
-			Game controller SDL left stick button.
+			Game controller SDL left stick button. Corresponds to the Sony L3, Xbox L/LS button.
 		</constant>
 		<constant name="JOY_BUTTON_RIGHT_STICK" value="8" enum="JoyButtonList">
-			Game controller SDL right stick button.
+			Game controller SDL right stick button. Corresponds to the Sony R3, Xbox R/RS button.
 		</constant>
 		<constant name="JOY_BUTTON_LEFT_SHOULDER" value="9" enum="JoyButtonList">
-			Game controller SDL left shoulder button.
+			Game controller SDL left shoulder button. Corresponds to the Sony L1, Xbox LB button.
 		</constant>
 		<constant name="JOY_BUTTON_RIGHT_SHOULDER" value="10" enum="JoyButtonList">
-			Game controller SDL right shoulder button.
+			Game controller SDL right shoulder button. Corresponds to the Sony R1, Xbox RB button.
 		</constant>
 		<constant name="JOY_BUTTON_DPAD_UP" value="11" enum="JoyButtonList">
-			Game controller SDL D-pad up button.
+			Game controller D-pad up button.
 		</constant>
 		<constant name="JOY_BUTTON_DPAD_DOWN" value="12" enum="JoyButtonList">
-			Game controller SDL D-pad down button.
+			Game controller D-pad down button.
 		</constant>
 		<constant name="JOY_BUTTON_DPAD_LEFT" value="13" enum="JoyButtonList">
-			Game controller SDL D-pad left button.
+			Game controller D-pad left button.
 		</constant>
 		<constant name="JOY_BUTTON_DPAD_RIGHT" value="14" enum="JoyButtonList">
-			Game controller SDL D-pad right button.
+			Game controller D-pad right button.
 		</constant>
-		<constant name="JOY_SDL_BUTTONS" value="15" enum="JoyButtonList">
+		<constant name="JOY_BUTTON_SDL_MAX" value="15" enum="JoyButtonList">
 			The number of SDL game controller buttons.
 		</constant>
-		<constant name="JOY_SONY_X" value="0" enum="JoyButtonList">
-			Sony DualShock controller X button maps to SDL button A.
-		</constant>
-		<constant name="JOY_SONY_CROSS" value="0" enum="JoyButtonList">
-			Sony DualShock controller cross button maps to SDL button A.
-		</constant>
-		<constant name="JOY_SONY_CIRCLE" value="1" enum="JoyButtonList">
-			Sony DualShock controller circle button maps to SDL button B.
-		</constant>
-		<constant name="JOY_SONY_SQUARE" value="2" enum="JoyButtonList">
-			Sony DualShock controller square button maps to SDL button X.
-		</constant>
-		<constant name="JOY_SONY_TRIANGLE" value="3" enum="JoyButtonList">
-			Sony DualShock controller triangle button maps to SDL button Y.
-		</constant>
-		<constant name="JOY_SONY_SELECT" value="4" enum="JoyButtonList">
-			Sony DualShock controller select button maps to SDL back button.
-		</constant>
-		<constant name="JOY_SONY_START" value="6" enum="JoyButtonList">
-			Sony DualShock controller start button maps to SDL start button.
-		</constant>
-		<constant name="JOY_SONY_PS" value="5" enum="JoyButtonList">
-			Sony DualShock controller PS button maps to SDL guide button.
-		</constant>
-		<constant name="JOY_SONY_L1" value="9" enum="JoyButtonList">
-			Sony DualShock controller L1 button maps to SDL left shoulder button.
-		</constant>
-		<constant name="JOY_SONY_R1" value="10" enum="JoyButtonList">
-			Sony DualShock controller R1 button maps to SDL right shoulder button.
-		</constant>
-		<constant name="JOY_SONY_L3" value="7" enum="JoyButtonList">
-			Sony DualShock controller L3 button maps to SDL left stick button.
-		</constant>
-		<constant name="JOY_SONY_R3" value="8" enum="JoyButtonList">
-			Sony DualShock controller R3 button maps to SDL right stick button.
-		</constant>
-		<constant name="JOY_XBOX_A" value="0" enum="JoyButtonList">
-			Xbox game controller A button maps to SDL button A.
-		</constant>
-		<constant name="JOY_XBOX_B" value="1" enum="JoyButtonList">
-			Xbox game controller B button maps to SDL button B.
-		</constant>
-		<constant name="JOY_XBOX_X" value="2" enum="JoyButtonList">
-			Xbox game controller X button maps to SDL button X.
-		</constant>
-		<constant name="JOY_XBOX_Y" value="3" enum="JoyButtonList">
-			Xbox game controller Y button maps to SDL button Y.
-		</constant>
-		<constant name="JOY_XBOX_BACK" value="4" enum="JoyButtonList">
-			Xbox game controller back button maps to SDL back button.
-		</constant>
-		<constant name="JOY_XBOX_START" value="6" enum="JoyButtonList">
-			Xbox game controller start button maps to SDL start button.
-		</constant>
-		<constant name="JOY_XBOX_HOME" value="5" enum="JoyButtonList">
-			Xbox game controller home button maps to SDL guide button.
-		</constant>
-		<constant name="JOY_XBOX_LS" value="7" enum="JoyButtonList">
-			Xbox game controller left stick button maps to SDL left stick button.
-		</constant>
-		<constant name="JOY_XBOX_RS" value="8" enum="JoyButtonList">
-			Xbox game controller right stick button maps to SDL right stick button.
-		</constant>
-		<constant name="JOY_XBOX_LB" value="9" enum="JoyButtonList">
-			Xbox game controller left bumper button maps to SDL left shoulder button.
-		</constant>
-		<constant name="JOY_XBOX_RB" value="10" enum="JoyButtonList">
-			Xbox game controller right bumper button maps to SDL right shoulder button.
-		</constant>
 		<constant name="JOY_BUTTON_MAX" value="36" enum="JoyButtonList">
-			The maximum number of game controller buttons.
+			The maximum number of game controller buttons: Android supports up to 36 buttons.
 		</constant>
-		<constant name="JOY_INVALID_AXIS" value="-1" enum="JoyAxisList">
+		<constant name="JOY_AXIS_INVALID" value="-1" enum="JoyAxisList">
 			An invalid game controller axis.
 		</constant>
 		<constant name="JOY_AXIS_LEFT_X" value="0" enum="JoyAxisList">
@@ -2237,41 +2168,11 @@
 		<constant name="JOY_AXIS_TRIGGER_RIGHT" value="5" enum="JoyAxisList">
 			Game controller right trigger axis.
 		</constant>
-		<constant name="JOY_SDL_AXES" value="6" enum="JoyAxisList">
+		<constant name="JOY_AXIS_SDL_MAX" value="6" enum="JoyAxisList">
 			The number of SDL game controller axes.
 		</constant>
-		<constant name="JOY_AXIS_0_X" value="0" enum="JoyAxisList">
-			Game controller joystick 0 x-axis.
-		</constant>
-		<constant name="JOY_AXIS_0_Y" value="1" enum="JoyAxisList">
-			Game controller joystick 0 y-axis.
-		</constant>
-		<constant name="JOY_AXIS_1_X" value="2" enum="JoyAxisList">
-			Game controller joystick 1 x-axis.
-		</constant>
-		<constant name="JOY_AXIS_1_Y" value="3" enum="JoyAxisList">
-			Game controller joystick 1 y-axis.
-		</constant>
-		<constant name="JOY_AXIS_2_X" value="4" enum="JoyAxisList">
-			Game controller joystick 2 x-axis.
-		</constant>
-		<constant name="JOY_AXIS_2_Y" value="5" enum="JoyAxisList">
-			Game controller joystick 2 y-axis.
-		</constant>
-		<constant name="JOY_AXIS_3_X" value="6" enum="JoyAxisList">
-			Game controller joystick 3 x-axis.
-		</constant>
-		<constant name="JOY_AXIS_3_Y" value="7" enum="JoyAxisList">
-			Game controller joystick 3 y-axis.
-		</constant>
-		<constant name="JOY_AXIS_4_X" value="8" enum="JoyAxisList">
-			Game controller joystick 4 x-axis.
-		</constant>
-		<constant name="JOY_AXIS_4_Y" value="9" enum="JoyAxisList">
-			Game controller joystick 4 y-axis.
-		</constant>
 		<constant name="JOY_AXIS_MAX" value="10" enum="JoyAxisList">
-			The maximum number of game controller axes.
+			The maximum number of game controller axes: OpenVR supports up to 5 Joysticks making a total of 10 axes.
 		</constant>
 		<constant name="MIDI_MESSAGE_NOTE_OFF" value="8" enum="MidiMessageList">
 			MIDI note OFF message.

+ 27 - 27
editor/input_map_editor.cpp

@@ -35,37 +35,37 @@
 #include "editor/editor_node.h"
 #include "editor/editor_scale.h"
 
-static const char *_button_descriptions[JOY_SDL_BUTTONS] = {
-	TTRC("Face Bottom, DualShock Cross, Xbox A, Nintendo B"),
-	TTRC("Face Right, DualShock Circle, Xbox B, Nintendo A"),
-	TTRC("Face Left, DualShock Square, Xbox X, Nintendo Y"),
-	TTRC("Face Top, DualShock Triangle, Xbox Y, Nintendo X"),
-	TTRC("DualShock Select, Xbox Back, Nintendo -"),
-	TTRC("Home, DualShock PS, Guide"),
+static const char *_button_descriptions[JOY_BUTTON_SDL_MAX] = {
+	TTRC("Bottom Action, Sony Cross, Xbox A, Nintendo B"),
+	TTRC("Right Action, Sony Circle, Xbox B, Nintendo A"),
+	TTRC("Left Action, Sony Square, Xbox X, Nintendo Y"),
+	TTRC("Top Action, Sony Triangle, Xbox Y, Nintendo X"),
+	TTRC("Back, Sony Select, Xbox Back, Nintendo -"),
+	TTRC("Guide, Sony PS, Xbox Home"),
 	TTRC("Start, Nintendo +"),
-	TTRC("Left Stick, DualShock L3, Xbox L/LS"),
-	TTRC("Right Stick, DualShock R3, Xbox R/RS"),
-	TTRC("Left Shoulder, DualShock L1, Xbox LB"),
-	TTRC("Right Shoulder, DualShock R1, Xbox RB"),
-	TTRC("D-Pad Up"),
-	TTRC("D-Pad Down"),
-	TTRC("D-Pad Left"),
-	TTRC("D-Pad Right")
+	TTRC("Left Stick, Sony L3, Xbox L/LS"),
+	TTRC("Right Stick, Sony R3, Xbox R/RS"),
+	TTRC("Left Shoulder, Sony L1, Xbox LB"),
+	TTRC("Right Shoulder, Sony R1, Xbox RB"),
+	TTRC("D-pad Up"),
+	TTRC("D-pad Down"),
+	TTRC("D-pad Left"),
+	TTRC("D-pad Right"),
 };
 
 static const char *_axis_descriptions[JOY_AXIS_MAX * 2] = {
-	TTRC("Left Stick Left"),
-	TTRC("Left Stick Right"),
-	TTRC("Left Stick Up"),
-	TTRC("Left Stick Down"),
-	TTRC("Right Stick Left"),
-	TTRC("Right Stick Right"),
-	TTRC("Right Stick Up"),
-	TTRC("Right Stick Down"),
+	TTRC("Left Stick Left, Joystick 0 Left"),
+	TTRC("Left Stick Right, Joystick 0 Right"),
+	TTRC("Left Stick Up, Joystick 0 Up"),
+	TTRC("Left Stick Down, Joystick 0 Down"),
+	TTRC("Right Stick Left, Joystick 1 Left"),
+	TTRC("Right Stick Right, Joystick 1 Right"),
+	TTRC("Right Stick Up, Joystick 1 Up"),
+	TTRC("Right Stick Down, Joystick 1 Down"),
 	TTRC("Joystick 2 Left"),
-	TTRC("Joystick 2 Right, Left Trigger, L2, LT"),
+	TTRC("Left Trigger, L2, LT, Joystick 2 Right"),
 	TTRC("Joystick 2 Up"),
-	TTRC("Joystick 2 Down, Right Trigger, R2, RT"),
+	TTRC("Right Trigger, R2, RT, Joystick 2 Down"),
 	TTRC("Joystick 3 Left"),
 	TTRC("Joystick 3 Right"),
 	TTRC("Joystick 3 Up"),
@@ -503,7 +503,7 @@ void InputMapEditor::_add_item(int p_item, Ref<InputEvent> p_exiting_event) {
 			device_index->clear();
 			for (int i = 0; i < JOY_BUTTON_MAX; i++) {
 				String desc = TTR("Button") + " " + itos(i);
-				if (i < JOY_SDL_BUTTONS) {
+				if (i < JOY_BUTTON_SDL_MAX) {
 					desc += " (" + TTR(_button_descriptions[i]) + ")";
 				}
 				device_index->add_item(desc);
@@ -717,7 +717,7 @@ void InputMapEditor::_update_actions() {
 				const int idx = jb->get_button_index();
 				String str = _get_device_string(jb->get_device()) + ", " +
 							 TTR("Button") + " " + itos(idx);
-				if (idx >= 0 && idx < JOY_SDL_BUTTONS) {
+				if (idx >= 0 && idx < JOY_BUTTON_SDL_MAX) {
 					str += String() + " (" + TTR(_button_descriptions[jb->get_button_index()]) + ")";
 				}