Exemple #1
0
        private void generateDirectoryTree(VdfsEntry directory, VdfsEntry[] entries, VdfsEntriesTree node)
        {
            for (uint i = directory.Offset; ; i++)
            {
                var child = node.AddChild(entries[i]);

                if (entries[i].Type.HasFlag(Vdfs.EntryType.Directory))
                {
                    generateDirectoryTree(entries[i], entries, child);
                }

                if (entries[i].Type.HasFlag(Vdfs.EntryType.Last))
                {
                    break;
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Generates tree.
        /// </summary>
        public VdfsEntriesTree Generate()
        {
            VdfsEntriesTree tree = new VdfsEntriesTree();

            for (int i = 0; i < _entries.Length; i++)
            {
                var node = tree.AddChild(_entries[i]);

                if (_entries[i].Type.HasFlag(Vdfs.EntryType.Directory))
                {
                    generateDirectoryTree(_entries[i], _entries, node);
                }

                if (_entries[i].Type.HasFlag(Vdfs.EntryType.Last))
                {
                    break;
                }
            }

            return(tree);
        }