- if (count_bound_keys(opts[sel].mask, player_idx, joy) >= 1) // disallow combos for usbjoy\r
- currentConfig.JoyBinds[joy-1][i] &= ~opts[sel].mask;\r
- else currentConfig.JoyBinds[joy-1][i] ^= opts[sel].mask;\r
- if (player_idx >= 0 && currentConfig.JoyBinds[joy-1][i] & opts[sel].mask) {\r
- currentConfig.JoyBinds[joy-1][i] &= ~(3 << 16);\r
- currentConfig.JoyBinds[joy-1][i] |= player_idx << 16;\r
+ int *bind = ¤tConfig.JoyBinds[joy-1][i];\r
+ if ((*bind & opts[sel].mask) && (player_idx < 0 || player_idx == ((*bind>>16)&3)))\r
+ currentConfig.JoyBinds[joy-1][i] &= ~opts[sel].mask;\r
+ else {\r
+ // override\r
+ unbind_action(opts[sel].mask, player_idx, joy);\r
+ *bind = opts[sel].mask;\r
+ if (player_idx >= 0) *bind |= player_idx << 16;\r