Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }