From fbb33d9ef87b41f63eaee0344ffa66c59451c4e3 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sat, 24 Dec 2022 14:24:34 -0800 Subject: [PATCH] Add VPK to info --- BurnOutSharp/Tools/Utilities.cs | 2 +- HLLibSharp | 2 +- Test/Program.cs | 30 ++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/BurnOutSharp/Tools/Utilities.cs b/BurnOutSharp/Tools/Utilities.cs index 16150151..6c88b24b 100644 --- a/BurnOutSharp/Tools/Utilities.cs +++ b/BurnOutSharp/Tools/Utilities.cs @@ -261,7 +261,7 @@ namespace BurnOutSharp.Tools #region VPK - if (magic.StartsWith(new byte?[] { 0x34, 0x12, 0x55, 0xaa })) + if (magic.StartsWith(new byte?[] { 0x34, 0x12, 0xaa, 0x55 })) return SupportedFileType.VPK; #endregion diff --git a/HLLibSharp b/HLLibSharp index 90ba55ea..9222738e 160000 --- a/HLLibSharp +++ b/HLLibSharp @@ -1 +1 @@ -Subproject commit 90ba55ea59c00516a2217a22e5fa871144da44a3 +Subproject commit 9222738e38bec7ef6aebc754094c06f9ed6c3cfa diff --git a/Test/Program.cs b/Test/Program.cs index 00d07458..19fcc23f 100644 --- a/Test/Program.cs +++ b/Test/Program.cs @@ -343,6 +343,25 @@ namespace Test cabinet.Print(); } + // VPK + else if (IsVPK(magic)) + { + // Build the archive information + Console.WriteLine("Creating VPK deserializer"); + Console.WriteLine(); + + var vpk = VPK.Create(stream); + if (vpk == null) + { + Console.WriteLine("Something went wrong parsing VPK"); + Console.WriteLine(); + return; + } + + // Print the VPK info to screen + vpk.Print(); + } + // Everything else else { @@ -430,6 +449,17 @@ namespace Test return magic[0] == 'P' && magic[1] == 'E' && magic[2] == '\0' && magic[3] == '\0'; } + /// + /// Determine if the magic bytes indicate an VPK + /// + private static bool IsVPK(byte[] magic) + { + if (magic == null || magic.Length < 4) + return false; + + return magic[0] == 0x34 && magic[1] == 0x12 && magic[2] == 0xaa && magic[3] == 0x55; + } + #endregion } }