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.SetString(Data.AsSpan(boxOfs + 0x10, 4), "1234".AsSpan(), 4, Japanese, StringConverterOption.None); } else { Data[boxOfs + 1] = (byte)count; } }
private int SetString(ReadOnlySpan <char> value, Span <byte> destBuffer, int maxLength, StringConverterOption option = StringConverterOption.None) { if (Korean) { return(StringConverter2KOR.SetString(destBuffer, value, maxLength, option)); } return(StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option)); }
public override void SetMessage(string line1, string line2) { if (US) { StringConverter12.SetString(Data.AsSpan(0x11, 0x10), line2.AsSpan(), 0x10, false, StringConverterOption.Clear50); bool hasLine2 = Data[0x11] != StringConverter12.G1TerminatorCode; var padChar = !hasLine2 ? StringConverterOption.Clear50 : StringConverterOption.Clear7F; // space StringConverter12.SetString(Data.AsSpan(0, 0x10), line1.AsSpan(), 0x10, false, padChar); Data[0x10] = 0x4E; } }
public sealed override int SetString(Span <byte> destBuffer, ReadOnlySpan <char> value, int maxLength, StringConverterOption option) { return(StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option)); }