diff --git a/NHSE.Core/Save/Meta/FileHeaderInfo.cs b/NHSE.Core/Save/Meta/FileHeaderInfo.cs index 7e56575..0f9d3ec 100644 --- a/NHSE.Core/Save/Meta/FileHeaderInfo.cs +++ b/NHSE.Core/Save/Meta/FileHeaderInfo.cs @@ -19,6 +19,8 @@ public class FileHeaderInfo : IEquatable /* 0x0C */ public ushort Unk2; /* 0x0E */ public ushort SaveRevision; + public override string ToString() => $"Major = 0x{Major:X}, Minor = 0x{Minor:X}, HeaderRevision = {HeaderRevision}, Unk1 = {Unk1}, SaveRevision = {SaveRevision}, Unk2 = {Unk2}"; + public bool Equals(FileHeaderInfo? other) { if (other is null) diff --git a/NHSE.Core/Save/Meta/RevisionChecker.cs b/NHSE.Core/Save/Meta/RevisionChecker.cs index b836bc4..520305e 100644 --- a/NHSE.Core/Save/Meta/RevisionChecker.cs +++ b/NHSE.Core/Save/Meta/RevisionChecker.cs @@ -35,6 +35,7 @@ public static class RevisionChecker new FileHeaderInfo { Major = 0x50001, Minor = 0x5000B, HeaderRevision = 0, Unk1 = 2, SaveRevision = 11, Unk2 = 2 }, // 1.4.1 new FileHeaderInfo { Major = 0x50001, Minor = 0x5000B, HeaderRevision = 0, Unk1 = 2, SaveRevision = 12, Unk2 = 2 }, // 1.4.2 new FileHeaderInfo { Major = 0x60001, Minor = 0x6000C, HeaderRevision = 0, Unk1 = 2, SaveRevision = 13, Unk2 = 2 }, // 1.5.0 + new FileHeaderInfo { Major = 0x60001, Minor = 0x6000C, HeaderRevision = 0, Unk1 = 2, SaveRevision = 14, Unk2 = 2 }, // 1.5.1 }; public static readonly IReadOnlyList SizeInfo = new[] @@ -53,6 +54,7 @@ public static class RevisionChecker SizesByRevision[4], // 1.4.1 SizesByRevision[4], // 1.4.2 SizesByRevision[5], // 1.5.0 + SizesByRevision[5], // 1.5.1 }; public static readonly IReadOnlyList HashInfo = new[] @@ -71,6 +73,7 @@ public static class RevisionChecker FileHashRevision.REV_140, // 1.4.1 FileHashRevision.REV_140, // 1.4.2 FileHashRevision.REV_150, // 1.5.0 + FileHashRevision.REV_150, // 1.5.1 }; public static bool IsRevisionKnown(this FileHeaderInfo info) => info.GetKnownRevisionIndex() >= 0; diff --git a/NHSE.Core/Save/Offsets/MainSaveOffsets.cs b/NHSE.Core/Save/Offsets/MainSaveOffsets.cs index a41d159..3e87637 100644 --- a/NHSE.Core/Save/Offsets/MainSaveOffsets.cs +++ b/NHSE.Core/Save/Offsets/MainSaveOffsets.cs @@ -66,7 +66,8 @@ public static MainSaveOffsets GetOffsets(FileHeaderInfo Info) 11 => new MainSaveOffsets14(), 12 => new MainSaveOffsets14(), 13 => new MainSaveOffsets15(), - _ => throw new IndexOutOfRangeException("Unknown revision!"), + 14 => new MainSaveOffsets15(), + _ => throw new IndexOutOfRangeException("Unknown revision!" + Environment.NewLine + Info), }; } diff --git a/NHSE.Core/Save/Offsets/PersonalOffsets.cs b/NHSE.Core/Save/Offsets/PersonalOffsets.cs index 2b6e2b7..6bb743d 100644 --- a/NHSE.Core/Save/Offsets/PersonalOffsets.cs +++ b/NHSE.Core/Save/Offsets/PersonalOffsets.cs @@ -58,7 +58,8 @@ public static PersonalOffsets GetOffsets(FileHeaderInfo Info) 11 => new PersonalOffsets14(), 12 => new PersonalOffsets14(), 13 => new PersonalOffsets15(), - _ => throw new IndexOutOfRangeException("Unknown revision!"), + 14 => new PersonalOffsets15(), + _ => throw new IndexOutOfRangeException("Unknown revision!" + Environment.NewLine + Info), }; } }