diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-03-28 03:53:42 +0100 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-03-28 03:53:42 +0100 |
commit | c953230237d3ac09b9e3fbfaf19b204f0cc568f1 (patch) | |
tree | b42ccf20e3d12d2714464ba34b0c781b5827fe19 /src | |
parent | removed windows.h for most .cpps (diff) | |
download | re3-c953230237d3ac09b9e3fbfaf19b204f0cc568f1.tar re3-c953230237d3ac09b9e3fbfaf19b204f0cc568f1.tar.gz re3-c953230237d3ac09b9e3fbfaf19b204f0cc568f1.tar.bz2 re3-c953230237d3ac09b9e3fbfaf19b204f0cc568f1.tar.lz re3-c953230237d3ac09b9e3fbfaf19b204f0cc568f1.tar.xz re3-c953230237d3ac09b9e3fbfaf19b204f0cc568f1.tar.zst re3-c953230237d3ac09b9e3fbfaf19b204f0cc568f1.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/Pad.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp index 9a911aa4..87f45b9f 100644 --- a/src/core/Pad.cpp +++ b/src/core/Pad.cpp @@ -7,7 +7,7 @@ #include "common.h" #ifdef XINPUT #include <Xinput.h> -#pragma comment( lib, "Xinput.lib" ) +#pragma comment( lib, "Xinput9_1_0.lib" ) #endif #include "patcher.h" #include "Pad.h" @@ -590,6 +590,24 @@ void CPad::AffectFromXinput(uint32 pad) PCTempJoyState.RightStickX = (int32)(rx * 128.0f); PCTempJoyState.RightStickY = (int32)(ry * 128.0f); } + + XINPUT_VIBRATION VibrationState; + + memset(&VibrationState, 0, sizeof(XINPUT_VIBRATION)); + + uint16 iLeftMotor = (uint16)((float)ShakeFreq / 255.0f * (float)0xffff); + uint16 iRightMotor = (uint16)((float)ShakeFreq / 255.0f * (float)0xffff); + + if (ShakeDur < CTimer::GetTimeStepInMilliseconds()) + ShakeDur = 0; + else + ShakeDur -= CTimer::GetTimeStepInMilliseconds(); + if (ShakeDur == 0) ShakeFreq = 0; + + VibrationState.wLeftMotorSpeed = iLeftMotor; + VibrationState.wRightMotorSpeed = iRightMotor; + + XInputSetState(pad, &VibrationState); } } #endif @@ -617,6 +635,7 @@ void CPad::UpdatePads(void) if ( bUpdate ) { GetPad(0)->Update(0); + GetPad(1)->Update(0); } #if defined(MASTER) && !defined(XINPUT) |