|
@@ -459,9 +459,9 @@ void JoypadLinux::process_joypads() {
|
|
case ABS_HAT0X:
|
|
case ABS_HAT0X:
|
|
if (ev.value != 0) {
|
|
if (ev.value != 0) {
|
|
if (ev.value < 0) {
|
|
if (ev.value < 0) {
|
|
- joy->dpad |= Input::HAT_MASK_LEFT;
|
|
|
|
|
|
+ joy->dpad = (joy->dpad | Input::HAT_MASK_LEFT) & ~Input::HAT_MASK_RIGHT;
|
|
} else {
|
|
} else {
|
|
- joy->dpad |= Input::HAT_MASK_RIGHT;
|
|
|
|
|
|
+ joy->dpad = (joy->dpad | Input::HAT_MASK_RIGHT) & ~Input::HAT_MASK_LEFT;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
joy->dpad &= ~(Input::HAT_MASK_LEFT | Input::HAT_MASK_RIGHT);
|
|
joy->dpad &= ~(Input::HAT_MASK_LEFT | Input::HAT_MASK_RIGHT);
|
|
@@ -473,9 +473,9 @@ void JoypadLinux::process_joypads() {
|
|
case ABS_HAT0Y:
|
|
case ABS_HAT0Y:
|
|
if (ev.value != 0) {
|
|
if (ev.value != 0) {
|
|
if (ev.value < 0) {
|
|
if (ev.value < 0) {
|
|
- joy->dpad |= Input::HAT_MASK_UP;
|
|
|
|
|
|
+ joy->dpad = (joy->dpad | Input::HAT_MASK_UP) & ~Input::HAT_MASK_DOWN;
|
|
} else {
|
|
} else {
|
|
- joy->dpad |= Input::HAT_MASK_DOWN;
|
|
|
|
|
|
+ joy->dpad = (joy->dpad | Input::HAT_MASK_DOWN) & ~Input::HAT_MASK_UP;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
joy->dpad &= ~(Input::HAT_MASK_UP | Input::HAT_MASK_DOWN);
|
|
joy->dpad &= ~(Input::HAT_MASK_UP | Input::HAT_MASK_DOWN);
|