public void ReadBsp(System.IO.BinaryReader source, BspDocument dest) { startOfTheFile = source.BaseStream.Position; ReadHeader(source); ReadEntities(source); ReadVertices(source); ReadListOfEdges(source); ReadListOfFaces(source); ReadTextureInfos(source); ReadTextureDatas(source); ReadEdges(source); ReadPlanes(source); ReadFaces(source); ReadNodes(source); ReadVisibilityList(source); ReadLeaves(source); ReadLightmap(source); CollectLeavesInClusters(); ReaderHelper.BuildEntities(entities, dest); BuildTextures(); BuildLeaves(); if (nodes != null && nodes.Count > 0) { dest.Tree = BuildNode(nodes[0]); } BuildVisibilityList(); BuildClusters(); }
public void ReadBsp(System.IO.BinaryReader source, BspDocument dest) { startOfTheFile = source.BaseStream.Position; ReadHeader(source); ReadEntities(source); ReadTextures(source); ReadLightmaps(source); ReadPlanes(source); ReadNodes(source); ReadLeaves(source); ReadVisibility(source); listOfBrushes = ReaderHelper.ReadUInt32Array(source, header.leafbrushes.size, header.leafbrushes.offset); listOfFaces = ReaderHelper.ReadUInt32Array(source, header.leaffaces.size, header.leaffaces.offset); listOfVertices = ReaderHelper.ReadUInt32Array(source, header.meshverts.size, header.meshverts.offset); vertices = ReaderHelper.ReadStructs<vertex_t>(source, header.vertexes.size, header.vertexes.offset + startOfTheFile, 11 * 4); faces = ReaderHelper.ReadStructs<face_t>(source, header.faces.size, header.faces.offset + startOfTheFile, 26*4); brushsides = ReaderHelper.ReadStructs<brushside_t>(source, header.brushsides.size, header.brushsides.offset + startOfTheFile, 8); brushes = ReaderHelper.ReadStructs<brush_t>(source, header.brushes.size, header.brushes.offset + startOfTheFile, 12); BuildLeaves(); if (nodes != null && nodes.Count > 0) dest.Tree = BuildNode(nodes[0]); BuildClusters(); ReaderHelper.BuildEntities(entities, dest); }
public void ReadBsp(System.IO.BinaryReader source, BspDocument dest) { startOfTheFile = source.BaseStream.Position; ReadHeader(source); ReadEntities(source); ReadPlanes(source); ReadTextures(source); ReadTextureInfos(source); ReadVisilist(source); ReadEdges(source); ReadNodes(source); ReadLeaves(source); ReadVertices(source); ReadLightmap(source); ReadFaces(source); ReadListOfFaces(source); ReadListOfEdges(source); ReadModels(source); //if (textures != null) // foreach (var tex in textures) // dest.AddTexture(tex); //if (models != null) //{ // //foreach (var model in models) // for (int i = 1; i < models.Count; ++i) // dest.AddModel(BuildGeometry(models[i], i)); // //BuildGeometry(models[0], 0); //} BuildLeaves(); if (nodes != null && nodes.Count > 0) { dest.Tree = BuildNode(nodes[0]); } BuildVisibilityList(); BuildClusters(); ReaderHelper.BuildEntities(entities, dest); }