void I_PollXInputGamepad(void) { #if defined(WIN32) if (gamepad && !noinput) { XINPUT_STATE state; XINPUT_GAMEPAD Gamepad; ZeroMemory(&state, sizeof(XINPUT_STATE)); pXInputGetState(0, &state); Gamepad = state.Gamepad; gamepadbuttons = (Gamepad.wButtons | GAMEPAD_LEFT_TRIGGER * (Gamepad.bLeftTrigger > XINPUT_GAMEPAD_TRIGGER_THRESHOLD) | GAMEPAD_RIGHT_TRIGGER * (Gamepad.bRightTrigger > XINPUT_GAMEPAD_TRIGGER_THRESHOLD)); if (damagevibrationtics) if (!--damagevibrationtics && !weaponvibrationtics) XInputVibration(idlemotorspeed); if (weaponvibrationtics) if (!--weaponvibrationtics && !damagevibrationtics) XInputVibration(idlemotorspeed); if (gamepadbuttons) { vibrate = true; idclev = false; idmus = false; if (idbehold) { message_clearable = true; HU_ClearMessages(); idbehold = false; } } if (gp_sensitivity || menuactive || (gamepadbuttons & gamepadmenu)) { event_t ev; ev.type = ev_gamepad; D_PostEvent(&ev); gamepadthumbsfunc(Gamepad.sThumbLX, Gamepad.sThumbLY, Gamepad.sThumbRX, Gamepad.sThumbRY); } else { gamepadbuttons = 0; gamepadthumbLX = 0; gamepadthumbLY = 0; gamepadthumbRX = 0; } } #endif }
void I_PollDirectInputGamepad(void) { if (gamepad && !noinput) { int hat = SDL_JoystickGetHat(gamepad, 0); gamepadbuttons = (GAMEPAD_X * SDL_JoystickGetButton(gamepad, 0) | GAMEPAD_A * SDL_JoystickGetButton(gamepad, 1) | GAMEPAD_B * SDL_JoystickGetButton(gamepad, 2) | GAMEPAD_Y * SDL_JoystickGetButton(gamepad, 3) | GAMEPAD_LEFT_SHOULDER * SDL_JoystickGetButton(gamepad, 4) | GAMEPAD_RIGHT_SHOULDER * SDL_JoystickGetButton(gamepad, 5) | GAMEPAD_LEFT_TRIGGER * SDL_JoystickGetButton(gamepad, 6) | GAMEPAD_RIGHT_TRIGGER * SDL_JoystickGetButton(gamepad, 7) | GAMEPAD_BACK * SDL_JoystickGetButton(gamepad, 8) | GAMEPAD_START * SDL_JoystickGetButton(gamepad, 9) | GAMEPAD_LEFT_THUMB * SDL_JoystickGetButton(gamepad, 10) | GAMEPAD_RIGHT_THUMB * SDL_JoystickGetButton(gamepad, 11) | GAMEPAD_DPAD_UP * (hat & SDL_HAT_UP) | GAMEPAD_DPAD_RIGHT * (hat & SDL_HAT_RIGHT) | GAMEPAD_DPAD_DOWN * (hat & SDL_HAT_DOWN) | GAMEPAD_DPAD_LEFT * (hat & SDL_HAT_LEFT)); if (gamepadbuttons) { idclev = false; idmus = false; if (idbehold) { message_clearable = true; HU_ClearMessages(); idbehold = false; } } if (gp_sensitivity || menuactive || (gamepadbuttons & gamepadmenu)) { event_t ev; ev.type = ev_gamepad; D_PostEvent(&ev); gamepadthumbsfunc(0, 1, 2, 3); } else { gamepadbuttons = 0; gamepadthumbLX = 0; gamepadthumbLY = 0; gamepadthumbRX = 0; } } }
void I_PollXInputGamepad(void) { #ifdef WIN32 if (gamepad) { event_t ev; XINPUT_STATE state; XINPUT_GAMEPAD Gamepad; ZeroMemory(&state, sizeof(XINPUT_STATE)); pXInputGetState(0, &state); Gamepad = state.Gamepad; if (gamepadsensitivity || menuactive) gamepadthumbsfunc(Gamepad.sThumbLX, Gamepad.sThumbLY, Gamepad.sThumbRX, Gamepad.sThumbRY); gamepadbuttons = (state.Gamepad.wButtons | GAMEPAD_LEFT_TRIGGER * (state.Gamepad.bLeftTrigger > GAMEPAD_TRIGGER_THRESHOLD) | GAMEPAD_RIGHT_TRIGGER * (state.Gamepad.bRightTrigger > GAMEPAD_TRIGGER_THRESHOLD)); if (damagevibrationtics) if (!--damagevibrationtics && !weaponvibrationtics) XInputVibration(idlemotorspeed); if (weaponvibrationtics) if (!--weaponvibrationtics && !damagevibrationtics) XInputVibration(idlemotorspeed); if (gamepadbuttons) { vibrate = true; idclev = false; idmus = false; if (idbehold) { HU_clearMessages(); idbehold = false; } } ev.type = ev_gamepad; ev.data1 = gamepadbuttons; D_PostEvent(&ev); } #endif }
void I_PollDirectInputGamepad(void) { if (gamepad) { event_t ev; int hat = SDL_JoystickGetHat(gamepad, 0); if (gamepadsensitivity || menuactive) gamepadthumbsfunc(0, 1, 2, 3); gamepadbuttons = (GAMEPAD_X * SDL_JoystickGetButton(gamepad, 0) | GAMEPAD_A * SDL_JoystickGetButton(gamepad, 1) | GAMEPAD_B * SDL_JoystickGetButton(gamepad, 2) | GAMEPAD_Y * SDL_JoystickGetButton(gamepad, 3) | GAMEPAD_LEFT_SHOULDER * SDL_JoystickGetButton(gamepad, 4) | GAMEPAD_RIGHT_SHOULDER * SDL_JoystickGetButton(gamepad, 5) | GAMEPAD_LEFT_TRIGGER * SDL_JoystickGetButton(gamepad, 6) | GAMEPAD_RIGHT_TRIGGER * SDL_JoystickGetButton(gamepad, 7) | GAMEPAD_BACK * SDL_JoystickGetButton(gamepad, 8) | GAMEPAD_START * SDL_JoystickGetButton(gamepad, 9) | GAMEPAD_LEFT_THUMB * SDL_JoystickGetButton(gamepad, 10) | GAMEPAD_RIGHT_THUMB * SDL_JoystickGetButton(gamepad, 11) | GAMEPAD_DPAD_UP * (hat & SDL_HAT_UP) | GAMEPAD_DPAD_RIGHT * (hat & SDL_HAT_RIGHT) | GAMEPAD_DPAD_DOWN * (hat & SDL_HAT_DOWN) | GAMEPAD_DPAD_LEFT * (hat & SDL_HAT_LEFT)); if (gamepadbuttons) { idclev = false; idmus = false; if (idbehold) { HU_clearMessages(); idbehold = false; } } ev.type = ev_gamepad; ev.data1 = gamepadbuttons; D_PostEvent(&ev); } }