diff --git a/SabreTools.Serialization/Deserializers/BSP.cs b/SabreTools.Serialization/Deserializers/BSP.cs index faafe580..ba69ad5b 100644 --- a/SabreTools.Serialization/Deserializers/BSP.cs +++ b/SabreTools.Serialization/Deserializers/BSP.cs @@ -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; diff --git a/SabreTools.Serialization/StringBuilderExtensions.cs b/SabreTools.Serialization/StringBuilderExtensions.cs index 262bf8bd..d91239eb 100644 --- a/SabreTools.Serialization/StringBuilderExtensions.cs +++ b/SabreTools.Serialization/StringBuilderExtensions.cs @@ -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}"); }