@@ -1273,6 +1273,27 @@ void net_poll()
1273
1273
1274
1274
break ;
1275
1275
}
1276
+ case 0x1c : {
1277
+ uint32_t serial = read_uint32_be (&p, end);
1278
+ int graphic = read_uint16_be (&p, end);
1279
+ read_uint8 (&p, end); // type
1280
+ int hue = read_uint16_be (&p, end);
1281
+ int font_id = read_uint16_be (&p, end);
1282
+ char name[31 ];
1283
+ name[30 ] = ' \0 ' ;
1284
+ read_ascii_fixed (&p, end, name, 30 );
1285
+ std::wstring s;
1286
+ int remaining_bytes = end - p;
1287
+ int remaining_chars = remaining_bytes;
1288
+ for (int i = 0 ; i < remaining_chars; i++)
1289
+ {
1290
+ s += read_uint8 (&p, end);
1291
+ }
1292
+ // TODO: do something with this text...
1293
+ printf (" %s: " , name);
1294
+ std::wcout << s << std::endl;
1295
+ break ;
1296
+ }
1276
1297
case 0x1d : {
1277
1298
uint32_t serial = read_uint32_be (&p, end);
1278
1299
// printf("delete object %x\n", serial);
@@ -1652,6 +1673,30 @@ void net_poll()
1652
1673
1653
1674
break ;
1654
1675
}
1676
+ case 0xae : {
1677
+ uint32_t serial = read_uint32_be (&p, end);
1678
+ int graphic = read_uint16_be (&p, end);
1679
+ read_uint8 (&p, end); // type
1680
+ int hue = read_uint16_be (&p, end);
1681
+ int font_id = read_uint16_be (&p, end);
1682
+ char lang[5 ];
1683
+ char name[31 ];
1684
+ lang[4 ] = ' \0 ' ;
1685
+ name[30 ] = ' \0 ' ;
1686
+ read_ascii_fixed (&p, end, lang, 4 );
1687
+ read_ascii_fixed (&p, end, name, 30 );
1688
+ std::wstring s;
1689
+ int remaining_bytes = end - p;
1690
+ int remaining_chars = remaining_bytes / 2 ;
1691
+ for (int i = 0 ; i < remaining_chars; i++)
1692
+ {
1693
+ s += read_uint16_be (&p, end);
1694
+ }
1695
+ // TODO: do something with this text...
1696
+ printf (" [%s] %s: " , lang, name);
1697
+ std::wcout << s << std::endl;
1698
+ break ;
1699
+ }
1655
1700
case 0xbd : {
1656
1701
send_client_version_response (" 7.0.1" );
1657
1702
packet_lengths[0xb9 ] = 5 ; // expect longer packet after this.. (TODO: this should only be done for newer servers)
0 commit comments