Exemple #1
0
        public static String ReadString(FileReader reader)
        {
            Assert.IsNotNull(reader, nameof(reader));

            var output   = "";
            var bytelist = new List <Byte>();

            while (true)
            {
                var b = reader.ReadByte();

                if (b == 0)
                {
                    break;
                }
                else if (b < 0x20)
                {
                    output += reader.Encoding.GetString(bytelist.ToArray());
                    bytelist.Clear();

                    if (b == (Byte)StringCode.COLOR)
                    {
                        var value = reader.ReadByte();

                        output += (Char)b;
                        output += (Char)value;
                    }
                    else if (b == (Byte)StringCode.ITEM)
                    {
                        var value = reader.ReadUInt16();

                        output += (Char)b;
                        output += (Char)value;
                    }
                    else
                    {
                        output += (Char)b;
                    }
                }
                else
                {
                    bytelist.Add(b);
                }
            }

            output += reader.Encoding.GetString(bytelist.ToArray());
            bytelist.Clear();

            return(output);
        }