Added Daytona 3 stuff for boom
This commit is contained in:
parent
0b8ed332e3
commit
dcecc0c1b9
@ -1,6 +1,5 @@
|
||||
#include <StdInc.h>
|
||||
#include "Utility/InitFunction.h"
|
||||
|
||||
#include <thread>
|
||||
|
||||
static uint8_t g_fastIOValues[64];
|
||||
|
@ -23,6 +23,8 @@ HANDLE XboxOneControllerMutex[4] = { 0 };
|
||||
static unsigned short idVendor = 0x045E;
|
||||
static unsigned short idProduct = 0x02D1;
|
||||
|
||||
static bool daytonaPressStart = false;
|
||||
|
||||
int configuration = 1;
|
||||
int interface = 0;
|
||||
int endpointIn = 0x81;
|
||||
@ -72,7 +74,15 @@ DWORD WINAPI XInputGetState
|
||||
{
|
||||
XINPUT_GAMEPAD gamepadState = { 0 };
|
||||
|
||||
if (GameDetect::currentGame == GameID::Daytona3)
|
||||
gamepadState.wButtons |= *ffbOffset;
|
||||
else
|
||||
gamepadState.wButtons |= 0;
|
||||
|
||||
if (GameDetect::currentGame == GameID::Daytona3)
|
||||
{
|
||||
gamepadState.bRightTrigger = daytonaPressStart ? 0xFF : 0x00;
|
||||
}
|
||||
|
||||
if (pState->dwPacketNumber == UINT_MAX)
|
||||
pState->dwPacketNumber = 0;
|
||||
@ -267,7 +277,15 @@ DWORD WINAPI XInputGetStateEx
|
||||
{
|
||||
XINPUT_GAMEPAD gamepadState = { 0 };
|
||||
|
||||
if (GameDetect::currentGame == GameID::Daytona3)
|
||||
gamepadState.wButtons = *ffbOffset;
|
||||
else
|
||||
gamepadState.wButtons = 0;
|
||||
|
||||
if (GameDetect::currentGame == GameID::Daytona3)
|
||||
{
|
||||
gamepadState.bRightTrigger = daytonaPressStart ? 0xFF : 0x00;
|
||||
}
|
||||
|
||||
if (pState->dwPacketNumber == UINT_MAX)
|
||||
pState->dwPacketNumber = 0;
|
||||
@ -308,6 +326,10 @@ __in XINPUT_VIBRATION_EX* pVibration // The vibration information to send to
|
||||
}
|
||||
}
|
||||
|
||||
LPCWSTR libName = L"xinput1_3.dll";
|
||||
LPCWSTR daytonalibName = L"xinput9_1_0.dll";
|
||||
LPCWSTR ptrToUse;
|
||||
|
||||
static InitFunction XInputHook([]()
|
||||
{
|
||||
if (GameDetect::currentGame == GameID::PokkenTournament || GameDetect::currentGame == GameID::SchoolOfRagnarok || GameDetect::currentGame == GameID::Daytona3)
|
||||
@ -316,15 +338,20 @@ static InitFunction XInputHook([]()
|
||||
|
||||
MH_Initialize();
|
||||
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputGetState", &XInputGetState, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputSetState", &XInputSetState, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputGetCapabilities", &XInputGetCapabilities, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputEnable", &XInputEnable, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputGetDSoundAudioDeviceGuids", &XInputGetDSoundAudioDeviceGuids, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputGetBatteryInformation", &XInputGetBatteryInformation, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputGetKeystroke", &XInputGetKeystroke, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputGetStateEx", &XInputGetStateEx, NULL);
|
||||
MH_CreateHookApi(L"xinput1_3.dll", "XInputSetStateEx", &XInputSetStateEx, NULL);
|
||||
if (GameDetect::currentGame == GameID::Daytona3)
|
||||
ptrToUse = daytonalibName;
|
||||
else
|
||||
ptrToUse = libName;
|
||||
|
||||
MH_CreateHookApi(ptrToUse, "XInputGetState", &XInputGetState, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputSetState", &XInputSetState, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputGetCapabilities", &XInputGetCapabilities, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputEnable", &XInputEnable, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputGetDSoundAudioDeviceGuids", &XInputGetDSoundAudioDeviceGuids, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputGetBatteryInformation", &XInputGetBatteryInformation, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputGetKeystroke", &XInputGetKeystroke, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputGetStateEx", &XInputGetStateEx, NULL);
|
||||
MH_CreateHookApi(ptrToUse, "XInputSetStateEx", &XInputSetStateEx, NULL);
|
||||
|
||||
MH_EnableHook(MH_ALL_HOOKS);
|
||||
}
|
||||
|
@ -150,3 +150,5 @@ typedef struct _XINPUT_KEYSTROKE
|
||||
BYTE UserIndex;
|
||||
BYTE HidCode;
|
||||
} XINPUT_KEYSTROKE, *PXINPUT_KEYSTROKE;
|
||||
|
||||
extern static bool daytonaPressStart;
|
Loading…
x
Reference in New Issue
Block a user