Fix motion controls config saving
This commit is contained in:
@@ -456,6 +456,17 @@ void ConfigureInputPlayer::ApplyConfiguration() {
|
|||||||
debug ? Settings::values.debug_pad_analogs : Settings::values.players[player_index].analogs;
|
debug ? Settings::values.debug_pad_analogs : Settings::values.players[player_index].analogs;
|
||||||
auto& motion = Settings::values.players[player_index].motion_devices;
|
auto& motion = Settings::values.players[player_index].motion_devices;
|
||||||
|
|
||||||
|
// convert motion group into params
|
||||||
|
for (int i = 0; i < 2; ++i) {
|
||||||
|
auto& group = motion_groups[i];
|
||||||
|
motion_param[i] =
|
||||||
|
MotionParam{group.enabled->isChecked(),
|
||||||
|
Common::ParamPackage(InputCommon::GenerateMotionParam(
|
||||||
|
group.address->text().toStdString(), group.port->value(),
|
||||||
|
group.padIndex->value(), group.cx->value(), group.cy->value(),
|
||||||
|
group.cz->value(), group.sensitivity->value()))};
|
||||||
|
}
|
||||||
|
|
||||||
std::transform(buttons_param.begin(), buttons_param.end(), buttons.begin(),
|
std::transform(buttons_param.begin(), buttons_param.end(), buttons.begin(),
|
||||||
[](const Common::ParamPackage& param) { return param.Serialize(); });
|
[](const Common::ParamPackage& param) { return param.Serialize(); });
|
||||||
std::transform(analogs_param.begin(), analogs_param.end(), analogs.begin(),
|
std::transform(analogs_param.begin(), analogs_param.end(), analogs.begin(),
|
||||||
@@ -515,12 +526,12 @@ void ConfigureInputPlayer::LoadConfiguration() {
|
|||||||
std::transform(Settings::values.players[player_index].analogs.begin(),
|
std::transform(Settings::values.players[player_index].analogs.begin(),
|
||||||
Settings::values.players[player_index].analogs.end(), analogs_param.begin(),
|
Settings::values.players[player_index].analogs.end(), analogs_param.begin(),
|
||||||
[](const std::string& str) { return Common::ParamPackage(str); });
|
[](const std::string& str) { return Common::ParamPackage(str); });
|
||||||
std::transform(Settings::values.players[player_index].motion_devices.begin(),
|
|
||||||
Settings::values.players[player_index].motion_devices.end(),
|
|
||||||
motion_param.begin(), [](const Settings::MotionRaw& raw) {
|
|
||||||
return MotionParam{raw.enabled, Common::ParamPackage(raw.device)};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
std::transform(Settings::values.players[player_index].motion_devices.begin(),
|
||||||
|
Settings::values.players[player_index].motion_devices.end(),
|
||||||
|
motion_param.begin(), [](const Settings::MotionRaw& raw) {
|
||||||
|
return MotionParam{raw.enabled, Common::ParamPackage(raw.device)};
|
||||||
|
});
|
||||||
|
|
||||||
UpdateButtonLabels();
|
UpdateButtonLabels();
|
||||||
|
|
||||||
@@ -652,6 +663,7 @@ void ConfigureInputPlayer::UpdateButtonLabels() {
|
|||||||
group.cx->setValue(param.param.Get("cx", 0));
|
group.cx->setValue(param.param.Get("cx", 0));
|
||||||
group.cy->setValue(param.param.Get("cy", 0));
|
group.cy->setValue(param.param.Get("cy", 0));
|
||||||
group.cz->setValue(param.param.Get("cz", 0));
|
group.cz->setValue(param.param.Get("cz", 0));
|
||||||
|
group.sensitivity->setValue(param.param.Get("sensitivity", 1));
|
||||||
group.enabled->setChecked(param.enabled);
|
group.enabled->setChecked(param.enabled);
|
||||||
group.inner->setVisible(param.enabled);
|
group.inner->setVisible(param.enabled);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user