Skip to content

Commit

Permalink
Fix WDC1/WDC2 offset map writing
Browse files Browse the repository at this point in the history
  • Loading branch information
Marlamin committed Aug 9, 2024
1 parent 1079e52 commit 247c1cc
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions DBCD.IO/Writers/BaseWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,20 +83,23 @@ public void WriteOffsetRecords(BinaryWriter writer, IDBRowSerializer<T> serializ
{
var sparseIdLookup = new Dictionary<int, uint>(sparseCount);

for (int i = 0; i < sparseCount; i++)
var startRecord = serializer.Records.First().Key;
var endRecord = serializer.Records.Last().Key;

for (int i = startRecord; i <= endRecord; i++)
{
if (serializer.Records.TryGetValue(i, out var record))
{
if (CopyData.TryGetValue(i, out int copyid))
{
// copy records use their parent's offset
writer.Write(sparseIdLookup[copyid]);
writer.Write(record.TotalBytesWrittenOut);
writer.Write((ushort)record.TotalBytesWrittenOut);
}
else
{
writer.Write(sparseIdLookup[i] = recordOffset);
writer.Write(record.TotalBytesWrittenOut);
writer.Write((ushort)record.TotalBytesWrittenOut);
recordOffset += (uint)record.TotalBytesWrittenOut;
}
}
Expand Down

0 comments on commit 247c1cc

Please sign in to comment.