using System.Collections.Generic; namespace PKHeX.Core { public sealed class SAV5B2W2 : SAV5, ISaveBlock5B2W2 { public SAV5B2W2() : base(SaveUtil.SIZE_G5RAW) { Blocks = new SaveBlockAccessor5B2W2(this); Initialize(); } public SAV5B2W2(byte[] data) : base(data) { Blocks = new SaveBlockAccessor5B2W2(this); Initialize(); } public override PersonalTable Personal => PersonalTable.B2W2; public SaveBlockAccessor5B2W2 Blocks { get; } public override SaveFile Clone() => new SAV5B2W2((byte[])Data.Clone()) { Footer = (byte[])Footer.Clone() }; protected override int EventConstMax => 0x1AF; // this doesn't seem right? protected override int EventFlagMax => 0xBF8; public override int MaxItemID => Legal.MaxItemID_5_B2W2; private void Initialize() { BattleBox = 0x20900; EventConst = 0x1FF00; EventFlag = EventConst + 0x35E; CGearInfoOffset = 0x1C000; CGearDataOffset = 0x52800; EntreeForestOffset = 0x22A00; PokeDex = Blocks.Zukan.PokeDex; } public override IReadOnlyList AllBlocks => Blocks.BlockInfo; public override MyItem Items => Blocks.Items; public override Zukan5 Zukan => Blocks.Zukan; public override Misc5 MiscBlock => Blocks.MiscBlock; public override MysteryBlock5 MysteryBlock => Blocks.MysteryBlock; public override Daycare5 DaycareBlock => Blocks.DaycareBlock; public override BoxLayout5 BoxLayout => Blocks.BoxLayout; public override PlayerData5 PlayerData => Blocks.PlayerData; public override BattleSubway5 BattleSubwayBlock => Blocks.BattleSubwayBlock; public PWTBlock5 PWTBlock => Blocks.PWTBlock; } }