UpkManager.Domain.Models.UpkFile.Tables.DomainExportTableEntry.ReadExportTableEntry C# (CSharp) Method

ReadExportTableEntry() private method

private ReadExportTableEntry ( ByteArrayReader reader, DomainHeader header ) : Task
reader ByteArrayReader
header DomainHeader
return Task
    internal async Task ReadExportTableEntry(ByteArrayReader reader, DomainHeader header) {
      TypeReference   = reader.ReadInt32();
      ParentReference = reader.ReadInt32();
      OwnerReference  = reader.ReadInt32();

      NameTableIndex.ReadNameTableIndex(reader, header);

      ArchetypeReference = reader.ReadInt32();

      FlagsHigh = reader.ReadUInt32();
      FlagsLow  = reader.ReadUInt32();

      SerialDataSize   = reader.ReadInt32();
      SerialDataOffset = reader.ReadInt32();

      ExportFlags = reader.ReadUInt32();

      NetObjectCount = reader.ReadInt32();

      Guid = await reader.ReadBytes(16);

      Unknown1 = reader.ReadUInt32();

      Unknown2 = await reader.ReadBytes(sizeof(uint) * NetObjectCount);
    }

Usage Example

Ejemplo n.º 1
0
    private async Task readExportTable(Action<DomainLoadProgress> progress) {
      DomainLoadProgress message = new DomainLoadProgress { Text = "Reading Export Table...", Current = 0, Total = ExportTableCount };

      reader.Seek(ExportTableOffset);

      for(int i = 0; i < ExportTableCount; ++i) {
        DomainExportTableEntry export = new DomainExportTableEntry { TableIndex = i + 1 };

        await export.ReadExportTableEntry(reader, this);

        ExportTable.Add(export);

        message.IncrementCurrent();

        if (ExportTableCount > 100) progress?.Invoke(message);
      }

      message.Text    = "Expanding References...";
      message.Current = 0;
      message.Total   = 0;

      progress?.Invoke(message);

      await ExportTable.ForEachAsync(export => Task.Run(() => export.ExpandReferences(this)));
    }