public override void Read(BinaryReader reader, Resource resource) { reader.BaseStream.Position = Offset; for (var i = 0; i < Size; i++) { var dep = new EditStringData(); dep.Name = reader.ReadOffsetString(Encoding.UTF8); dep.Value = reader.ReadOffsetString(Encoding.UTF8); List.Add(dep); } }
public override void Read(BinaryReader reader, Resource resource) { reader.BaseStream.Position = Offset; for (var i = 0; i < Size; i++) { var dep = new AdditionalRelatedFile(); dep.ContentRelativeFilename = reader.ReadOffsetString(Encoding.UTF8); dep.ContentSearchPath = reader.ReadOffsetString(Encoding.UTF8); List.Add(dep); } }
public override void Read(BinaryReader reader, Resource resource) { reader.BaseStream.Position = Offset; for (var i = 0; i < Size; i++) { var dep = new InputDependency(); dep.ContentRelativeFilename = reader.ReadOffsetString(Encoding.UTF8); dep.ContentSearchPath = reader.ReadOffsetString(Encoding.UTF8); dep.FileCRC = reader.ReadUInt32(); dep.Flags = reader.ReadUInt32(); List.Add(dep); } }
public override void Read(BinaryReader reader, Resource resource) { reader.BaseStream.Position = Offset; for (var i = 0; i < Size; i++) { var dep = new SpecialDependency(); dep.String = reader.ReadOffsetString(Encoding.UTF8); dep.CompilerIdentifier = reader.ReadOffsetString(Encoding.UTF8); dep.Fingerprint = reader.ReadUInt32(); dep.UserData = reader.ReadUInt32(); List.Add(dep); } }
public override void Read(BinaryReader reader, Resource resource) { reader.BaseStream.Position = Offset; for (var i = 0; i < Size; i++) { var dep = new ArgumentDependency(); dep.ParameterName = reader.ReadOffsetString(Encoding.UTF8); dep.ParameterType = reader.ReadOffsetString(Encoding.UTF8); dep.Fingerprint = reader.ReadUInt32(); dep.FingerprintDefault = reader.ReadUInt32(); List.Add(dep); } }
public override void Read(BinaryReader reader, Resource resource) { reader.BaseStream.Position = Offset; for (var i = 0; i < Size; i++) { var dep = new ReferenceInfo(); dep.Id = reader.ReadUInt64(); dep.ResourceName = reader.ReadOffsetString(Encoding.UTF8); reader.ReadBytes(4); // TODO: ???? List.Add(dep); } }
public override void Read(BinaryReader reader, Resource resource) { reader.BaseStream.Position = Offset; var modelName = reader.ReadOffsetString(Encoding.UTF8); }
private void ReadEnums(BinaryReader reader) { var entriesOffset = reader.ReadUInt32(); var entriesCount = reader.ReadUInt32(); if (entriesCount == 0) { return; } reader.BaseStream.Position += entriesOffset - 8; // offset minus 2 ints we just read for (var i = 0; i < entriesCount; i++) { var diskEnum = new ResourceDiskEnum(); diskEnum.IntrospectionVersion = reader.ReadUInt32(); diskEnum.Id = reader.ReadUInt32(); diskEnum.Name = reader.ReadOffsetString(Encoding.UTF8); diskEnum.DiskCrc = reader.ReadUInt32(); diskEnum.UserVersion = reader.ReadInt32(); var fieldsOffset = reader.ReadUInt32(); var fieldsSize = reader.ReadUInt32(); // jump to fields if (fieldsSize > 0) { var prev = reader.BaseStream.Position; reader.BaseStream.Position += fieldsOffset - 8; // offset minus 2 ints we just read for (var y = 0; y < fieldsSize; y++) { var field = new ResourceDiskEnum.Value(); field.EnumValueName = reader.ReadOffsetString(Encoding.UTF8); field.EnumValue = reader.ReadInt32(); diskEnum.EnumValueIntrospection.Add(field); } reader.BaseStream.Position = prev; } ReferencedEnums.Add(diskEnum); } }
private void ReadStructs(BinaryReader reader) { var entriesOffset = reader.ReadUInt32(); var entriesCount = reader.ReadUInt32(); if (entriesCount == 0) { return; } reader.BaseStream.Position += entriesOffset - 8; // offset minus 2 ints we just read for (var i = 0; i < entriesCount; i++) { var diskStruct = new ResourceDiskStruct(); diskStruct.IntrospectionVersion = reader.ReadUInt32(); diskStruct.Id = reader.ReadUInt32(); diskStruct.Name = reader.ReadOffsetString(Encoding.UTF8); diskStruct.DiskCrc = reader.ReadUInt32(); diskStruct.UserVersion = reader.ReadInt32(); diskStruct.DiskSize = reader.ReadUInt16(); diskStruct.Alignment = reader.ReadUInt16(); diskStruct.BaseStructId = reader.ReadUInt32(); var fieldsOffset = reader.ReadUInt32(); var fieldsSize = reader.ReadUInt32(); // jump to fields if (fieldsSize > 0) { var prev = reader.BaseStream.Position; reader.BaseStream.Position += fieldsOffset - 8; // offset minus 2 ints we just read for (var y = 0; y < fieldsSize; y++) { var field = new ResourceDiskStruct.Field(); field.FieldName = reader.ReadOffsetString(Encoding.UTF8); field.Count = reader.ReadInt16(); field.OnDiskOffset = reader.ReadInt16(); var indirectionOffset = reader.ReadUInt32(); var indirectionSize = reader.ReadUInt32(); if (indirectionSize > 0) { // jump to indirections var prev2 = reader.BaseStream.Position; reader.BaseStream.Position += indirectionOffset - 8; // offset minus 2 ints we just read for (var x = 0; x < indirectionSize; x++) { field.Indirections.Add(reader.ReadByte()); } reader.BaseStream.Position = prev2; } field.TypeData = reader.ReadUInt32(); field.Type = (DataType)reader.ReadInt16(); reader.ReadBytes(2); // TODO: ???? diskStruct.FieldIntrospection.Add(field); } reader.BaseStream.Position = prev; } diskStruct.StructFlags = reader.ReadByte(); reader.ReadBytes(3); // TODO: ???? ReferencedStructs.Add(diskStruct); } }