IMUAccelerometer: consistency of BoundCount checks

Similar to the guitar, only control[0] was checked, and that felt random.
This commit is contained in:
Filoppi 2021-05-04 23:58:08 +03:00
parent 7f5b6ed788
commit d43a06ff6a
2 changed files with 10 additions and 3 deletions

View file

@ -4,13 +4,12 @@
#include "InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.h"
#include <algorithm>
#include <memory>
#include "Common/Common.h"
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
#include "InputCommon/ControlReference/ControlReference.h"
#include "InputCommon/ControllerEmu/Control/Control.h"
#include "InputCommon/ControllerEmu/Control/Input.h"
namespace ControllerEmu
{
@ -25,9 +24,15 @@ IMUAccelerometer::IMUAccelerometer(std::string name_, std::string ui_name_)
AddInput(Translate, _trans("Backward"));
}
bool IMUAccelerometer::AreInputsBound() const
{
return std::all_of(controls.begin(), controls.end(),
[](const auto& control) { return control->control_ref->BoundCount() > 0; });
}
std::optional<IMUAccelerometer::StateData> IMUAccelerometer::GetState() const
{
if (controls[0]->control_ref->BoundCount() == 0)
if (!AreInputsBound())
return std::nullopt;
StateData state;

View file

@ -20,5 +20,7 @@ public:
IMUAccelerometer(std::string name, std::string ui_name);
std::optional<StateData> GetState() const;
bool AreInputsBound() const;
};
} // namespace ControllerEmu