Esempio n. 1
0
        public Menu(byte[] data)
            : base(data)
        {
            PacketReader reader    = new PacketReader(data);
            byte         id        = reader.ReadByte();
            ushort       blockSize = reader.ReadUInt16();

            dialogSerial = reader.ReadUInt32();
            menuSerial   = reader.ReadUInt16();

            byte titleLen = reader.ReadByte();

            title = reader.ReadAnsiString(titleLen);

            byte optionCount = reader.ReadByte();

            MenuOption[] optionList = new MenuOption[optionCount];

            for (int i = 0; i < optionCount; i++)
            {
                optionList[i].Artwork = reader.ReadUInt16();
                optionList[i].Hue     = reader.ReadUInt16();

                byte textLen = reader.ReadByte();
                optionList[i].Text = reader.ReadAnsiString(textLen);
            }

            options = Array.AsReadOnly <MenuOption>(optionList);

            // if (reader.Offset == reader.Length)
            //     System.Diagnostics.Debug.WriteLine("Menu packet resolved succesfully.", "Communication");
        }
Esempio n. 2
0
        public Menu(byte[] data)
            : base(data)
        {
            PacketReader reader = new PacketReader(data);
            byte id = reader.ReadByte();
            ushort blockSize = reader.ReadUInt16();

            dialogSerial = reader.ReadUInt32();
            menuSerial = reader.ReadUInt16();

            byte titleLen = reader.ReadByte();
            title = reader.ReadAnsiString(titleLen);

            byte optionCount = reader.ReadByte();
            MenuOption[] optionList = new MenuOption[optionCount];

            for (int i = 0; i < optionCount; i++) {
                optionList[i].Artwork = reader.ReadUInt16();
                optionList[i].Hue = reader.ReadUInt16();

                byte textLen = reader.ReadByte();
                optionList[i].Text = reader.ReadAnsiString(textLen);
            }

            options = Array.AsReadOnly<MenuOption>(optionList);

            // if (reader.Offset == reader.Length)
            //     System.Diagnostics.Debug.WriteLine("Menu packet resolved succesfully.", "Communication");
        }