Aselia.Core.InterServer.Packer.Unpack C# (CSharp) Метод

Unpack() публичный статический Метод

public static Unpack ( byte packed, int start, int count ) : string
packed byte
start int
count int
Результат string
        public static string Unpack(byte[] packed, int start, int count)
        {
            if (packed[start] == 0xff)
            {
                return ASCIIEncoding.ASCII.GetString(packed, start + 1, count - 1);
            }

            int pattern = packed[start] & 0xf;
            StringBuilder builder = new StringBuilder();
            for (int b = start; b < count + start; )
            {
                int i = packed[b++] >> 4;
                if (i == 0xf)
                {
                    builder.Append((char)packed[b++]);
                }
                else
                {
                    builder.Append(PATTERNS[pattern, i]);
                }

                if (b >= packed.Length)
                {
                    break;
                }

                i = packed[b] & 0xf;
                if (i == 0xf)
                {
                    builder.Append((char)((packed[b++] & 0xf0) | (packed[b] & 0xf)));
                }
                else
                {
                    builder.Append(PATTERNS[pattern, i]);
                }
            }

            return builder.ToString();
        }

Same methods

Packer::Unpack ( byte packed ) : string