StickGate: add custom clamp value

Works exactly as before by default.
It will be used by my upcoming input PRs.
This commit is contained in:
Filoppi 2021-05-05 00:19:45 +03:00
parent 5f74d0e08f
commit 26f6648421
2 changed files with 6 additions and 4 deletions

View File

@ -281,7 +281,8 @@ void ReshapableInput::SaveConfig(IniFile::Section* section, const std::string& d
} }
ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlState y, ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlState y,
ControlState modifier) const ControlState modifier,
ControlState clamp) const
{ {
x -= m_center.x; x -= m_center.x;
y -= m_center.y; y -= m_center.y;
@ -326,8 +327,8 @@ ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlSta
// Scale to the gate shape/radius: // Scale to the gate shape/radius:
dist *= gate_max_dist; dist *= gate_max_dist;
return {std::clamp(std::cos(angle) * dist, -1.0, 1.0), return {std::clamp(std::cos(angle) * dist, -clamp, clamp),
std::clamp(std::sin(angle) * dist, -1.0, 1.0)}; std::clamp(std::sin(angle) * dist, -clamp, clamp)};
} }
} // namespace ControllerEmu } // namespace ControllerEmu

View File

@ -108,7 +108,8 @@ public:
void SetCenter(ReshapeData center); void SetCenter(ReshapeData center);
protected: protected:
ReshapeData Reshape(ControlState x, ControlState y, ControlState modifier = 0.0) const; ReshapeData Reshape(ControlState x, ControlState y, ControlState modifier = 0.0,
ControlState clamp = 1.0) const;
private: private:
void LoadConfig(IniFile::Section*, const std::string&, const std::string&) override; void LoadConfig(IniFile::Section*, const std::string&, const std::string&) override;