diff --git a/PKHeX.Core/Legality/Checks.cs b/PKHeX.Core/Legality/Checks.cs
index 9d46d2fa1..056d2a86d 100644
--- a/PKHeX.Core/Legality/Checks.cs
+++ b/PKHeX.Core/Legality/Checks.cs
@@ -92,9 +92,9 @@ private void VerifyEReaderBerry()
var matchJP = Legal.EReaderBerriesNames_JP.Contains(Legal.EReaderBerryName);
if (!matchJP && !matchUSA) // Does not match any released E-Reader berry
AddLine(Severity.Invalid, V369, CheckIdentifier.Form);
- else if (matchJP && !Legal.SavegameJapanese) // E-Reader is region locked
+ else if (matchJP && !Legal.SavegameJapanese && Legal.SavegameLanguage >= 0) // E-Reader is region locked
AddLine(Severity.Invalid, V370, CheckIdentifier.Form);
- else if (matchUSA && Legal.SavegameJapanese) // E-Reader is region locked
+ else if (matchUSA && Legal.SavegameJapanese && Legal.SavegameLanguage >= 0) // E-Reader is region locked
AddLine(Severity.Invalid, V371, CheckIdentifier.Form);
}
private void VerifyECPID()
@@ -197,7 +197,7 @@ private bool VerifyLanguage()
// Korean Gen4 games can not trade with other Gen4 languages, but can use Pal Park with any Gen3 game/language.
if (pkm.Format == 4 && pkm.Gen4
- && (pkm.Language == (int)LanguageID.Korean) ^ (Legal.SavegameLanguage == (int)LanguageID.Korean))
+ && (pkm.Language == (int)LanguageID.Korean) ^ (Legal.SavegameLanguage == (int)LanguageID.Korean) && Legal.SavegameLanguage >= 0)
{
bool kor = pkm.Language == (int) LanguageID.Korean;
var currentpkm = kor ? V611 : V612;
@@ -387,7 +387,7 @@ private void VerifyTrade4()
{
lang = DetectTradeLanguageG4SurgePikachu(pkm, lang);
// flag korean magikarp on gen4 saves since the pkm.Language is German
- if (pkm.Format == 4 && lang == (int)LanguageID.Korean && Legal.SavegameLanguage != (int)LanguageID.Korean)
+ if (pkm.Format == 4 && lang == (int)LanguageID.Korean && Legal.SavegameLanguage != (int)LanguageID.Korean && Legal.SavegameLanguage >= 0)
AddLine(Severity.Invalid, string.Format(V610, V611, V612), CheckIdentifier.Language);
}
VerifyTradeTable(Encounters4.TradeHGSS, Encounters4.TradeGift_HGSS, lang);
@@ -399,7 +399,7 @@ private void VerifyTrade4()
{
lang = DetectTradeLanguageG4MeisterMagikarp(pkm, lang);
// flag korean magikarp on gen4 saves since the pkm.Language is German
- if (pkm.Format == 4 && lang == (int)LanguageID.Korean && Legal.SavegameLanguage != (int)LanguageID.Korean)
+ if (pkm.Format == 4 && lang == (int)LanguageID.Korean && Legal.SavegameLanguage != (int)LanguageID.Korean && Legal.SavegameLanguage >= 0)
AddLine(Severity.Invalid, string.Format(V610, V611, V612), CheckIdentifier.Language);
}
else if (!pkm.Pt && lang == 1) // DP English origin are Japanese lang
diff --git a/PKHeX.Core/Legality/Core.cs b/PKHeX.Core/Legality/Core.cs
index 36eaaf8df..2b86401b3 100644
--- a/PKHeX.Core/Legality/Core.cs
+++ b/PKHeX.Core/Legality/Core.cs
@@ -23,7 +23,7 @@ public static partial class Legal
public static bool CheckWordFilter { get; set; } = true;
- public static int SavegameLanguage { get; set; }
+ public static int SavegameLanguage { get; set; } = -1;
/// e-Reader Berry originates from a Japanese SaveFile
public static bool SavegameJapanese { get; set; }
/// e-Reader Berry is Enigma or special berry
diff --git a/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs b/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs
index 9796e850b..1da3c0014 100644
--- a/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs
+++ b/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs
@@ -145,6 +145,10 @@ private static IEnumerable GenerateRawEncounters12(PKM pkm, Gam
}
yield return new GBEncounterData(pkm, gen, s, s.Version);
}
+ // clear egg flag
+ // necessary for static egg gifts which appear in wild, level 8 GS clefairy
+ // GetValidWildEncounters immediately returns empty otherwise
+ pkm.WasEgg = false;
foreach (var e in GetValidWildEncounters(pkm, game).OfType())
{
if (!species.Contains(e.Species))
diff --git a/Tests/PKHeX.Tests/Legality/Legal/Generation 2/035 - CLEFAIRY - 8A0C.pk2 b/Tests/PKHeX.Tests/Legality/Legal/Generation 2/035 - CLEFAIRY - 8A0C.pk2
new file mode 100644
index 000000000..0ec9814fd
Binary files /dev/null and b/Tests/PKHeX.Tests/Legality/Legal/Generation 2/035 - CLEFAIRY - 8A0C.pk2 differ