diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 6b5746ae4e..a4d425783b 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -1188,12 +1188,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 */