public byte[] ToBytes() { List <byte> bytes = new List <byte>(); bytes.AddRange(Grid.ToBytes()); bytes.AddRange(StartPos.ToBytes()); bytes.AddRange(MinMoves.ToBytes()); byte flags = (byte)((Completed ? 1 : 0) << 0 | (Perfect ? 1 : 0) << 1); bytes.Add(flags); byte[] hint = Encoding.UTF8.GetBytes(Hint ?? ""); bytes.AddRange(hint.Length.ToBytes()); bytes.AddRange(hint); // Write hex data bytes.AddRange(Data.Length.ToBytes()); for (int i = 0; i < Data.Length; i++) { bytes.AddRange(Data[i].ToBytes()); } return(bytes.ToArray()); }
/// <summary> /// Returns a byte array of the hex. /// </summary> /// <returns>Returns a byte array of the hex.</returns> public byte[] ToBytes() { List <byte> bytes = new List <byte>(); bytes.AddRange(Position.ToBytes()); bytes.Add((byte)IDs.Count); bytes.AddRange(IDs); return(bytes.ToArray()); }