51 {
52#define ADD_HPKT(i, j, k) _hpacket_length_table.insert(i, std::make_pair(j, std::make_shared<k>(s)))
53#define ADD_TPKT(i, j, k) _tpacket_length_table.insert(i, std::make_pair(j, std::make_shared<k>(s)))
54 ADD_HPKT(0x08fd, 6, CH_ACK_CHANGE_CHARACTERNAME);
55 ADD_HPKT(0x08c5, 6, CH_AVAILABLE_SECOND_PASSWD);
56 ADD_HPKT(0x09a1, 2, CH_CHARLIST_REQ);
58 ADD_HPKT(0x0068, 46, CH_DELETE_CHAR);
59 ADD_HPKT(0x01fb, 56, CH_DELETE_CHAR2);
60 ADD_HPKT(0x0829, 12, CH_DELETE_CHAR3);
61 ADD_HPKT(0x082b, 6, CH_DELETE_CHAR3_CANCEL);
62 ADD_HPKT(0x098f, -1, CH_DELETE_CHAR3_EXT);
63 ADD_HPKT(0x0827, 6, CH_DELETE_CHAR3_RESERVED);
64 ADD_HPKT(0x08bc, 10, CH_DELETE_SECOND_PASSWD);
65 ADD_HPKT(0x08be, 14, CH_EDIT_SECOND_PASSWD);
68 ADD_HPKT(0x07e5, 4, CH_ENTER_CHECKBOT);
70 ADD_HPKT(0x0970, 31, CH_MAKE_CHAR_NOT_STATS);
71 ADD_HPKT(0x08ba, 10, CH_MAKE_SECOND_PASSWD);
72 ADD_HPKT(0x08c3, 10, CH_NOT_AVAILABLE_SECOND_PASSWD);
73 ADD_HPKT(0x08fc, 30, CH_REQ_CHANGE_CHARACTERNAME);
74 ADD_HPKT(0x08d4, 8, CH_REQ_CHANGE_CHARACTER_SLOT);
75 ADD_HPKT(0x028f, 6, CH_REQ_CHANGE_CHARNAME);
76 ADD_HPKT(0x099c, 6, CH_REQ_CHARINFO_PER_PAGE);
77 ADD_HPKT(0x028d, 34, CH_REQ_IS_VALID_CHARNAME);
78 ADD_HPKT(0x08b8, 10, CH_SECOND_PASSWD_ACK);
79 ADD_HPKT(0x0841, 4, CH_SELECT_ACCESSIBLE_MAPNAME);
81 ADD_HPKT(0x028c, 46, CH_SELECT_CHAR_GOINGTOBEUSED);
82 ADD_HPKT(0x0187, 6, CH_UNKNOWN_PING);
83 ADD_HPKT(0x08b0, 17, CH_WAITING_LOGIN);
84 ADD_TPKT(0x006f, 2, HC_ACCEPT_DELETECHAR);
85 ADD_TPKT(0x006b, -1, HC_ACCEPT_ENTER);
86 ADD_TPKT(0x082d, -1, HC_ACCEPT_ENTER2);
87 ADD_TPKT(0x006d, 157, HC_ACCEPT_MAKECHAR);
88 ADD_TPKT(0x08d5, -1, HC_ACK_CHANGE_CHARACTER_SLOT);
89 ADD_TPKT(0x0290, 4, HC_ACK_CHANGE_CHARNAME);
90 ADD_TPKT(0x099d, -1, HC_ACK_CHARINFO_PER_PAGE);
91 ADD_TPKT(0x028e, 4, HC_ACK_IS_VALID_CHARNAME);
92 ADD_TPKT(0x08c6, 4, HC_AVAILABLE_SECOND_PASSWD);
93 ADD_TPKT(0x020d, -1, HC_BLOCK_CHARACTER);
94 ADD_TPKT(0x0448, -1, HC_CHARACTER_LIST);
95 ADD_TPKT(0x09a0, 6, HC_CHARLIST_NOTIFY);
96 ADD_TPKT(0x028b, -1, HC_CHARNOTBEENSELECTED);
98 ADD_TPKT(0x07e9, 5, HC_CHECKBOT_RESULT);
99 ADD_TPKT(0x082a, 10, HC_DELETE_CHAR3);
100 ADD_TPKT(0x082c, 10, HC_DELETE_CHAR3_CANCEL);
101 ADD_TPKT(0x0828, 14, HC_DELETE_CHAR3_RESERVED);
102 ADD_TPKT(0x08bd, 8, HC_DELETE_SECOND_PASSWD);
103 ADD_TPKT(0x08bf, 8, HC_EDIT_SECOND_PASSWD);
104 ADD_TPKT(0x08bb, 8, HC_MAKE_SECOND_PASSWD);
105 ADD_TPKT(0x0840, -1, HC_NOTIFY_ACCESSIBLE_MAPNAME);
106 ADD_TPKT(0x0ac5, 156, HC_NOTIFY_ZONESVR);
107 ADD_TPKT(0x08c4, 8, HC_NOT_AVAILABLE_SECOND_PASSWD);
108 ADD_TPKT(0x099e, 12, HC_QUEUE_ORDER);
109 ADD_TPKT(0x0070, 3, HC_REFUSE_DELETECHAR);
110 ADD_TPKT(0x006c, 3, HC_REFUSE_ENTER);
111 ADD_TPKT(0x006e, 3, HC_REFUSE_MAKECHAR);
112 ADD_TPKT(0x02ca, 3, HC_REFUSE_SELECTCHAR);
113 ADD_TPKT(0x023e, 8, HC_REQUEST_CHARACTER_PASSWORD);
114 ADD_TPKT(0x08b9, 12, HC_SECOND_PASSWD_LOGIN);
115 ADD_TPKT(0x09c2, -1, HC_SECRETSCAN_DATA);
116 ADD_TPKT(0x08e3, 157, HC_UPDATE_CHARINFO);
117 ADD_TPKT(0x08af, 10, HC_WAITING_LOGIN);
118#undef ADD_HPKT
119#undef ADD_TPKT
120 }
#define ADD_HPKT(i, j, k)
#define ADD_TPKT(i, j, k)