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);
		}
	}
Exemplo n.º 2
0
/**
 *  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;
}