mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 22:29:39 -06:00
Virtual Notch settings and UI for octagonal stick
This commit is contained in:
@ -65,6 +65,12 @@ OctagonAnalogStick::OctagonAnalogStick(const char* name_, const char* ui_name_,
|
||||
ControlState gate_radius)
|
||||
: AnalogStick(name_, ui_name_, std::make_unique<ControllerEmu::OctagonStickGate>(gate_radius))
|
||||
{
|
||||
AddVirtualNotchSetting(&m_virtual_notch_setting, 45);
|
||||
}
|
||||
|
||||
ControlState OctagonAnalogStick::GetVirtualNotchSize() const
|
||||
{
|
||||
return m_virtual_notch_setting.GetValue() * MathUtil::TAU / 360;
|
||||
}
|
||||
|
||||
} // namespace ControllerEmu
|
||||
|
@ -33,6 +33,11 @@ class OctagonAnalogStick : public AnalogStick
|
||||
public:
|
||||
OctagonAnalogStick(const char* name, ControlState gate_radius);
|
||||
OctagonAnalogStick(const char* name, const char* ui_name, ControlState gate_radius);
|
||||
|
||||
ControlState GetVirtualNotchSize() const override;
|
||||
|
||||
private:
|
||||
SettingValue<double> m_virtual_notch_setting;
|
||||
};
|
||||
|
||||
} // namespace ControllerEmu
|
||||
|
@ -28,6 +28,17 @@ ControlGroup::ControlGroup(std::string name_, std::string ui_name_, const GroupT
|
||||
{
|
||||
}
|
||||
|
||||
void ControlGroup::AddVirtualNotchSetting(SettingValue<double>* value, double max_virtual_notch_deg)
|
||||
{
|
||||
AddSetting(value,
|
||||
{_trans("Virtual Notches"),
|
||||
// i18n: The degrees symbol.
|
||||
_trans("°"),
|
||||
// i18n: Snap the thumbstick position to the nearest octagonal axis.
|
||||
_trans("Snap the thumbstick position to the nearest octagonal axis.")},
|
||||
0, 0, max_virtual_notch_deg);
|
||||
}
|
||||
|
||||
void ControlGroup::AddDeadzoneSetting(SettingValue<double>* value, double maximum_deadzone)
|
||||
{
|
||||
AddSetting(value,
|
||||
|
@ -82,6 +82,8 @@ public:
|
||||
std::make_unique<NumericSetting<T>>(value, details, default_value_, min_value, max_value));
|
||||
}
|
||||
|
||||
void AddVirtualNotchSetting(SettingValue<double>* value, double max_virtual_notch_deg);
|
||||
|
||||
void AddDeadzoneSetting(SettingValue<double>* value, double maximum_deadzone);
|
||||
|
||||
template <typename T>
|
||||
|
Reference in New Issue
Block a user