diff --git a/Client/mods/deathmatch/logic/CClientBuildingManager.cpp b/Client/mods/deathmatch/logic/CClientBuildingManager.cpp index 198fd23ed2..bde13a0892 100644 --- a/Client/mods/deathmatch/logic/CClientBuildingManager.cpp +++ b/Client/mods/deathmatch/logic/CClientBuildingManager.cpp @@ -98,9 +98,22 @@ void CClientBuildingManager::DestroyAllForABit() void CClientBuildingManager::RestoreDestroyed() { - for (CClientBuilding* building : GetBuildings()) + bool hasInvalidLods = true; + while (hasInvalidLods) { - building->Create(); + hasInvalidLods = false; + for (CClientBuilding* building : GetBuildings()) + { + const CClientBuilding* highLodBuilding = building->GetHighLodBuilding(); + if (highLodBuilding && !highLodBuilding->IsValid()) + { + hasInvalidLods = true; + } + else + { + building->Create(); + } + } } }