diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index dbbb5dbde2..77e5b20ac9 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -1187,12 +1187,12 @@ struct BuildVehicleWindow : Window { this->eng_list.ForceRebuild(); this->GenerateBuildList(); // generate the list, since we need it in the next line - /* Select the first engine in the list as default when opening the window */ - if (this->eng_list.size() > 0) { - this->SelectEngine(this->eng_list[0].engine_id); - } else { - this->SelectEngine(INVALID_ENGINE); - } + + /* Select the first unshaded engine in the list as default when opening the window */ + EngineID engine = INVALID_ENGINE; + auto it = std::find_if(this->eng_list.begin(), this->eng_list.end(), [&](GUIEngineListItem &item){ return (item.flags & EngineDisplayFlags::Shaded) == EngineDisplayFlags::None; }); + if (it != this->eng_list.end()) engine = it->engine_id; + this->SelectEngine(engine); } /** Set the filter type according to the depot type */