示例#1
0
        public void ShowGump(GumpInstanceId id, GumpTypeId type, int x, int y, string commands, string[] textLines)
        {
            var gumpPacket = new SendGumpMenuDialogPacket();

            gumpPacket.GumpId     = id;
            gumpPacket.GumpTypeId = type;
            gumpPacket.X          = (uint)x;
            gumpPacket.Y          = (uint)y;
            gumpPacket.Commands   = commands;
            gumpPacket.TextLines  = textLines;

            Send(gumpPacket.Serialize());
        }
        public void Can_deserialize()
        {
            var rawPacket = FakePackets.Instantiate(new byte[]
            {
                0xB0,                   // packet
                0x05, 0x72,             // size
                0x40, 0x00, 0x0D, 0xA7, // Id
                0x96, 0x00, 0x04, 0x95, // GumpId
                0x00, 0x00, 0x00, 0x1E, // X
                0x00, 0x00, 0x00, 0x00, // Y
                0x03, 0x1B,             // Command Section Length (795)
                0x7B, 0x52, 0x65, 0x73, 0x69, 0x7A, 0x65, 0x50, 0x69, 0x63, 0x20, 0x30, 0x20, 0x30, 0x20, 0x39,
                //{ResizePic 0 0 9
                0x32, 0x35, 0x30, 0x20, 0x32, 0x36, 0x30, 0x20, 0x32, 0x34, 0x36, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                //250 260 246}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x31, 0x33, 0x20,
                //pPicTiled 13 13
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                //143 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x31, 0x33,
                //pPicTiled 159 13
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                // 88 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x33, 0x35, 0x20,
                //pPicTiled 13 35
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                //143 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x33, 0x35,
                //pPicTiled 159 35
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                // 88 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x35, 0x37, 0x20,
                //pPicTiled 13 57
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                //143 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x35, 0x37,
                //pPicTiled 159 57
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                // 88 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x37, 0x39, 0x20,
                //pPicTiled 13 79
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                //143 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x37, 0x39,
                //pPicTiled 159 79
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                // 88 19 2624}{Gum
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x31, 0x31, 0x37,
                //pPicTiled 13 117
                0x20, 0x32, 0x33, 0x34, 0x20, 0x33, 0x38, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75,
                // 234 38 2624}{Gu
                0x6D, 0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x31, 0x35,
                //mpPicTiled 13 15
                0x38, 0x20, 0x32, 0x39, 0x20, 0x37, 0x36, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75,
                //8 29 76 2624}{Gu
                0x6D, 0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x34, 0x35, 0x20, 0x31, 0x35,
                //mpPicTiled 45 15
                0x38, 0x20, 0x32, 0x30, 0x32, 0x20, 0x37, 0x36, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x43,
                //8 202 76 2624}{C
                0x68, 0x65, 0x63, 0x6B, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6E, 0x73, 0x20, 0x31, 0x30, 0x20, 0x31,
                //heckerTrans 10 1
                0x30, 0x20, 0x32, 0x34, 0x30, 0x20, 0x32, 0x32, 0x37, 0x7D, 0x7B, 0x47, 0x75, 0x6D, 0x70, 0x50,
                //0 240 227}{GumpP
                0x69, 0x63, 0x20, 0x31, 0x33, 0x20, 0x31, 0x33, 0x20, 0x31, 0x30, 0x30, 0x7D, 0x7B, 0x48, 0x54,
                //ic 13 13 100}{HT
                0x4D, 0x4C, 0x47, 0x75, 0x6D, 0x70, 0x20, 0x33, 0x33, 0x20, 0x33, 0x33, 0x20, 0x31, 0x30, 0x30,
                //MLGump 33 33 100
                0x20, 0x36, 0x30, 0x20, 0x31, 0x30, 0x30, 0x20, 0x30, 0x20, 0x30, 0x7D, 0x7B, 0x54, 0x65, 0x78,
                // 60 100 0 0}{Tex
                0x74, 0x20, 0x31, 0x36, 0x34, 0x20, 0x31, 0x33, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x31,
                //t 164 13 955 101
                0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x36, 0x34, 0x20, 0x33, 0x35, 0x20, 0x39, 0x35,
                //}{Text 164 35 95
                0x35, 0x20, 0x31, 0x30, 0x32, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x36, 0x34, 0x20,
                //5 102}{Text 164
                0x35, 0x37, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x33, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74,
                //57 955 103}{Text
                0x20, 0x31, 0x36, 0x34, 0x20, 0x37, 0x39, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x34, 0x7D,
                // 164 79 955 104}
                0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x38, 0x20, 0x31, 0x31, 0x37, 0x20, 0x39, 0x35, 0x35,
                //{Text 18 117 955
                0x20, 0x31, 0x30, 0x35, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x38, 0x20, 0x31, 0x33,
                // 105}{Text 18 13
                0x36, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x36, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20,
                //6 955 106}{Text
                0x35, 0x30, 0x20, 0x31, 0x35, 0x38, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x37, 0x7D, 0x7B,
                //50 158 955 107}{
                0x42, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x20, 0x31, 0x33, 0x20, 0x31, 0x35, 0x38, 0x20, 0x34, 0x30,
                //Button 13 158 40
                0x30, 0x35, 0x20, 0x34, 0x30, 0x30, 0x37, 0x20, 0x31, 0x20, 0x30, 0x20, 0x32, 0x7D, 0x7B, 0x54,
                //05 4007 1 0 2}{T
                0x65, 0x78, 0x74, 0x20, 0x35, 0x30, 0x20, 0x31, 0x37, 0x37, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31,
                //ext 50 177 955 1
                0x30, 0x38, 0x7D, 0x7B, 0x42, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x20, 0x31, 0x33, 0x20, 0x31, 0x37,
                //08}{Button 13 17
                0x37, 0x20, 0x34, 0x30, 0x30, 0x35, 0x20, 0x34, 0x30, 0x30, 0x37, 0x20, 0x31, 0x20, 0x30, 0x20,
                //7 4005 4007 1 0
                0x34, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x35, 0x30, 0x20, 0x31, 0x39, 0x36, 0x20, 0x39,
                //4}{Text 50 196 9
                0x35, 0x35, 0x20, 0x31, 0x30, 0x39, 0x7D, 0x7B, 0x42, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x20, 0x31,
                //55 109}{Button 1
                0x33, 0x20, 0x31, 0x39, 0x36, 0x20, 0x34, 0x30, 0x30, 0x35, 0x20, 0x34, 0x30, 0x30, 0x37, 0x20,
                //3 196 4005 4007
                0x31, 0x20, 0x30, 0x20, 0x36, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x35, 0x30, 0x20, 0x32,
                //1 0 6}{Text 50 2
                0x31, 0x35, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x31, 0x30, 0x7D, 0x7B, 0x42, 0x75, 0x74, 0x74,
                //15 955 110}{Butt
                0x6F, 0x6E, 0x20, 0x31, 0x33, 0x20, 0x32, 0x31, 0x35, 0x20, 0x34, 0x30, 0x30, 0x35, 0x20, 0x34,
                //on 13 215 4005 4
                0x30, 0x30, 0x37, 0x20, 0x31, 0x20, 0x30, 0x20, 0x39, 0x7D, 0x00,
                //007 1 0 9}
                0x00, 0x6F, // TextLinesCount = 111
                // 100 empty lines
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x20, // line 100 text length
                // line 100 unicode text
                0x00, 0x44, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x63, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6C,
                0x00, 0x6F, 0x00, 0x20, 0x00, 0x31, 0x00, 0x38, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x62, 0x00, 0x72,
                0x00, 0x3E, 0x00, 0x44, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x70, 0x00, 0x72, 0x00, 0x61,
                0x00, 0x74, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x70, 0x00, 0x69, 0x00, 0x76, 0x00, 0x61,
                0x00, 0x08, // line 101 text length
                // line 101 unicode text
                0x00, 0x4D, 0x00, 0x61, 0x00, 0x6A, 0x00, 0x69, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x3A,
                0x00, 0x05, // line 102 text length
                // line 102 unicode text
                0x00, 0x4A, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x6B, 0x00, 0x79,
                0x00, 0x0C, // line 103 text length
                // line 103 unicode text
                0x00, 0x54, 0x00, 0x76, 0x00, 0x75, 0x00, 0x6A, 0x00, 0x20, 0x00, 0x73, 0x00, 0x74, 0x00, 0x61,
                0x00, 0x74, 0x00, 0x75, 0x00, 0x73, 0x00, 0x3A,
                0x00, 0x06, // line 104 text length
                // line 104 unicode text
                0x00, 0x50, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C,
                0x00, 0x10, // line 105 text length
                // line 105 unicode text
                0x00, 0x4E, 0x00, 0x61, 0x00, 0x6A, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x31,
                0x00, 0x32, 0x00, 0x35, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x67, 0x00, 0x70,
                0x00, 0x13, // line 106 text length
                // line 106 unicode text
                0x00, 0x5A, 0x00, 0x61, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6E,
                0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x20, 0x00, 0x36, 0x00, 0x35, 0x00, 0x20,
                0x00, 0x64, 0x00, 0x6E, 0x00, 0x69,
                0x00, 0x16, // line 107 text length
                // line 107 unicode text
                0x00, 0x5A, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x6B, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x74,
                0x00, 0x2F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6B, 0x00, 0x6E, 0x00, 0x6F,
                0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x76, 0x00, 0x65, 0x00, 0x63,
                0x00, 0x12, // line 108 text length
                // line 108 unicode text
                0x00, 0x53, 0x00, 0x65, 0x00, 0x7A, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x70,
                0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F,
                0x00, 0x6D, 0x00, 0x75,
                0x00, 0x1A, // line 109 text length
                // line 109 unicode text
                0x00, 0x53, 0x00, 0x65, 0x00, 0x7A, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x73,
                0x00, 0x70, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x76, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x73,
                0x00, 0x74, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x6B, 0x00, 0x75, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F,
                0x00, 0x6D, 0x00, 0x75,
                0x00, 0x0D, // line 110 text length
                // line 110 unicode text
                0x00, 0x4F, 0x00, 0x74, 0x00, 0x65, 0x00, 0x76, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20,
                0x00, 0x62, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x6B, 0x00, 0x75
            });

            var packet = new SendGumpMenuDialogPacket();

            packet.Deserialize(rawPacket);

            packet.GumpId.Should().Be(new GumpInstanceId(0x40000da7u));
            packet.GumpTypeId.Should().Be(new GumpTypeId(0x96000495u));
            packet.X.Should().Be(0x0000001e);
            packet.Y.Should().Be(0);
            packet.Commands.Should().Be(
                "{ResizePic 0 0 9250 260 246}{GumpPicTiled 13 13 143 19 2624}{GumpPicTiled 159 13 88 19 2624}{GumpPicTiled 13 35 143 19 2624}{GumpPicTiled 159 35 88 19 2624}{GumpPicTiled 13 57 143 19 2624}{GumpPicTiled 159 57 88 19 2624}{GumpPicTiled 13 79 143 19 2624}{GumpPicTiled 159 79 88 19 2624}{GumpPicTiled 13 117 234 38 2624}{GumpPicTiled 13 158 29 76 2624}{GumpPicTiled 45 158 202 76 2624}{CheckerTrans 10 10 240 227}{GumpPic 13 13 100}{HTMLGump 33 33 100 60 100 0 0}{Text 164 13 955 101}{Text 164 35 955 102}{Text 164 57 955 103}{Text 164 79 955 104}{Text 18 117 955 105}{Text 18 136 955 106}{Text 50 158 955 107}{Button 13 158 4005 4007 1 0 2}{Text 50 177 955 108}{Button 13 177 4005 4007 1 0 4}{Text 50 196 955 109}{Button 13 196 4005 4007 1 0 6}{Text 50 215 955 110}{Button 13 215 4005 4007 1 0 9}");

            packet.TextLines.Length.Should().Be(0x6f);
            packet.TextLines[100].Should().Be("Dum cislo 188<br>Dum pratel piva");
            packet.TextLines[110].Should().Be("Otevrit banku");
        }
