settings: Define paired settings

settings_common: Remove unused optional
This commit is contained in:
lat9nq 2023-06-21 04:32:13 -04:00
parent d1de1c3bed
commit 7f708e8d77
4 changed files with 49 additions and 21 deletions

View file

@ -8,9 +8,10 @@ namespace Settings {
BasicSetting::BasicSetting(Linkage& linkage, const std::string& name, enum Category category_,
bool save_, bool runtime_modifiable_,
enum Specialization specialization_)
enum Specialization specialization_, BasicSetting* other_setting_)
: label{name}, category{category_}, id{linkage.count}, save{save_},
runtime_modifiable{runtime_modifiable_}, specialization{specialization_} {
runtime_modifiable{runtime_modifiable_}, specialization{specialization_},
other_setting{other_setting_} {
linkage.by_category[category].push_front(this);
linkage.count++;
}
@ -43,6 +44,10 @@ Specialization BasicSetting::Specialization() const {
return specialization;
}
BasicSetting* BasicSetting::PairedSetting() const {
return other_setting;
}
const std::string& BasicSetting::GetLabel() const {
return label;
}