Merge pull request #43591 from madmiraal/fix-43520

Update joy button and stick names, enums and documentation
This commit is contained in:
Rémi Verschelde 2020-11-19 20:43:44 +01:00 committed by GitHub
commit 6a683f8016
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 68 additions and 336 deletions

View file

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

View file

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

View file

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

View file

@ -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 {

View file

@ -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.

View file

@ -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()]) + ")";
}