diff --git a/src/engine/net/client/msg/LoadStructureMsg.java b/src/engine/net/client/msg/LoadStructureMsg.java index 9e53dba0..cd15ad44 100644 --- a/src/engine/net/client/msg/LoadStructureMsg.java +++ b/src/engine/net/client/msg/LoadStructureMsg.java @@ -66,9 +66,16 @@ public class LoadStructureMsg extends ClientNetMsg { writer.putInt(this.structureList.size()); - for (Building building : this.structureList) { - Building._serializeForClientMsg(building, writer); - } + // Parents before children, as live servers sent them; a child sent first loses its height on the client. + + for (Building building : this.structureList) + if (building.parentBuildingID == 0) + Building._serializeForClientMsg(building, writer); + + for (Building building : this.structureList) + if (building.parentBuildingID != 0) + Building._serializeForClientMsg(building, writer); + writer.putInt(0); }