Codechange: Use FlatSet to avoid trying to add variant parents multiple times.

This commit is contained in:
Peter Nelson
2025-06-24 21:47:55 +01:00
committed by Peter Nelson
parent 1ddc03b916
commit bd2430dc94
2 changed files with 6 additions and 9 deletions
+2 -3
View File
@@ -122,7 +122,7 @@ class ReplaceVehicleWindow : public Window {
*/
void GenerateReplaceVehList(bool draw_left)
{
std::vector<EngineID> variants;
FlatSet<EngineID> variants;
EngineID selected_engine = EngineID::Invalid();
VehicleType type = this->window_number;
uint8_t side = draw_left ? 0 : 1;
@@ -161,8 +161,7 @@ class ReplaceVehicleWindow : public Window {
if (side == 1) {
EngineID parent = e->info.variant_id;
while (parent != EngineID::Invalid()) {
variants.push_back(parent);
while (parent != EngineID::Invalid() && variants.insert(parent).second) {
parent = Engine::Get(parent)->info.variant_id;
}
}