diff --git a/4J_Input/Windows64/INP_ForceFeedback.cpp b/4J_Input/Windows64/INP_ForceFeedback.cpp index 02fa3b4..c9b6e18 100644 --- a/4J_Input/Windows64/INP_ForceFeedback.cpp +++ b/4J_Input/Windows64/INP_ForceFeedback.cpp @@ -23,6 +23,7 @@ SOFTWARE. */ #include "INP_ForceFeedback.h" +#include "INP_Main.h" void CForceFeedback::Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC) { @@ -109,7 +110,7 @@ void CForceFeedback::Tick(void) while (pRumbleNode) { RUMBLE_EFFECT *pRumble = pRumbleNode->GetDataAs(); - SDL_Gamepad* m_pGamepad = SDL_GetGamepadFromPlayerIndex(pRumble->m_Pad); + SDL_Gamepad* m_pGamepad = InternalInputManager.m_Joypads[pRumble->m_Pad].m_pGamepad; if (pRumble->m_TimeLeft <= qwCurrentTime.QuadPart) { diff --git a/4J_Input/Windows64/INP_Main.cpp b/4J_Input/Windows64/INP_Main.cpp index 7435bd4..736559e 100644 --- a/4J_Input/Windows64/INP_Main.cpp +++ b/4J_Input/Windows64/INP_Main.cpp @@ -148,9 +148,13 @@ void CInput::SetJoypadValues(JOYPAD *pThisPad) pThisPad->m_uiButtons |= _360_JOY_BUTTON_BACK; } - if (SDL_GetGamepadButton(pGamePad, SDL_GAMEPAD_BUTTON_TOUCHPAD)) + //str1k3r - Only check the touchpad if we have one + if (SDL_GetNumGamepadTouchpads(pGamePad) > 0) { - pThisPad->m_uiButtons |= _PS_JOY_BUTTON_TOUCHPAD; + if (SDL_GetGamepadButton(pGamePad, SDL_GAMEPAD_BUTTON_TOUCHPAD)) + { + pThisPad->m_uiButtons |= _PS_JOY_BUTTON_TOUCHPAD; + } } if (SDL_GetGamepadButton(pGamePad, SDL_GAMEPAD_BUTTON_LEFT_STICK))