diff --git a/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs b/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs index 6bd352d5e..a8408547c 100644 --- a/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs +++ b/PKHeX.Core/Game/GameStrings/FilteredGameDataSource.cs @@ -46,6 +46,8 @@ namespace PKHeX.Core { SAV7b => source.SpeciesDataSource // LGPE: Kanto 151, Meltan/Melmetal .Where(s => s.Value is <= (int)Core.Species.Mew or (int)Core.Species.Meltan or (int)Core.Species.Melmetal), + SAV8LA => source.SpeciesDataSource + .Where(s => PersonalTable.LA.IsSpeciesInGame(s.Value)), _ => source.SpeciesDataSource.Where(s => s.Value <= sav.MaxSpeciesID), }; } diff --git a/PKHeX.Core/PersonalInfo/PersonalTable.cs b/PKHeX.Core/PersonalInfo/PersonalTable.cs index c8881574f..83a212b1a 100644 --- a/PKHeX.Core/PersonalInfo/PersonalTable.cs +++ b/PKHeX.Core/PersonalInfo/PersonalTable.cs @@ -380,5 +380,21 @@ namespace PKHeX.Core { return Table.Any(p => p.IsValidTypeCombination(type1, type2)); } + + public bool IsSpeciesInGame(int species) + { + if ((uint)species > MaxSpeciesID) + return false; + var form0 = Table[species]; + if (form0.HP != 0) + return true; + var fc = form0.FormCount; + for (int i = 1; i < fc; i++) + { + if (GetFormEntry(species, i).HP != 0) + return true; + } + return false; + } } }