void InputManager::update() { for (auto& mapPair : m_rData.keymaps) { auto i = mapPair.first; auto keymap = mapPair.second; auto& input = m_rData.playerInputs[i]; input.switches = 0; if (sf::Joystick::isButtonPressed(i, static_cast<unsigned>(keymap.lightAttack))) input.switches = input.switches & InputSwitch::LIGHT_ATTACK; if (sf::Joystick::isButtonPressed(i, static_cast<unsigned>(keymap.parry))) input.switches = input.switches & InputSwitch::PARRY; input.lock = getAxisPosition(m_XIState, i, keymap.lock); input.heavyAttack = getAxisPosition(m_XIState, i, keymap.heavyAttack); input.x = getAxisPosition(m_XIState, i, keymap.X); input.y = getAxisPosition(m_XIState, i, keymap.Y); } }
/** * get position of axis in counts as used in EPICS. * getAxisPosition() is called and position is covnerted to counts using the * counts-per-unit (CPU) fraction of the axis. */ asynStatus PIGCSController::getAxisPositionCts(PIasynAxis* pAxis) { double pos; asynStatus status = getAxisPosition(pAxis, pos); if (status != asynSuccess) { return status; } pAxis->m_position = pos; if (pAxis->m_CPUdenominator==0 || pAxis->m_CPUnumerator==0) { pAxis->m_positionCts = int(pos); return status; } pAxis->m_positionCts = int( (pos * double(pAxis->m_CPUnumerator) / double(pAxis->m_CPUdenominator))+0.5); if (m_pInterface->m_pCurrentLogSink != NULL) { asynPrint(m_pInterface->m_pCurrentLogSink, ASYN_TRACE_FLOW, "PIGCSController::getAxisPositionCts() pos:%d\n", pAxis->m_positionCts); } return status; }