diff --git a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan.cs b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan.cs index 001c9a130..15bf8501d 100644 --- a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan.cs +++ b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan.cs @@ -9,6 +9,15 @@ public abstract class Zukan protected int PokeDex { get; set; } protected int PokeDexLanguageFlags { get; set; } + protected Zukan(SaveFile sav, int dex, int langflag) + { + SAV = sav; + PokeDex = dex; + PokeDexLanguageFlags = langflag; + if (langflag > dex) + throw new ArgumentException(nameof(langflag)); + } + protected abstract int OFS_SEEN { get; } protected abstract int OFS_CAUGHT { get; } protected abstract int BitSeenSize { get; } diff --git a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs index e6d2eb9bc..1220ce0d1 100644 --- a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs +++ b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan5.cs @@ -10,11 +10,8 @@ public class Zukan5 : Zukan protected override int DexLangFlagByteCount => 7; protected override int DexLangIDCount => 7; - public Zukan5(SaveFile sav, int dex, int langflag) + public Zukan5(SaveFile sav, int dex, int langflag) : base(sav, dex, langflag - dex) { - SAV = sav; - PokeDex = dex; - PokeDexLanguageFlags = langflag; var wrap = SAV.BW ? DexFormUtil.GetDexFormIndexBW : (Func)DexFormUtil.GetDexFormIndexB2W2; DexFormIndexFetcher = (spec, form, _) => wrap(spec, form); } diff --git a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs index 0fb30d91e..dad27d265 100644 --- a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs +++ b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan6.cs @@ -10,11 +10,8 @@ public class Zukan6 : Zukan protected override int DexLangFlagByteCount => 7; protected override int DexLangIDCount => 7; - public Zukan6(SaveFile sav, int dex, int langflag) + public Zukan6(SaveFile sav, int dex, int langflag) : base(sav, dex, langflag - dex) { - SAV = sav; - PokeDex = dex; - PokeDexLanguageFlags = langflag; var wrap = SAV.ORAS ? DexFormUtil.GetDexFormIndexORAS : (Func)DexFormUtil.GetDexFormIndexXY; DexFormIndexFetcher = (spec, form, _) => wrap(spec, form); } diff --git a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7.cs b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7.cs index 01eec4cc3..b5ad46d03 100644 --- a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7.cs +++ b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7.cs @@ -21,15 +21,8 @@ public class Zukan7 : Zukan private IList FormBaseSpecies; - protected Zukan7() + public Zukan7(SaveFile sav, int dex, int langflag) : base(sav, dex, langflag - dex) { - } - - public Zukan7(SaveFile sav, int dex, int langflag) - { - SAV = sav; - PokeDex = dex; - PokeDexLanguageFlags = langflag; DexFormIndexFetcher = SAV.USUM ? (Func) DexFormUtil.GetDexFormIndexSM : DexFormUtil.GetDexFormIndexSM; LoadDexList(); Debug.Assert(!SAV.Exportable || BitConverter.ToUInt32(SAV.Data, PokeDex) == MAGIC); diff --git a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7b.cs b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7b.cs index 515b280a7..57b595e21 100644 --- a/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7b.cs +++ b/PKHeX.Core/Saves/Substructures/PokeDex/Zukan7b.cs @@ -19,11 +19,8 @@ public class Zukan7b : Zukan7 protected override int DexLangFlagByteCount => 920; // 0x398 = 817*9, top off the savedata block. protected override int DexLangIDCount => 9; // CHT, skipping langID 6 (unused) - public Zukan7b(SaveFile sav, int dex, int langflag) + public Zukan7b(SaveFile sav, int dex, int langflag) : base(sav, dex, langflag) { - SAV = sav; - PokeDex = dex; - PokeDexLanguageFlags = langflag; DexFormIndexFetcher = DexFormUtil.GetDexFormIndexGG; LoadDexList(); }