From d1932a6651e1902fa3b6ccf222c8b5cd13f4b79c Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 31 Mar 2021 22:37:48 -0700 Subject: [PATCH] Expose all 100 patterns in editors/dumps (1.9.0) Closes #471 --- NHSE.Core/Save/Files/MainSave.cs | 10 +++++----- NHSE.Core/Save/Offsets/MainSaveOffsets.cs | 5 +++-- NHSE.Core/Save/Offsets/MainSaveOffsets19.cs | 2 ++ NHSE.Core/Structures/GameFileDumper.cs | 4 ++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/NHSE.Core/Save/Files/MainSave.cs b/NHSE.Core/Save/Files/MainSave.cs index 702257d..57327b0 100644 --- a/NHSE.Core/Save/Files/MainSave.cs +++ b/NHSE.Core/Save/Files/MainSave.cs @@ -107,7 +107,7 @@ public void SetPlayerHouses(IReadOnlyList houses) public DesignPattern[] GetDesigns() { - var result = new DesignPattern[MainSaveOffsets.PatternCount]; + var result = new DesignPattern[Offsets.PatternCount]; for (int i = 0; i value) { - var count = Math.Min(MainSaveOffsets.PatternCount, value.Count); + var count = Math.Min(Offsets.PatternCount, value.Count); for (int i = 0; i < count; i++) SetDesign(value[i], i); } public DesignPatternPRO[] GetDesignsPRO() { - var result = new DesignPatternPRO[MainSaveOffsets.PatternCount]; + var result = new DesignPatternPRO[Offsets.PatternCount]; for (int i = 0; i < result.Length; i++) result[i] = GetDesignPRO(i); return result; @@ -130,7 +130,7 @@ public DesignPatternPRO[] GetDesignsPRO() public void SetDesignsPRO(IReadOnlyList value) { - var count = Math.Min(MainSaveOffsets.PatternCount, value.Count); + var count = Math.Min(Offsets.PatternCount, value.Count); for (int i = 0; i < count; i++) SetDesignPRO(value[i], i); } @@ -151,7 +151,7 @@ public DesignPatternPRO[] GetDesignsTailor() public void SetDesignsTailor(IReadOnlyList value) { - var count = Math.Min(MainSaveOffsets.PatternCount, value.Count); + var count = Math.Min(Offsets.PatternCount, value.Count); for (int i = 0; i < count; i++) value[i].Data.CopyTo(Data, Offsets.PatternTailor + (i * DesignPatternPRO.SIZE)); } diff --git a/NHSE.Core/Save/Offsets/MainSaveOffsets.cs b/NHSE.Core/Save/Offsets/MainSaveOffsets.cs index f51a530..fdca6d3 100644 --- a/NHSE.Core/Save/Offsets/MainSaveOffsets.cs +++ b/NHSE.Core/Save/Offsets/MainSaveOffsets.cs @@ -9,8 +9,9 @@ public abstract class MainSaveOffsets { public const int PlayerCount = 8; public const int VillagerCount = 10; - public const int PatternCount = 50; - public const int PatternCount2 = 100; + public virtual int PatternCount => PatternCount1; + protected const int PatternCount1 = 50; + protected const int PatternCount2 = 100; public const int PatternTailorCount = 8; public const int BuildingCount = 46; public const int RecycleBinCount = 40; diff --git a/NHSE.Core/Save/Offsets/MainSaveOffsets19.cs b/NHSE.Core/Save/Offsets/MainSaveOffsets19.cs index aace704..d564bbe 100644 --- a/NHSE.Core/Save/Offsets/MainSaveOffsets19.cs +++ b/NHSE.Core/Save/Offsets/MainSaveOffsets19.cs @@ -5,6 +5,8 @@ /// public class MainSaveOffsets19 : MainSaveOffsets { + public override int PatternCount => PatternCount2; + #region GSaveLand public const int GSaveLandStart = 0x110; public override int Animal => GSaveLandStart + 0x10; diff --git a/NHSE.Core/Structures/GameFileDumper.cs b/NHSE.Core/Structures/GameFileDumper.cs index 99c08a8..8155a21 100644 --- a/NHSE.Core/Structures/GameFileDumper.cs +++ b/NHSE.Core/Structures/GameFileDumper.cs @@ -141,7 +141,7 @@ private static void Dump(this IVillager v, string path) /// Path to dump to public static void DumpDesigns(this MainSave sav, string path) { - for (int i = 0; i < MainSaveOffsets.PatternCount; i++) + for (int i = 0; i < sav.Offsets.PatternCount; i++) { var dp = sav.GetDesign(i); dp.Dump(path, i); @@ -210,7 +210,7 @@ public static void Load(this DesignPattern[] patterns, string path) /// Path to dump to public static void DumpDesignsPRO(this MainSave sav, string path) { - for (int i = 0; i < MainSaveOffsets.PatternCount; i++) + for (int i = 0; i < sav.Offsets.PatternCount; i++) { var dp = sav.GetDesignPRO(i); dp.Dump(path, i);