private TownElement ReadItem(ExtendedBinaryReader input)
        {
            var returnPos = input.Position + 2;

            var title = ReadSubtitle(input);

            if (string.IsNullOrEmpty(title.Text))
            {
                input.Seek(-1, SeekOrigin.Current);
            }
            var unknown = input.ReadByte();
            var item    = new TownElement {
                Title = title, Unknown = unknown
            };

            input.Seek(returnPos, SeekOrigin.Begin);
            return(item);
        }
        private long WriteItem(ExtendedBinaryWriter output, IList <Subtitle> subtitles, TownElement item, long outputOffset)
        {
            var returnPos = output.Position + 2;

            var subtitle = subtitles.First(x => x.Offset == item.Title.Offset);

            WriteSubtitle(output, subtitle, outputOffset, false);
            output.Write(item.Unknown);

            var currentOffset = output.Position;

            output.Seek(returnPos, SeekOrigin.Begin);

            return(currentOffset);
        }