diff options
| author | skidau <skidau@gmail.com> | 2015-01-07 17:12:30 +1100 |
|---|---|---|
| committer | skidau <skidau@gmail.com> | 2015-01-07 17:12:30 +1100 |
| commit | 0d952534c700bcb36967c8c4f3fcd08d25e7ea5a (patch) | |
| tree | 8772485ad4d9456d491ddf347bdbed14cb32bcba /Source/Core | |
| parent | ab87309917f7f7c10c74bf3aaf64cc36b0338289 (diff) | |
Corrects the origin in the case where a GC Controller has been set in the controller properties, but a controller has not been plugged into the adapter.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/HW/SI_DeviceGCController.cpp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/Source/Core/Core/HW/SI_DeviceGCController.cpp b/Source/Core/Core/HW/SI_DeviceGCController.cpp index 6901f89fb5..a656b7f878 100644 --- a/Source/Core/Core/HW/SI_DeviceGCController.cpp +++ b/Source/Core/Core/HW/SI_DeviceGCController.cpp @@ -24,14 +24,17 @@ CSIDevice_GCController::CSIDevice_GCController(SIDevices device, int _iDeviceNum , m_TButtonCombo(0) , m_LastButtonCombo(COMBO_NONE) { + GCPadStatus pad_origin; memset(&m_Origin, 0, sizeof(SOrigin)); - m_Origin.uButton = 0x00; - m_Origin.uOriginStickX = 0x80; // center - m_Origin.uOriginStickY = 0x80; - m_Origin.uSubStickStickX = 0x80; - m_Origin.uSubStickStickY = 0x80; - m_Origin.uTrigger_L = 0x1F; // 0-30 is the lower deadzone - m_Origin.uTrigger_R = 0x1F; + memset(&pad_origin, 0, sizeof(GCPadStatus)); + + pad_origin.button = 0x00; + pad_origin.stickX = 0x80; // center + pad_origin.stickY = 0x80; + pad_origin.substickX = 0x80; + pad_origin.substickY = 0x80; + pad_origin.triggerLeft = 0x1F; // 0-30 is the lower deadzone + pad_origin.triggerRight = 0x1F; // Dunno if we need to do this, game/lib should set it? m_Mode = 0x03; @@ -39,19 +42,17 @@ CSIDevice_GCController::CSIDevice_GCController(SIDevices device, int _iDeviceNum #if defined(__LIBUSB__) || defined (_WIN32) if (SI_GCAdapter::IsDetected()) { - GCPadStatus pad_origin; - memset(&pad_origin, 0, sizeof(pad_origin)); SI_GCAdapter::Input(ISIDevice::m_iDeviceNumber, &pad_origin); - m_Origin.uButton = pad_origin.button; - m_Origin.uOriginStickX = pad_origin.stickX; - m_Origin.uOriginStickY = pad_origin.stickY; - m_Origin.uSubStickStickX = pad_origin.substickX; - m_Origin.uSubStickStickY = pad_origin.substickY; - m_Origin.uTrigger_L = pad_origin.triggerLeft; - m_Origin.uTrigger_R = pad_origin.triggerRight; } #endif + m_Origin.uButton = pad_origin.button; + m_Origin.uOriginStickX = pad_origin.stickX; + m_Origin.uOriginStickY = pad_origin.stickY; + m_Origin.uSubStickStickX = pad_origin.substickX; + m_Origin.uSubStickStickY = pad_origin.substickY; + m_Origin.uTrigger_L = pad_origin.triggerLeft; + m_Origin.uTrigger_R = pad_origin.triggerRight; } int CSIDevice_GCController::RunBuffer(u8* _pBuffer, int _iLength) |
