void XInputDevice::PollForUpdates() { m_lastState = m_state; SetIsConnected(XInputGetState(m_controllerId, &m_state) == ERROR_SUCCESS); m_leftState = float3(m_state.Gamepad.sThumbLX, m_state.Gamepad.sThumbLY, m_state.Gamepad.bLeftTrigger); m_rightState = float3(m_state.Gamepad.sThumbRX, m_state.Gamepad.sThumbRY, m_state.Gamepad.bRightTrigger); FilterAnalog(m_leftState.x, m_leftState.y, XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE, 32767); FilterAnalog(m_rightState.x, m_rightState.y, XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE, 32767); FilterAnalog(m_leftState.z, XINPUT_GAMEPAD_TRIGGER_THRESHOLD, 255); FilterAnalog(m_rightState.z, XINPUT_GAMEPAD_TRIGGER_THRESHOLD, 255); if (m_state.Gamepad.wButtons != m_lastState.Gamepad.wButtons) { for (auto& i : xinputToInputDeviceMap) { bool oldState = (m_lastState.Gamepad.wButtons & i.xinput) == i.xinput; bool newState = (m_state.Gamepad.wButtons & i.xinput) == i.xinput; if (oldState == newState) continue; if (oldState) OnReleased(i.button); else OnPressed(i.button); } } }
void GUITexture::OnMouseRelease(Vector2f mousePos) { if (IsButton && isBeingClicked) { isBeingClicked = false; if (OnReleased != 0) { OnReleased(this, mousePos, OnReleased_pData); } } }
bool MouseArea::OnMsg(uint32 msg_id, uint32 param1, uint32 param2) { switch (msg_id) { case WM_LBUTTONDOWN: OnPressed(msg_id, param1, param2); break; case WM_LBUTTONUP: OnReleased(msg_id, param1, param2); break; default: break; } return true; }
void SpecialMove::HandleSfxMessage( HOBJECT hSender, ILTMessage_Read *pMsg, uint8 nSfxId ) { switch( nSfxId ) { case SPECIALMOVEFX_ACTIVATED: { OnActivated(); } break; case SPECIALMOVEFX_RELEASED: { OnReleased(); } break; case SPECIALMOVEFX_LOOKEDAT: { OnLookedAt(); } break; } }
void Button::OnMouseButtonReleased(const sf::Event::MouseButtonEvent &pEvent){ mPressed = false; OnReleased(); }
void WinPortHandle::Dereference() { if (WINPORT(InterlockedDecrement)(&_refcnt)==0) OnReleased(); }