pkNX/pkNX.Structures/Evolution/EvolutionSet7.cs
Kurt 6a34a96af1 Misc fixes
Form opens, displays data
2018-11-20 18:25:20 -08:00

48 lines
1.5 KiB
C#

using System;
using System.IO;
namespace pkNX.Structures
{
public class EvolutionSet7 : EvolutionSet
{
private const int ENTRY_SIZE = 8;
private const int ENTRY_COUNT = 8;
public const int SIZE = ENTRY_COUNT * ENTRY_SIZE;
public EvolutionSet7(byte[] data)
{
if (data.Length != SIZE)
return;
PossibleEvolutions = data.GetArray(GetEvo, ENTRY_SIZE);
}
private static EvolutionMethod GetEvo(byte[] data, int offset)
{
return new EvolutionMethod
{
Method = (EvolutionType)BitConverter.ToUInt16(data, offset + 0),
Argument = BitConverter.ToUInt16(data, offset + 2),
Species = BitConverter.ToUInt16(data, offset + 4),
Form = (sbyte)data[offset + 6],
Level = data[offset + 7],
};
}
public override byte[] Write()
{
using (MemoryStream ms = new MemoryStream())
using (BinaryWriter bw = new BinaryWriter(ms))
{
foreach (EvolutionMethod evo in PossibleEvolutions)
{
bw.Write((ushort)evo.Method);
bw.Write((ushort)evo.Argument);
bw.Write((ushort)evo.Species);
bw.Write((sbyte)evo.Form);
bw.Write((byte)evo.Level);
}
return ms.ToArray();
}
}
}
}