示例#3
0
 private void HandleGump(SendGumpMenuDialogPacket packet) => GumpReceived?.Invoke();
示例#4
0
        public void Can_parse_complex_gump()
        {
            var rawPacket = FakePackets.Instantiate(new byte[]
            {
                0xB0,                   // packet
                0x05, 0x72,             // size
                0x40, 0x00, 0x0D, 0xA7, // Id
                0x96, 0x00, 0x04, 0x95, // GumpId
                0x00, 0x00, 0x00, 0x1E, // X
                0x00, 0x00, 0x00, 0x00, // Y
                0x03, 0x1B,             // Command Section Length (795)
                0x7B, 0x52, 0x65, 0x73, 0x69, 0x7A, 0x65, 0x50, 0x69, 0x63, 0x20, 0x30, 0x20, 0x30, 0x20, 0x39,
                0x32, 0x35, 0x30, 0x20, 0x32, 0x36, 0x30, 0x20, 0x32, 0x34, 0x36, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x31, 0x33, 0x20,
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x31, 0x33,
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x33, 0x35, 0x20,
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x33, 0x35,
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x35, 0x37, 0x20,
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x35, 0x37,
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x37, 0x39, 0x20,
                0x31, 0x34, 0x33, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x35, 0x39, 0x20, 0x37, 0x39,
                0x20, 0x38, 0x38, 0x20, 0x31, 0x39, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75, 0x6D,
                0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x31, 0x31, 0x37,
                0x20, 0x32, 0x33, 0x34, 0x20, 0x33, 0x38, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75,
                0x6D, 0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x31, 0x33, 0x20, 0x31, 0x35,
                0x38, 0x20, 0x32, 0x39, 0x20, 0x37, 0x36, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x47, 0x75,
                0x6D, 0x70, 0x50, 0x69, 0x63, 0x54, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x34, 0x35, 0x20, 0x31, 0x35,
                0x38, 0x20, 0x32, 0x30, 0x32, 0x20, 0x37, 0x36, 0x20, 0x32, 0x36, 0x32, 0x34, 0x7D, 0x7B, 0x43,
                0x68, 0x65, 0x63, 0x6B, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6E, 0x73, 0x20, 0x31, 0x30, 0x20, 0x31,
                0x30, 0x20, 0x32, 0x34, 0x30, 0x20, 0x32, 0x32, 0x37, 0x7D, 0x7B, 0x47, 0x75, 0x6D, 0x70, 0x50,
                0x69, 0x63, 0x20, 0x31, 0x33, 0x20, 0x31, 0x33, 0x20, 0x31, 0x30, 0x30, 0x7D, 0x7B, 0x48, 0x54,
                0x4D, 0x4C, 0x47, 0x75, 0x6D, 0x70, 0x20, 0x33, 0x33, 0x20, 0x33, 0x33, 0x20, 0x31, 0x30, 0x30,
                0x20, 0x36, 0x30, 0x20, 0x31, 0x30, 0x30, 0x20, 0x30, 0x20, 0x30, 0x7D, 0x7B, 0x54, 0x65, 0x78,
                0x74, 0x20, 0x31, 0x36, 0x34, 0x20, 0x31, 0x33, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x31,
                0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x36, 0x34, 0x20, 0x33, 0x35, 0x20, 0x39, 0x35,
                0x35, 0x20, 0x31, 0x30, 0x32, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x36, 0x34, 0x20,
                0x35, 0x37, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x33, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74,
                0x20, 0x31, 0x36, 0x34, 0x20, 0x37, 0x39, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x34, 0x7D,
                0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x38, 0x20, 0x31, 0x31, 0x37, 0x20, 0x39, 0x35, 0x35,
                0x20, 0x31, 0x30, 0x35, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x31, 0x38, 0x20, 0x31, 0x33,
                0x36, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x36, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20,
                0x35, 0x30, 0x20, 0x31, 0x35, 0x38, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x30, 0x37, 0x7D, 0x7B,
                0x42, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x20, 0x31, 0x33, 0x20, 0x31, 0x35, 0x38, 0x20, 0x34, 0x30,
                0x30, 0x35, 0x20, 0x34, 0x30, 0x30, 0x37, 0x20, 0x31, 0x20, 0x30, 0x20, 0x32, 0x7D, 0x7B, 0x54,
                0x65, 0x78, 0x74, 0x20, 0x35, 0x30, 0x20, 0x31, 0x37, 0x37, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31,
                0x30, 0x38, 0x7D, 0x7B, 0x42, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x20, 0x31, 0x33, 0x20, 0x31, 0x37,
                0x37, 0x20, 0x34, 0x30, 0x30, 0x35, 0x20, 0x34, 0x30, 0x30, 0x37, 0x20, 0x31, 0x20, 0x30, 0x20,
                0x34, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x35, 0x30, 0x20, 0x31, 0x39, 0x36, 0x20, 0x39,
                0x35, 0x35, 0x20, 0x31, 0x30, 0x39, 0x7D, 0x7B, 0x42, 0x75, 0x74, 0x74, 0x6F, 0x6E, 0x20, 0x31,
                0x33, 0x20, 0x31, 0x39, 0x36, 0x20, 0x34, 0x30, 0x30, 0x35, 0x20, 0x34, 0x30, 0x30, 0x37, 0x20,
                0x31, 0x20, 0x30, 0x20, 0x36, 0x7D, 0x7B, 0x54, 0x65, 0x78, 0x74, 0x20, 0x35, 0x30, 0x20, 0x32,
                0x31, 0x35, 0x20, 0x39, 0x35, 0x35, 0x20, 0x31, 0x31, 0x30, 0x7D, 0x7B, 0x42, 0x75, 0x74, 0x74,
                0x6F, 0x6E, 0x20, 0x31, 0x33, 0x20, 0x32, 0x31, 0x35, 0x20, 0x34, 0x30, 0x30, 0x35, 0x20, 0x34,
                0x30, 0x30, 0x37, 0x20, 0x31, 0x20, 0x30, 0x20, 0x39, 0x7D, 0x00,
                0x00, 0x6F, // TextLinesCount = 111
                // 100 empty lines
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x20, // line 100 text length
                // line 100 unicode text
                0x00, 0x44, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x63, 0x00, 0x69, 0x00, 0x73, 0x00, 0x6C,
                0x00, 0x6F, 0x00, 0x20, 0x00, 0x31, 0x00, 0x38, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x62, 0x00, 0x72,
                0x00, 0x3E, 0x00, 0x44, 0x00, 0x75, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x70, 0x00, 0x72, 0x00, 0x61,
                0x00, 0x74, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x70, 0x00, 0x69, 0x00, 0x76, 0x00, 0x61,
                0x00, 0x08, // line 101 text length
                // line 101 unicode text
                0x00, 0x4D, 0x00, 0x61, 0x00, 0x6A, 0x00, 0x69, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x3A,
                0x00, 0x05, // line 102 text length
                // line 102 unicode text
                0x00, 0x4A, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x6B, 0x00, 0x79,
                0x00, 0x0C, // line 103 text length
                // line 103 unicode text
                0x00, 0x54, 0x00, 0x76, 0x00, 0x75, 0x00, 0x6A, 0x00, 0x20, 0x00, 0x73, 0x00, 0x74, 0x00, 0x61,
                0x00, 0x74, 0x00, 0x75, 0x00, 0x73, 0x00, 0x3A,
                0x00, 0x06, // line 104 text length
                // line 104 unicode text
                0x00, 0x50, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C,
                0x00, 0x10, // line 105 text length
                // line 105 unicode text
                0x00, 0x4E, 0x00, 0x61, 0x00, 0x6A, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x3A, 0x00, 0x20, 0x00, 0x31,
                0x00, 0x32, 0x00, 0x35, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x67, 0x00, 0x70,
                0x00, 0x13, // line 106 text length
                // line 106 unicode text
                0x00, 0x5A, 0x00, 0x61, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6E,
                0x00, 0x6F, 0x00, 0x20, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x20, 0x00, 0x36, 0x00, 0x35, 0x00, 0x20,
                0x00, 0x64, 0x00, 0x6E, 0x00, 0x69,
                0x00, 0x16, // line 107 text length
                // line 107 unicode text
                0x00, 0x5A, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x6B, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x74,
                0x00, 0x2F, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x6B, 0x00, 0x6E, 0x00, 0x6F,
                0x00, 0x75, 0x00, 0x74, 0x00, 0x20, 0x00, 0x76, 0x00, 0x65, 0x00, 0x63,
                0x00, 0x12, // line 108 text length
                // line 108 unicode text
                0x00, 0x53, 0x00, 0x65, 0x00, 0x7A, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x70,
                0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6C, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F,
                0x00, 0x6D, 0x00, 0x75,
                0x00, 0x1A, // line 109 text length
                // line 109 unicode text
                0x00, 0x53, 0x00, 0x65, 0x00, 0x7A, 0x00, 0x6E, 0x00, 0x61, 0x00, 0x6D, 0x00, 0x20, 0x00, 0x73,
                0x00, 0x70, 0x00, 0x6F, 0x00, 0x6C, 0x00, 0x75, 0x00, 0x76, 0x00, 0x6C, 0x00, 0x61, 0x00, 0x73,
                0x00, 0x74, 0x00, 0x6E, 0x00, 0x69, 0x00, 0x6B, 0x00, 0x75, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6F,
                0x00, 0x6D, 0x00, 0x75,
                0x00, 0x0D, // line 110 text length
                // line 110 unicode text
                0x00, 0x4F, 0x00, 0x74, 0x00, 0x65, 0x00, 0x76, 0x00, 0x72, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20,
                0x00, 0x62, 0x00, 0x61, 0x00, 0x6E, 0x00, 0x6B, 0x00, 0x75
            });

            var packet = new SendGumpMenuDialogPacket();

            packet.Deserialize(rawPacket);

            var gump = new Gump(packet.GumpTypeId, packet.GumpId, packet.Commands, packet.TextLines);

            parser.Parse(gump);
            string description = processor.GetDescription();

            AssertNewLineInsensitive(description, @"GumpPic: x = 13, y = 13, gumpId = 100
Text: x = 164, y = 13, hue = 955, Majitel:
Text: x = 164, y = 35, hue = 955, Jooky
Text: x = 164, y = 57, hue = 955, Tvuj status:
Text: x = 164, y = 79, hue = 955, Pritel
Text: x = 18, y = 117, hue = 955, Najem: 125000 gp
Text: x = 18, y = 136, hue = 955, Zaplaceno na 65 dni
Text: x = 50, y = 158, hue = 955, Zamknout/odemknout vec
Button: x = 13, y = 158, isTrigger, pageId = 0, triggerId = 2
Text: x = 50, y = 177, hue = 955, Seznam pratel domu
Button: x = 13, y = 177, isTrigger, pageId = 0, triggerId = 4
Text: x = 50, y = 196, hue = 955, Seznam spoluvlastniku domu
Button: x = 13, y = 196, isTrigger, pageId = 0, triggerId = 6
Text: x = 50, y = 215, hue = 955, Otevrit banku
Button: x = 13, y = 215, isTrigger, pageId = 0, triggerId = 9
");
        }