public static WMOSubGroup ReadBuildingGroup(BinaryReader reader) { var group = new WMOSubGroup { Bounds = reader.ReadBoundingBox() }; Vector3[] vertices; var numVerts = reader.ReadUInt16(); if (numVerts > 0) { vertices = new Vector3[numVerts]; for (var i = 0; i < numVerts; i++) { vertices[i] = reader.ReadVector3(); } } else { vertices = null; } group.Vertices = vertices; group.Tree = ReadBSPTree(reader); return group; }
public static WMO ReadBuilding(BinaryReader reader) { var building = new WMO { Bounds = reader.ReadBoundingBox(), RotationModelY = reader.ReadSingle(), WorldPos = reader.ReadVector3() }; WMOSubGroup[] groups; var numGroups = reader.ReadUInt16(); if (numGroups > 0) { groups = new WMOSubGroup[numGroups]; for (var i = 0; i < numGroups; i++) { groups[i] = ReadBuildingGroup(reader); } } else { groups = null; } building.BuildingGroups = groups; return building; }