32 ui.food_surplus_label,
ui.food_priority_label,
33 ui.production_surplus_label,
ui.production_priority_label,
34 ui.trade_surplus_label,
ui.trade_priority_label,
35 ui.gold_surplus_label,
ui.gold_priority_label,
36 ui.luxury_goods_surplus_label,
ui.luxury_goods_priority_label,
37 ui.science_surplus_label,
ui.science_priority_label,
38 ui.celebrate_priority_label,
40 for (
auto label : labels) {
44 const auto sliders = {
45 ui.food_surplus,
ui.food_priority,
ui.production_surplus,
46 ui.production_priority,
ui.trade_surplus,
ui.trade_priority,
47 ui.gold_surplus,
ui.gold_priority,
ui.luxury_goods_surplus,
48 ui.luxury_goods_priority,
ui.science_surplus,
ui.science_priority,
49 ui.celebrate_priority,
51 for (
auto slider : sliders) {
52 connect(slider, &QSlider::valueChanged,
this,
56 const auto checkboxes = {
62 for (
auto box : checkboxes) {
63 connect(box, &QCheckBox::toggled,
this,
75 #define get_output(name, O_TYPE) \
76 params.minimal_surplus[O_TYPE] = ui.name##_surplus->value(); \
77 params.factor[O_TYPE] = ui.name##_priority->value();
86 params.require_happy =
ui.celebrate_surplus->isChecked();
87 params.happy_factor =
ui.celebrate_priority->value();
89 params.max_growth =
ui.optimize_growth->isChecked();
90 params.allow_disorder =
ui.allow_disorder->isChecked();
91 params.allow_specialists =
ui.allow_specialists->isChecked();
103 #define sync_output(name, O_TYPE) \
104 ui.name##_surplus->setValue(params.minimal_surplus[O_TYPE]); \
105 ui.name##_priority->setValue(params.factor[O_TYPE]);