From 194761fe663bdaacdd88631118b79f649997b7af Mon Sep 17 00:00:00 2001 From: zilmar Date: Sun, 22 Feb 2015 16:50:16 +1100 Subject: [PATCH] Dynamic link XInputSetState --- Source/nragev20/XInputController.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Source/nragev20/XInputController.cpp b/Source/nragev20/XInputController.cpp index 1ede82ac5..b093a7f08 100644 --- a/Source/nragev20/XInputController.cpp +++ b/Source/nragev20/XInputController.cpp @@ -309,7 +309,24 @@ void VibrateXInputController( DWORD nController, int LeftMotorVal, int RightMoto vibration.wLeftMotorSpeed = LeftMotorVal; vibration.wRightMotorSpeed = RightMotorVal; - XInputSetState( nController, &vibration ); + HMODULE hInput = LoadLibrary("Xinput1_4.dll"); + if (hInput == NULL) + { + hInput = LoadLibrary("Xinput9_1_0.dll"); + } + if (hInput == NULL) + { + return; + } + + DWORD (WINAPI * fnXInputSetState) ( DWORD dwUserIndex, XINPUT_VIBRATION* pVibration ) = NULL; + fnXInputSetState = (DWORD(WINAPI *) (DWORD, XINPUT_VIBRATION*))GetProcAddress(hInput, "XInputSetState"); + if (fnXInputSetState == NULL) + { + return; + } + + fnXInputSetState(nController, &vibration); } bool InitiateXInputController( LPXCONTROLLER gController, int nControl )