Attempt to reduce Input leaking

To avoid "the Controller is leaking" situation, there's now a Gamepad stat management that should reset Controller state based on connected controller.
This commit is contained in:
AL2009man 2025-03-06 20:09:24 -05:00
parent a96fc60dcd
commit 458938c2ae

View file

@ -82,6 +82,11 @@ public:
return controller;
}
void ClearState()
{
memset(&state, 0, sizeof(state));
}
void PollAxis()
{
if (!CanPoll())
@ -184,6 +189,11 @@ inline Controller* FindController(int which)
static void SetControllerInputDevice(Controller* controller)
{
if (g_activeController && g_activeController != controller)
{
g_activeController->ClearState();
}
g_activeController = controller;
if (App::s_isLoading)
@ -415,3 +425,4 @@ uint32_t hid::GetCapabilities(uint32_t dwUserIndex, XAMINPUT_CAPABILITIES* pCaps
return ERROR_SUCCESS;
}