예제 #1
0
        public FArchive Serialize(FArchive archive)
        {
            archive.Read(ref _summary);
            if (!IsValid)
            {
                return(archive);
            }

            archive.Seek(_summary.NameOffset);
            _nameMap = new NameTable(_summary.NameCount);
            _nameMap.Serialize(archive);

            archive.Seek(_summary.ImportOffset);
            _imports = new ImportTable(_summary.ImportCount);
            _imports.Serialize(archive);

            archive.Seek(_summary.ExportOffset);
            _exports = new ExportTable(_summary.ExportCount);
            _exports.Serialize(archive);

            archive.Seek(_summary.SoftPackageReferencesOffset);
            archive.Read(ref _stringAssetReferences, _summary.SoftPackageReferencesCount);

            archive.Seek(_summary.GatherableTextDataOffset);
            archive.Read(ref _gatherableTextDataMap, _summary.GatherableTextDataCount);

            foreach (var imp in _imports.Items)
            {
                imp.Fix(archive);
            }
            foreach (var exp in _exports.Items)
            {
                exp.Fix(archive);
            }

            return(archive);
        }