Improve AVFX writing.

This commit is contained in:
Ottermandias 2022-12-31 21:56:39 +01:00
parent ab53f17a7e
commit 5dd4701c4c
2 changed files with 69 additions and 56 deletions

View file

@ -108,25 +108,37 @@ public static class AvfxMagic
internal static BinaryWriter WriteBlock(this BinaryWriter bw, uint magic, uint value)
{
bw.Write(magic);
bw.Write(4u);
bw.Write(value);
if (value != uint.MaxValue)
{
bw.Write(magic);
bw.Write(4u);
bw.Write(value);
}
return bw;
}
internal static BinaryWriter WriteBlock(this BinaryWriter bw, uint magic, bool value)
internal static BinaryWriter WriteBlock(this BinaryWriter bw, uint magic, byte value)
{
bw.Write(magic);
bw.Write(4u);
bw.Write(value ? 1u : 0u);
if (value != byte.MaxValue)
{
bw.Write(magic);
bw.Write(4u);
bw.Write(value == 1 ? 1u : 0u);
}
return bw;
}
internal static BinaryWriter WriteBlock(this BinaryWriter bw, uint magic, float value)
{
bw.Write(magic);
bw.Write(4u);
bw.Write(value);
if (!float.IsNaN(value))
{
bw.Write(magic);
bw.Write(4u);
bw.Write(value);
}
return bw;
}