public UObject(BinaryReader data, FPackageFileSummary summary, bool pad = true, FObjectExport export = null) { while (true) { long position = data.BaseStream.Position; FName fName = LSerializer.Deserialize <FName>(data); fName.Ref(summary); if ((string)fName == "None") { break; } data.BaseStream.Position = position; FPropertyTag fPropertyTag = LSerializer.Deserialize <FPropertyTag>(data); data.BaseStream.Position = position; fPropertyTag.Ref(summary); fPropertyTag = VisitorFactory.Visit(data, fPropertyTag, summary); fPropertyTag.Ref(summary); Add(fPropertyTag); } if (pad) { data.BaseStream.Position += 4L; } if (export != null) { ObjectData = VisitorFactory.VisitSubtype(data, export, summary); } }
public UObject(BinaryReader data, FPackageFileSummary summary, bool pad = true, FObjectExport export = null) { while (true) { var start = data.BaseStream.Position; #if DEBUG CachedPos.Add(start); #endif var name = LSerializer.Deserialize <FName>(data); name.Ref(summary); if (name == "None") { break; } data.BaseStream.Position = start; var tag = LSerializer.Deserialize <FPropertyTag>(data); data.BaseStream.Position = start; tag.Ref(summary); tag = VisitorFactory.Visit(data, tag, summary); tag.Ref(summary); Add(tag); } if (pad) { data.BaseStream.Position += 4; } if (export != null) { ObjectData = VisitorFactory.VisitSubtype(data, export, summary); } }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { UStructProperty uStructProperty = LSerializer.Deserialize <UStructProperty>(reader); uStructProperty.Ref(summary); uStructProperty.Struct = (((object)VisitorFactory.VisitStruct(reader, uStructProperty.StructName.Name, summary)) ?? ((object)new UObject(reader, summary, pad: false))); return(uStructProperty); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { var instance = LSerializer.Deserialize <UStructProperty>(reader); instance.Ref(summary); instance.Struct = (object)VisitorFactory.VisitStruct(reader, instance.StructName, summary) ?? new UObject(reader, summary, false, null); return(instance); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { USetProperty uSetProperty = LSerializer.Deserialize <USetProperty>(reader); uSetProperty.Ref(summary); long position = reader.BaseStream.Position; uSetProperty.Entries = UArrayProperty.GetEntries(uSetProperty.Count, uSetProperty.ArrayType, reader, summary); reader.BaseStream.Position = position + uSetProperty.Size - 8; return(uSetProperty); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { var instance = LSerializer.Deserialize <USetProperty>(reader); instance.Ref(summary); var @base = reader.BaseStream.Position; instance.Entries = UArrayProperty.GetEntries(instance.Count, instance.ArrayType, reader, summary); reader.BaseStream.Position = @base + instance.Size - 8; return(instance); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { if (baseTag.Size < 8) { reader.BaseStream.Position += 0x19 + baseTag.Size; return(baseTag); } var instance = LSerializer.Deserialize <UTextProperty>(reader); instance.Ref(summary); return(instance); }
public static IExportObject Deserialize(BinaryReader reader, FObjectExport export, FPackageFileSummary summary) { var instance = new StringTable(); instance.Name = LSerializer.FString(reader); var count = reader.ReadInt32(); for (int i = 0; i < count; ++i) { instance.Add(LSerializer.FString(reader), LSerializer.FString(reader)); } return(instance); }
public static IExportObject Deserialize(BinaryReader reader, FObjectExport export, FPackageFileSummary summary) { StringTable stringTable = new StringTable(); stringTable.Name = LSerializer.FString(reader); int num = reader.ReadInt32(); for (int i = 0; i < num; i++) { stringTable.Add(LSerializer.FString(reader), LSerializer.FString(reader)); } return(stringTable); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { UTextProperty uTextProperty = LSerializer.Deserialize <UTextProperty>(reader); if (baseTag.Size < 8) { reader.BaseStream.Position++; } else { reader.BaseStream.Position--; } uTextProperty.Ref(summary); return(uTextProperty); }
public static IExportObject Deserialize(BinaryReader reader, FObjectExport export, FPackageFileSummary summary) { var instance = new UDataTable(); var count = reader.ReadInt32(); for (int i = 0; i < count; ++i) { var index = LSerializer.Deserialize <FName>(reader); index.Ref(summary); var uobj = new UObject(reader, summary, false); uobj.Name = index; instance.Add(index, uobj); } return(instance); }
public static IExportObject Deserialize(BinaryReader reader, FObjectExport export, FPackageFileSummary summary) { UDataTable uDataTable = new UDataTable(); int num = reader.ReadInt32(); for (int i = 0; i < num; i++) { FName fName = LSerializer.Deserialize <FName>(reader); fName.Ref(summary); UObject uObject = new UObject(reader, summary, pad: false); uObject.Name = fName; uDataTable.Add(fName, uObject); } return(uDataTable); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { UByteProperty uByteProperty = LSerializer.Deserialize <UByteProperty>(reader); uByteProperty.Ref(summary); if (uByteProperty.EnumName.Name == "None") { uByteProperty.Value = reader.ReadByte(); } else { uByteProperty.Value = LSerializer.Deserialize <FName>(reader); uByteProperty.Ref(summary); } return(uByteProperty); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { var instance = LSerializer.Deserialize <UByteProperty>(reader); instance.Ref(summary); if (instance.EnumName == "None") { instance.Value = reader.ReadByte(); } else { instance.Value = LSerializer.Deserialize <FName>(reader); instance.Ref(summary); } return(instance); }
public static FPropertyTag PropertyVisitor(BinaryReader reader, FPropertyTag baseTag, FPackageFileSummary summary) { UArrayProperty uArrayProperty = LSerializer.Deserialize <UArrayProperty>(reader); uArrayProperty.Ref(summary); long position = reader.BaseStream.Position; uArrayProperty.Entries = GetEntries(uArrayProperty.ArraySize, uArrayProperty.ArrayType, reader, summary); long position2 = reader.BaseStream.Position; if (position + uArrayProperty.Size - 4 != position2) { Console.WriteLine("WARNING: ARRAY SIZE OFFSHOOT!"); } reader.BaseStream.Position = position + uArrayProperty.Size - 4; return(uArrayProperty); }
public static IExportObject Deserialize(BinaryReader reader, FObjectExport export, FPackageFileSummary summary) { var instance = new EndTextResource(); var count = reader.ReadInt32(); for (int i = 0; i < count; ++i) { var key = LSerializer.FString(reader); if (string.IsNullOrEmpty(key) || key[0] != '$') { throw new InvalidDataException("The key does not start with magic symbol"); } var obj = LSerializer.Deserialize <FF7TxtRes>(reader); obj.GetEntries(reader, summary); instance.Add(key, obj); } return(instance); }
private static StructVisitor CreateStructDeserializer(Type visitor) { return((r, s) => (IStructObject)LSerializer.Deserialize(r, visitor)); }
private static PropertyVisitor CreateTagDeserializer(Type visitor) { return((r, b, s) => (FPropertyTag)LSerializer.Deserialize(r, visitor)); }
private static PropertyVisitor CreateTagDeserializer(Type visitor) { return((BinaryReader r, FPropertyTag b, FPackageFileSummary s) => (FPropertyTag)LSerializer.Deserialize(r, visitor)); }
private static StructVisitor CreateStructDeserializer(Type visitor) { return((BinaryReader r, FPackageFileSummary s) => (IStructObject)LSerializer.Deserialize(r, visitor)); }