コード例 #1
0
ファイル: PcbResourceFile.cs プロジェクト: NotAdam/Lumina
            public static PcbResourceHeader Read(BinaryReader reader)
            {
                var header = new PcbResourceHeader
                {
                    Magic         = reader.ReadUInt32(),
                    Version       = reader.ReadUInt32(),
                    TotalNodes    = reader.ReadUInt32(),
                    TotalPolygons = reader.ReadUInt32()
                };

                if (header.TotalNodes == 0)
                {
                    return(header);
                }

                header.Children = new List <ResourceNode>();

                var totalNodesRead = 0;

                while (totalNodesRead <= header.TotalNodes)
                {
                    header.Children.Add(ResourceNode.ReadWithCount(reader, out var nodesRead));
                    totalNodesRead += nodesRead;
                }

                return(header);
            }
コード例 #2
0
ファイル: PcbResourceFile.cs プロジェクト: NotAdam/Lumina
        public override void LoadFile()
        {
            var streamStart = Reader.BaseStream.Position;
            var isList      = Reader.ReadUInt32() != 0;

            Reader.BaseStream.Position = streamStart;

            if (isList)
            {
                throw new InvalidOperationException("Error parsing pcb file");
            }

            Nodes = PcbResourceHeader.Read(Reader);
        }