PKHeX/PKHeX.Core/Saves/Substructures/Gen7/Daycare7.cs
Kurt e21d108fb2 Split PokeCrypto from PKX
All logic in PokeCrypto is separate from the rest of the PKHeX.Core
library; makes it easy to just rip this portion out and reuse in other
projects without needing the entirety of PKHeX.Core logic

optimize out the CheckEncrypted to the actual path, separate methods.
Only usages of this method were with hardcoded Format values, so no
impact
2020-01-04 14:48:39 -08:00

44 lines
No EOL
1.3 KiB
C#

namespace PKHeX.Core
{
public sealed class Daycare7 : SaveBlock
{
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)] = (byte)(occupied ? 1 : 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] = (byte)(value ? 1 : 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);
}
}
}
}