mirror of
https://github.com/izzy2lost/WeeU.git
synced 2026-07-06 00:19:59 -07:00
Fixed not setting dpad values
This commit is contained in:
@@ -9,72 +9,66 @@
|
||||
|
||||
ControllerState& AndroidControllerProvider::get_controller_state(const std::string& deviceDescriptor)
|
||||
{
|
||||
if (auto it = m_controllersState.find(deviceDescriptor); it != m_controllersState.end())
|
||||
return it->second;
|
||||
m_controllersState[deviceDescriptor] = {};
|
||||
return m_controllersState[deviceDescriptor];
|
||||
if (auto it = m_controllersState.find(deviceDescriptor); it != m_controllersState.end())
|
||||
return it->second;
|
||||
m_controllersState[deviceDescriptor] = {};
|
||||
return m_controllersState[deviceDescriptor];
|
||||
}
|
||||
|
||||
void AndroidControllerProvider::on_key_event(const std::string& deviceDescriptor, const std::string& deviceName, int nativeKeyCode, bool isPressed)
|
||||
void AndroidControllerProvider::on_key_event(const std::string& deviceDescriptor, [[maybe_unused]] const std::string& deviceName, int nativeKeyCode, bool isPressed)
|
||||
{
|
||||
auto& controllerState = get_controller_state(deviceDescriptor);
|
||||
controllerState.buttons.SetButtonState(nativeKeyCode, isPressed);
|
||||
auto& controllerState = get_controller_state(deviceDescriptor);
|
||||
controllerState.buttons.SetButtonState(nativeKeyCode, isPressed);
|
||||
}
|
||||
|
||||
void AndroidControllerProvider::on_axis_event(const std::string& deviceDescriptor, const std::string& deviceName, int nativeAxisCode, float value)
|
||||
void AndroidControllerProvider::on_axis_event(const std::string& deviceDescriptor, [[maybe_unused]] const std::string& deviceName, int nativeAxisCode, float value)
|
||||
{
|
||||
auto& controllerState = get_controller_state(deviceDescriptor);
|
||||
switch (nativeAxisCode)
|
||||
{
|
||||
case AMOTION_EVENT_AXIS_X:
|
||||
controllerState.axis.x = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_Y:
|
||||
controllerState.axis.y = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_RX:
|
||||
case AMOTION_EVENT_AXIS_Z:
|
||||
controllerState.rotation.x = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_RY:
|
||||
case AMOTION_EVENT_AXIS_RZ:
|
||||
controllerState.rotation.y = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_LTRIGGER:
|
||||
controllerState.trigger.x = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_RTRIGGER:
|
||||
controllerState.trigger.y = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_HAT_X:
|
||||
if (value == 0.0f)
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonRight, false);
|
||||
controllerState.buttons.SetButtonState(kButtonLeft, false);
|
||||
}
|
||||
else if (value > 0.0f)
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonRight, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonLeft, false);
|
||||
}
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_HAT_Y:
|
||||
if (value == 0.0f)
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonUp, false);
|
||||
controllerState.buttons.SetButtonState(kButtonDown, false);
|
||||
}
|
||||
else if (value > 0.0f)
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonDown, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonUp, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
auto& controllerState = get_controller_state(deviceDescriptor);
|
||||
switch (nativeAxisCode)
|
||||
{
|
||||
case AMOTION_EVENT_AXIS_X:
|
||||
controllerState.axis.x = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_Y:
|
||||
controllerState.axis.y = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_RX:
|
||||
case AMOTION_EVENT_AXIS_Z:
|
||||
controllerState.rotation.x = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_RY:
|
||||
case AMOTION_EVENT_AXIS_RZ:
|
||||
controllerState.rotation.y = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_LTRIGGER:
|
||||
controllerState.trigger.x = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_RTRIGGER:
|
||||
controllerState.trigger.y = value;
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_HAT_X:
|
||||
if (value == 0.0f)
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonRight, false);
|
||||
controllerState.buttons.SetButtonState(kButtonLeft, false);
|
||||
return;
|
||||
}
|
||||
else if (value > 0.0f)
|
||||
controllerState.buttons.SetButtonState(kButtonRight, true);
|
||||
else
|
||||
controllerState.buttons.SetButtonState(kButtonLeft, true);
|
||||
break;
|
||||
case AMOTION_EVENT_AXIS_HAT_Y:
|
||||
if (value == 0.0f)
|
||||
{
|
||||
controllerState.buttons.SetButtonState(kButtonUp, false);
|
||||
controllerState.buttons.SetButtonState(kButtonDown, false);
|
||||
return;
|
||||
}
|
||||
else if (value > 0.0f)
|
||||
controllerState.buttons.SetButtonState(kButtonDown, true);
|
||||
else
|
||||
controllerState.buttons.SetButtonState(kButtonUp, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user