diff options
author | Andreas Haas <27thLiz@gmail.com> | 2020-07-31 20:16:51 +0200 |
---|---|---|
committer | Andreas Haas <27thLiz@gmail.com> | 2020-07-31 20:16:51 +0200 |
commit | 802a0316c56c954d10c0d7f0c7bb44f3298d2c8f (patch) | |
tree | 4c42ab7c4df2cd5451267c307270ed12dc285079 /platform/windows | |
parent | 7488b07220fc73df5ed4babf2c9bf53f2fa1bf0e (diff) |
DirectInput: use correct joypad id
Previously `joypad_count` was used as the index into the d_joypads array when initializing a new gamepad.
This caused the accidental override of an already connected device when a gamepad with a lower id was disconnected and connected again.
fixes #17566
Diffstat (limited to 'platform/windows')
-rw-r--r-- | platform/windows/joypad_windows.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/platform/windows/joypad_windows.cpp b/platform/windows/joypad_windows.cpp index 65caee3035..d1454c9096 100644 --- a/platform/windows/joypad_windows.cpp +++ b/platform/windows/joypad_windows.cpp @@ -146,8 +146,8 @@ bool JoypadWindows::setup_dinput_joypad(const DIDEVICEINSTANCE *instance) { if (have_device(instance->guidInstance) || num == -1) return false; - d_joypads[joypad_count] = dinput_gamepad(); - dinput_gamepad *joy = &d_joypads[joypad_count]; + d_joypads[num] = dinput_gamepad(); + dinput_gamepad *joy = &d_joypads[num]; const DWORD devtype = (instance->dwDevType & 0xFF); @@ -171,7 +171,7 @@ bool JoypadWindows::setup_dinput_joypad(const DIDEVICEINSTANCE *instance) { WORD version = 0; sprintf_s(uid, "%04x%04x%04x%04x%04x%04x%04x%04x", type, 0, vendor, 0, product, 0, version, 0); - id_to_change = joypad_count; + id_to_change = num; slider_count = 0; joy->di_joy->SetDataFormat(&c_dfDIJoystick2); |