From dc813da2f798fcbeeddcc3daa76c287616dd43be Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 19 Jun 2019 17:49:50 -0700 Subject: [PATCH] Add DisplayTID/SID getset --- PKHeX.Core/Saves/SaveFile.cs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/PKHeX.Core/Saves/SaveFile.cs b/PKHeX.Core/Saves/SaveFile.cs index 0d15e4280..c16b6f0dd 100644 --- a/PKHeX.Core/Saves/SaveFile.cs +++ b/PKHeX.Core/Saves/SaveFile.cs @@ -413,8 +413,6 @@ public virtual MysteryGiftAlbum GiftAlbum public virtual int Game { get => -1; set { } } public virtual int TID { get; set; } public virtual int SID { get; set; } - public int TrainerID7 => (int)((uint)(TID | (SID << 16)) % 1000000); - public int TrainerSID7 => (int)((uint)(TID | (SID << 16)) / 1000000); public virtual string OT { get; set; } = "PKHeX"; public virtual int PlayedHours { get; set; } public virtual int PlayedMinutes { get; set; } @@ -427,6 +425,28 @@ public virtual MysteryGiftAlbum GiftAlbum public virtual int PartyCount { get; protected set; } public virtual int MultiplayerSpriteID { get => 0; set { } } + public int TrainerID7 { get => (int)((uint)(TID | (SID << 16)) % 1000000); set => SetID7(TrainerSID7, value); } + public int TrainerSID7 { get => (int)((uint)(TID | (SID << 16)) / 1000000); set => SetID7(value, TrainerID7); } + + public int DisplayTID + { + get => Generation >= 7 ? TrainerID7 : TID; + set { if (Generation >= 7) TrainerID7 = value; else TID = value; } + } + + public int DisplaySID + { + get => Generation >= 7 ? TrainerSID7 : SID; + set { if (Generation >= 7) TrainerSID7 = value; else SID = value; } + } + + private void SetID7(int sid7, int tid7) + { + var oid = (sid7 * 1_000_000) + (tid7 % 1_000_000); + TID = (ushort)oid; + SID = oid >> 16; + } + public bool IsPartyAllEggs(params int[] except) { if (!HasParty)