Fix issues from BSP29 (unsupported)

This commit is contained in:
Matt Nadareski
2024-11-27 21:45:26 -05:00
parent ea535fa393
commit f42c5d04ee
2 changed files with 9 additions and 3 deletions

View File

@@ -244,6 +244,12 @@ namespace SabreTools.Serialization.Deserializers
var lump = new VisibilityLump();
lump.NumClusters = data.ReadInt32();
// BSP29 has an incompatible value here
int bytesNeeded = lump.NumClusters * 8;
if (bytesNeeded > length)
return null;
lump.ByteOffsets = new int[lump.NumClusters][];
for (int i = 0; i < lump.NumClusters; i++)
{
@@ -323,7 +329,7 @@ namespace SabreTools.Serialization.Deserializers
for (int i = 0; i < length / 3; i++)
{
lump.Lightmap[i] = data.ReadBytes(3);
lump.Lightmap[i] = data.ReadBytes(3);
}
return lump;

View File

@@ -90,7 +90,7 @@ namespace SabreTools.Serialization
public static StringBuilder AppendLine(this StringBuilder sb, float? value, string prefixString)
{
value ??= 0;
string valueString = $"{value} (0x{value:X8})";
string valueString = $"{value}";
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -120,7 +120,7 @@ namespace SabreTools.Serialization
public static StringBuilder AppendLine(this StringBuilder sb, double? value, string prefixString)
{
value ??= 0;
string valueString = $"{value} (0x{value:X16})";
string valueString = $"{value}";
return sb.AppendLine($"{prefixString}: {valueString}");
}