Add signal style flag to require realistic braking

This commit is contained in:
Jonathan G Rennison
2022-06-30 21:20:43 +01:00
parent bdd97f1aea
commit c19bd4473f
10 changed files with 43 additions and 5 deletions

View File

@@ -1876,7 +1876,7 @@ private:
this->realistic_braking_mode = (_settings_game.vehicle.train_braking_model == TBM_REALISTIC);
this->progsig_ui_shown = _settings_client.gui.show_progsig_ui;
this->noentry_ui_shown = _settings_client.gui.show_noentrysig_ui;
this->style_selector_shown = _num_new_signal_styles > 0;
this->style_selector_shown = _enabled_new_signal_styles_mask > 1;
bool show_norm = this->realistic_braking_mode || this->all_signal_mode;
bool show_presig = !this->realistic_braking_mode && this->all_signal_mode;
@@ -2106,7 +2106,9 @@ public:
DropDownList list;
list.emplace_back(new DropDownListStringItem(STR_BUILD_SIGNAL_DEFAULT_STYLE, 0, false));
for (uint i = 0; i < _num_new_signal_styles; i++) {
list.emplace_back(new DropDownListStringItem(_new_signal_styles[i].name, i + 1, false));
if (HasBit(_enabled_new_signal_styles_mask, i + 1)) {
list.emplace_back(new DropDownListStringItem(_new_signal_styles[i].name, i + 1, false));
}
}
ShowDropDownList(this, std::move(list), _cur_signal_style, widget);
break;
@@ -2148,12 +2150,12 @@ public:
this->SetWidgetDisabledState(WID_BS_DRAG_SIGNALS_DENSITY_DECREASE, _settings_client.gui.drag_signals_density == 1);
this->SetWidgetDisabledState(WID_BS_DRAG_SIGNALS_DENSITY_INCREASE, _settings_client.gui.drag_signals_density == 20);
if (_cur_signal_style > _num_new_signal_styles) _cur_signal_style = 0;
if (_cur_signal_style > _num_new_signal_styles || !HasBit(_enabled_new_signal_styles_mask, _cur_signal_style)) _cur_signal_style = 0;
if (this->all_signal_mode != (_settings_client.gui.signal_gui_mode == SIGNAL_GUI_ALL) || this->progsig_ui_shown != _settings_client.gui.show_progsig_ui ||
this->realistic_braking_mode != (_settings_game.vehicle.train_braking_model == TBM_REALISTIC) ||
this->noentry_ui_shown != _settings_client.gui.show_noentrysig_ui ||
this->style_selector_shown != (_num_new_signal_styles > 0)) {
this->style_selector_shown != (_enabled_new_signal_styles_mask > 1)) {
this->SetSignalUIMode();
this->ReInit();
}