From 2fa00d1a16adca4260d2f019e5f07f8a7049ba25 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 30 Oct 2025 23:48:26 -0400 Subject: [PATCH] VPK model cleanup --- .../Models/VPK/Constants.cs | 2 +- .../Models/VPK/DirectoryItem.cs | 8 +++---- SabreTools.Serialization/Models/VPK/File.cs | 6 ++++-- .../Wrappers/VPK.Extraction.cs | 6 ++---- .../Wrappers/VPK.Printing.cs | 21 ++++--------------- SabreTools.Serialization/Wrappers/VPK.cs | 6 ++---- 6 files changed, 17 insertions(+), 32 deletions(-) diff --git a/SabreTools.Serialization/Models/VPK/Constants.cs b/SabreTools.Serialization/Models/VPK/Constants.cs index 1f239653..c71210c7 100644 --- a/SabreTools.Serialization/Models/VPK/Constants.cs +++ b/SabreTools.Serialization/Models/VPK/Constants.cs @@ -18,4 +18,4 @@ namespace SabreTools.Data.Models.VPK /// public const int HL_VPK_CHECKSUM_LENGTH = 0x00008000; } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/VPK/DirectoryItem.cs b/SabreTools.Serialization/Models/VPK/DirectoryItem.cs index 3e416401..7317868a 100644 --- a/SabreTools.Serialization/Models/VPK/DirectoryItem.cs +++ b/SabreTools.Serialization/Models/VPK/DirectoryItem.cs @@ -4,13 +4,13 @@ namespace SabreTools.Data.Models.VPK /// public sealed class DirectoryItem { - public string? Extension { get; set; } + public string Extension { get; set; } - public string? Path { get; set; } + public string Path { get; set; } - public string? Name { get; set; } + public string Name { get; set; } - public DirectoryEntry? DirectoryEntry { get; set; } + public DirectoryEntry DirectoryEntry { get; set; } public byte[] PreloadData { get; set; } } diff --git a/SabreTools.Serialization/Models/VPK/File.cs b/SabreTools.Serialization/Models/VPK/File.cs index 0ace3b8d..d7ddf79f 100644 --- a/SabreTools.Serialization/Models/VPK/File.cs +++ b/SabreTools.Serialization/Models/VPK/File.cs @@ -9,21 +9,23 @@ namespace SabreTools.Data.Models.VPK /// /// Header data /// - public Header? Header { get; set; } + public Header Header { get; set; } /// /// Extended header data /// + /// Version 2 only public ExtendedHeader? ExtendedHeader { get; set; } /// /// Archive hashes data /// + /// Version 2 only public ArchiveHash[]? ArchiveHashes { get; set; } /// /// Directory items data /// - public DirectoryItem[]? DirectoryItems { get; set; } + public DirectoryItem[] DirectoryItems { get; set; } } } diff --git a/SabreTools.Serialization/Wrappers/VPK.Extraction.cs b/SabreTools.Serialization/Wrappers/VPK.Extraction.cs index 7f4ae5f9..223fc531 100644 --- a/SabreTools.Serialization/Wrappers/VPK.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/VPK.Extraction.cs @@ -11,7 +11,7 @@ namespace SabreTools.Serialization.Wrappers public bool Extract(string outputDirectory, bool includeDebug) { // If we have no directory items - if (DirectoryItems == null || DirectoryItems.Length == 0) + if (DirectoryItems.Length == 0) return false; // Loop through and extract all files to the output @@ -34,7 +34,7 @@ namespace SabreTools.Serialization.Wrappers public bool ExtractFile(int index, string outputDirectory, bool includeDebug) { // If we have no directory items - if (DirectoryItems == null || DirectoryItems.Length == 0) + if (DirectoryItems.Length == 0) return false; // If the directory item index is invalid @@ -43,8 +43,6 @@ namespace SabreTools.Serialization.Wrappers // Get the directory item var directoryItem = DirectoryItems[index]; - if (directoryItem.DirectoryEntry == null) - return false; // If we have an item with no archive byte[] data = []; diff --git a/SabreTools.Serialization/Wrappers/VPK.Printing.cs b/SabreTools.Serialization/Wrappers/VPK.Printing.cs index 38a4db68..a923400b 100644 --- a/SabreTools.Serialization/Wrappers/VPK.Printing.cs +++ b/SabreTools.Serialization/Wrappers/VPK.Printing.cs @@ -24,17 +24,10 @@ namespace SabreTools.Serialization.Wrappers Print(builder, Model.DirectoryItems); } - private static void Print(StringBuilder builder, Header? header) + private static void Print(StringBuilder builder, Header header) { builder.AppendLine(" Header Information:"); builder.AppendLine(" -------------------------"); - if (header == null) - { - builder.AppendLine(" No header"); - builder.AppendLine(); - return; - } - builder.AppendLine(header.Signature, " Signature"); builder.AppendLine(header.Version, " Version"); builder.AppendLine(header.TreeSize, " Tree size"); @@ -84,11 +77,11 @@ namespace SabreTools.Serialization.Wrappers builder.AppendLine(); } - private static void Print(StringBuilder builder, DirectoryItem[]? entries) + private static void Print(StringBuilder builder, DirectoryItem[] entries) { builder.AppendLine(" Directory Items Information:"); builder.AppendLine(" -------------------------"); - if (entries == null || entries.Length == 0) + if (entries.Length == 0) { builder.AppendLine(" No directory items"); builder.AppendLine(); @@ -112,16 +105,10 @@ namespace SabreTools.Serialization.Wrappers builder.AppendLine(); } - private static void Print(StringBuilder builder, DirectoryEntry? entry) + private static void Print(StringBuilder builder, DirectoryEntry entry) { builder.AppendLine(" Directory Entry:"); builder.AppendLine(" -------------------------"); - if (entry == null) - { - builder.AppendLine(" [NULL]"); - return; - } - builder.AppendLine(entry.CRC, " CRC"); builder.AppendLine(entry.PreloadBytes, " Preload bytes"); builder.AppendLine(entry.ArchiveIndex, " Archive index"); diff --git a/SabreTools.Serialization/Wrappers/VPK.cs b/SabreTools.Serialization/Wrappers/VPK.cs index 39c16890..919267aa 100644 --- a/SabreTools.Serialization/Wrappers/VPK.cs +++ b/SabreTools.Serialization/Wrappers/VPK.cs @@ -44,10 +44,8 @@ namespace SabreTools.Serialization.Wrappers // Get the archive count ushort archiveCount = 0; - foreach (var di in DirectoryItems ?? []) + foreach (var di in DirectoryItems) { - if (di.DirectoryEntry == null) - continue; if (di.DirectoryEntry.ArchiveIndex == HL_VPK_NO_ARCHIVE) continue; @@ -71,7 +69,7 @@ namespace SabreTools.Serialization.Wrappers } /// - public Data.Models.VPK.DirectoryItem[]? DirectoryItems => Model.DirectoryItems; + public Data.Models.VPK.DirectoryItem[] DirectoryItems => Model.DirectoryItems; #endregion