LSLib.LS.LSF.LSFReader.ReadNodes C# (CSharp) Méthode

ReadNodes() private méthode

Reads the structure headers for the LSOF resource
private ReadNodes ( Stream s, bool longNodes ) : void
s Stream Stream to read the node headers from
longNodes bool Use the long (V3) on-disk node format
Résultat void
        private void ReadNodes(Stream s, bool longNodes)
        {
#if DEBUG_LSF_SERIALIZATION
            Console.WriteLine(" ----- DUMP OF NODE TABLE -----");
#endif

            Nodes = new List<NodeInfo>();
            using (var reader = new BinaryReader(s))
            {
                Int32 index = 0;
                while (s.Position < s.Length)
                {
                    var resolved = new NodeInfo();

                    if (longNodes)
                    {
                        var item = BinUtils.ReadStruct<NodeEntryV3>(reader);
                        resolved.ParentIndex = item.ParentIndex;
                        resolved.NameIndex = item.NameIndex;
                        resolved.NameOffset = item.NameOffset;
                        resolved.FirstAttributeIndex = item.FirstAttributeIndex;
                    }
                    else
                    {
                        var item = BinUtils.ReadStruct<NodeEntryV2>(reader);
                        resolved.ParentIndex = item.ParentIndex;
                        resolved.NameIndex = item.NameIndex;
                        resolved.NameOffset = item.NameOffset;
                        resolved.FirstAttributeIndex = item.FirstAttributeIndex;
                    }

#if DEBUG_LSF_SERIALIZATION
                    Console.WriteLine(String.Format(
                        "{0}: {1} (parent {2}, firstAttribute {3})", 
                        Nodes.Count, Names[resolved.NameIndex][resolved.NameOffset], resolved.ParentIndex, 
                        resolved.FirstAttributeIndex
                    ));
#endif

                    Nodes.Add(resolved);
                    index++;
                }
            }
        }