Commit e7fee711 by Marcel Admiraal

Update game controller enums.

parent 1176e078
......@@ -88,7 +88,8 @@ static Vector<_GlobalConstant> _global_constants;
VARIANT_ENUM_CAST(KeyList);
VARIANT_ENUM_CAST(KeyModifierMask);
VARIANT_ENUM_CAST(ButtonList);
VARIANT_ENUM_CAST(JoystickList);
VARIANT_ENUM_CAST(JoyButtonList);
VARIANT_ENUM_CAST(JoyAxisList);
VARIANT_ENUM_CAST(MidiMessageList);
void register_global_constants() {
......@@ -388,90 +389,70 @@ void register_global_constants() {
BIND_GLOBAL_ENUM_CONSTANT(BUTTON_MASK_XBUTTON1);
BIND_GLOBAL_ENUM_CONSTANT(BUTTON_MASK_XBUTTON2);
//joypads
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_0);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_1);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_2);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_3);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_4);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_5);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_6);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_7);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_8);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_9);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_10);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_11);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_12);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_13);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_14);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_15);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_MAX);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_CIRCLE);
// Joypad buttons
BIND_GLOBAL_ENUM_CONSTANT(JOY_INVALID_BUTTON);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_A);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_B);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_BACK);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_GUIDE);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_START);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_LEFT_STICK);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_RIGHT_STICK);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_LEFT_SHOULDER);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_RIGHT_SHOULDER);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_DPAD_UP);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_DPAD_DOWN);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_DPAD_LEFT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_DPAD_RIGHT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SDL_BUTTONS);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_CROSS);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_CIRCLE);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_SQUARE);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_TRIANGLE);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_B);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_SELECT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_START);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_PS);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_L1);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_R1);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_L3);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SONY_R3);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_A);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_B);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_BACK);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_START);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_HOME);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_LS);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_RS);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_LB);
BIND_GLOBAL_ENUM_CONSTANT(JOY_XBOX_RB);
BIND_GLOBAL_ENUM_CONSTANT(JOY_BUTTON_MAX);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DS_A);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DS_B);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DS_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DS_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_GRIP);
BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_PAD);
BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_TRIGGER);
BIND_GLOBAL_ENUM_CONSTANT(JOY_OCULUS_AX);
BIND_GLOBAL_ENUM_CONSTANT(JOY_OCULUS_BY);
BIND_GLOBAL_ENUM_CONSTANT(JOY_OCULUS_MENU);
BIND_GLOBAL_ENUM_CONSTANT(JOY_OPENVR_MENU);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SELECT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_START);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DPAD_UP);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DPAD_DOWN);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DPAD_LEFT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_DPAD_RIGHT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_L);
BIND_GLOBAL_ENUM_CONSTANT(JOY_L2);
BIND_GLOBAL_ENUM_CONSTANT(JOY_L3);
BIND_GLOBAL_ENUM_CONSTANT(JOY_R);
BIND_GLOBAL_ENUM_CONSTANT(JOY_R2);
BIND_GLOBAL_ENUM_CONSTANT(JOY_R3);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_0);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_1);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_2);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_3);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_4);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_5);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_6);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_7);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_8);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_9);
// Joypad axes
BIND_GLOBAL_ENUM_CONSTANT(JOY_INVALID_AXIS);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_LEFT_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_LEFT_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_RIGHT_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_RIGHT_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_TRIGGER_LEFT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_TRIGGER_RIGHT);
BIND_GLOBAL_ENUM_CONSTANT(JOY_SDL_AXES);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_0_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_0_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_1_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_1_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_2_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_2_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_3_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_3_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_4_X);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_4_Y);
BIND_GLOBAL_ENUM_CONSTANT(JOY_AXIS_MAX);
BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_LX);
BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_LY);
BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_RX);
BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_RY);
BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_L2);
BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_R2);
BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_ANALOG_TRIGGER);
BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_ANALOG_GRIP);
BIND_GLOBAL_ENUM_CONSTANT(JOY_OPENVR_TOUCHPADX);
BIND_GLOBAL_ENUM_CONSTANT(JOY_OPENVR_TOUCHPADY);
// midi
BIND_GLOBAL_ENUM_CONSTANT(MIDI_MESSAGE_NOTE_OFF);
BIND_GLOBAL_ENUM_CONSTANT(MIDI_MESSAGE_NOTE_ON);
......
......@@ -145,7 +145,7 @@ private:
StringName name;
StringName uid;
bool connected;
bool last_buttons[JOY_BUTTON_MAX + 19]; //apparently SDL specifies 35 possible buttons on android
bool last_buttons[JOY_BUTTON_MAX];
float last_axis[JOY_AXIS_MAX];
float filter;
int last_hat;
......@@ -154,11 +154,9 @@ private:
Joypad() {
for (int i = 0; i < JOY_AXIS_MAX; i++) {
last_axis[i] = 0.0f;
}
for (int i = 0; i < JOY_BUTTON_MAX + 19; i++) {
for (int i = 0; i < JOY_BUTTON_MAX; i++) {
last_buttons[i] = false;
}
connected = false;
......@@ -183,37 +181,6 @@ private:
TYPE_MAX,
};
enum SDLJoyButton {
SDL_INVALID_BUTTON = -1,
SDL_BUTTON_A,
SDL_BUTTON_B,
SDL_BUTTON_X,
SDL_BUTTON_Y,
SDL_BUTTON_BACK,
SDL_BUTTON_GUIDE,
SDL_BUTTON_START,
SDL_BUTTON_LEFTSTICK,
SDL_BUTTON_RIGHTSTICK,
SDL_BUTTON_LEFTSHOULDER,
SDL_BUTTON_RIGHTSHOULDER,
SDL_BUTTON_DPAD_UP,
SDL_BUTTON_DPAD_DOWN,
SDL_BUTTON_DPAD_LEFT,
SDL_BUTTON_DPAD_RIGHT,
SDL_BUTTON_MAX
};
enum SDLJoyAxis {
SDL_INVALID_AXIS = -1,
SDL_AXIS_LEFTX,
SDL_AXIS_LEFTY,
SDL_AXIS_RIGHTX,
SDL_AXIS_RIGHTY,
SDL_AXIS_TRIGGERLEFT,
SDL_AXIS_TRIGGERRIGHT,
SDL_AXIS_MAX,
};
enum JoyAxisRange {
NEGATIVE_HALF_AXIS = -1,
FULL_AXIS = 0,
......@@ -226,7 +193,7 @@ private:
int value;
};
struct SDLExtendedJoyBind {
struct JoyBinding {
JoyType inputType;
union {
int button;
......@@ -245,10 +212,10 @@ private:
JoyType outputType;
union {
SDLJoyButton button;
JoyButtonList button;
struct {
SDLJoyAxis axis;
JoyAxisList axis;
JoyAxisRange range;
} axis;
......@@ -258,7 +225,7 @@ private:
struct JoyDeviceMapping {
String uid;
String name;
Vector<SDLExtendedJoyBind> bindings;
Vector<JoyBinding> bindings;
};
Vector<JoyDeviceMapping> map_db;
......@@ -266,8 +233,8 @@ private:
JoyEvent _get_mapped_button_event(const JoyDeviceMapping &mapping, int p_button);
JoyEvent _get_mapped_axis_event(const JoyDeviceMapping &mapping, int p_axis);
void _get_mapped_hat_events(const JoyDeviceMapping &mapping, int p_hat, JoyEvent r_events[HAT_MAX]);
SDLJoyButton _get_output_button(String output);
SDLJoyAxis _get_output_axis(String output);
JoyButtonList _get_output_button(String output);
JoyAxisList _get_output_axis(String output);
void _button_event(int p_device, int p_index, bool p_pressed);
void _axis_event(int p_device, int p_axis, float p_value);
float _handle_deadzone(int p_device, int p_axis, float p_value);
......
......@@ -59,98 +59,84 @@ enum ButtonList {
BUTTON_MASK_XBUTTON2 = (1 << (BUTTON_XBUTTON2 - 1))
};
enum JoystickList {
JOY_BUTTON_0 = 0,
JOY_BUTTON_1 = 1,
JOY_BUTTON_2 = 2,
JOY_BUTTON_3 = 3,
JOY_BUTTON_4 = 4,
JOY_BUTTON_5 = 5,
JOY_BUTTON_6 = 6,
JOY_BUTTON_7 = 7,
JOY_BUTTON_8 = 8,
JOY_BUTTON_9 = 9,
JOY_BUTTON_10 = 10,
JOY_BUTTON_11 = 11,
JOY_BUTTON_12 = 12,
JOY_BUTTON_13 = 13,
JOY_BUTTON_14 = 14,
JOY_BUTTON_15 = 15,
JOY_BUTTON_MAX = 16,
JOY_L = JOY_BUTTON_4,
JOY_R = JOY_BUTTON_5,
JOY_L2 = JOY_BUTTON_6,
JOY_R2 = JOY_BUTTON_7,
JOY_L3 = JOY_BUTTON_8,
JOY_R3 = JOY_BUTTON_9,
JOY_SELECT = JOY_BUTTON_10,
JOY_START = JOY_BUTTON_11,
JOY_DPAD_UP = JOY_BUTTON_12,
JOY_DPAD_DOWN = JOY_BUTTON_13,
JOY_DPAD_LEFT = JOY_BUTTON_14,
JOY_DPAD_RIGHT = JOY_BUTTON_15,
JOY_SONY_CIRCLE = JOY_BUTTON_1,
JOY_SONY_X = JOY_BUTTON_0,
JOY_SONY_SQUARE = JOY_BUTTON_2,
JOY_SONY_TRIANGLE = JOY_BUTTON_3,
JOY_XBOX_A = JOY_BUTTON_0,
JOY_XBOX_B = JOY_BUTTON_1,
JOY_XBOX_X = JOY_BUTTON_2,
JOY_XBOX_Y = JOY_BUTTON_3,
JOY_DS_A = JOY_BUTTON_1,
JOY_DS_B = JOY_BUTTON_0,
JOY_DS_X = JOY_BUTTON_3,
JOY_DS_Y = JOY_BUTTON_2,
JOY_WII_C = JOY_BUTTON_5,
JOY_WII_Z = JOY_BUTTON_6,
JOY_WII_MINUS = JOY_BUTTON_10,
JOY_WII_PLUS = JOY_BUTTON_11,
JOY_VR_GRIP = JOY_BUTTON_2,
JOY_VR_PAD = JOY_BUTTON_14,
JOY_VR_TRIGGER = JOY_BUTTON_15,
JOY_OCULUS_AX = JOY_BUTTON_7,
JOY_OCULUS_BY = JOY_BUTTON_1,
JOY_OCULUS_MENU = JOY_BUTTON_3,
JOY_OPENVR_MENU = JOY_BUTTON_1,
// end of history
JOY_AXIS_0 = 0,
JOY_AXIS_1 = 1,
JOY_AXIS_2 = 2,
JOY_AXIS_3 = 3,
JOY_AXIS_4 = 4,
JOY_AXIS_5 = 5,
JOY_AXIS_6 = 6,
JOY_AXIS_7 = 7,
JOY_AXIS_8 = 8,
JOY_AXIS_9 = 9,
JOY_AXIS_MAX = 10,
JOY_ANALOG_LX = JOY_AXIS_0,
JOY_ANALOG_LY = JOY_AXIS_1,
JOY_ANALOG_RX = JOY_AXIS_2,
JOY_ANALOG_RY = JOY_AXIS_3,
JOY_ANALOG_L2 = JOY_AXIS_6,
JOY_ANALOG_R2 = JOY_AXIS_7,
JOY_VR_ANALOG_TRIGGER = JOY_AXIS_2,
JOY_VR_ANALOG_GRIP = JOY_AXIS_4,
JOY_OPENVR_TOUCHPADX = JOY_AXIS_0,
JOY_OPENVR_TOUCHPADY = JOY_AXIS_1,
enum JoyButtonList {
JOY_INVALID_BUTTON = -1,
// SDL Buttons
JOY_BUTTON_A = 0,
JOY_BUTTON_B = 1,
JOY_BUTTON_X = 2,
JOY_BUTTON_Y = 3,
JOY_BUTTON_BACK = 4,
JOY_BUTTON_GUIDE = 5,
JOY_BUTTON_START = 6,
JOY_BUTTON_LEFT_STICK = 7,
JOY_BUTTON_RIGHT_STICK = 8,
JOY_BUTTON_LEFT_SHOULDER = 9,
JOY_BUTTON_RIGHT_SHOULDER = 10,
JOY_BUTTON_DPAD_UP = 11,
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.
};
enum JoyAxisList {
JOY_INVALID_AXIS = -1,
// SDL Axes
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.
};
enum MidiMessageList {
......
......@@ -1037,7 +1037,7 @@ ProjectSettings::ProjectSettings() {
key->set_keycode(KEY_SPACE);
events.push_back(key);
joyb.instance();
joyb->set_button_index(JOY_BUTTON_0);
joyb->set_button_index(JOY_BUTTON_A);
events.push_back(joyb);
action["events"] = events;
GLOBAL_DEF("input/ui_accept", action);
......@@ -1050,7 +1050,7 @@ ProjectSettings::ProjectSettings() {
key->set_keycode(KEY_SPACE);
events.push_back(key);
joyb.instance();
joyb->set_button_index(JOY_BUTTON_3);
joyb->set_button_index(JOY_BUTTON_Y);
events.push_back(joyb);
action["events"] = events;
GLOBAL_DEF("input/ui_select", action);
......@@ -1063,7 +1063,7 @@ ProjectSettings::ProjectSettings() {
key->set_keycode(KEY_ESCAPE);
events.push_back(key);
joyb.instance();
joyb->set_button_index(JOY_BUTTON_1);
joyb->set_button_index(JOY_BUTTON_B);
events.push_back(joyb);
action["events"] = events;
GLOBAL_DEF("input/ui_cancel", action);
......@@ -1097,7 +1097,7 @@ ProjectSettings::ProjectSettings() {
key->set_keycode(KEY_LEFT);
events.push_back(key);
joyb.instance();
joyb->set_button_index(JOY_DPAD_LEFT);
joyb->set_button_index(JOY_BUTTON_DPAD_LEFT);
events.push_back(joyb);
action["events"] = events;
GLOBAL_DEF("input/ui_left", action);
......@@ -1110,7 +1110,7 @@ ProjectSettings::ProjectSettings() {
key->set_keycode(KEY_RIGHT);
events.push_back(key);
joyb.instance();
joyb->set_button_index(JOY_DPAD_RIGHT);
joyb->set_button_index(JOY_BUTTON_DPAD_RIGHT);
events.push_back(joyb);
action["events"] = events;
GLOBAL_DEF("input/ui_right", action);
......@@ -1123,7 +1123,7 @@ ProjectSettings::ProjectSettings() {
key->set_keycode(KEY_UP);
events.push_back(key);
joyb.instance();
joyb->set_button_index(JOY_DPAD_UP);
joyb->set_button_index(JOY_BUTTON_DPAD_UP);
events.push_back(joyb);
action["events"] = events;
GLOBAL_DEF("input/ui_up", action);
......@@ -1136,7 +1136,7 @@ ProjectSettings::ProjectSettings() {
key->set_keycode(KEY_DOWN);
events.push_back(key);
joyb.instance();
joyb->set_button_index(JOY_DPAD_DOWN);
joyb->set_button_index(JOY_BUTTON_DPAD_DOWN);
events.push_back(joyb);
action["events"] = events;
GLOBAL_DEF("input/ui_down", action);
......
......@@ -96,7 +96,7 @@
<argument index="1" name="axis" type="int">
</argument>
<description>
Returns the current value of the joypad axis at given index (see [enum JoystickList]).
Returns the current value of the joypad axis at given index (see [enum JoyAxisList]).
</description>
</method>
<method name="get_joy_axis_index_from_string">
......@@ -114,7 +114,7 @@
<argument index="0" name="axis_index" type="int">
</argument>
<description>
Receives a [enum JoystickList] axis and returns its equivalent name as a string.
Receives a [enum JoyAxisList] axis and returns its equivalent name as a string.
</description>
</method>
<method name="get_joy_button_index_from_string">
......@@ -132,7 +132,7 @@
<argument index="0" name="button_index" type="int">
</argument>
<description>
Receives a gamepad button from [enum JoystickList] and returns its equivalent name as a string.
Receives a gamepad button from [enum JoyButtonList] and returns its equivalent name as a string.
</description>
</method>
<method name="get_joy_guid" qualifiers="const">
......@@ -235,7 +235,7 @@
<argument index="1" name="button" type="int">
</argument>
<description>
Returns [code]true[/code] if you are pressing the joypad button (see [enum JoystickList]).
Returns [code]true[/code] if you are pressing the joypad button (see [enum JoyButtonList]).
</description>
</method>
<method name="is_joy_known">
......@@ -244,7 +244,7 @@
<argument index="0" name="device" type="int">
</argument>
<description>
Returns [code]true[/code] if the system knows the specified device. This means that it sets all button and axis indices exactly as defined in [enum JoystickList]. Unknown joypads are not expected to match these constants, but you can still retrieve events from them.
Returns [code]true[/code] if the system knows the specified device. This means that it sets all button and axis indices. Unknown joypads are not expected to match these constants, but you can still retrieve events from them.
</description>
</method>
<method name="is_key_pressed" qualifiers="const">
......
......@@ -13,7 +13,7 @@
</methods>
<members>
<member name="button_index" type="int" setter="set_button_index" getter="get_button_index" default="0">
Button identifier. One of the [enum JoystickList] button constants.
Button identifier. One of the [enum JoyButtonList] button constants.
</member>
<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed" default="false">
If [code]true[/code], the button's state is pressed. If [code]false[/code], the button's state is released.
......
......@@ -13,7 +13,7 @@
</methods>
<members>
<member name="axis" type="int" setter="set_axis" getter="get_axis" default="0">
Axis identifier. Use one of the [enum JoystickList] axis constants.
Axis identifier. Use one of the [enum JoyAxisList] axis constants.
</member>
<member name="axis_value" type="float" setter="set_axis_value" getter="get_axis_value" default="0.0">
Current position of the joystick on the given axis. The value ranges from [code]-1.0[/code] to [code]1.0[/code]. A value of [code]0[/code] means the axis is in its resting position.
......
......@@ -62,7 +62,7 @@
<argument index="0" name="button" type="int">
</argument>
<description>
Returns [code]true[/code] if the button at index [code]button[/code] is pressed. See [enum JoystickList], in particular the [code]JOY_VR_*[/code] constants.
Returns [code]true[/code] if the button at index [code]button[/code] is pressed. See [enum JoyButtonList].
</description>
</method>
</methods>
......
......@@ -24656,7 +24656,7 @@ msgstr ""
#: doc/classes/Input.xml:99
msgid ""
"Returns the current value of the joypad axis at given index (see [enum "
"JoystickList])."
"JoyAxisList])."
msgstr ""
#: doc/classes/Input.xml:108
......@@ -24665,7 +24665,7 @@ msgstr ""
#: doc/classes/Input.xml:117
msgid ""
"Receives a [enum JoystickList] axis and returns its equivalent name as a "
"Receives a [enum JoyAxisList] axis and returns its equivalent name as a "
"string."
msgstr ""
......@@ -24675,7 +24675,7 @@ msgstr ""
#: doc/classes/Input.xml:135
msgid ""
"Receives a gamepad button from [enum JoystickList] and returns its "
"Receives a gamepad button from [enum JoyButtonList] and returns its "
"equivalent name as a string."
msgstr ""
......@@ -24750,15 +24750,14 @@ msgstr ""
#: doc/classes/Input.xml:238
msgid ""
"Returns [code]true[/code] if you are pressing the joypad button (see [enum "
"JoystickList])."
"JoyButtonList])."
msgstr ""
#: doc/classes/Input.xml:247
msgid ""
"Returns [code]true[/code] if the system knows the specified device. This "
"means that it sets all button and axis indices exactly as defined in [enum "
"JoystickList]. Unknown joypads are not expected to match these constants, "
"but you can still retrieve events from them."
"means that it sets all button and axis indices. Unknown joypads are not "
"expected to match these constants, but you can still retrieve events from them."
msgstr ""
#: doc/classes/Input.xml:256
......@@ -25150,7 +25149,7 @@ msgid ""
msgstr ""
#: doc/classes/InputEventJoypadButton.xml:16
msgid "Button identifier. One of the [enum JoystickList] button constants."
msgid "Button identifier. One of the [enum JoyButtonList] button constants."
msgstr ""
#: doc/classes/InputEventJoypadButton.xml:19
......@@ -25178,7 +25177,7 @@ msgid ""
msgstr ""
#: doc/classes/InputEventJoypadMotion.xml:16
msgid "Axis identifier. Use one of the [enum JoystickList] axis constants."
msgid "Axis identifier. Use one of the [enum JoyAxisList] axis constants."
msgstr ""
#: doc/classes/InputEventJoypadMotion.xml:19
......@@ -57946,8 +57945,7 @@ msgstr ""
#: doc/classes/XRController3D.xml:65
msgid ""
"Returns [code]true[/code] if the button at index [code]button[/code] is "
"pressed. See [enum JoystickList], in particular the [code]JOY_VR_*[/code] "
"constants."
"pressed. See [enum JoyButtonList]."
msgstr ""
#: doc/classes/XRController3D.xml:71
......@@ -24666,7 +24666,7 @@ msgstr ""
#: doc/classes/Input.xml:99
msgid ""
"Returns the current value of the joypad axis at given index (see [enum "
"JoystickList])."
"JoyAxisList])."
msgstr ""
#: doc/classes/Input.xml:108
......@@ -24675,7 +24675,7 @@ msgstr ""
#: doc/classes/Input.xml:117
msgid ""
"Receives a [enum JoystickList] axis and returns its equivalent name as a "
"Receives a [enum JoyAxisList] axis and returns its equivalent name as a "
"string."
msgstr ""
......@@ -24685,7 +24685,7 @@ msgstr ""
#: doc/classes/Input.xml:135
msgid ""
"Receives a gamepad button from [enum JoystickList] and returns its "
"Receives a gamepad button from [enum JoyButtonList] and returns its "
"equivalent name as a string."
msgstr ""
......@@ -24760,15 +24760,14 @@ msgstr ""
#: doc/classes/Input.xml:238
msgid ""
"Returns [code]true[/code] if you are pressing the joypad button (see [enum "
"JoystickList])."
"JoyButtonList])."
msgstr ""
#: doc/classes/Input.xml:247
msgid ""
"Returns [code]true[/code] if the system knows the specified device. This "
"means that it sets all button and axis indices exactly as defined in [enum "
"JoystickList]. Unknown joypads are not expected to match these constants, "
"but you can still retrieve events from them."
"means that it sets all button and axis indices. Unknown joypads are not "
"expected to match these constants, but you can still retrieve events from them."
msgstr ""
#: doc/classes/Input.xml:256
......@@ -25160,7 +25159,7 @@ msgid ""
msgstr ""
#: doc/classes/InputEventJoypadButton.xml:16
msgid "Button identifier. One of the [enum JoystickList] button constants."
msgid "Button identifier. One of the [enum JoyButtonList] button constants."
msgstr ""
#: doc/classes/InputEventJoypadButton.xml:19
......@@ -25188,7 +25187,7 @@ msgid ""
msgstr ""
#: doc/classes/InputEventJoypadMotion.xml:16
msgid "Axis identifier. Use one of the [enum JoystickList] axis constants."
msgid "Axis identifier. Use one of the [enum JoyAxisList] axis constants."
msgstr ""
#: doc/classes/InputEventJoypadMotion.xml:19
......@@ -57956,8 +57955,7 @@ msgstr ""
#: doc/classes/XRController3D.xml:65
msgid ""
"Returns [code]true[/code] if the button at index [code]button[/code] is "
"pressed. See [enum JoystickList], in particular the [code]JOY_VR_*[/code] "
"constants."
"pressed. See [enum JoyButtonList]."
msgstr ""
#: doc/classes/XRController3D.xml:71
......@@ -43,37 +43,45 @@
ProjectSettingsEditor *ProjectSettingsEditor::singleton = nullptr;
static const char *_button_names[JOY_BUTTON_MAX] = {
"DualShock Cross, Xbox A, Nintendo B",
"DualShock Circle, Xbox B, Nintendo A",
"DualShock Square, Xbox X, Nintendo Y",
"DualShock Triangle, Xbox Y, Nintendo X",
"L, L1",
"R, R1",
"L2",
"R2",
"L3",
"R3",
"Select, DualShock Share, Nintendo -",
"Start, DualShock Options, Nintendo +",
static const char *_button_descriptions[JOY_SDL_BUTTONS] = {
"Face Bottom, DualShock Cross, Xbox A, Nintendo B",
"Face Right, DualShock Circle, Xbox B, Nintendo A",
"Face Left, DualShock Square, Xbox X, Nintendo Y",
"Face Top, DualShock Triangle, Xbox Y, Nintendo X",
"DualShock Select, Xbox Back, Nintendo -",
"Home, DualShock PS, Guide",
"Start, Nintendo +",
"Left Stick, DualShock L3, Xbox L/LS",
"Right Stick, DualShock R3, Xbox R/RS",
"Left Shoulder, DualShock L1, Xbox LB",
"Right Shoulder, DualShock R1, Xbox RB",
"D-Pad Up",
"D-Pad Down",
"D-Pad Left",
"D-Pad Right"
};
static const char *_axis_names[JOY_AXIS_MAX * 2] = {
" (Left Stick Left)",
" (Left Stick Right)",
" (Left Stick Up)",
" (Left Stick Down)",
" (Right Stick Left)",
" (Right Stick Right)",
" (Right Stick Up)",
" (Right Stick Down)",
"", "", "", "",
"", " (L2)",
"", " (R2)"
static const char *_axis_descriptions[JOY_AXIS_MAX * 2] = {
"Left Stick Left",
"Left Stick Right",
"Left Stick Up",
"Left Stick Down",
"Right Stick Left",
"Right Stick Right",
"Right Stick Up",
"Right Stick Down",
"Joystick 2 Left",
"Joystick 2 Right, Left Trigger, L2, LT",
"Joystick 2 Up",
"Joystick 2 Down, Right Trigger, R2, RT",
"Joystick 3 Left",
"Joystick 3 Right",
"Joystick 3 Up",
"Joystick 3 Down",
"Joystick 4 Left",
"Joystick 4 Right",
"Joystick 4 Up",
"Joystick 4 Down",
};
void ProjectSettingsEditor::_unhandled_input(const Ref<InputEvent> &p_event) {
......@@ -527,9 +535,9 @@ void ProjectSettingsEditor::_add_item(int p_item, Ref<InputEvent> p_exiting_even
device_index_label->set_text(TTR("Joypad Axis Index:"));
device_index->clear();
for (int i = 0; i < JOY_AXIS_MAX * 2; i++) {
String desc = _axis_names[i];
device_index->add_item(TTR("Axis") + " " + itos(i / 2) + " " + ((i & 1) ? "+" : "-") + desc);
String desc = TTR("Axis") + " " + itos(i / 2) + " " + ((i & 1) ? "+" : "-") +
" (" + TTR(_axis_descriptions[i]) + ")";
device_index->add_item(desc);
}
device_input->popup_centered(Size2(350, 95) * EDSCALE);
......@@ -548,10 +556,11 @@ void ProjectSettingsEditor::_add_item(int p_item, Ref<InputEvent> p_exiting_even
device_index_label->set_text(TTR("Joypad Button Index:"));
device_index->clear();
for (int i = 0; i < JOY_BUTTON_MAX; i++) {
device_index->add_item(itos(i) + ": " + String(_button_names[i]));
String desc = TTR("Button") + " " + itos(i);
if (i < JOY_SDL_BUTTONS)
desc += " (" + TTR(_button_descriptions[i]) + ")";
device_index->add_item(desc);
}
device_input->popup_centered(Size2(350, 95) * EDSCALE);
......@@ -792,9 +801,10 @@ void ProjectSettingsEditor::_update_actions() {
if (jb.is_valid()) {
String str = _get_device_string(jb->get_device()) + ", " + TTR("Button") + " " + itos(jb->get_button_index());
if (jb->get_button_index() >= 0 && jb->get_button_index() < JOY_BUTTON_MAX) {
str += String() + " (" + _button_names[jb->get_button_index()] + ")";
String str = _get_device_string(jb->get_device()) + ", " +
TTR("Button") + " " + itos(jb->get_button_index());
if (jb->get_button_index() >= 0 && jb->get_button_index() < JOY_SDL_BUTTONS) {
str += String() + " (" + TTR(_button_descriptions[jb->get_button_index()]) + ")";
}
action2->set_text(0, str);
......@@ -835,8 +845,9 @@ void ProjectSettingsEditor::_update_actions() {
int ax = jm->get_axis();
int n = 2 * ax + (jm->get_axis_value() < 0 ? 0 : 1);
String desc = _axis_names[n];
String str = _get_device_string(jm->get_device()) + ", " + TTR("Axis") + " " + itos(ax) + " " + (jm->get_axis_value() < 0 ? "-" : "+") + desc;
String str = _get_device_string(jm->get_device()) + ", " +
TTR("Axis") + " " + itos(ax) + " " + (jm->get_axis_value() < 0 ? "-" : "+") +
" (" + _axis_descriptions[n] + ")";
action2->set_text(0, str);
action2->set_icon(0, input_editor->get_theme_icon("JoyAxis", "EditorIcons"));
}
......
......@@ -247,37 +247,31 @@ static void on_focus_in(ViewController *view_controller, bool *is_focus_out) {
int joy_id = [self getJoyIdForController:controller];
if (element == gamepad.buttonA) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_0,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_A,
gamepad.buttonA.isPressed);
} else if (element == gamepad.buttonB) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_1,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_B,
gamepad.buttonB.isPressed);
} else if (element == gamepad.buttonX) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_2,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_X,
gamepad.buttonX.isPressed);
} else if (element == gamepad.buttonY) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_3,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_Y,
gamepad.buttonY.isPressed);
} else if (element == gamepad.leftShoulder) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_L,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_LEFT_SHOULDER,
gamepad.leftShoulder.isPressed);
} else if (element == gamepad.rightShoulder) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_R,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_RIGHT_SHOULDER,
gamepad.rightShoulder.isPressed);
} else if (element == gamepad.leftTrigger) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_L2,
gamepad.leftTrigger.isPressed);
} else if (element == gamepad.rightTrigger) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_R2,
gamepad.rightTrigger.isPressed);
} else if (element == gamepad.dpad) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_UP,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_UP,
gamepad.dpad.up.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_DOWN,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_DOWN,
gamepad.dpad.down.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_LEFT,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_LEFT,
gamepad.dpad.left.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_RIGHT,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_RIGHT,
gamepad.dpad.right.isPressed);
};
......@@ -285,20 +279,20 @@ static void on_focus_in(ViewController *view_controller, bool *is_focus_out) {
jx.min = -1;
if (element == gamepad.leftThumbstick) {
jx.value = gamepad.leftThumbstick.xAxis.value;
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_ANALOG_LX, jx);
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_AXIS_LEFT_X, jx);
jx.value = -gamepad.leftThumbstick.yAxis.value;
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_ANALOG_LY, jx);
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_AXIS_LEFT_Y, jx);
} else if (element == gamepad.rightThumbstick) {
jx.value = gamepad.rightThumbstick.xAxis.value;
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_ANALOG_RX, jx);
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_AXIS_RIGHT_X, jx);
jx.value = -gamepad.rightThumbstick.yAxis.value;
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_ANALOG_RY, jx);
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_AXIS_RIGHT_Y, jx);
} else if (element == gamepad.leftTrigger) {
jx.value = gamepad.leftTrigger.value;
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_ANALOG_L2, jx);
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_AXIS_TRIGGER_LEFT, jx);
} else if (element == gamepad.rightTrigger) {
jx.value = gamepad.rightTrigger.value;
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_ANALOG_R2, jx);
OSIPhone::get_singleton()->joy_axis(joy_id, JOY_AXIS_TRIGGER_RIGHT, jx);
};
};
} else if (controller.gamepad != nil) {
......@@ -309,31 +303,31 @@ static void on_focus_in(ViewController *view_controller, bool *is_focus_out) {
int joy_id = [self getJoyIdForController:controller];
if (element == gamepad.buttonA) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_0,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_A,
gamepad.buttonA.isPressed);
} else if (element == gamepad.buttonB) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_1,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_B,
gamepad.buttonB.isPressed);
} else if (element == gamepad.buttonX) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_2,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_X,
gamepad.buttonX.isPressed);
} else if (element == gamepad.buttonY) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_3,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_Y,
gamepad.buttonY.isPressed);
} else if (element == gamepad.leftShoulder) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_L,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_LEFT_SHOULDER,
gamepad.leftShoulder.isPressed);
} else if (element == gamepad.rightShoulder) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_R,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_RIGHT_SHOULDER,
gamepad.rightShoulder.isPressed);
} else if (element == gamepad.dpad) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_UP,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_UP,
gamepad.dpad.up.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_DOWN,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_DOWN,
gamepad.dpad.down.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_LEFT,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_LEFT,
gamepad.dpad.left.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_RIGHT,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_RIGHT,
gamepad.dpad.right.isPressed);
};
};
......@@ -347,19 +341,19 @@ static void on_focus_in(ViewController *view_controller, bool *is_focus_out) {
int joy_id = [self getJoyIdForController:controller];
if (element == gamepad.buttonA) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_0,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_A,
gamepad.buttonA.isPressed);
} else if (element == gamepad.buttonX) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_2,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_X,
gamepad.buttonX.isPressed);
} else if (element == gamepad.dpad) {
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_UP,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_UP,
gamepad.dpad.up.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_DOWN,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_DOWN,
gamepad.dpad.down.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_LEFT,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_LEFT,
gamepad.dpad.left.isPressed);
OSIPhone::get_singleton()->joy_button(joy_id, JOY_DPAD_RIGHT,
OSIPhone::get_singleton()->joy_button(joy_id, JOY_BUTTON_DPAD_RIGHT,
gamepad.dpad.right.isPressed);
};
};
......
......@@ -659,14 +659,7 @@ void DisplayServerJavaScript::process_joypads() {
for (int button = 0; button < button_count; button++) {
float value = state.analogButton[button];
if (String::utf8(state.mapping) == "standard" && (button == JOY_ANALOG_L2 || button == JOY_ANALOG_R2)) {
Input::JoyAxis joy_axis;
joy_axis.min = 0;
joy_axis.value = value;
input->joy_axis(joypad, button, joy_axis);
} else {
input->joy_button(joypad, button, value);
}
input->joy_button(joypad, button, value);
}
for (int axis = 0; axis < axis_count; axis++) {
......
......@@ -64,12 +64,12 @@ void JoypadUWP::process_controllers() {
button_mask *= 2;
}
input->joy_axis(joy.id, JOY_AXIS_0, axis_correct(reading.LeftThumbstickX));
input->joy_axis(joy.id, JOY_AXIS_1, axis_correct(reading.LeftThumbstickY, true));
input->joy_axis(joy.id, JOY_AXIS_2, axis_correct(reading.RightThumbstickX));
input->joy_axis(joy.id, JOY_AXIS_3, axis_correct(reading.RightThumbstickY, true));
input->joy_axis(joy.id, JOY_AXIS_4, axis_correct(reading.LeftTrigger, false, true));
input->joy_axis(joy.id, JOY_AXIS_5, axis_correct(reading.RightTrigger, false, true));
input->joy_axis(joy.id, JOY_AXIS_LEFT_X, axis_correct(reading.LeftThumbstickX));
input->joy_axis(joy.id, JOY_AXIS_LEFT_Y, axis_correct(reading.LeftThumbstickY, true));
input->joy_axis(joy.id, JOY_AXIS_RIGHT_X, axis_correct(reading.RightThumbstickX));
input->joy_axis(joy.id, JOY_AXIS_RIGHT_Y, axis_correct(reading.RightThumbstickY, true));
input->joy_axis(joy.id, JOY_AXIS_TRIGGER_LEFT, axis_correct(reading.LeftTrigger, false, true));
input->joy_axis(joy.id, JOY_AXIS_TRIGGER_RIGHT, axis_correct(reading.RightTrigger, false, true));
uint64_t timestamp = input->get_joy_vibration_timestamp(joy.id);
if (timestamp > joy.ff_timestamp) {
......
......@@ -347,12 +347,12 @@ void JoypadWindows::process_joypads() {
button_mask = button_mask * 2;
}
input->joy_axis(joy.id, JOY_AXIS_0, axis_correct(joy.state.Gamepad.sThumbLX, true));
input->joy_axis(joy.id, JOY_AXIS_1, axis_correct(joy.state.Gamepad.sThumbLY, true, false, true));
input->joy_axis(joy.id, JOY_AXIS_2, axis_correct(joy.state.Gamepad.sThumbRX, true));
input->joy_axis(joy.id, JOY_AXIS_3, axis_correct(joy.state.Gamepad.sThumbRY, true, false, true));
input->joy_axis(joy.id, JOY_AXIS_4, axis_correct(joy.state.Gamepad.bLeftTrigger, true, true));
input->joy_axis(joy.id, JOY_AXIS_5, axis_correct(joy.state.Gamepad.bRightTrigger, true, true));
input->joy_axis(joy.id, JOY_AXIS_LEFT_X, axis_correct(joy.state.Gamepad.sThumbLX, true));
input->joy_axis(joy.id, JOY_AXIS_LEFT_Y, axis_correct(joy.state.Gamepad.sThumbLY, true, false, true));
input->joy_axis(joy.id, JOY_AXIS_RIGHT_X, axis_correct(joy.state.Gamepad.sThumbRX, true));
input->joy_axis(joy.id, JOY_AXIS_RIGHT_Y, axis_correct(joy.state.Gamepad.sThumbRY, true, false, true));
input->joy_axis(joy.id, JOY_AXIS_TRIGGER_LEFT, axis_correct(joy.state.Gamepad.bLeftTrigger, true, true));
input->joy_axis(joy.id, JOY_AXIS_TRIGGER_RIGHT, axis_correct(joy.state.Gamepad.bRightTrigger, true, true));
joy.last_packet = joy.state.dwPacketNumber;
}
uint64_t timestamp = input->get_joy_vibration_timestamp(joy.id);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment