summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authornitsuja <nitsuja-@hotmail.com>2011-12-18 19:30:04 -0800
committernitsuja <nitsuja-@hotmail.com>2011-12-18 19:47:11 -0800
commit4a88d5ae9318decd4bf76152200fbf92b3bdb035 (patch)
treece7bf084f718df5d017f16b79eb145554ed2b517 /Source
parent15dac4584f74bf925d52e5416c558b81e8916b5c (diff)
fix for wiimote dying if you use savesetates too fast
(by dying I mean all wiimote slots permanently disconnecting until emulation reset)
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp2
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp
index 24da87c257..dbd450785d 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp
@@ -129,7 +129,7 @@ void CWII_IPC_HLE_Device_usb_oh1_57e_305::DoState(PointerWrap &p)
// Reset the connection of all connected wiimotes
for (unsigned int i = 0; i < 4; i++)
{
- if (m_WiiMotes[i].IsConnected())
+ if (!m_WiiMotes[i].IsInactive())
{
m_WiiMotes[i].Activate(false);
m_WiiMotes[i].Activate(true);
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h
index 21a7d7e1bd..f3180c7dc9 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h
@@ -59,6 +59,7 @@ public:
// we really have to clean all this code
bool IsConnected() const { return m_ConnectionState == CONN_COMPLETE; }
+ bool IsInactive() const { return m_ConnectionState == CONN_INACTIVE; }
bool LinkChannel();
void ResetChannels();
void Activate(bool ready);