Skip to content

Commit

Permalink
WwiseBankParser correctly determines DATA offset for padding
Browse files Browse the repository at this point in the history
  • Loading branch information
henbagle committed Jan 13, 2024
1 parent 5e4886a commit 2d0b56b
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
4 changes: 1 addition & 3 deletions ME3Tweaks.Wwiser/Model/BankHeaderChunk.cs
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,6 @@ public class BankHeaderPadding : IBinarySerializable

public void Serialize(Stream stream, Endianness endianness, BinarySerializationContext serializationContext)
{
/*var version = serializationContext.FindAncestor<BankSerializationContext>().Version;
var chunkSize = serializationContext.FindAncestor<ChunkContainer>().ChunkSize;
stream.Write(new byte[GetPaddingSize(version, chunkSize)]);*/
stream.Write(Padding);
}

Expand Down Expand Up @@ -132,6 +129,7 @@ public void SetPadding(long dataChunkOffset)
> 8 => new byte[8 + (16 - initAlignment)],
_ => Array.Empty<byte>()
};
Array.Fill(Padding, (byte)0);
}
}

Expand Down
9 changes: 6 additions & 3 deletions ME3Tweaks.Wwiser/WwiseBankParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,10 +174,13 @@ private void SetBankHeaderPadding()
if (WwiseBank?.DATA is not null)
{
var context = CreateSerializationContext();
var bkhdSize= _serializer.SizeOf(WwiseBank.BKHD, context);
var didxSize = _serializer.SizeOf(WwiseBank.DIDX, context);
var dataOffset = bkhdSize + didxSize;
WwiseBank.BKHD.Padding = new BankHeaderPadding();

var bkhdSize= _serializer.SizeOf(new ChunkContainer(WwiseBank.BKHD), context);
var didxSize = (WwiseBank.DIDX != null) ?
_serializer.SizeOf(new ChunkContainer(WwiseBank.DIDX), context) : 0;

var dataOffset = bkhdSize + didxSize;
WwiseBank.BKHD.Padding.SetPadding(dataOffset);
}
}
Expand Down

0 comments on commit 2d0b56b

Please sign in to comment.