private static List <StorageSlotOffset> GetExtraSlots2(SAV2 sav) { return(new List <StorageSlotOffset> { new StorageSlotOffset { Type = StorageSlotType.Daycare, Offset = sav.GetDaycareSlotOffset(0, 2) } // egg }); }
private static List <SlotInfoMisc> GetExtraSlotsUnsafe(SaveFile sav, bool all) { return(sav switch { SAV2 sav2 => GetExtraSlots2(sav2), SAV3 sav3 => GetExtraSlots3(sav3), SAV4 sav4 => GetExtraSlots4(sav4), SAV5 sav5 => GetExtraSlots5(sav5), SAV6XY xy => GetExtraSlots6XY(xy), SAV6AO xy => GetExtraSlots6AO(xy), SAV7 sav7 => GetExtraSlots7(sav7, all), _ => None });
public SAV2Offsets(SAV2 sav) { Options = 0x2000; Trainer1 = 0x2009; if (sav.Japanese) { LoadOffsetsJapanese(sav.Version); } else if (sav.Korean) { LoadOffsetsKorean(); } else { LoadOffsetsInternational(sav.Version); } Daycare = PokedexSeen + 0x1F + 28 + 1; // right after first unown seen EventConst = EventFlag - 0x100; }
/// <summary>Creates an instance of a SaveFile using the given save data.</summary> /// <param name="data">Save data from which to create a SaveFile.</param> /// <returns>An appropriate type of save file for the given data, or null if the save data is invalid.</returns> public static SaveFile getVariantSAV(byte[] data) { // Pre-check for header/footer signatures SaveFile sav; byte[] header = new byte[0], footer = new byte[0]; CheckHeaderFooter(ref data, ref header, ref footer); switch (getSAVGeneration(data)) { // Main Games case GameVersion.Gen1: sav = new SAV1(data); break; case GameVersion.Gen2: sav = new SAV2(data); break; case GameVersion.Gen3: sav = new SAV3(data); break; case GameVersion.Gen4: sav = new SAV4(data); break; case GameVersion.Gen5: sav = new SAV5(data); break; case GameVersion.Gen6: sav = new SAV6(data); break; case GameVersion.Gen7: sav = new SAV7(data); break; // Side Games case GameVersion.COLO: sav = new SAV3Colosseum(data); break; case GameVersion.XD: sav = new SAV3XD(data); break; case GameVersion.RSBOX: sav = new SAV3RSBox(data); break; case GameVersion.BATREV: sav = new SAV4BR(data); break; // No pattern matched default: return(null); } sav.Header = header; sav.Footer = footer; return(sav); }
public Mail2(SAV2 sav, int index) : base(sav.GetData(GetMailOffset(index), 0x2F), GetMailOffset(index)) { US = !sav.Japanese && !sav.Korean; }
public Mail2(SAV2 sav, int index) { US = !sav.Japanese && !sav.Korean; DataOffset = index < 6 ? (index * 0x2F) + 0x600 : ((index - 6) * 0x2F) + 0x835; Data = sav.GetData(DataOffset, 0x2F); }
/// <summary>Creates an instance of a SaveFile using the given save data.</summary> /// <param name="data">Save data from which to create a SaveFile.</param> /// <returns>An appropriate type of save file for the given data, or null if the save data is invalid.</returns> public static SaveFile getVariantSAV(byte[] data) { // Pre-check for header/footer signatures SaveFile sav; byte[] header = new byte[0], footer = new byte[0]; CheckHeaderFooter(ref data, ref header, ref footer); switch (getSAVGeneration(data)) { // Main Games case GameVersion.Gen1: sav = new SAV1(data); break; case GameVersion.Gen2: sav = new SAV2(data); break; case GameVersion.Gen3: sav = new SAV3(data); break; case GameVersion.Gen4: sav = new SAV4(data); break; case GameVersion.Gen5: sav = new SAV5(data); break; case GameVersion.Gen6: sav = new SAV6(data); break; case GameVersion.Gen7: sav = new SAV7(data); break; // Side Games case GameVersion.COLO: sav = new SAV3Colosseum(data); break; case GameVersion.XD: sav = new SAV3XD(data); break; case GameVersion.RSBOX: sav = new SAV3RSBox(data); break; case GameVersion.BATREV: sav = new SAV4BR(data); break; // No pattern matched default: return null; } sav.Header = header; sav.Footer = footer; return sav; }