mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 04:08:55 +00:00
Virtual Notch settings and UI for octagonal stick
This commit is contained in:
parent
ab8a128588
commit
55dd3d7337
7 changed files with 108 additions and 2 deletions
|
@ -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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue