mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-13 12:57:48 -07:00
Merge 649e49c9e2
into 2c92e5b5b3
This commit is contained in:
commit
81975640c0
@ -67,31 +67,11 @@ void Nunchuk::BuildDesiredExtensionState(DesiredExtensionState* target_state)
|
||||
DataFormat nc_data = {};
|
||||
|
||||
// stick
|
||||
bool override_occurred = false;
|
||||
const ControllerEmu::AnalogStick::StateData stick_state =
|
||||
m_stick->GetState(m_input_override_function, &override_occurred);
|
||||
m_stick->GetState(m_input_override_function);
|
||||
nc_data.jx = MapFloat<u8>(stick_state.x, STICK_CENTER, 0, STICK_RANGE);
|
||||
nc_data.jy = MapFloat<u8>(stick_state.y, STICK_CENTER, 0, STICK_RANGE);
|
||||
|
||||
if (!override_occurred)
|
||||
{
|
||||
// Some terribly coded games check whether to move with a check like
|
||||
//
|
||||
// if (x != 0 && y != 0)
|
||||
// do_movement(x, y);
|
||||
//
|
||||
// With keyboard controls, these games break if you simply hit one
|
||||
// of the axes. Adjust this if you're hitting one of the axes so that
|
||||
// we slightly tweak the other axis.
|
||||
if (nc_data.jx != STICK_CENTER || nc_data.jy != STICK_CENTER)
|
||||
{
|
||||
if (nc_data.jx == STICK_CENTER)
|
||||
++nc_data.jx;
|
||||
if (nc_data.jy == STICK_CENTER)
|
||||
++nc_data.jy;
|
||||
}
|
||||
}
|
||||
|
||||
// buttons
|
||||
u8 buttons = 0;
|
||||
m_buttons->GetState(&buttons, nunchuk_button_bitmasks.data(), m_input_override_function);
|
||||
|
@ -50,13 +50,6 @@ AnalogStick::StateData AnalogStick::GetState() const
|
||||
}
|
||||
|
||||
AnalogStick::StateData AnalogStick::GetState(const InputOverrideFunction& override_func) const
|
||||
{
|
||||
bool override_occurred = false;
|
||||
return GetState(override_func, &override_occurred);
|
||||
}
|
||||
|
||||
AnalogStick::StateData AnalogStick::GetState(const InputOverrideFunction& override_func,
|
||||
bool* override_occurred) const
|
||||
{
|
||||
StateData state = GetState();
|
||||
if (!override_func)
|
||||
@ -65,13 +58,11 @@ AnalogStick::StateData AnalogStick::GetState(const InputOverrideFunction& overri
|
||||
if (const std::optional<ControlState> x_override = override_func(name, X_INPUT_OVERRIDE, state.x))
|
||||
{
|
||||
state.x = *x_override;
|
||||
*override_occurred = true;
|
||||
}
|
||||
|
||||
if (const std::optional<ControlState> y_override = override_func(name, Y_INPUT_OVERRIDE, state.y))
|
||||
{
|
||||
state.y = *y_override;
|
||||
*override_occurred = true;
|
||||
}
|
||||
|
||||
return state;
|
||||
|
@ -22,7 +22,6 @@ public:
|
||||
|
||||
StateData GetState() const;
|
||||
StateData GetState(const InputOverrideFunction& override_func) const;
|
||||
StateData GetState(const InputOverrideFunction& override_func, bool* override_occurred) const;
|
||||
|
||||
private:
|
||||
Control* GetModifierInput() const override;
|
||||
|
Loading…
Reference in New Issue
Block a user