summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
cfee3ca)
What this means is that now, if there are no gamepads plugged in, it
will add the keyboard as a device plugged into slot #0 (CONTROLLER1).
Also, if you have any devices plugged in it will also honor whatever
choice you have made WRT the keyboard and attempt to connect it to
whichever preferred slot you have set it to.
Assuming testing goes OK, this will be the 2.1.1 release. :-D
gamepadIDSlot1 = -1;
gamepadIDSlot2 = -1;
gamepadIDSlot1 = -1;
gamepadIDSlot2 = -1;
- // Connect keyboard devices first... (N.B.: this leaves gampadIDSlot1 at -1,
- // so it can be overridden by plugged-in gamepads.)
- ConnectProfileToDevice(0);
+ // Connect the keyboard automagically only if no gamepads are plugged in.
+ // Otherwise, check after all other devices have been checked, then try to
+ // add it in.
+ if (Gamepad::numJoysticks == 0)
+ {
+ ConnectProfileToDevice(0);
+ return;
+ }
// Connect the profiles that prefer a slot, if any.
// N.B.: Conflicts are detected, but ignored. 1st controller to grab a
// Connect the profiles that prefer a slot, if any.
// N.B.: Conflicts are detected, but ignored. 1st controller to grab a
+ // Connect the keyboard device (lowest priority)
+ int slot = profile[0].preferredSlot;
+
+ if ((slot == CONTROLLER1) && (gamepadIDSlot1 == -1))
+ controller1Profile = 0;
+ else if ((slot == CONTROLLER2) && (gamepadIDSlot2 == -1))
+ controller2Profile = 0;
+ else if (slot == (CONTROLLER1 | CONTROLLER2))
+ {
+ if (gamepadIDSlot1 == -1)
+ controller1Profile = 0;
+ else if (gamepadIDSlot2 == -1)
+ controller2Profile = 0;
+ }
+
// Finally, attempt to connect profiles to controllers
ConnectProfileToController(controller1Profile, 0);
ConnectProfileToController(controller2Profile, 1);
// Finally, attempt to connect profiles to controllers
ConnectProfileToController(controller1Profile, 0);
ConnectProfileToController(controller2Profile, 1);