protected override void SetBoxMetadata(int box) { var bdata = GetBoxOffset(box); // Set box count int count = 0; for (int s = 0; s < BoxSlotCount; s++) { var rel = bdata + (SIZE_STORED * s); if (Data[rel] != 0) // Species present { count++; } } var boxOfs = bdata - ListHeaderSizeBox; if (Data[boxOfs] == 0) { Data[boxOfs] = 1; Data[boxOfs + 1] = (byte)count; Data[boxOfs + 4] = StringConverter12.G1TerminatorCode; StringConverter12.SetString1("1234", 4, Japanese).CopyTo(Data, boxOfs + 0x10); } else { Data[boxOfs + 1] = (byte)count; } }
public override void SetMessage(string line1, string line2) { if (US) { StringConverter12.SetString1(line2, 0x10, false, 0x10, 0x50).CopyTo(Data, 0x11); StringConverter12.SetString1(line1, 0x10, false, 0x10, Data.Skip(0x11).Take(0x10).All(v => v == 0x50) ? (byte)0x50 : (byte)0x7F).CopyTo(Data, 0); Data[0x10] = 0x4E; } }
/// <summary> /// Gets the bytes for a Generation specific string according to the input parameters. /// </summary> /// <param name="value">Decoded string.</param> /// <param name="generation">Generation string format</param> /// <param name="jp">Encoding is Japanese</param> /// <param name="bigendian">Encoding is BigEndian</param> /// <param name="maxLength"></param> /// <param name="language"></param> /// <param name="padTo">Pad to given length</param> /// <param name="padWith">Pad with value</param> /// <returns>Encoded data.</returns> public static byte[] SetString(string value, int generation, bool jp, bool bigendian, int maxLength, int language = 0, int padTo = 0, ushort padWith = 0) { if (bigendian) { return(generation == 3 ? StringConverter3.SetBEString3(value, maxLength, padTo, padWith) : StringConverter4.SetBEString4(value, maxLength, padTo, padWith)); } switch (generation) { case 1: case 2: return(StringConverter12.SetString1(value, maxLength, jp, padTo, padWith)); case 3: return(StringConverter3.SetString3(value, maxLength, jp, padTo, padWith)); case 4: return(StringConverter4.SetString4(value, maxLength, padTo, padWith)); case 5: return(SetString5(value, maxLength, padTo, padWith)); case 6: return(SetString6(value, maxLength, padTo, padWith)); default: return(SetString7(value, maxLength, language, padTo, padWith)); } }