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,
ControlState modifier) const
ControlState modifier,
ControlState clamp) const
{
x -= m_center.x;
y -= m_center.y;
@ -326,8 +327,8 @@ ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlSta
// Scale to the gate shape/radius:
dist *= gate_max_dist;
return {std::clamp(std::cos(angle) * dist, -1.0, 1.0),
std::clamp(std::sin(angle) * dist, -1.0, 1.0)};
return {std::clamp(std::cos(angle) * dist, -clamp, clamp),
std::clamp(std::sin(angle) * dist, -clamp, clamp)};
}
} // namespace ControllerEmu

View File

@ -108,7 +108,8 @@ public:
void SetCenter(ReshapeData center);
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:
void LoadConfig(IniFile::Section*, const std::string&, const std::string&) override;