From 2d8d3e04fc6a693ef1f7a28fd69e030995c2e18f Mon Sep 17 00:00:00 2001 From: Kurt Date: Tue, 18 May 2021 13:04:23 -0700 Subject: [PATCH] Move mxyz to subclasses --- PKHeX.Core/Saves/SAV4.cs | 160 ++--------------------------------- PKHeX.Core/Saves/SAV4DP.cs | 9 +- PKHeX.Core/Saves/SAV4HGSS.cs | 7 ++ PKHeX.Core/Saves/SAV4Pt.cs | 10 ++- 4 files changed, 30 insertions(+), 156 deletions(-) diff --git a/PKHeX.Core/Saves/SAV4.cs b/PKHeX.Core/Saves/SAV4.cs index d7266c1c2..95e277466 100644 --- a/PKHeX.Core/Saves/SAV4.cs +++ b/PKHeX.Core/Saves/SAV4.cs @@ -239,161 +239,13 @@ public override int PlayedSeconds set => General[Trainer1 + 0x25] = (byte)value; } - public int M - { - get - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x1238; break; - case GameVersion.Pt: ofs = 0x1280; break; - case GameVersion.HGSS: ofs = 0x1234; break; - } - return BitConverter.ToUInt16(General, ofs); - } - set - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x1238; break; - case GameVersion.Pt: ofs = 0x1280; break; - case GameVersion.HGSS: ofs = 0x1234; break; - } - BitConverter.GetBytes((ushort)value).CopyTo(General, ofs); - } - } + public abstract int M { get; set; } + public abstract int X { get; set; } + public abstract int Y { get; set; } - public int X - { - get - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x1240; break; - case GameVersion.Pt: ofs = 0x1288; break; - case GameVersion.HGSS: ofs = 0x123C; break; - } - return BitConverter.ToUInt16(General, ofs); - } - set - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x1240; break; - case GameVersion.Pt: ofs = 0x1288; break; - case GameVersion.HGSS: ofs = 0x123C; break; - } - BitConverter.GetBytes((ushort)(X2 = value)).CopyTo(General, ofs); - } - } - - public int Y - { - get - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x1244; break; - case GameVersion.Pt: ofs = 0x128C; break; - case GameVersion.HGSS: ofs = 0x1240; break; - } - return BitConverter.ToUInt16(General, ofs); - } - set - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x1244; break; - case GameVersion.Pt: ofs = 0x128C; break; - case GameVersion.HGSS: ofs = 0x1240; break; - } - BitConverter.GetBytes((ushort)(Y2 = value)).CopyTo(General, ofs); - } - } - - public int X2 - { - get - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x25FA; break; - case GameVersion.Pt: ofs = 0x287E; break; - case GameVersion.HGSS: ofs = 0x236E; break; - } - return BitConverter.ToUInt16(General, ofs); - } - set - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x25FA; break; - case GameVersion.Pt: ofs = 0x287E; break; - case GameVersion.HGSS: ofs = 0x236E; break; - } - BitConverter.GetBytes((ushort)value).CopyTo(General, ofs); - } - } - - public int Y2 - { - get - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x25FE; break; - case GameVersion.Pt: ofs = 0x2882; break; - case GameVersion.HGSS: ofs = 0x2372; break; - } - return BitConverter.ToUInt16(General, ofs); - } - set - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x25FE; break; - case GameVersion.Pt: ofs = 0x2882; break; - case GameVersion.HGSS: ofs = 0x2372; break; - } - BitConverter.GetBytes((ushort)value).CopyTo(General, ofs); - } - } - - public int Z - { - get - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x2602; break; - case GameVersion.Pt: ofs = 0x2886; break; - case GameVersion.HGSS: ofs = 0x2376; break; - } - return BitConverter.ToUInt16(General, ofs); - } - set - { - int ofs = 0; - switch (Version) - { - case GameVersion.DP: ofs = 0x2602; break; - case GameVersion.Pt: ofs = 0x2886; break; - case GameVersion.HGSS: ofs = 0x2376; break; - } - BitConverter.GetBytes((ushort)value).CopyTo(General, ofs); - } - } + public abstract int X2 { get; set; } + public abstract int Y2 { get; set; } + public abstract int Z { get; set; } public override uint SecondsToStart { get => BitConverter.ToUInt32(General, AdventureInfo + 0x34); set => BitConverter.GetBytes(value).CopyTo(General, AdventureInfo + 0x34); } public override uint SecondsToFame { get => BitConverter.ToUInt32(General, AdventureInfo + 0x3C); set => BitConverter.GetBytes(value).CopyTo(General, AdventureInfo + 0x3C); } diff --git a/PKHeX.Core/Saves/SAV4DP.cs b/PKHeX.Core/Saves/SAV4DP.cs index c2b0ab84a..6d374bc02 100644 --- a/PKHeX.Core/Saves/SAV4DP.cs +++ b/PKHeX.Core/Saves/SAV4DP.cs @@ -139,5 +139,12 @@ private void SetActiveGiftFlags(IReadOnlyList gifts) arr[i] = !gifts[i].Empty; SetMysteryGiftDPSlotActiveFlags(arr); } + + public override int M { get => BitConverter.ToUInt16(General, 0x1238); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x1238); } + public override int X { get => BitConverter.ToUInt16(General, 0x1240); set => BitConverter.GetBytes((ushort)(X2 = value)).CopyTo(General, 0x1240); } + public override int Y { get => BitConverter.ToUInt16(General, 0x1244); set => BitConverter.GetBytes((ushort)(Y2 = value)).CopyTo(General, 0x1244); } + public override int X2 { get => BitConverter.ToUInt16(General, 0x25FA); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x25FA); } + public override int Y2 { get => BitConverter.ToUInt16(General, 0x25FE); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x25FE); } + public override int Z { get => BitConverter.ToUInt16(General, 0x2602); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x2602); } } -} \ No newline at end of file +} diff --git a/PKHeX.Core/Saves/SAV4HGSS.cs b/PKHeX.Core/Saves/SAV4HGSS.cs index bb85a50ed..63398236f 100644 --- a/PKHeX.Core/Saves/SAV4HGSS.cs +++ b/PKHeX.Core/Saves/SAV4HGSS.cs @@ -150,6 +150,13 @@ public override IReadOnlyList Inventory set => value.SaveAll(General); } + public override int M { get => BitConverter.ToUInt16(General, 0x1234); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x1234); } + public override int X { get => BitConverter.ToUInt16(General, 0x123C); set => BitConverter.GetBytes((ushort)(X2 = value)).CopyTo(General, 0x123C); } + public override int Y { get => BitConverter.ToUInt16(General, 0x1240); set => BitConverter.GetBytes((ushort)(Y2 = value)).CopyTo(General, 0x1240); } + public override int X2 { get => BitConverter.ToUInt16(General, 0x236E); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x236E); } + public override int Y2 { get => BitConverter.ToUInt16(General, 0x2372); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x2372); } + public override int Z { get => BitConverter.ToUInt16(General, 0x2376); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x2376); } + public int Badges16 { get => General[Trainer1 + 0x1F]; diff --git a/PKHeX.Core/Saves/SAV4Pt.cs b/PKHeX.Core/Saves/SAV4Pt.cs index 0fe3c4029..2a22b1bfb 100644 --- a/PKHeX.Core/Saves/SAV4Pt.cs +++ b/PKHeX.Core/Saves/SAV4Pt.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace PKHeX.Core { @@ -105,5 +106,12 @@ public override IReadOnlyList Inventory } set => value.SaveAll(General); } + + public override int M { get => BitConverter.ToUInt16(General, 0x1280); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x1280); } + public override int X { get => BitConverter.ToUInt16(General, 0x1288); set => BitConverter.GetBytes((ushort)(X2 = value)).CopyTo(General, 0x1288); } + public override int Y { get => BitConverter.ToUInt16(General, 0x128C); set => BitConverter.GetBytes((ushort)(Y2 = value)).CopyTo(General, 0x128C); } + public override int X2 { get => BitConverter.ToUInt16(General, 0x287E); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x287E); } + public override int Y2 { get => BitConverter.ToUInt16(General, 0x2882); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x2882); } + public override int Z { get => BitConverter.ToUInt16(General, 0x2886); set => BitConverter.GetBytes((ushort)value).CopyTo(General, 0x2886); } } }