예제 #1
0
        public void Deserialize(FArchive reader)
        {
            reader.Read(out _summary);
            if (!IsValid)
            {
                return;
            }

            reader.Seek(_summary.NameOffset);
            _nameMap = new NameTable(_summary.NameCount);
            _nameMap.Deserialize(reader);

            reader.Seek(_summary.ImportOffset);
            _imports = new ImportTable(_summary.ImportCount);
            _imports.Deserialize(reader);

            reader.Seek(_summary.ExportOffset);
            _exports = new ExportTable(_summary.ExportCount);
            _exports.Deserialize(reader);

            reader.Seek(_summary.SoftPackageReferencesOffset);
            reader.Read(out _stringAssetReferences, _summary.SoftPackageReferencesCount);

            reader.Seek(_summary.GatherableTextDataOffset);
            reader.Read(out _gatherableTextDataMap, _summary.GatherableTextDataCount);

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

            return;
        }