diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index d01ced809..e589feb77 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -1060,8 +1060,20 @@ private CheckResult verifyHistory() { if (!Encounter.Valid) return new CheckResult(Severity.Valid, "Skipped History check due to other check being invalid.", CheckIdentifier.History); + if (pkm.GenNumber < 6) - return new CheckResult(Severity.Valid, "No History Block to check.", CheckIdentifier.History); + { + if (pkm.Format < 6) + return new CheckResult(Severity.Valid, "No History Block to check.", CheckIdentifier.History); + + if (pkm.OT_Affection > 0) + return new CheckResult(Severity.Invalid, "OT Affection should be zero.", CheckIdentifier.History); + if (pkm.OT_Memory > 0 || pkm.OT_Feeling > 0 || pkm.OT_Intensity > 0 || pkm.OT_TextVar > 0) + return new CheckResult(Severity.Invalid, "Should not have OT memories.", CheckIdentifier.History); + } + + if (pkm.HT_Gender > 1) + return new CheckResult(Severity.Invalid, $"HT Gender invalid {pkm.HT_Gender}.", CheckIdentifier.History); WC6 MatchedWC6 = EncounterMatch as WC6; if (MatchedWC6?.OT.Length > 0) // Has Event OT -- null propagation yields false if MatchedWC6=null diff --git a/PKHeX/PKM/PK6.cs b/PKHeX/PKM/PK6.cs index 1e4c8ff38..e4daa6499 100644 --- a/PKHeX/PKM/PK6.cs +++ b/PKHeX/PKM/PK6.cs @@ -311,7 +311,7 @@ public override string HT_Name Encoding.Unicode.GetBytes(TempNick).CopyTo(Data, 0x78); } } - public int HT_Gender { get { return Data[0x92]; } set { Data[0x92] = (byte)value; } } + public override int HT_Gender { get { return Data[0x92]; } set { Data[0x92] = (byte)value; } } public override int CurrentHandler { get { return Data[0x93]; } set { Data[0x93] = (byte)value; } } public override int Geo1_Region { get { return Data[0x94]; } set { Data[0x94] = (byte)value; } } public override int Geo1_Country { get { return Data[0x95]; } set { Data[0x95] = (byte)value; } } diff --git a/PKHeX/PKM/PK7.cs b/PKHeX/PKM/PK7.cs index 00a2df081..0cb711549 100644 --- a/PKHeX/PKM/PK7.cs +++ b/PKHeX/PKM/PK7.cs @@ -319,7 +319,7 @@ public override string HT_Name Encoding.Unicode.GetBytes(TempNick).CopyTo(Data, 0x78); } } - public int HT_Gender { get { return Data[0x92]; } set { Data[0x92] = (byte)value; } } + public override int HT_Gender { get { return Data[0x92]; } set { Data[0x92] = (byte)value; } } public override int CurrentHandler { get { return Data[0x93]; } set { Data[0x93] = (byte)value; } } public override int Geo1_Region { get { return Data[0x94]; } set { Data[0x94] = (byte)value; } } public override int Geo1_Country { get { return Data[0x95]; } set { Data[0x95] = (byte)value; } } diff --git a/PKHeX/PKM/PKM.cs b/PKHeX/PKM/PKM.cs index a39fffe3b..c4950d9b4 100644 --- a/PKHeX/PKM/PKM.cs +++ b/PKHeX/PKM/PKM.cs @@ -131,6 +131,7 @@ public byte[] Write() protected virtual int Met_Month { get { return 0; } set { } } protected virtual int Met_Day { get { return 0; } set { } } public virtual string HT_Name { get; set; } + public virtual int HT_Gender { get; set; } public virtual int HT_Affection { get; set; } public virtual int HT_Friendship { get; set; } public virtual int HT_Memory { get; set; }