Esempio n. 1
0
    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;
        }
    }
Esempio n. 2
0
 private string GetString(Span <byte> asSpan)
 {
     if (Korean)
     {
         return(StringConverter2KOR.GetString(asSpan));
     }
     return(StringConverter12.GetString(asSpan, Japanese));
 }
Esempio n. 3
0
 public sealed override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0)
 {
     if (PadToSize == 0)
     {
         PadToSize = maxLength + 1;
     }
     return(StringConverter12.SetString1(value, maxLength, Japanese, PadToSize, (byte)PadWith));
 }
Esempio n. 4
0
 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));
 }
Esempio n. 5
0
 private void SetString(Span <byte> asSpan, ReadOnlySpan <char> value, int maxLength)
 {
     if (Korean)
     {
         StringConverter2KOR.SetString(asSpan, value, maxLength);
     }
     else
     {
         StringConverter12.SetString(asSpan, value, maxLength, Japanese);
     }
 }
Esempio n. 6
0
 public override void SetMessage(string line1, string line2)
 {
     if (US)
     {
         StringConverter12.SetString1(line2, 0x10, false, 0x10, StringConverter12.G1TerminatorCode).CopyTo(Data, 0x11);
         bool hasLine2 = Data[0x11] != StringConverter12.G1TerminatorCode;
         byte padChar  = !hasLine2 ? StringConverter12.G1TerminatorCode : (byte)0x7F; // space
         StringConverter12.SetString1(line1, 0x10, false, 0x10, padChar).CopyTo(Data, 0);
         Data[0x10] = 0x4E;
     }
 }
Esempio n. 7
0
 public sealed override string GetString(byte[] data, int offset, int length) => StringConverter12.GetString1(data, offset, length, Japanese);
Esempio n. 8
0
 public sealed override int SetString(Span <byte> destBuffer, ReadOnlySpan <char> value, int maxLength, StringConverterOption option)
 {
     return(StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option));
 }
Esempio n. 9
0
 public sealed override string GetString(ReadOnlySpan <byte> data) => StringConverter12.GetString(data, Japanese);
Esempio n. 10
0
 public override string GetMessage(bool isLastLine) => US?StringConverter12.GetString1(Data, isLastLine? 0x11 : 0, 0x10, false) : string.Empty;