void PollAxisAsButton(u32 pad, int min_id, int max_id, int deadzone, int val) { if ( val < -deadzone ) { DX_PerKeyUp( pad, 0, max_id ); DX_PerKeyDown( pad, 0, min_id ); } else if ( val > deadzone ) { DX_PerKeyUp( pad, 0, min_id ); DX_PerKeyDown( pad, 0, max_id ); } else { DX_PerKeyUp( pad, 0, min_id ); DX_PerKeyUp( pad, 0, max_id ); } }
void PollXInputButtons(u32 pad, XINPUT_STATE *state) { int i; // Check buttons for ( i = 0; i < 16; i++ ) { WORD mask = 1 << i; if ( (state->Gamepad.wButtons & mask) == mask ) DX_PerKeyDown( pad, 0, DIJOFS_BUTTON(i) ); else DX_PerKeyUp( pad, 0, DIJOFS_BUTTON(i) ); } }