PKHeX/PKHeX.Core/Saves/Substructures/Gen7/Daycare7.cs
Kurt a681783f1a Extract interface for SaveBlock, allow strict
External users shouldn't be using SaveBlock
2022-04-15 11:45:04 -07:00

44 lines
No EOL
1.3 KiB
C#

namespace PKHeX.Core
{
public sealed class Daycare7 : SaveBlock<SAV7>
{
public const int DaycareSeedSize = 32; // 128 bits
public Daycare7(SAV7SM sav, int offset) : base(sav) => Offset = offset;
public Daycare7(SAV7USUM sav, int offset) : base(sav) => Offset = offset;
public bool GetIsOccupied(int slot)
{
return Data[Offset + ((PokeCrypto.SIZE_6STORED + 1) * slot)] != 0;
}
public void SetOccupied(int slot, bool occupied)
{
Data[Offset + ((PokeCrypto.SIZE_6STORED + 1) * slot)] = occupied ? (byte)1 : (byte)0;
}
public int GetDaycareSlotOffset(int slot)
{
return Offset + 1 + (slot * (PokeCrypto.SIZE_6STORED + 1));
}
public bool HasEgg
{
get => Data[Offset + 0x1D8] == 1;
set => Data[Offset + 0x1D8] = value ? (byte)1 : (byte)0;
}
public string RNGSeed
{
get => Util.GetHexStringFromBytes(Data, Offset + 0x1DC, DaycareSeedSize / 2);
set
{
if (value.Length != DaycareSeedSize)
return;
var data = Util.GetBytesFromHexString(value);
SAV.SetData(data, Offset + 0x1DC);
}
}
}
}