mirror of
https://github.com/kwsch/PKHeX
synced 2024-12-24 19:33:10 +00:00
e21d108fb2
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
44 lines
No EOL
1.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |