45 {
46#define ADD_HPKT(i, j, k) _hpacket_length_table.insert(i, std::make_pair(j, std::make_shared<k>(s)))
47#define ADD_TPKT(i, j, k) _tpacket_length_table.insert(i, std::make_pair(j, std::make_shared<k>(s)))
48
49#if PACKET_VERSION >= 20031223
50 ADD_TPKT(0x01f1, -1, AC_NOTIFY_ERROR);
51#endif
52
53#if PACKET_VERSION >= 20040322
55#endif
56
57#if PACKET_VERSION >= 20040517
58 ADD_HPKT(0x0200, 26, CA_CONNECT_INFO_CHANGED);
59#endif
60
61#if PACKET_VERSION >= 20040531
62 ADD_HPKT(0x0204, 18, CA_EXE_HASHCHECK);
63#endif
64
65#if PACKET_VERSION >= 20050628
66 ADD_TPKT(0x023d, 6, AC_EVENT_RESULT);
67#endif
68
69#if PACKET_VERSION >= 20050912
70 ADD_TPKT(0x0259, 3, AC_ACK_GAME_GUARD);
71 ADD_HPKT(0x0258, 2, CA_REQ_GAME_GUARD_CHECK);
72#endif
73
74#if PACKET_VERSION >= 20060109
75 ADD_TPKT(0x026a, 4, AC_ACK_EKEY_FAIL_AUTHREFUSE);
76 ADD_TPKT(0x026b, 4, AC_ACK_EKEY_FAIL_INPUTEKEY);
77 ADD_TPKT(0x026d, 4, AC_ACK_EKEY_FAIL_NEEDCARDPASS);
78 ADD_TPKT(0x0267, 4, AC_ACK_EKEY_FAIL_NOTEXIST);
79 ADD_TPKT(0x026c, 4, AC_ACK_EKEY_FAIL_NOTICE);
80 ADD_TPKT(0x0269, 4, AC_ACK_EKEY_FAIL_NOTUSEDEKEY);
81 ADD_TPKT(0x0268, 4, AC_ACK_EKEY_FAIL_NOTUSESEKEY);
82 ADD_TPKT(0x026f, 2, AC_ACK_FIRST_LOGIN);
83 ADD_TPKT(0x0272, 44, AC_ACK_PT_ID_INFO);
84 ADD_TPKT(0x0270, 2, AC_REQ_LOGIN_ACCOUNT_INFO);
85 ADD_TPKT(0x0263, 11, AC_REQ_LOGIN_CARDPASS);
86 ADD_TPKT(0x0262, 11, AC_REQ_LOGIN_NEWEKEY);
87 ADD_TPKT(0x0261, 11, AC_REQ_LOGIN_OLDEKEY);
88 ADD_HPKT(0x0266, 30, CA_ACK_LOGIN_CARDPASS);
89 ADD_HPKT(0x0265, 20, CA_ACK_LOGIN_NEWEKEY);
90 ADD_HPKT(0x0264, 20, CA_ACK_LOGIN_OLDEKEY);
91#endif
92
93#if PACKET_VERSION >= 20060126
94 ADD_HPKT(0x0271, 40, CA_ACK_LOGIN_ACCOUNT_INFO);
95#endif
96
97#if PACKET_VERSION >= 20060424
98 ADD_HPKT(0x0277, 84, CA_LOGIN_PCBANG);
99#endif
100
101#if PACKET_VERSION >= 20060626
103#endif
104
105#if PACKET_VERSION >= 20060821
106 ADD_HPKT(0x027f, 8, CA_CLIENT_TYPE);
107#endif
108
109#if PACKET_VERSION >= 20070227
110 ADD_TPKT(0x02ad, 8, AC_REQUEST_SECOND_PASSWORD);
111#endif
112
113#if PACKET_VERSION >= 20070514
115#endif
116
117#if PACKET_VERSION >= 20090701
118 ADD_TPKT(0x0276, -1, AC_ACCEPT_LOGIN2);
119#endif
120
121#if PACKET_VERSION >= 20100413
122 ADD_TPKT(0x0823, -1, AC_OTP_AUTH_ACK);
124 ADD_HPKT(0x0822, 9, CA_OTP_AUTH_REQ);
125#endif
126
127#if PACKET_VERSION >= 20100601
128 ADD_TPKT(0x0826, 4, AC_SSO_LOGIN_ACK);
129 ADD_HPKT(0x0825, -1, CA_SSO_LOGIN_REQ);
130#endif
131
132#if PACKET_VERSION >= 20100615
133 ADD_TPKT(0x083e, 26, AC_REFUSE_LOGIN2);
134#endif
135
136#if PACKET_VERSION >= 20101228
137 ADD_TPKT(0x08b2, -1, AC_REALNAME_AUTH);
138#endif
139
140#if PACKET_VERSION >= 20110726
142#endif
143
144#if PACKET_VERSION >= 20111025
145 ADD_TPKT(0x08e4, 6, AC_SHUTDOWN_INFO);
146#endif
147
148#if PACKET_VERSION >= 20120626
149 ADD_TPKT(0x0986, 10, AC_SHUTDOWN_NOTIFY);
150#endif
151
152#if PACKET_VERSION >= 20120702
154#endif
155
156#if PACKET_VERSION >= 20120716
157 ADD_TPKT(0x098b, 2, AC_REQ_NEW_USER);
158 ADD_HPKT(0x098c, 4, CA_ACK_NEW_USER);
159#endif
160
161#if PACKET_VERSION >= 20130130
162 ADD_TPKT(0x09a2, 6, AC_REQ_MOBILE_OTP);
163 ADD_HPKT(0x09a3, -1, CA_ACK_MOBILE_OTP);
164#endif
165
166#if PACKET_VERSION >= 20130220
167 ADD_TPKT(0x09a5, 7, AC_REFUSE_LOGIN3);
168#endif
169
170#if PACKET_VERSION >= 20130605
172#endif
173
174#if PACKET_VERSION >= 20170228
175 ADD_TPKT(0x0ac4, -1, AC_ACCEPT_LOGIN);
176#endif
177
178#if PACKET_VERSION >= 20170614
180#endif
181
182#if PACKET_VERSION >= 20171115
184#endif
185
186#if PACKET_VERSION >= 20190000
188#elif PACKET_VERSION >= 20171213
190#endif
191
192#if PACKET_VERSION >= 20180704
193 ADD_TPKT(0x0b02, 26, AC_REFUSE_LOGIN4);
194#endif
195#undef ADD_TPKT
196#undef ADD_HPKT
197 }
#define ADD_HPKT(i, j, k)
#define ADD_TPKT(i, j, k)