Update to new common-c to show the correct number of controllers

This commit is contained in:
Iwan Timmer
2017-02-26 23:34:51 +01:00
parent aa6f297707
commit 3407fc5b17
3 changed files with 6 additions and 4 deletions
+1 -1
View File
@@ -156,7 +156,7 @@ static bool evdev_handle_event(struct input_event *ev, struct input_device *dev)
if (dev->controllerId < 0) if (dev->controllerId < 0)
dev->controllerId = 0; dev->controllerId = 0;
} }
LiSendMultiControllerEvent(dev->controllerId, dev->buttonFlags, dev->leftTrigger, dev->rightTrigger, dev->leftStickX, dev->leftStickY, dev->rightStickX, dev->rightStickY); LiSendMultiControllerEvent(dev->controllerId, assignedControllerIds, dev->buttonFlags, dev->leftTrigger, dev->rightTrigger, dev->leftStickX, dev->leftStickY, dev->rightStickX, dev->rightStickY);
dev->gamepadModified = false; dev->gamepadModified = false;
} }
break; break;
+4 -2
View File
@@ -41,6 +41,7 @@ typedef struct _GAMEPAD_STATE {
static GAMEPAD_STATE gamepads[4]; static GAMEPAD_STATE gamepads[4];
static int keyboard_modifiers; static int keyboard_modifiers;
static int activeGamepadMask = 0;
void sdlinput_init() { void sdlinput_init() {
memset(gamepads, 0, sizeof(gamepads)); memset(gamepads, 0, sizeof(gamepads));
@@ -63,6 +64,7 @@ static PGAMEPAD_STATE get_gamepad(SDL_JoystickID sdl_id) {
gamepads[i].sdl_id = sdl_id; gamepads[i].sdl_id = sdl_id;
gamepads[i].id = i; gamepads[i].id = i;
gamepads[i].initialized = true; gamepads[i].initialized = true;
activeGamepadMask |= (1 << i);
return &gamepads[i]; return &gamepads[i];
} else if (gamepads[i].sdl_id == sdl_id) } else if (gamepads[i].sdl_id == sdl_id)
return &gamepads[i]; return &gamepads[i];
@@ -163,7 +165,7 @@ int sdlinput_handle_event(SDL_Event* event) {
default: default:
return SDL_NOTHING; return SDL_NOTHING;
} }
LiSendMultiControllerEvent(gamepad->id, gamepad->buttons, gamepad->leftTrigger, gamepad->rightTrigger, gamepad->leftStickX, gamepad->leftStickY, gamepad->rightStickX, gamepad->rightStickY); LiSendMultiControllerEvent(gamepad->id, activeGamepadMask, gamepad->buttons, gamepad->leftTrigger, gamepad->rightTrigger, gamepad->leftStickX, gamepad->leftStickY, gamepad->rightStickX, gamepad->rightStickY);
break; break;
case SDL_CONTROLLERBUTTONDOWN: case SDL_CONTROLLERBUTTONDOWN:
case SDL_CONTROLLERBUTTONUP: case SDL_CONTROLLERBUTTONUP:
@@ -222,7 +224,7 @@ int sdlinput_handle_event(SDL_Event* event) {
else else
gamepad->buttons &= ~button; gamepad->buttons &= ~button;
LiSendMultiControllerEvent(gamepad->id, gamepad->buttons, gamepad->leftTrigger, gamepad->rightTrigger, gamepad->leftStickX, gamepad->leftStickY, gamepad->rightStickX, gamepad->rightStickY); LiSendMultiControllerEvent(gamepad->id, activeGamepadMask, gamepad->buttons, gamepad->leftTrigger, gamepad->rightTrigger, gamepad->leftStickX, gamepad->leftStickY, gamepad->rightStickX, gamepad->rightStickY);
break; break;
} }
return SDL_NOTHING; return SDL_NOTHING;