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);