PKHeX/PKHeX.Core/Saves/Substructures/Battle Videos/TurnActionCode.cs

35 lines
1 KiB
C#
Raw Normal View History

2018-08-19 03:10:30 +00:00
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
2018-08-19 03:10:30 +00:00
{
public readonly int PlayerID;
public readonly int Count;
public readonly int Bit;
2018-08-19 03:10:30 +00:00
public TurnActionInstruction(byte Op)
{
PlayerID = Op >> 5;
Bit = (Op >> 4) & 1;
2018-08-19 03:10:30 +00:00
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);
2018-08-19 03:10:30 +00:00
}
}