예제 #1
0
            public async Task LoadChildFiles()
            {
                ChildFiles = new List <FileMetadata>();
                if (FirstFileOffset > 0)
                {
                    var currentChild = await FileMetadata.Load(LevelData, IvfcLevelHeader, FirstFileOffset);

                    ChildFiles.Add(currentChild);
                    while (currentChild.NextSiblingFileOffset > 0)
                    {
                        currentChild = await FileMetadata.Load(LevelData, IvfcLevelHeader, currentChild.NextSiblingFileOffset);

                        ChildFiles.Add(currentChild);
                    }
                }
            }
예제 #2
0
            public async Task Initialize()
            {
                DirectoryHashKeyTable = await LevelData.ReadArrayAsync(Header.DirectoryHashTableOffset, Header.DirectoryHashTableLength);

                RootDirectoryMetadataTable = await DirectoryMetadata.Load(LevelData, Header, 0);

                FileHashKeyTable = await LevelData.ReadArrayAsync(Header.FileHashTableOffset, Header.FileHashTableLength);

                var rootFiles       = new List <FileMetadata>();
                var currentRootFile = await FileMetadata.Load(LevelData, Header, 0);

                if (currentRootFile.Name.Length > 0)
                {
                    rootFiles.Add(currentRootFile);
                    while (currentRootFile.NextSiblingFileOffset > 0)
                    {
                        currentRootFile = await FileMetadata.Load(LevelData, Header, currentRootFile.NextSiblingFileOffset);

                        rootFiles.Add(currentRootFile);
                    }
                }
                RootFiles = rootFiles.ToArray();
            }