Ensure scroll count and engine list size match in build vehicle window

This commit is contained in:
Jonathan G Rennison
2024-02-02 18:24:53 +00:00
parent 860af4de29
commit fcc6529b6a

View File

@@ -1506,6 +1506,7 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
this->eng_list.ForceRebuild(); this->eng_list.ForceRebuild();
this->GenerateBuildList(); // generate the list, since we need it in the next line this->GenerateBuildList(); // generate the list, since we need it in the next line
this->vscroll->SetCount(this->eng_list.size());
/* Select the first unshaded engine in the list as default when opening the window */ /* Select the first unshaded engine in the list as default when opening the window */
EngineID engine = INVALID_ENGINE; EngineID engine = INVALID_ENGINE;
@@ -1614,6 +1615,7 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
void OnInit() override void OnInit() override
{ {
this->SetCargoFilterArray(); this->SetCargoFilterArray();
this->vscroll->SetCount(this->eng_list.size());
} }
/** Filter the engine list against the currently selected cargo filter */ /** Filter the engine list against the currently selected cargo filter */
@@ -2543,6 +2545,9 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
{ {
this->SetCargoFilterArray(this->loco, _last_filter_criteria_loco); this->SetCargoFilterArray(this->loco, _last_filter_criteria_loco);
this->SetCargoFilterArray(this->wagon, _last_filter_criteria_wagon); this->SetCargoFilterArray(this->wagon, _last_filter_criteria_wagon);
this->loco.vscroll->SetCount(this->loco.eng_list.size());
this->wagon.vscroll->SetCount(this->wagon.eng_list.size());
} }
/* Filter a single engine */ /* Filter a single engine */
@@ -3076,8 +3081,8 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
this->SetBuyLocomotiveText(); this->SetBuyLocomotiveText();
this->SetBuyWagonText(); this->SetBuyWagonText();
this->loco.vscroll->SetCount(static_cast<int>(this->loco.eng_list.size())); this->loco.vscroll->SetCount(this->loco.eng_list.size());
this->wagon.vscroll->SetCount(static_cast<int>(this->wagon.eng_list.size())); this->wagon.vscroll->SetCount(this->wagon.eng_list.size());
this->SetWidgetDisabledState(WID_BV_SHOW_HIDE_LOCO, this->loco.sel_engine == INVALID_ENGINE); this->SetWidgetDisabledState(WID_BV_SHOW_HIDE_LOCO, this->loco.sel_engine == INVALID_ENGINE);
this->SetWidgetDisabledState(WID_BV_SHOW_HIDE_WAGON, this->wagon.sel_engine == INVALID_ENGINE); this->SetWidgetDisabledState(WID_BV_SHOW_HIDE_WAGON, this->wagon.sel_engine == INVALID_ENGINE);