PKHeX/PKHeX.Core/Saves/Substructures/Battle Videos/TurnActionCode.cs
Kurt 9401b7a790 More readonly struct tweaks
help dat compiler
minor clean elsewhere
2019-10-26 23:18:25 -07:00

35 lines
No EOL
1 KiB
C#

namespace PKHeX.Core
{
public enum TurnActionCode
{
None = 0,
Fight = 1,
Switch = 3,
Run = 4,
UNK5 = 5,
Rotate = 6,
UNK7 = 7,
MegaEvolve = 8,
}
public readonly struct TurnActionInstruction
{
public readonly int PlayerID;
public readonly int Count;
public readonly int Bit;
public TurnActionInstruction(byte Op)
{
PlayerID = Op >> 5;
Bit = (Op >> 4) & 1;
Count = Op & 0xF;
}
public byte GetRawValue => (byte)((Count & 0xF) | ((byte)Bit << 4) | (PlayerID << 5));
public override bool Equals(object obj) => obj is TurnStartInstruction t && t.GetRawValue == GetRawValue;
public override int GetHashCode() => GetRawValue;
public static bool operator ==(TurnActionInstruction left, TurnActionInstruction right) => left.Equals(right);
public static bool operator !=(TurnActionInstruction left, TurnActionInstruction right) => !(left == right);
}
}