Fix active gamepad mask when multi-controller is disabled

This commit is contained in:
Cameron Gutman 2017-02-06 19:26:05 -08:00
parent 7df1a39fcb
commit f612ec80e2

View File

@ -132,7 +132,7 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD
private void releaseControllerNumber(GenericControllerContext context) { private void releaseControllerNumber(GenericControllerContext context) {
// If this device sent data as a gamepad, zero the values before removing // If this device sent data as a gamepad, zero the values before removing
if (context.assignedControllerNumber) { if (context.assignedControllerNumber) {
conn.sendControllerInput(context.controllerNumber, currentControllers, conn.sendControllerInput(context.controllerNumber, getActiveControllerMask(),
(short) 0, (short) 0,
(byte) 0, (byte) 0, (byte) 0, (byte) 0,
(short) 0, (short) 0, (short) 0, (short) 0,
@ -459,6 +459,16 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD
} }
} }
private short getActiveControllerMask() {
if (multiControllerEnabled) {
return currentControllers;
}
else {
// Only Player 1 is active with multi-controller disabled
return 1;
}
}
private void sendControllerInputPacket(GenericControllerContext originalContext) { private void sendControllerInputPacket(GenericControllerContext originalContext) {
assignControllerNumberIfNeeded(originalContext); assignControllerNumberIfNeeded(originalContext);
@ -538,11 +548,11 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD
} }
} }
conn.sendControllerInput(controllerNumber, currentControllers, conn.sendControllerInput(controllerNumber, getActiveControllerMask(),
(short)0, (byte)0, (byte)0, (short)0, (short)0, (short)0, (short)0); (short)0, (byte)0, (byte)0, (short)0, (short)0, (short)0, (short)0);
} }
else { else {
conn.sendControllerInput(controllerNumber, currentControllers, conn.sendControllerInput(controllerNumber, getActiveControllerMask(),
inputMap, inputMap,
leftTrigger, rightTrigger, leftTrigger, rightTrigger,
leftStickX, leftStickY, leftStickX, leftStickY,