예제 #1
0
        public FStore(FAssetRegistryReader Ar)
        {
            NameMap = Ar.NameMap;
            var magic = Ar.Read <uint>();
            var order = GetLoadOrder(magic);
            var nums  = Ar.ReadArray <int>(11);

            if (order == ELoadOrder.TextFirst)
            {
                Ar.Position += 4;
                Texts        = Ar.ReadArray(nums[4], Ar.ReadFString);
            }

            NumberlessNames       = Ar.ReadArray(nums[0], Ar.Read <uint>);
            Names                 = Ar.ReadArray(nums[1], Ar.ReadFName);
            NumberlessExportPaths = Ar.ReadArray(nums[2], () => new FNumberlessExportPath(Ar));
            ExportPaths           = Ar.ReadArray(nums[3], () => new FAssetRegistryExportPath(Ar));

            if (order == ELoadOrder.Member)
            {
                Texts = Ar.ReadArray(nums[4], Ar.ReadFString);
            }

            AnsiStringOffsets = Ar.ReadArray(nums[5], Ar.Read <uint>);
            WideStringOffsets = Ar.ReadArray(nums[6], Ar.Read <uint>);
            AnsiStrings       = Ar.ReadBytes(nums[7]);
            WideStrings       = Ar.ReadBytes(nums[8] * 2);

            NumberlessPairs = Ar.ReadArray(nums[9], () => new FNumberlessPair(Ar));
            Pairs           = Ar.ReadArray(nums[10], () => new FNumberedPair(Ar));

            Ar.Position += 4; // _END_MAGIC
        }
예제 #2
0
 public FNumberlessExportPath(FAssetRegistryReader Ar)
 {
     Class   = Ar.Read <uint>();
     Object  = Ar.Read <uint>();
     Package = Ar.Read <uint>();
     Names   = Ar.NameMap;
 }
 public FAssetRegistryExportPath(FAssetRegistryReader Ar)
 {
     Class   = Ar.ReadFName();
     Object  = Ar.ReadFName();
     Package = Ar.ReadFName();
 }
예제 #4
0
 public FNumberedPair(FAssetRegistryReader Ar)
 {
     Key   = Ar.ReadFName();
     Value = new FValueId(Ar);
 }