From f42c5d04ee818db6db4a40d63809cdd721d160a9 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 27 Nov 2024 21:45:26 -0500 Subject: [PATCH] Fix issues from BSP29 (unsupported) --- SabreTools.Serialization/Deserializers/BSP.cs | 8 +++++++- SabreTools.Serialization/StringBuilderExtensions.cs | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) 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}"); }