Mouse: Move s8 clamp to after subtraction
Stops the mouse from accumulating long distances which are applied over several frames. Seems to "feel" slightly better.
This commit is contained in:
parent
cc52320dfe
commit
b68370dff7
|
@ -155,22 +155,20 @@ bool PlayStationMouse::Transfer(const u8 data_in, u8* data_out)
|
||||||
|
|
||||||
case TransferState::DeltaX:
|
case TransferState::DeltaX:
|
||||||
{
|
{
|
||||||
const float delta_x =
|
const float delta_x = std::floor(m_delta_x * m_sensitivity_x);
|
||||||
std::clamp(std::floor(m_delta_x * m_sensitivity_x), static_cast<float>(std::numeric_limits<s8>::min()),
|
|
||||||
static_cast<float>(std::numeric_limits<s8>::max()));
|
|
||||||
m_delta_x -= delta_x / m_sensitivity_x;
|
m_delta_x -= delta_x / m_sensitivity_x;
|
||||||
*data_out = static_cast<s8>(delta_x);
|
*data_out = static_cast<s8>(std::clamp(delta_x, static_cast<float>(std::numeric_limits<s8>::min()),
|
||||||
|
static_cast<float>(std::numeric_limits<s8>::max())));
|
||||||
m_transfer_state = TransferState::DeltaY;
|
m_transfer_state = TransferState::DeltaY;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TransferState::DeltaY:
|
case TransferState::DeltaY:
|
||||||
{
|
{
|
||||||
const float delta_y =
|
const float delta_y = std::floor(m_delta_y * m_sensitivity_y);
|
||||||
std::clamp(std::floor(m_delta_y * m_sensitivity_y), static_cast<float>(std::numeric_limits<s8>::min()),
|
|
||||||
static_cast<float>(std::numeric_limits<s8>::max()));
|
|
||||||
m_delta_y -= delta_y / m_sensitivity_x;
|
m_delta_y -= delta_y / m_sensitivity_x;
|
||||||
*data_out = static_cast<s8>(delta_y);
|
*data_out = static_cast<s8>(std::clamp(delta_y, static_cast<float>(std::numeric_limits<s8>::min()),
|
||||||
|
static_cast<float>(std::numeric_limits<s8>::max())));
|
||||||
m_transfer_state = TransferState::Idle;
|
m_transfer_state = TransferState::Idle;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -197,9 +195,7 @@ std::unique_ptr<PlayStationMouse> PlayStationMouse::Create(u32 index)
|
||||||
|
|
||||||
static const Controller::ControllerBindingInfo s_binding_info[] = {
|
static const Controller::ControllerBindingInfo s_binding_info[] = {
|
||||||
#define BUTTON(name, display_name, icon_name, button, genb) \
|
#define BUTTON(name, display_name, icon_name, button, genb) \
|
||||||
{ \
|
{name, display_name, icon_name, static_cast<u32>(button), InputBindingInfo::Type::Button, genb}
|
||||||
name, display_name, icon_name, static_cast<u32>(button), InputBindingInfo::Type::Button, genb \
|
|
||||||
}
|
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
{ "Pointer", TRANSLATE_NOOP("PlaystationMouse", "Pointer"), ICON_PF_MOUSE_ANY, static_cast<u32>(PlayStationMouse::Binding::PointerX), InputBindingInfo::Type::RelativePointer, GenericInputBinding::Unknown },
|
{ "Pointer", TRANSLATE_NOOP("PlaystationMouse", "Pointer"), ICON_PF_MOUSE_ANY, static_cast<u32>(PlayStationMouse::Binding::PointerX), InputBindingInfo::Type::RelativePointer, GenericInputBinding::Unknown },
|
||||||
|
|
Loading…
Reference in New Issue