diff --git a/PKHeX.Core/Legality/Encounters/Data/EncounterUtil.cs b/PKHeX.Core/Legality/Encounters/Data/EncounterUtil.cs index 989026137..10f71bbca 100644 --- a/PKHeX.Core/Legality/Encounters/Data/EncounterUtil.cs +++ b/PKHeX.Core/Legality/Encounters/Data/EncounterUtil.cs @@ -208,7 +208,7 @@ internal static void ReduceAreasSize(ref EncounterArea[] Areas) }).ToArray(); } - internal static T[] ConcatAll(params T[][] arr) => arr.SelectMany(z => z).ToArray(); + internal static T[] ConcatAll(params IEnumerable[] arr) => arr.SelectMany(z => z).ToArray(); internal static void MarkEncounterAreaArray(params EncounterArea[][] areas) { diff --git a/PKHeX.Core/Legality/Encounters/Data/Encounters4.cs b/PKHeX.Core/Legality/Encounters/Data/Encounters4.cs index 323675501..3f02fd965 100644 --- a/PKHeX.Core/Legality/Encounters/Data/Encounters4.cs +++ b/PKHeX.Core/Legality/Encounters/Data/Encounters4.cs @@ -895,11 +895,12 @@ private static void MarkHGSSEncounterTypeSlots(ref EncounterArea[] Areas) new EncounterStaticTyped { Species = 484, Level = 01, Location = 231, Gift = true, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio }, //Palkia @ Sinjoh Ruins new EncounterStaticTyped { Species = 487, Level = 01, Location = 231, Gift = true, TypeEncounter = EncounterType.Starter_Fossil_Gift_Pt_DPTrio, Form = 1 }, //Giratina @ Sinjoh Ruins }; - private static readonly EncounterStatic[] Encounter_HGSS = Encounter_HGSS_KantoRoam_Grass.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Kanto_Grass)).Concat( - Encounter_HGSS_KantoRoam_Surf.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Kanto_Surf))).Concat( - Encounter_HGSS_JohtoRoam_Grass.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Johto_Grass))).Concat( - Encounter_HGSS_JohtoRoam_Surf.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Johto_Surf))).Concat( - Encounter_HGSS_Regular).ToArray(); + private static readonly EncounterStatic[] Encounter_HGSS = ConcatAll( + Encounter_HGSS_KantoRoam_Grass.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Kanto_Grass)), + Encounter_HGSS_KantoRoam_Surf.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Kanto_Surf)), + Encounter_HGSS_JohtoRoam_Grass.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Johto_Grass)), + Encounter_HGSS_JohtoRoam_Surf.SelectMany(e => e.Clone(Roaming_MetLocation_HGSS_Johto_Surf)), + Encounter_HGSS_Regular); #endregion #region Trade Tables internal static readonly string[] RanchOTNames = { null, "ユカリ", "Hayley", "EULALIE", "GIULIA", "EUKALIA", null, "Eulalia" }; diff --git a/PKHeX.Core/Saves/Substructures/Roamer3.cs b/PKHeX.Core/Saves/Substructures/Roamer3.cs index b6f3d9a64..403453ce1 100644 --- a/PKHeX.Core/Saves/Substructures/Roamer3.cs +++ b/PKHeX.Core/Saves/Substructures/Roamer3.cs @@ -13,9 +13,11 @@ public Roamer3(SAV3 sav) SAV = sav; Offset = sav.GetBlockOffset(4); if (GameVersion.FRLG.Contains(SAV.Version)) - Offset += 0x250; // 0x250 - FRLG - else - Offset += 0x35C; // 0x35C - RSE + Offset += 0x250; + else if (SAV.Version == GameVersion.E) + Offset += 0x35C; + else // RS + Offset += 0x2C4; IsGlitched = SAV.Version != GameVersion.E; }