diff --git a/PKHeX.Core/Saves/SAV3Colosseum.cs b/PKHeX.Core/Saves/SAV3Colosseum.cs index 068f9b666..e19bd1768 100644 --- a/PKHeX.Core/Saves/SAV3Colosseum.cs +++ b/PKHeX.Core/Saves/SAV3Colosseum.cs @@ -260,6 +260,7 @@ public sealed class SAV3Colosseum : SaveFile, IGCSaveFile, IBoxDetailName, IDayc public override byte Gender { get => Data[0xAF8]; set => Data[0xAF8] = value; } public override uint Money { get => ReadUInt32BigEndian(Data[0xAFC..]); set => WriteUInt32BigEndian(Data[0xAFC..], value); } public uint Coupons { get => ReadUInt32BigEndian(Data[0xB00..]); set => WriteUInt32BigEndian(Data[0xB00..], value); } + public uint CouponsTotal { get => ReadUInt32BigEndian(Data[0xB04..]); set => WriteUInt32BigEndian(Data[0xB04..], value); } public string RUI_Name { get => GetString(Data.Slice(0xB3A, 20)); set => SetString(Data.Slice(0xB3A, 20), value, 10, StringConverterOption.ClearZero); } public override IReadOnlyList Inventory @@ -294,6 +295,23 @@ public sealed class SAV3Colosseum : SaveFile, IGCSaveFile, IBoxDetailName, IDayc public void SetDaycareEXP(int index, uint value) => WriteUInt32BigEndian(Data[(DaycareOffset + 4)..], value); public Memory GetDaycareSlot(int slot) => Raw.Slice(DaycareOffset + 8, PokeCrypto.SIZE_3CSTORED); + // Japanese Bonus Disc Gift Flags + /// Received Master Ball from JP Colosseum Bonus Disc; for reaching 30,000 + public bool PokeCouponTitleGold { get => GetFlag(Data, 0x1C118, 0); set => SetFlag(Data, 0x1C118, 0, value); } + + /// Received Light Ball Pikachu from JP Colosseum Bonus Disc; for reaching 5,000 + public bool PokeCouponTitleSilver { get => GetFlag(Data, 0x1C118, 1); set => SetFlag(Data, 0x1C118, 1, value); } + + /// Received PP Max from JP Colosseum Bonus Disc; for reaching 2,500 + public bool PokeCouponTitleBronze { get => GetFlag(Data, 0x1C118, 2); set => SetFlag(Data, 0x1C118, 2, value); } + + /// Used by the JP Colosseum Bonus Disc. Records how many Celebi have been sent to a GBA game. + /// Celebi cannot be sent using this save if this value >= 48. + public byte ReceivedAgetoGBA { get => Data[0x1C119]; set => Data[0x1C119] = value; } + + /// Received Celebi Gift from JP Colosseum Bonus Disc + public bool ReceivedAgeto { get => GetFlag(Data, 0x1C11A, 7); set => SetFlag(Data, 0x1C11A, 7, value); } + public override string GetString(ReadOnlySpan data) => StringConverter3GC.GetString(data); public override int LoadString(ReadOnlySpan data, Span destBuffer)