mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
InputSystem: fixup enumerants and controller structs
Enumerants: * ButtonCode_t::JOYSTICK_MAX_BUTTON_COUNT = 32 (previously 26, incorrect...). * AnalogCode_t::JOYSTICK_FIRST_AXIS = 2 (previously 4, incorrect...). * Added: ButtonCode_t::KEY_CREDITSIGN (k104, last key). * Fixed up Xbox controller enums. Structs xdevice_t: * Added partially reversed unkownhiddevice_t structure (used for non-xbox hardware). General: * Added static assertions for structure sizes.
This commit is contained in:
parent
94d01c39b3
commit
b72f02d123
@ -43,6 +43,9 @@ typedef enum
|
||||
XK_STICK2_LEFT,
|
||||
XK_STICK2_RIGHT,
|
||||
|
||||
XK_UP_DOWN,
|
||||
XK_LEFT_RIGHT,
|
||||
|
||||
XK_MAX_KEYS,
|
||||
} xKey_t;
|
||||
|
||||
|
@ -19,6 +19,8 @@ private:
|
||||
INPUT_STATE_CURRENT,
|
||||
|
||||
INPUT_STATE_COUNT,
|
||||
|
||||
BUTTON_EVENT_COUNT = 128
|
||||
};
|
||||
|
||||
struct xdevice_t
|
||||
@ -31,20 +33,38 @@ private:
|
||||
float rightTriggerMotor;
|
||||
};
|
||||
|
||||
struct unkownhiddevice_t
|
||||
{
|
||||
struct state_t
|
||||
{
|
||||
SRWLOCK lock;
|
||||
char unk0[56];
|
||||
xvibration_t vibration;
|
||||
char unk1[48];
|
||||
};
|
||||
|
||||
// Name might be incorrect!
|
||||
state_t states[INPUT_STATE_COUNT];
|
||||
HANDLE hThread0;
|
||||
HANDLE hthread1;
|
||||
};
|
||||
|
||||
int userId;
|
||||
char active;
|
||||
XINPUT_STATE states[INPUT_STATE_COUNT];
|
||||
int newState;
|
||||
_BYTE gap6[20];
|
||||
xKey_t lastStickKeys[MAX_JOYSTICK_AXES-2]; // -2 as U and V aren't polled.
|
||||
int unk0;
|
||||
bool pendingRumbleUpdate;
|
||||
_BYTE gap41[3];
|
||||
xvibration_t vibration;
|
||||
bool bUnk0;
|
||||
char field_55;
|
||||
bool isXbox360Gamepad;
|
||||
bool nonXboxDevice; // uses unknownHidDevice when set
|
||||
_BYTE gap56[42];
|
||||
int field_80;
|
||||
_BYTE gap84[316];
|
||||
unkownhiddevice_t unknownHidDevice;
|
||||
_BYTE gap190[42];
|
||||
};
|
||||
static_assert(sizeof(xdevice_t) == 0x1C0);
|
||||
|
||||
struct appKey_t
|
||||
{
|
||||
@ -56,7 +76,7 @@ private:
|
||||
{
|
||||
// Analog states
|
||||
CBitVec<BUTTON_CODE_LAST> m_ButtonState;
|
||||
int m_pAnalogValue[JOYSTICK_MAX_BUTTON_COUNT];
|
||||
int m_pAnalogValue[ANALOG_CODE_LAST];
|
||||
};
|
||||
|
||||
|
||||
@ -90,7 +110,7 @@ private:
|
||||
int m_AnalogEventTypes[JOYSTICK_AXIS_BUTTON_COUNT];
|
||||
|
||||
// Button events
|
||||
InputEvent_t m_Events[128];
|
||||
InputEvent_t m_Events[BUTTON_EVENT_COUNT];
|
||||
InputEvent_t m_CurrentEvent;
|
||||
|
||||
DWORD m_StartupTimeTick;
|
||||
@ -104,7 +124,7 @@ private:
|
||||
|
||||
// Xbox controller info
|
||||
int m_nJoystickCount;
|
||||
appKey_t m_appXKeys[XUSER_MAX_COUNT][XK_MAX_KEYS+2];
|
||||
appKey_t m_appXKeys[XUSER_MAX_COUNT][XK_MAX_KEYS];
|
||||
char pad_unk[16];
|
||||
xdevice_t m_XDevices[XUSER_MAX_COUNT];
|
||||
|
||||
@ -137,6 +157,7 @@ private:
|
||||
bool m_bIgnoreLocalJoystick;
|
||||
InputCursorHandle_t m_hCursor;
|
||||
};
|
||||
static_assert(sizeof(CInputSystem) == 0x18E8);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
extern CInputSystem* g_pInputSystem;
|
||||
|
@ -23,9 +23,7 @@
|
||||
enum AnalogCode_t
|
||||
{
|
||||
ANALOG_CODE_INVALID = -1,
|
||||
MOUSE_X = 0,
|
||||
MOUSE_Y,
|
||||
MOUSE_XY, // Invoked when either x or y changes
|
||||
MOUSE_XY = 0, // Invoked when either x or y changes
|
||||
MOUSE_WHEEL,
|
||||
|
||||
JOYSTICK_FIRST_AXIS,
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
enum
|
||||
{
|
||||
JOYSTICK_MAX_BUTTON_COUNT = XK_MAX_KEYS,
|
||||
JOYSTICK_MAX_BUTTON_COUNT = 32,
|
||||
JOYSTICK_POV_BUTTON_COUNT = 4,
|
||||
JOYSTICK_AXIS_BUTTON_COUNT = MAX_JOYSTICK_AXES * 2,
|
||||
};
|
||||
@ -134,8 +134,9 @@ enum ButtonCode_t
|
||||
KEY_CAPSLOCKTOGGLE,
|
||||
KEY_NUMLOCKTOGGLE,
|
||||
KEY_SCROLLLOCKTOGGLE,
|
||||
KEY_CREDITSIGN,
|
||||
|
||||
KEY_LAST = KEY_SCROLLLOCKTOGGLE,
|
||||
KEY_LAST = KEY_CREDITSIGN,
|
||||
KEY_COUNT = KEY_LAST - KEY_FIRST + 1,
|
||||
|
||||
// Mouse
|
||||
@ -162,40 +163,48 @@ enum ButtonCode_t
|
||||
JOYSTICK_FIRST_AXIS_BUTTON,
|
||||
JOYSTICK_LAST_AXIS_BUTTON = JOYSTICK_AXIS_BUTTON_INTERNAL(MAX_JOYSTICKS - 1, JOYSTICK_AXIS_BUTTON_COUNT - 1),
|
||||
|
||||
JOYSTICK_LAST = JOYSTICK_LAST_AXIS_BUTTON,
|
||||
// New in R5
|
||||
JOYSTICK_UP_DOWN,
|
||||
JOYSTICK_LEFT_RIGHT,
|
||||
|
||||
JOYSTICK_LAST = JOYSTICK_LEFT_RIGHT,
|
||||
|
||||
BUTTON_CODE_LAST,
|
||||
BUTTON_CODE_COUNT = BUTTON_CODE_LAST - KEY_FIRST + 1,
|
||||
|
||||
// Helpers for XBox
|
||||
KEY_XBUTTON_UP = JOYSTICK_FIRST_POV_BUTTON, // POV buttons
|
||||
KEY_XBUTTON_DOWN,
|
||||
KEY_XBUTTON_LEFT,
|
||||
KEY_XBUTTON_RIGHT,
|
||||
KEY_XBUTTON_START,
|
||||
KEY_XBUTTON_BACK,
|
||||
KEY_XBUTTON_STICK1,
|
||||
KEY_XBUTTON_STICK2,
|
||||
|
||||
KEY_XBUTTON_A = JOYSTICK_FIRST_BUTTON, // Buttons
|
||||
// Helpers for XBox 360
|
||||
KEY_XBUTTON_A = JOYSTICK_FIRST_BUTTON, // Buttons
|
||||
KEY_XBUTTON_B,
|
||||
KEY_XBUTTON_X,
|
||||
KEY_XBUTTON_Y,
|
||||
KEY_XBUTTON_LEFT_SHOULDER,
|
||||
KEY_XBUTTON_RIGHT_SHOULDER,
|
||||
|
||||
KEY_XBUTTON_LTRIGGER_PARTIAL,
|
||||
KEY_XBUTTON_BACK,
|
||||
KEY_XBUTTON_START,
|
||||
KEY_XBUTTON_STICK1,
|
||||
KEY_XBUTTON_STICK2,
|
||||
KEY_XBUTTON_INACTIVE_START,
|
||||
KEY_XBUTTON_LTRIGGER_FULL,
|
||||
KEY_XBUTTON_RTRIGGER_PARTIAL,
|
||||
KEY_XBUTTON_RTRIGGER_FULL,
|
||||
KEY_XBUTTON_RELOAD,
|
||||
KEY_XBUTTON_TRIGGER,
|
||||
KEY_XBUTTON_PUMP_ACTION,
|
||||
KEY_XBUTTON_ROLL_RIGHT,
|
||||
KEY_XBUTTON_ROLL_LEFT,
|
||||
|
||||
KEY_XSTICK1_UP = JOYSTICK_FIRST_AXIS_BUTTON, // YAXIS NEGATIVE
|
||||
KEY_XSTICK1_DOWN, // YAXIS POSITIVE
|
||||
KEY_XSTICK1_LEFT, // XAXIS NEGATIVE
|
||||
KEY_XSTICK1_RIGHT, // XAXIS POSITIVE
|
||||
KEY_XBUTTON_UP = JOYSTICK_FIRST_POV_BUTTON, // POV buttons
|
||||
KEY_XBUTTON_RIGHT,
|
||||
KEY_XBUTTON_DOWN,
|
||||
KEY_XBUTTON_LEFT,
|
||||
|
||||
KEY_XSTICK2_UP, // VAXIS NEGATIVE
|
||||
KEY_XSTICK2_DOWN, // VAXIS POSITIVE
|
||||
KEY_XSTICK2_LEFT, // UAXIS NEGATIVE
|
||||
KEY_XSTICK2_RIGHT, // UAXIS POSITIVE
|
||||
KEY_XSTICK1_RIGHT = JOYSTICK_FIRST_AXIS_BUTTON, // XAXIS POSITIVE
|
||||
KEY_XSTICK1_LEFT, // XAXIS NEGATIVE
|
||||
KEY_XSTICK1_DOWN, // YAXIS POSITIVE
|
||||
KEY_XSTICK1_UP, // YAXIS NEGATIVE
|
||||
KEY_XBUTTON_LTRIGGER, // ZAXIS POSITIVE
|
||||
KEY_XBUTTON_RTRIGGER, // ZAXIS NEGATIVE
|
||||
KEY_XSTICK2_RIGHT, // UAXIS POSITIVE
|
||||
KEY_XSTICK2_LEFT, // UAXIS NEGATIVE
|
||||
KEY_XSTICK2_DOWN, // VAXIS POSITIVE
|
||||
KEY_XSTICK2_UP, // VAXIS NEGATIVE
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user