summaryrefslogtreecommitdiff
path: root/src/proto2
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-05-20 14:36:33 -0700
committerBen Longbons <b.r.longbons@gmail.com>2014-05-20 15:27:53 -0700
commitf6324ada91d412e041592598245770835991cbc6 (patch)
treec0c2e5abb284db8146f7d18bcb7280cda0fa9c07 /src/proto2
parentb06dd5aaa0cf47b0b6f73ae858b2e2c267e60bbf (diff)
downloadtmwa-f6324ada91d412e041592598245770835991cbc6.tar.gz
tmwa-f6324ada91d412e041592598245770835991cbc6.tar.bz2
tmwa-f6324ada91d412e041592598245770835991cbc6.tar.xz
tmwa-f6324ada91d412e041592598245770835991cbc6.zip
Generate login/user protocol
Diffstat (limited to 'src/proto2')
-rw-r--r--src/proto2/any-user.hpp9
-rw-r--r--src/proto2/fwd.hpp122
-rw-r--r--src/proto2/include_types_test.cpp23
-rw-r--r--src/proto2/login-admin.hpp208
-rw-r--r--src/proto2/login-char.hpp180
-rw-r--r--src/proto2/login-user.hpp323
-rw-r--r--src/proto2/map-user.hpp3
-rw-r--r--src/proto2/types.hpp19
8 files changed, 887 insertions, 0 deletions
diff --git a/src/proto2/any-user.hpp b/src/proto2/any-user.hpp
index ea2e20d..d704233 100644
--- a/src/proto2/any-user.hpp
+++ b/src/proto2/any-user.hpp
@@ -35,6 +35,7 @@ struct Packet_Fixed<0x7530>
// TODO remove this
uint16_t magic_packet_id = PACKET_ID;
};
+
template<>
struct Packet_Fixed<0x7531>
{
@@ -44,6 +45,7 @@ struct Packet_Fixed<0x7531>
uint16_t magic_packet_id = PACKET_ID;
Version version = {};
};
+
template<>
struct Packet_Fixed<0x7532>
{
@@ -53,6 +55,7 @@ struct Packet_Fixed<0x7532>
uint16_t magic_packet_id = PACKET_ID;
};
+
template<>
struct NetPacket_Fixed<0x7530>
{
@@ -60,6 +63,7 @@ struct NetPacket_Fixed<0x7530>
};
static_assert(offsetof(NetPacket_Fixed<0x7530>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7530>, magic_packet_id) == 0");
static_assert(sizeof(NetPacket_Fixed<0x7530>) == 2, "sizeof(NetPacket_Fixed<0x7530>) == 2");
+
template<>
struct NetPacket_Fixed<0x7531>
{
@@ -69,6 +73,7 @@ struct NetPacket_Fixed<0x7531>
static_assert(offsetof(NetPacket_Fixed<0x7531>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7531>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x7531>, version) == 2, "offsetof(NetPacket_Fixed<0x7531>, version) == 2");
static_assert(sizeof(NetPacket_Fixed<0x7531>) == 10, "sizeof(NetPacket_Fixed<0x7531>) == 10");
+
template<>
struct NetPacket_Fixed<0x7532>
{
@@ -77,6 +82,7 @@ struct NetPacket_Fixed<0x7532>
static_assert(offsetof(NetPacket_Fixed<0x7532>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7532>, magic_packet_id) == 0");
static_assert(sizeof(NetPacket_Fixed<0x7532>) == 2, "sizeof(NetPacket_Fixed<0x7532>) == 2");
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7530> *network, Packet_Fixed<0x7530> native)
{
@@ -91,6 +97,7 @@ bool network_to_native(Packet_Fixed<0x7530> *native, NetPacket_Fixed<0x7530> net
rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7531> *network, Packet_Fixed<0x7531> native)
{
@@ -107,6 +114,7 @@ bool network_to_native(Packet_Fixed<0x7531> *native, NetPacket_Fixed<0x7531> net
rv &= network_to_native(&native->version, network.version);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7532> *network, Packet_Fixed<0x7532> native)
{
@@ -122,4 +130,5 @@ bool network_to_native(Packet_Fixed<0x7532> *native, NetPacket_Fixed<0x7532> net
return rv;
}
+
#endif // TMWA_PROTO2_ANY_USER_HPP
diff --git a/src/proto2/fwd.hpp b/src/proto2/fwd.hpp
index f8dc786..f050ab4 100644
--- a/src/proto2/fwd.hpp
+++ b/src/proto2/fwd.hpp
@@ -34,30 +34,47 @@ template<>
struct Packet_Fixed<0x2709>;
template<>
struct NetPacket_Fixed<0x2709>;
+
+template<>
+struct Packet_Fixed<0x2710>;
+template<>
+struct NetPacket_Fixed<0x2710>;
+
+template<>
+struct Packet_Fixed<0x2711>;
+template<>
+struct NetPacket_Fixed<0x2711>;
+
template<>
struct Packet_Fixed<0x2712>;
template<>
struct NetPacket_Fixed<0x2712>;
+
template<>
struct Packet_Fixed<0x2713>;
template<>
struct NetPacket_Fixed<0x2713>;
+
template<>
struct Packet_Fixed<0x2714>;
template<>
struct NetPacket_Fixed<0x2714>;
+
template<>
struct Packet_Fixed<0x2715>;
template<>
struct NetPacket_Fixed<0x2715>;
+
template<>
struct Packet_Fixed<0x2716>;
template<>
struct NetPacket_Fixed<0x2716>;
+
template<>
struct Packet_Fixed<0x2717>;
template<>
struct NetPacket_Fixed<0x2717>;
+
template<>
struct Packet_Head<0x2720>;
template<>
@@ -66,30 +83,37 @@ template<>
struct Packet_Repeat<0x2720>;
template<>
struct NetPacket_Repeat<0x2720>;
+
template<>
struct Packet_Fixed<0x2721>;
template<>
struct NetPacket_Fixed<0x2721>;
+
template<>
struct Packet_Fixed<0x2722>;
template<>
struct NetPacket_Fixed<0x2722>;
+
template<>
struct Packet_Fixed<0x2723>;
template<>
struct NetPacket_Fixed<0x2723>;
+
template<>
struct Packet_Fixed<0x2724>;
template<>
struct NetPacket_Fixed<0x2724>;
+
template<>
struct Packet_Fixed<0x2725>;
template<>
struct NetPacket_Fixed<0x2725>;
+
template<>
struct Packet_Fixed<0x2727>;
template<>
struct NetPacket_Fixed<0x2727>;
+
template<>
struct Packet_Head<0x2728>;
template<>
@@ -98,6 +122,7 @@ template<>
struct Packet_Repeat<0x2728>;
template<>
struct NetPacket_Repeat<0x2728>;
+
template<>
struct Packet_Head<0x2729>;
template<>
@@ -106,18 +131,22 @@ template<>
struct Packet_Repeat<0x2729>;
template<>
struct NetPacket_Repeat<0x2729>;
+
template<>
struct Packet_Fixed<0x272a>;
template<>
struct NetPacket_Fixed<0x272a>;
+
template<>
struct Packet_Fixed<0x2730>;
template<>
struct NetPacket_Fixed<0x2730>;
+
template<>
struct Packet_Fixed<0x2731>;
template<>
struct NetPacket_Fixed<0x2731>;
+
template<>
struct Packet_Head<0x2732>;
template<>
@@ -126,15 +155,18 @@ template<>
struct Packet_Repeat<0x2732>;
template<>
struct NetPacket_Repeat<0x2732>;
+
template<>
struct Packet_Fixed<0x2740>;
template<>
struct NetPacket_Fixed<0x2740>;
+
template<>
struct Packet_Fixed<0x2741>;
template<>
struct NetPacket_Fixed<0x2741>;
+
template<>
struct Packet_Head<0x2726>;
template<>
@@ -143,10 +175,22 @@ template<>
struct Packet_Repeat<0x2726>;
template<>
struct NetPacket_Repeat<0x2726>;
+
+template<>
+struct Packet_Fixed<0x7918>;
+template<>
+struct NetPacket_Fixed<0x7918>;
+
+template<>
+struct Packet_Fixed<0x7919>;
+template<>
+struct NetPacket_Fixed<0x7919>;
+
template<>
struct Packet_Fixed<0x7920>;
template<>
struct NetPacket_Fixed<0x7920>;
+
template<>
struct Packet_Head<0x7921>;
template<>
@@ -155,50 +199,62 @@ template<>
struct Packet_Repeat<0x7921>;
template<>
struct NetPacket_Repeat<0x7921>;
+
template<>
struct Packet_Fixed<0x7924>;
template<>
struct NetPacket_Fixed<0x7924>;
+
template<>
struct Packet_Fixed<0x7925>;
template<>
struct NetPacket_Fixed<0x7925>;
+
template<>
struct Packet_Fixed<0x7930>;
template<>
struct NetPacket_Fixed<0x7930>;
+
template<>
struct Packet_Fixed<0x7931>;
template<>
struct NetPacket_Fixed<0x7931>;
+
template<>
struct Packet_Fixed<0x7932>;
template<>
struct NetPacket_Fixed<0x7932>;
+
template<>
struct Packet_Fixed<0x7933>;
template<>
struct NetPacket_Fixed<0x7933>;
+
template<>
struct Packet_Fixed<0x7934>;
template<>
struct NetPacket_Fixed<0x7934>;
+
template<>
struct Packet_Fixed<0x7935>;
template<>
struct NetPacket_Fixed<0x7935>;
+
template<>
struct Packet_Fixed<0x7936>;
template<>
struct NetPacket_Fixed<0x7936>;
+
template<>
struct Packet_Fixed<0x7937>;
template<>
struct NetPacket_Fixed<0x7937>;
+
template<>
struct Packet_Fixed<0x7938>;
template<>
struct NetPacket_Fixed<0x7938>;
+
template<>
struct Packet_Head<0x7939>;
template<>
@@ -207,38 +263,47 @@ template<>
struct Packet_Repeat<0x7939>;
template<>
struct NetPacket_Repeat<0x7939>;
+
template<>
struct Packet_Fixed<0x793a>;
template<>
struct NetPacket_Fixed<0x793a>;
+
template<>
struct Packet_Fixed<0x793b>;
template<>
struct NetPacket_Fixed<0x793b>;
+
template<>
struct Packet_Fixed<0x793c>;
template<>
struct NetPacket_Fixed<0x793c>;
+
template<>
struct Packet_Fixed<0x793d>;
template<>
struct NetPacket_Fixed<0x793d>;
+
template<>
struct Packet_Fixed<0x793e>;
template<>
struct NetPacket_Fixed<0x793e>;
+
template<>
struct Packet_Fixed<0x793f>;
template<>
struct NetPacket_Fixed<0x793f>;
+
template<>
struct Packet_Fixed<0x7940>;
template<>
struct NetPacket_Fixed<0x7940>;
+
template<>
struct Packet_Fixed<0x7941>;
template<>
struct NetPacket_Fixed<0x7941>;
+
template<>
struct Packet_Head<0x7942>;
template<>
@@ -247,50 +312,62 @@ template<>
struct Packet_Repeat<0x7942>;
template<>
struct NetPacket_Repeat<0x7942>;
+
template<>
struct Packet_Fixed<0x7943>;
template<>
struct NetPacket_Fixed<0x7943>;
+
template<>
struct Packet_Fixed<0x7944>;
template<>
struct NetPacket_Fixed<0x7944>;
+
template<>
struct Packet_Fixed<0x7945>;
template<>
struct NetPacket_Fixed<0x7945>;
+
template<>
struct Packet_Fixed<0x7946>;
template<>
struct NetPacket_Fixed<0x7946>;
+
template<>
struct Packet_Fixed<0x7947>;
template<>
struct NetPacket_Fixed<0x7947>;
+
template<>
struct Packet_Fixed<0x7948>;
template<>
struct NetPacket_Fixed<0x7948>;
+
template<>
struct Packet_Fixed<0x7949>;
template<>
struct NetPacket_Fixed<0x7949>;
+
template<>
struct Packet_Fixed<0x794a>;
template<>
struct NetPacket_Fixed<0x794a>;
+
template<>
struct Packet_Fixed<0x794b>;
template<>
struct NetPacket_Fixed<0x794b>;
+
template<>
struct Packet_Fixed<0x794c>;
template<>
struct NetPacket_Fixed<0x794c>;
+
template<>
struct Packet_Fixed<0x794d>;
template<>
struct NetPacket_Fixed<0x794d>;
+
template<>
struct Packet_Head<0x794e>;
template<>
@@ -299,22 +376,27 @@ template<>
struct Packet_Repeat<0x794e>;
template<>
struct NetPacket_Repeat<0x794e>;
+
template<>
struct Packet_Fixed<0x794f>;
template<>
struct NetPacket_Fixed<0x794f>;
+
template<>
struct Packet_Fixed<0x7950>;
template<>
struct NetPacket_Fixed<0x7950>;
+
template<>
struct Packet_Fixed<0x7951>;
template<>
struct NetPacket_Fixed<0x7951>;
+
template<>
struct Packet_Fixed<0x7952>;
template<>
struct NetPacket_Fixed<0x7952>;
+
template<>
struct Packet_Head<0x7953>;
template<>
@@ -323,16 +405,52 @@ template<>
struct Packet_Repeat<0x7953>;
template<>
struct NetPacket_Repeat<0x7953>;
+
template<>
struct Packet_Fixed<0x7954>;
template<>
struct NetPacket_Fixed<0x7954>;
+
template<>
struct Packet_Fixed<0x7955>;
template<>
struct NetPacket_Fixed<0x7955>;
+template<>
+struct Packet_Head<0x0063>;
+template<>
+struct NetPacket_Head<0x0063>;
+template<>
+struct Packet_Repeat<0x0063>;
+template<>
+struct NetPacket_Repeat<0x0063>;
+
+template<>
+struct Packet_Fixed<0x0064>;
+template<>
+struct NetPacket_Fixed<0x0064>;
+
+template<>
+struct Packet_Head<0x0069>;
+template<>
+struct NetPacket_Head<0x0069>;
+template<>
+struct Packet_Repeat<0x0069>;
+template<>
+struct NetPacket_Repeat<0x0069>;
+
+template<>
+struct Packet_Fixed<0x006a>;
+template<>
+struct NetPacket_Fixed<0x006a>;
+
+template<>
+struct Packet_Fixed<0x0081>;
+template<>
+struct NetPacket_Fixed<0x0081>;
+
+
template<>
@@ -340,18 +458,22 @@ struct Packet_Fixed<0x0212>;
template<>
struct NetPacket_Fixed<0x0212>;
+
template<>
struct Packet_Fixed<0x7530>;
template<>
struct NetPacket_Fixed<0x7530>;
+
template<>
struct Packet_Fixed<0x7531>;
template<>
struct NetPacket_Fixed<0x7531>;
+
template<>
struct Packet_Fixed<0x7532>;
template<>
struct NetPacket_Fixed<0x7532>;
+
#endif // TMWA_PROTO2_FWD_HPP
diff --git a/src/proto2/include_types_test.cpp b/src/proto2/include_types_test.cpp
new file mode 100644
index 0000000..7927f37
--- /dev/null
+++ b/src/proto2/include_types_test.cpp
@@ -0,0 +1,23 @@
+#include "../login/types.hpp"
+// include_types_test.cpp - testsuite for protocol includes
+//
+// Copyright © 2014 Ben Longbons <b.r.longbons@gmail.com>
+//
+// This file is part of The Mana World (Athena server)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+#include "../poison.hpp"
+
+using Test_VERSION_2 = VERSION_2;
diff --git a/src/proto2/login-admin.hpp b/src/proto2/login-admin.hpp
index fed3ad6..f5cf0f7 100644
--- a/src/proto2/login-admin.hpp
+++ b/src/proto2/login-admin.hpp
@@ -45,6 +45,28 @@ struct Packet_Repeat<0x2726>
uint8_t c = {};
};
+
+template<>
+struct Packet_Fixed<0x7918>
+{
+ static const uint16_t PACKET_ID = 0x7918;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ uint16_t encryption_zero = {};
+ AccountPass account_pass = {};
+};
+
+template<>
+struct Packet_Fixed<0x7919>
+{
+ static const uint16_t PACKET_ID = 0x7919;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ uint8_t error = {};
+};
+
template<>
struct Packet_Fixed<0x7920>
{
@@ -55,6 +77,7 @@ struct Packet_Fixed<0x7920>
AccountId start_account_id = {};
AccountId end_account_id = {};
};
+
template<>
struct Packet_Head<0x7921>
{
@@ -77,6 +100,7 @@ struct Packet_Repeat<0x7921>
uint32_t login_count = {};
uint32_t status = {};
};
+
template<>
struct Packet_Fixed<0x7924>
{
@@ -87,6 +111,7 @@ struct Packet_Fixed<0x7924>
ItemNameId source_item_id = {};
ItemNameId dest_item_id = {};
};
+
template<>
struct Packet_Fixed<0x7925>
{
@@ -95,6 +120,7 @@ struct Packet_Fixed<0x7925>
// TODO remove this
uint16_t magic_packet_id = PACKET_ID;
};
+
template<>
struct Packet_Fixed<0x7930>
{
@@ -107,6 +133,7 @@ struct Packet_Fixed<0x7930>
SEX sex = {};
AccountEmail email = {};
};
+
template<>
struct Packet_Fixed<0x7931>
{
@@ -117,6 +144,7 @@ struct Packet_Fixed<0x7931>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7932>
{
@@ -126,6 +154,7 @@ struct Packet_Fixed<0x7932>
uint16_t magic_packet_id = PACKET_ID;
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7933>
{
@@ -136,6 +165,7 @@ struct Packet_Fixed<0x7933>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7934>
{
@@ -146,6 +176,7 @@ struct Packet_Fixed<0x7934>
AccountName account_name = {};
AccountPass password = {};
};
+
template<>
struct Packet_Fixed<0x7935>
{
@@ -156,6 +187,7 @@ struct Packet_Fixed<0x7935>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7936>
{
@@ -167,6 +199,7 @@ struct Packet_Fixed<0x7936>
uint32_t status = {};
timestamp_seconds_buffer error_message = {};
};
+
template<>
struct Packet_Fixed<0x7937>
{
@@ -178,6 +211,7 @@ struct Packet_Fixed<0x7937>
AccountName account_name = {};
uint32_t status = {};
};
+
template<>
struct Packet_Fixed<0x7938>
{
@@ -186,6 +220,7 @@ struct Packet_Fixed<0x7938>
// TODO remove this
uint16_t magic_packet_id = PACKET_ID;
};
+
template<>
struct Packet_Head<0x7939>
{
@@ -208,6 +243,7 @@ struct Packet_Repeat<0x7939>
uint16_t maintenance = {};
uint16_t is_new = {};
};
+
template<>
struct Packet_Fixed<0x793a>
{
@@ -218,6 +254,7 @@ struct Packet_Fixed<0x793a>
AccountName account_name = {};
AccountPass password = {};
};
+
template<>
struct Packet_Fixed<0x793b>
{
@@ -228,6 +265,7 @@ struct Packet_Fixed<0x793b>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x793c>
{
@@ -238,6 +276,7 @@ struct Packet_Fixed<0x793c>
AccountName account_name = {};
SEX sex = {};
};
+
template<>
struct Packet_Fixed<0x793d>
{
@@ -248,6 +287,7 @@ struct Packet_Fixed<0x793d>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x793e>
{
@@ -258,6 +298,7 @@ struct Packet_Fixed<0x793e>
AccountName account_name = {};
GmLevel gm_level = {};
};
+
template<>
struct Packet_Fixed<0x793f>
{
@@ -268,6 +309,7 @@ struct Packet_Fixed<0x793f>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7940>
{
@@ -278,6 +320,7 @@ struct Packet_Fixed<0x7940>
AccountName account_name = {};
AccountEmail email = {};
};
+
template<>
struct Packet_Fixed<0x7941>
{
@@ -288,6 +331,7 @@ struct Packet_Fixed<0x7941>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Head<0x7942>
{
@@ -306,6 +350,7 @@ struct Packet_Repeat<0x7942>
uint8_t c = {};
};
+
template<>
struct Packet_Fixed<0x7943>
{
@@ -316,6 +361,7 @@ struct Packet_Fixed<0x7943>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7944>
{
@@ -325,6 +371,7 @@ struct Packet_Fixed<0x7944>
uint16_t magic_packet_id = PACKET_ID;
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7945>
{
@@ -335,6 +382,7 @@ struct Packet_Fixed<0x7945>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7946>
{
@@ -344,6 +392,7 @@ struct Packet_Fixed<0x7946>
uint16_t magic_packet_id = PACKET_ID;
AccountId account_id = {};
};
+
template<>
struct Packet_Fixed<0x7947>
{
@@ -354,6 +403,7 @@ struct Packet_Fixed<0x7947>
AccountId account_id = {};
AccountName account_name = {};
};
+
template<>
struct Packet_Fixed<0x7948>
{
@@ -364,6 +414,7 @@ struct Packet_Fixed<0x7948>
AccountName account_name = {};
TimeT valid_until = {};
};
+
template<>
struct Packet_Fixed<0x7949>
{
@@ -375,6 +426,7 @@ struct Packet_Fixed<0x7949>
AccountName account_name = {};
TimeT valid_until = {};
};
+
template<>
struct Packet_Fixed<0x794a>
{
@@ -385,6 +437,7 @@ struct Packet_Fixed<0x794a>
AccountName account_name = {};
TimeT ban_until = {};
};
+
template<>
struct Packet_Fixed<0x794b>
{
@@ -396,6 +449,7 @@ struct Packet_Fixed<0x794b>
AccountName account_name = {};
TimeT ban_until = {};
};
+
template<>
struct Packet_Fixed<0x794c>
{
@@ -406,6 +460,7 @@ struct Packet_Fixed<0x794c>
AccountName account_name = {};
HumanTimeDiff ban_add = {};
};
+
template<>
struct Packet_Fixed<0x794d>
{
@@ -417,6 +472,7 @@ struct Packet_Fixed<0x794d>
AccountName account_name = {};
TimeT ban_until = {};
};
+
template<>
struct Packet_Head<0x794e>
{
@@ -435,6 +491,7 @@ struct Packet_Repeat<0x794e>
uint8_t c = {};
};
+
template<>
struct Packet_Fixed<0x794f>
{
@@ -444,6 +501,7 @@ struct Packet_Fixed<0x794f>
uint16_t magic_packet_id = PACKET_ID;
uint16_t error = {};
};
+
template<>
struct Packet_Fixed<0x7950>
{
@@ -454,6 +512,7 @@ struct Packet_Fixed<0x7950>
AccountName account_name = {};
HumanTimeDiff valid_add = {};
};
+
template<>
struct Packet_Fixed<0x7951>
{
@@ -465,6 +524,7 @@ struct Packet_Fixed<0x7951>
AccountName account_name = {};
TimeT valid_until = {};
};
+
template<>
struct Packet_Fixed<0x7952>
{
@@ -474,6 +534,7 @@ struct Packet_Fixed<0x7952>
uint16_t magic_packet_id = PACKET_ID;
AccountName account_name = {};
};
+
template<>
struct Packet_Head<0x7953>
{
@@ -503,6 +564,7 @@ struct Packet_Repeat<0x7953>
uint8_t c = {};
};
+
template<>
struct Packet_Fixed<0x7954>
{
@@ -512,6 +574,7 @@ struct Packet_Fixed<0x7954>
uint16_t magic_packet_id = PACKET_ID;
AccountId account_id = {};
};
+
template<>
struct Packet_Fixed<0x7955>
{
@@ -521,6 +584,7 @@ struct Packet_Fixed<0x7955>
uint16_t magic_packet_id = PACKET_ID;
};
+
template<>
struct NetPacket_Head<0x2726>
{
@@ -539,6 +603,29 @@ struct NetPacket_Repeat<0x2726>
};
static_assert(offsetof(NetPacket_Repeat<0x2726>, c) == 0, "offsetof(NetPacket_Repeat<0x2726>, c) == 0");
static_assert(sizeof(NetPacket_Repeat<0x2726>) == 1, "sizeof(NetPacket_Repeat<0x2726>) == 1");
+
+template<>
+struct NetPacket_Fixed<0x7918>
+{
+ Little16 magic_packet_id;
+ Little16 encryption_zero;
+ NetString<sizeof(AccountPass)> account_pass;
+};
+static_assert(offsetof(NetPacket_Fixed<0x7918>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7918>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Fixed<0x7918>, encryption_zero) == 2, "offsetof(NetPacket_Fixed<0x7918>, encryption_zero) == 2");
+static_assert(offsetof(NetPacket_Fixed<0x7918>, account_pass) == 4, "offsetof(NetPacket_Fixed<0x7918>, account_pass) == 4");
+static_assert(sizeof(NetPacket_Fixed<0x7918>) == 28, "sizeof(NetPacket_Fixed<0x7918>) == 28");
+
+template<>
+struct NetPacket_Fixed<0x7919>
+{
+ Little16 magic_packet_id;
+ Byte error;
+};
+static_assert(offsetof(NetPacket_Fixed<0x7919>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7919>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Fixed<0x7919>, error) == 2, "offsetof(NetPacket_Fixed<0x7919>, error) == 2");
+static_assert(sizeof(NetPacket_Fixed<0x7919>) == 3, "sizeof(NetPacket_Fixed<0x7919>) == 3");
+
template<>
struct NetPacket_Fixed<0x7920>
{
@@ -550,6 +637,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7920>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7920>, start_account_id) == 2, "offsetof(NetPacket_Fixed<0x7920>, start_account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7920>, end_account_id) == 6, "offsetof(NetPacket_Fixed<0x7920>, end_account_id) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7920>) == 10, "sizeof(NetPacket_Fixed<0x7920>) == 10");
+
template<>
struct NetPacket_Head<0x7921>
{
@@ -576,6 +664,7 @@ static_assert(offsetof(NetPacket_Repeat<0x7921>, sex) == 29, "offsetof(NetPacket
static_assert(offsetof(NetPacket_Repeat<0x7921>, login_count) == 30, "offsetof(NetPacket_Repeat<0x7921>, login_count) == 30");
static_assert(offsetof(NetPacket_Repeat<0x7921>, status) == 34, "offsetof(NetPacket_Repeat<0x7921>, status) == 34");
static_assert(sizeof(NetPacket_Repeat<0x7921>) == 38, "sizeof(NetPacket_Repeat<0x7921>) == 38");
+
template<>
struct NetPacket_Fixed<0x7924>
{
@@ -587,6 +676,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7924>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7924>, source_item_id) == 2, "offsetof(NetPacket_Fixed<0x7924>, source_item_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7924>, dest_item_id) == 6, "offsetof(NetPacket_Fixed<0x7924>, dest_item_id) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7924>) == 10, "sizeof(NetPacket_Fixed<0x7924>) == 10");
+
template<>
struct NetPacket_Fixed<0x7925>
{
@@ -594,6 +684,7 @@ struct NetPacket_Fixed<0x7925>
};
static_assert(offsetof(NetPacket_Fixed<0x7925>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7925>, magic_packet_id) == 0");
static_assert(sizeof(NetPacket_Fixed<0x7925>) == 2, "sizeof(NetPacket_Fixed<0x7925>) == 2");
+
template<>
struct NetPacket_Fixed<0x7930>
{
@@ -609,6 +700,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7930>, password) == 26, "offsetof(NetPa
static_assert(offsetof(NetPacket_Fixed<0x7930>, sex) == 50, "offsetof(NetPacket_Fixed<0x7930>, sex) == 50");
static_assert(offsetof(NetPacket_Fixed<0x7930>, email) == 51, "offsetof(NetPacket_Fixed<0x7930>, email) == 51");
static_assert(sizeof(NetPacket_Fixed<0x7930>) == 91, "sizeof(NetPacket_Fixed<0x7930>) == 91");
+
template<>
struct NetPacket_Fixed<0x7931>
{
@@ -620,6 +712,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7931>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7931>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7931>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7931>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7931>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7931>) == 30, "sizeof(NetPacket_Fixed<0x7931>) == 30");
+
template<>
struct NetPacket_Fixed<0x7932>
{
@@ -629,6 +722,7 @@ struct NetPacket_Fixed<0x7932>
static_assert(offsetof(NetPacket_Fixed<0x7932>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7932>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x7932>, account_name) == 2, "offsetof(NetPacket_Fixed<0x7932>, account_name) == 2");
static_assert(sizeof(NetPacket_Fixed<0x7932>) == 26, "sizeof(NetPacket_Fixed<0x7932>) == 26");
+
template<>
struct NetPacket_Fixed<0x7933>
{
@@ -640,6 +734,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7933>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7933>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7933>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7933>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7933>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7933>) == 30, "sizeof(NetPacket_Fixed<0x7933>) == 30");
+
template<>
struct NetPacket_Fixed<0x7934>
{
@@ -651,6 +746,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7934>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7934>, account_name) == 2, "offsetof(NetPacket_Fixed<0x7934>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7934>, password) == 26, "offsetof(NetPacket_Fixed<0x7934>, password) == 26");
static_assert(sizeof(NetPacket_Fixed<0x7934>) == 50, "sizeof(NetPacket_Fixed<0x7934>) == 50");
+
template<>
struct NetPacket_Fixed<0x7935>
{
@@ -662,6 +758,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7935>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7935>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7935>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7935>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7935>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7935>) == 30, "sizeof(NetPacket_Fixed<0x7935>) == 30");
+
template<>
struct NetPacket_Fixed<0x7936>
{
@@ -675,6 +772,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7936>, account_name) == 2, "offsetof(Ne
static_assert(offsetof(NetPacket_Fixed<0x7936>, status) == 26, "offsetof(NetPacket_Fixed<0x7936>, status) == 26");
static_assert(offsetof(NetPacket_Fixed<0x7936>, error_message) == 30, "offsetof(NetPacket_Fixed<0x7936>, error_message) == 30");
static_assert(sizeof(NetPacket_Fixed<0x7936>) == 50, "sizeof(NetPacket_Fixed<0x7936>) == 50");
+
template<>
struct NetPacket_Fixed<0x7937>
{
@@ -688,6 +786,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7937>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x7937>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7937>, account_name) == 6");
static_assert(offsetof(NetPacket_Fixed<0x7937>, status) == 30, "offsetof(NetPacket_Fixed<0x7937>, status) == 30");
static_assert(sizeof(NetPacket_Fixed<0x7937>) == 34, "sizeof(NetPacket_Fixed<0x7937>) == 34");
+
template<>
struct NetPacket_Fixed<0x7938>
{
@@ -695,6 +794,7 @@ struct NetPacket_Fixed<0x7938>
};
static_assert(offsetof(NetPacket_Fixed<0x7938>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7938>, magic_packet_id) == 0");
static_assert(sizeof(NetPacket_Fixed<0x7938>) == 2, "sizeof(NetPacket_Fixed<0x7938>) == 2");
+
template<>
struct NetPacket_Head<0x7939>
{
@@ -721,6 +821,7 @@ static_assert(offsetof(NetPacket_Repeat<0x7939>, users) == 26, "offsetof(NetPack
static_assert(offsetof(NetPacket_Repeat<0x7939>, maintenance) == 28, "offsetof(NetPacket_Repeat<0x7939>, maintenance) == 28");
static_assert(offsetof(NetPacket_Repeat<0x7939>, is_new) == 30, "offsetof(NetPacket_Repeat<0x7939>, is_new) == 30");
static_assert(sizeof(NetPacket_Repeat<0x7939>) == 32, "sizeof(NetPacket_Repeat<0x7939>) == 32");
+
template<>
struct NetPacket_Fixed<0x793a>
{
@@ -732,6 +833,7 @@ static_assert(offsetof(NetPacket_Fixed<0x793a>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x793a>, account_name) == 2, "offsetof(NetPacket_Fixed<0x793a>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x793a>, password) == 26, "offsetof(NetPacket_Fixed<0x793a>, password) == 26");
static_assert(sizeof(NetPacket_Fixed<0x793a>) == 50, "sizeof(NetPacket_Fixed<0x793a>) == 50");
+
template<>
struct NetPacket_Fixed<0x793b>
{
@@ -743,6 +845,7 @@ static_assert(offsetof(NetPacket_Fixed<0x793b>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x793b>, account_id) == 2, "offsetof(NetPacket_Fixed<0x793b>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x793b>, account_name) == 6, "offsetof(NetPacket_Fixed<0x793b>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x793b>) == 30, "sizeof(NetPacket_Fixed<0x793b>) == 30");
+
template<>
struct NetPacket_Fixed<0x793c>
{
@@ -754,6 +857,7 @@ static_assert(offsetof(NetPacket_Fixed<0x793c>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x793c>, account_name) == 2, "offsetof(NetPacket_Fixed<0x793c>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x793c>, sex) == 26, "offsetof(NetPacket_Fixed<0x793c>, sex) == 26");
static_assert(sizeof(NetPacket_Fixed<0x793c>) == 27, "sizeof(NetPacket_Fixed<0x793c>) == 27");
+
template<>
struct NetPacket_Fixed<0x793d>
{
@@ -765,6 +869,7 @@ static_assert(offsetof(NetPacket_Fixed<0x793d>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x793d>, account_id) == 2, "offsetof(NetPacket_Fixed<0x793d>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x793d>, account_name) == 6, "offsetof(NetPacket_Fixed<0x793d>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x793d>) == 30, "sizeof(NetPacket_Fixed<0x793d>) == 30");
+
template<>
struct NetPacket_Fixed<0x793e>
{
@@ -776,6 +881,7 @@ static_assert(offsetof(NetPacket_Fixed<0x793e>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x793e>, account_name) == 2, "offsetof(NetPacket_Fixed<0x793e>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x793e>, gm_level) == 26, "offsetof(NetPacket_Fixed<0x793e>, gm_level) == 26");
static_assert(sizeof(NetPacket_Fixed<0x793e>) == 27, "sizeof(NetPacket_Fixed<0x793e>) == 27");
+
template<>
struct NetPacket_Fixed<0x793f>
{
@@ -787,6 +893,7 @@ static_assert(offsetof(NetPacket_Fixed<0x793f>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x793f>, account_id) == 2, "offsetof(NetPacket_Fixed<0x793f>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x793f>, account_name) == 6, "offsetof(NetPacket_Fixed<0x793f>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x793f>) == 30, "sizeof(NetPacket_Fixed<0x793f>) == 30");
+
template<>
struct NetPacket_Fixed<0x7940>
{
@@ -798,6 +905,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7940>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7940>, account_name) == 2, "offsetof(NetPacket_Fixed<0x7940>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7940>, email) == 26, "offsetof(NetPacket_Fixed<0x7940>, email) == 26");
static_assert(sizeof(NetPacket_Fixed<0x7940>) == 66, "sizeof(NetPacket_Fixed<0x7940>) == 66");
+
template<>
struct NetPacket_Fixed<0x7941>
{
@@ -809,6 +917,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7941>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7941>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7941>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7941>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7941>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7941>) == 30, "sizeof(NetPacket_Fixed<0x7941>) == 30");
+
template<>
struct NetPacket_Head<0x7942>
{
@@ -827,6 +936,7 @@ struct NetPacket_Repeat<0x7942>
};
static_assert(offsetof(NetPacket_Repeat<0x7942>, c) == 0, "offsetof(NetPacket_Repeat<0x7942>, c) == 0");
static_assert(sizeof(NetPacket_Repeat<0x7942>) == 1, "sizeof(NetPacket_Repeat<0x7942>) == 1");
+
template<>
struct NetPacket_Fixed<0x7943>
{
@@ -838,6 +948,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7943>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7943>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7943>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7943>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7943>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7943>) == 30, "sizeof(NetPacket_Fixed<0x7943>) == 30");
+
template<>
struct NetPacket_Fixed<0x7944>
{
@@ -847,6 +958,7 @@ struct NetPacket_Fixed<0x7944>
static_assert(offsetof(NetPacket_Fixed<0x7944>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7944>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x7944>, account_name) == 2, "offsetof(NetPacket_Fixed<0x7944>, account_name) == 2");
static_assert(sizeof(NetPacket_Fixed<0x7944>) == 26, "sizeof(NetPacket_Fixed<0x7944>) == 26");
+
template<>
struct NetPacket_Fixed<0x7945>
{
@@ -858,6 +970,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7945>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7945>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7945>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7945>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7945>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7945>) == 30, "sizeof(NetPacket_Fixed<0x7945>) == 30");
+
template<>
struct NetPacket_Fixed<0x7946>
{
@@ -867,6 +980,7 @@ struct NetPacket_Fixed<0x7946>
static_assert(offsetof(NetPacket_Fixed<0x7946>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7946>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x7946>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7946>, account_id) == 2");
static_assert(sizeof(NetPacket_Fixed<0x7946>) == 6, "sizeof(NetPacket_Fixed<0x7946>) == 6");
+
template<>
struct NetPacket_Fixed<0x7947>
{
@@ -878,6 +992,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7947>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7947>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7947>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7947>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7947>, account_name) == 6");
static_assert(sizeof(NetPacket_Fixed<0x7947>) == 30, "sizeof(NetPacket_Fixed<0x7947>) == 30");
+
template<>
struct NetPacket_Fixed<0x7948>
{
@@ -889,6 +1004,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7948>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7948>, account_name) == 2, "offsetof(NetPacket_Fixed<0x7948>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7948>, valid_until) == 26, "offsetof(NetPacket_Fixed<0x7948>, valid_until) == 26");
static_assert(sizeof(NetPacket_Fixed<0x7948>) == 30, "sizeof(NetPacket_Fixed<0x7948>) == 30");
+
template<>
struct NetPacket_Fixed<0x7949>
{
@@ -902,6 +1018,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7949>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x7949>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7949>, account_name) == 6");
static_assert(offsetof(NetPacket_Fixed<0x7949>, valid_until) == 30, "offsetof(NetPacket_Fixed<0x7949>, valid_until) == 30");
static_assert(sizeof(NetPacket_Fixed<0x7949>) == 34, "sizeof(NetPacket_Fixed<0x7949>) == 34");
+
template<>
struct NetPacket_Fixed<0x794a>
{
@@ -913,6 +1030,7 @@ static_assert(offsetof(NetPacket_Fixed<0x794a>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x794a>, account_name) == 2, "offsetof(NetPacket_Fixed<0x794a>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x794a>, ban_until) == 26, "offsetof(NetPacket_Fixed<0x794a>, ban_until) == 26");
static_assert(sizeof(NetPacket_Fixed<0x794a>) == 30, "sizeof(NetPacket_Fixed<0x794a>) == 30");
+
template<>
struct NetPacket_Fixed<0x794b>
{
@@ -926,6 +1044,7 @@ static_assert(offsetof(NetPacket_Fixed<0x794b>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x794b>, account_name) == 6, "offsetof(NetPacket_Fixed<0x794b>, account_name) == 6");
static_assert(offsetof(NetPacket_Fixed<0x794b>, ban_until) == 30, "offsetof(NetPacket_Fixed<0x794b>, ban_until) == 30");
static_assert(sizeof(NetPacket_Fixed<0x794b>) == 34, "sizeof(NetPacket_Fixed<0x794b>) == 34");
+
template<>
struct NetPacket_Fixed<0x794c>
{
@@ -937,6 +1056,7 @@ static_assert(offsetof(NetPacket_Fixed<0x794c>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x794c>, account_name) == 2, "offsetof(NetPacket_Fixed<0x794c>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x794c>, ban_add) == 26, "offsetof(NetPacket_Fixed<0x794c>, ban_add) == 26");
static_assert(sizeof(NetPacket_Fixed<0x794c>) == 38, "sizeof(NetPacket_Fixed<0x794c>) == 38");
+
template<>
struct NetPacket_Fixed<0x794d>
{
@@ -950,6 +1070,7 @@ static_assert(offsetof(NetPacket_Fixed<0x794d>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x794d>, account_name) == 6, "offsetof(NetPacket_Fixed<0x794d>, account_name) == 6");
static_assert(offsetof(NetPacket_Fixed<0x794d>, ban_until) == 30, "offsetof(NetPacket_Fixed<0x794d>, ban_until) == 30");
static_assert(sizeof(NetPacket_Fixed<0x794d>) == 34, "sizeof(NetPacket_Fixed<0x794d>) == 34");
+
template<>
struct NetPacket_Head<0x794e>
{
@@ -968,6 +1089,7 @@ struct NetPacket_Repeat<0x794e>
};
static_assert(offsetof(NetPacket_Repeat<0x794e>, c) == 0, "offsetof(NetPacket_Repeat<0x794e>, c) == 0");
static_assert(sizeof(NetPacket_Repeat<0x794e>) == 1, "sizeof(NetPacket_Repeat<0x794e>) == 1");
+
template<>
struct NetPacket_Fixed<0x794f>
{
@@ -977,6 +1099,7 @@ struct NetPacket_Fixed<0x794f>
static_assert(offsetof(NetPacket_Fixed<0x794f>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x794f>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x794f>, error) == 2, "offsetof(NetPacket_Fixed<0x794f>, error) == 2");
static_assert(sizeof(NetPacket_Fixed<0x794f>) == 4, "sizeof(NetPacket_Fixed<0x794f>) == 4");
+
template<>
struct NetPacket_Fixed<0x7950>
{
@@ -988,6 +1111,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7950>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x7950>, account_name) == 2, "offsetof(NetPacket_Fixed<0x7950>, account_name) == 2");
static_assert(offsetof(NetPacket_Fixed<0x7950>, valid_add) == 26, "offsetof(NetPacket_Fixed<0x7950>, valid_add) == 26");
static_assert(sizeof(NetPacket_Fixed<0x7950>) == 38, "sizeof(NetPacket_Fixed<0x7950>) == 38");
+
template<>
struct NetPacket_Fixed<0x7951>
{
@@ -1001,6 +1125,7 @@ static_assert(offsetof(NetPacket_Fixed<0x7951>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x7951>, account_name) == 6, "offsetof(NetPacket_Fixed<0x7951>, account_name) == 6");
static_assert(offsetof(NetPacket_Fixed<0x7951>, valid_until) == 30, "offsetof(NetPacket_Fixed<0x7951>, valid_until) == 30");
static_assert(sizeof(NetPacket_Fixed<0x7951>) == 34, "sizeof(NetPacket_Fixed<0x7951>) == 34");
+
template<>
struct NetPacket_Fixed<0x7952>
{
@@ -1010,6 +1135,7 @@ struct NetPacket_Fixed<0x7952>
static_assert(offsetof(NetPacket_Fixed<0x7952>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7952>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x7952>, account_name) == 2, "offsetof(NetPacket_Fixed<0x7952>, account_name) == 2");
static_assert(sizeof(NetPacket_Fixed<0x7952>) == 26, "sizeof(NetPacket_Fixed<0x7952>) == 26");
+
template<>
struct NetPacket_Head<0x7953>
{
@@ -1050,6 +1176,7 @@ struct NetPacket_Repeat<0x7953>
};
static_assert(offsetof(NetPacket_Repeat<0x7953>, c) == 0, "offsetof(NetPacket_Repeat<0x7953>, c) == 0");
static_assert(sizeof(NetPacket_Repeat<0x7953>) == 1, "sizeof(NetPacket_Repeat<0x7953>) == 1");
+
template<>
struct NetPacket_Fixed<0x7954>
{
@@ -1059,6 +1186,7 @@ struct NetPacket_Fixed<0x7954>
static_assert(offsetof(NetPacket_Fixed<0x7954>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7954>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x7954>, account_id) == 2, "offsetof(NetPacket_Fixed<0x7954>, account_id) == 2");
static_assert(sizeof(NetPacket_Fixed<0x7954>) == 6, "sizeof(NetPacket_Fixed<0x7954>) == 6");
+
template<>
struct NetPacket_Fixed<0x7955>
{
@@ -1067,6 +1195,7 @@ struct NetPacket_Fixed<0x7955>
static_assert(offsetof(NetPacket_Fixed<0x7955>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x7955>, magic_packet_id) == 0");
static_assert(sizeof(NetPacket_Fixed<0x7955>) == 2, "sizeof(NetPacket_Fixed<0x7955>) == 2");
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x2726> *network, Packet_Head<0x2726> native)
{
@@ -1099,6 +1228,43 @@ bool network_to_native(Packet_Repeat<0x2726> *native, NetPacket_Repeat<0x2726> n
rv &= network_to_native(&native->c, network.c);
return rv;
}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Fixed<0x7918> *network, Packet_Fixed<0x7918> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->encryption_zero, native.encryption_zero);
+ rv &= native_to_network(&network->account_pass, native.account_pass);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Fixed<0x7918> *native, NetPacket_Fixed<0x7918> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->encryption_zero, network.encryption_zero);
+ rv &= network_to_native(&native->account_pass, network.account_pass);
+ return rv;
+}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Fixed<0x7919> *network, Packet_Fixed<0x7919> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->error, native.error);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Fixed<0x7919> *native, NetPacket_Fixed<0x7919> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->error, network.error);
+ return rv;
+}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7920> *network, Packet_Fixed<0x7920> native)
{
@@ -1117,6 +1283,7 @@ bool network_to_native(Packet_Fixed<0x7920> *native, NetPacket_Fixed<0x7920> net
rv &= network_to_native(&native->end_account_id, network.end_account_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x7921> *network, Packet_Head<0x7921> native)
{
@@ -1157,6 +1324,7 @@ bool network_to_native(Packet_Repeat<0x7921> *native, NetPacket_Repeat<0x7921> n
rv &= network_to_native(&native->status, network.status);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7924> *network, Packet_Fixed<0x7924> native)
{
@@ -1175,6 +1343,7 @@ bool network_to_native(Packet_Fixed<0x7924> *native, NetPacket_Fixed<0x7924> net
rv &= network_to_native(&native->dest_item_id, network.dest_item_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7925> *network, Packet_Fixed<0x7925> native)
{
@@ -1189,6 +1358,7 @@ bool network_to_native(Packet_Fixed<0x7925> *native, NetPacket_Fixed<0x7925> net
rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7930> *network, Packet_Fixed<0x7930> native)
{
@@ -1211,6 +1381,7 @@ bool network_to_native(Packet_Fixed<0x7930> *native, NetPacket_Fixed<0x7930> net
rv &= network_to_native(&native->email, network.email);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7931> *network, Packet_Fixed<0x7931> native)
{
@@ -1229,6 +1400,7 @@ bool network_to_native(Packet_Fixed<0x7931> *native, NetPacket_Fixed<0x7931> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7932> *network, Packet_Fixed<0x7932> native)
{
@@ -1245,6 +1417,7 @@ bool network_to_native(Packet_Fixed<0x7932> *native, NetPacket_Fixed<0x7932> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7933> *network, Packet_Fixed<0x7933> native)
{
@@ -1263,6 +1436,7 @@ bool network_to_native(Packet_Fixed<0x7933> *native, NetPacket_Fixed<0x7933> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7934> *network, Packet_Fixed<0x7934> native)
{
@@ -1281,6 +1455,7 @@ bool network_to_native(Packet_Fixed<0x7934> *native, NetPacket_Fixed<0x7934> net
rv &= network_to_native(&native->password, network.password);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7935> *network, Packet_Fixed<0x7935> native)
{
@@ -1299,6 +1474,7 @@ bool network_to_native(Packet_Fixed<0x7935> *native, NetPacket_Fixed<0x7935> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7936> *network, Packet_Fixed<0x7936> native)
{
@@ -1319,6 +1495,7 @@ bool network_to_native(Packet_Fixed<0x7936> *native, NetPacket_Fixed<0x7936> net
rv &= network_to_native(&native->error_message, network.error_message);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7937> *network, Packet_Fixed<0x7937> native)
{
@@ -1339,6 +1516,7 @@ bool network_to_native(Packet_Fixed<0x7937> *native, NetPacket_Fixed<0x7937> net
rv &= network_to_native(&native->status, network.status);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7938> *network, Packet_Fixed<0x7938> native)
{
@@ -1353,6 +1531,7 @@ bool network_to_native(Packet_Fixed<0x7938> *native, NetPacket_Fixed<0x7938> net
rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x7939> *network, Packet_Head<0x7939> native)
{
@@ -1393,6 +1572,7 @@ bool network_to_native(Packet_Repeat<0x7939> *native, NetPacket_Repeat<0x7939> n
rv &= network_to_native(&native->is_new, network.is_new);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x793a> *network, Packet_Fixed<0x793a> native)
{
@@ -1411,6 +1591,7 @@ bool network_to_native(Packet_Fixed<0x793a> *native, NetPacket_Fixed<0x793a> net
rv &= network_to_native(&native->password, network.password);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x793b> *network, Packet_Fixed<0x793b> native)
{
@@ -1429,6 +1610,7 @@ bool network_to_native(Packet_Fixed<0x793b> *native, NetPacket_Fixed<0x793b> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x793c> *network, Packet_Fixed<0x793c> native)
{
@@ -1447,6 +1629,7 @@ bool network_to_native(Packet_Fixed<0x793c> *native, NetPacket_Fixed<0x793c> net
rv &= network_to_native(&native->sex, network.sex);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x793d> *network, Packet_Fixed<0x793d> native)
{
@@ -1465,6 +1648,7 @@ bool network_to_native(Packet_Fixed<0x793d> *native, NetPacket_Fixed<0x793d> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x793e> *network, Packet_Fixed<0x793e> native)
{
@@ -1483,6 +1667,7 @@ bool network_to_native(Packet_Fixed<0x793e> *native, NetPacket_Fixed<0x793e> net
rv &= network_to_native(&native->gm_level, network.gm_level);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x793f> *network, Packet_Fixed<0x793f> native)
{
@@ -1501,6 +1686,7 @@ bool network_to_native(Packet_Fixed<0x793f> *native, NetPacket_Fixed<0x793f> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7940> *network, Packet_Fixed<0x7940> native)
{
@@ -1519,6 +1705,7 @@ bool network_to_native(Packet_Fixed<0x7940> *native, NetPacket_Fixed<0x7940> net
rv &= network_to_native(&native->email, network.email);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7941> *network, Packet_Fixed<0x7941> native)
{
@@ -1537,6 +1724,7 @@ bool network_to_native(Packet_Fixed<0x7941> *native, NetPacket_Fixed<0x7941> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x7942> *network, Packet_Head<0x7942> native)
{
@@ -1569,6 +1757,7 @@ bool network_to_native(Packet_Repeat<0x7942> *native, NetPacket_Repeat<0x7942> n
rv &= network_to_native(&native->c, network.c);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7943> *network, Packet_Fixed<0x7943> native)
{
@@ -1587,6 +1776,7 @@ bool network_to_native(Packet_Fixed<0x7943> *native, NetPacket_Fixed<0x7943> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7944> *network, Packet_Fixed<0x7944> native)
{
@@ -1603,6 +1793,7 @@ bool network_to_native(Packet_Fixed<0x7944> *native, NetPacket_Fixed<0x7944> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7945> *network, Packet_Fixed<0x7945> native)
{
@@ -1621,6 +1812,7 @@ bool network_to_native(Packet_Fixed<0x7945> *native, NetPacket_Fixed<0x7945> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7946> *network, Packet_Fixed<0x7946> native)
{
@@ -1637,6 +1829,7 @@ bool network_to_native(Packet_Fixed<0x7946> *native, NetPacket_Fixed<0x7946> net
rv &= network_to_native(&native->account_id, network.account_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7947> *network, Packet_Fixed<0x7947> native)
{
@@ -1655,6 +1848,7 @@ bool network_to_native(Packet_Fixed<0x7947> *native, NetPacket_Fixed<0x7947> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7948> *network, Packet_Fixed<0x7948> native)
{
@@ -1673,6 +1867,7 @@ bool network_to_native(Packet_Fixed<0x7948> *native, NetPacket_Fixed<0x7948> net
rv &= network_to_native(&native->valid_until, network.valid_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7949> *network, Packet_Fixed<0x7949> native)
{
@@ -1693,6 +1888,7 @@ bool network_to_native(Packet_Fixed<0x7949> *native, NetPacket_Fixed<0x7949> net
rv &= network_to_native(&native->valid_until, network.valid_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x794a> *network, Packet_Fixed<0x794a> native)
{
@@ -1711,6 +1907,7 @@ bool network_to_native(Packet_Fixed<0x794a> *native, NetPacket_Fixed<0x794a> net
rv &= network_to_native(&native->ban_until, network.ban_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x794b> *network, Packet_Fixed<0x794b> native)
{
@@ -1731,6 +1928,7 @@ bool network_to_native(Packet_Fixed<0x794b> *native, NetPacket_Fixed<0x794b> net
rv &= network_to_native(&native->ban_until, network.ban_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x794c> *network, Packet_Fixed<0x794c> native)
{
@@ -1749,6 +1947,7 @@ bool network_to_native(Packet_Fixed<0x794c> *native, NetPacket_Fixed<0x794c> net
rv &= network_to_native(&native->ban_add, network.ban_add);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x794d> *network, Packet_Fixed<0x794d> native)
{
@@ -1769,6 +1968,7 @@ bool network_to_native(Packet_Fixed<0x794d> *native, NetPacket_Fixed<0x794d> net
rv &= network_to_native(&native->ban_until, network.ban_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x794e> *network, Packet_Head<0x794e> native)
{
@@ -1801,6 +2001,7 @@ bool network_to_native(Packet_Repeat<0x794e> *native, NetPacket_Repeat<0x794e> n
rv &= network_to_native(&native->c, network.c);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x794f> *network, Packet_Fixed<0x794f> native)
{
@@ -1817,6 +2018,7 @@ bool network_to_native(Packet_Fixed<0x794f> *native, NetPacket_Fixed<0x794f> net
rv &= network_to_native(&native->error, network.error);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7950> *network, Packet_Fixed<0x7950> native)
{
@@ -1835,6 +2037,7 @@ bool network_to_native(Packet_Fixed<0x7950> *native, NetPacket_Fixed<0x7950> net
rv &= network_to_native(&native->valid_add, network.valid_add);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7951> *network, Packet_Fixed<0x7951> native)
{
@@ -1855,6 +2058,7 @@ bool network_to_native(Packet_Fixed<0x7951> *native, NetPacket_Fixed<0x7951> net
rv &= network_to_native(&native->valid_until, network.valid_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7952> *network, Packet_Fixed<0x7952> native)
{
@@ -1871,6 +2075,7 @@ bool network_to_native(Packet_Fixed<0x7952> *native, NetPacket_Fixed<0x7952> net
rv &= network_to_native(&native->account_name, network.account_name);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x7953> *network, Packet_Head<0x7953> native)
{
@@ -1925,6 +2130,7 @@ bool network_to_native(Packet_Repeat<0x7953> *native, NetPacket_Repeat<0x7953> n
rv &= network_to_native(&native->c, network.c);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7954> *network, Packet_Fixed<0x7954> native)
{
@@ -1941,6 +2147,7 @@ bool network_to_native(Packet_Fixed<0x7954> *native, NetPacket_Fixed<0x7954> net
rv &= network_to_native(&native->account_id, network.account_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x7955> *network, Packet_Fixed<0x7955> native)
{
@@ -1956,4 +2163,5 @@ bool network_to_native(Packet_Fixed<0x7955> *native, NetPacket_Fixed<0x7955> net
return rv;
}
+
#endif // TMWA_PROTO2_LOGIN_ADMIN_HPP
diff --git a/src/proto2/login-char.hpp b/src/proto2/login-char.hpp
index 8f3a99e..6b2004d 100644
--- a/src/proto2/login-char.hpp
+++ b/src/proto2/login-char.hpp
@@ -35,6 +35,35 @@ struct Packet_Fixed<0x2709>
// TODO remove this
uint16_t magic_packet_id = PACKET_ID;
};
+
+template<>
+struct Packet_Fixed<0x2710>
+{
+ static const uint16_t PACKET_ID = 0x2710;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ AccountName account_name = {};
+ AccountPass account_pass = {};
+ uint32_t unknown = {};
+ IP4Address ip = {};
+ uint16_t port = {};
+ ServerName server_name = {};
+ uint16_t unknown2 = {};
+ uint16_t maintenance = {};
+ uint16_t is_new = {};
+};
+
+template<>
+struct Packet_Fixed<0x2711>
+{
+ static const uint16_t PACKET_ID = 0x2711;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ uint8_t code = {};
+};
+
template<>
struct Packet_Fixed<0x2712>
{
@@ -48,6 +77,7 @@ struct Packet_Fixed<0x2712>
SEX sex = {};
IP4Address ip = {};
};
+
template<>
struct Packet_Fixed<0x2713>
{
@@ -60,6 +90,7 @@ struct Packet_Fixed<0x2713>
AccountEmail email = {};
TimeT connect_until = {};
};
+
template<>
struct Packet_Fixed<0x2714>
{
@@ -69,6 +100,7 @@ struct Packet_Fixed<0x2714>
uint16_t magic_packet_id = PACKET_ID;
uint32_t users = {};
};
+
template<>
struct Packet_Fixed<0x2715>
{
@@ -79,6 +111,7 @@ struct Packet_Fixed<0x2715>
AccountId account_id = {};
AccountEmail email = {};
};
+
template<>
struct Packet_Fixed<0x2716>
{
@@ -88,6 +121,7 @@ struct Packet_Fixed<0x2716>
uint16_t magic_packet_id = PACKET_ID;
AccountId account_id = {};
};
+
template<>
struct Packet_Fixed<0x2717>
{
@@ -99,6 +133,7 @@ struct Packet_Fixed<0x2717>
AccountEmail email = {};
TimeT connect_until = {};
};
+
template<>
struct Packet_Head<0x2720>
{
@@ -117,6 +152,7 @@ struct Packet_Repeat<0x2720>
uint8_t c = {};
};
+
template<>
struct Packet_Fixed<0x2721>
{
@@ -127,6 +163,7 @@ struct Packet_Fixed<0x2721>
AccountId account_id = {};
GmLevel gm_level = {};
};
+
template<>
struct Packet_Fixed<0x2722>
{
@@ -138,6 +175,7 @@ struct Packet_Fixed<0x2722>
AccountEmail old_email = {};
AccountEmail new_email = {};
};
+
template<>
struct Packet_Fixed<0x2723>
{
@@ -148,6 +186,7 @@ struct Packet_Fixed<0x2723>
AccountId account_id = {};
SEX sex = {};
};
+
template<>
struct Packet_Fixed<0x2724>
{
@@ -158,6 +197,7 @@ struct Packet_Fixed<0x2724>
AccountId account_id = {};
uint32_t status = {};
};
+
template<>
struct Packet_Fixed<0x2725>
{
@@ -168,6 +208,7 @@ struct Packet_Fixed<0x2725>
AccountId account_id = {};
HumanTimeDiff deltas = {};
};
+
template<>
struct Packet_Fixed<0x2727>
{
@@ -177,6 +218,7 @@ struct Packet_Fixed<0x2727>
uint16_t magic_packet_id = PACKET_ID;
AccountId account_id = {};
};
+
template<>
struct Packet_Head<0x2728>
{
@@ -196,6 +238,7 @@ struct Packet_Repeat<0x2728>
VarName name = {};
uint32_t value = {};
};
+
template<>
struct Packet_Head<0x2729>
{
@@ -215,6 +258,7 @@ struct Packet_Repeat<0x2729>
VarName name = {};
uint32_t value = {};
};
+
template<>
struct Packet_Fixed<0x272a>
{
@@ -224,6 +268,7 @@ struct Packet_Fixed<0x272a>
uint16_t magic_packet_id = PACKET_ID;
AccountId account_id = {};
};
+
template<>
struct Packet_Fixed<0x2730>
{
@@ -233,6 +278,7 @@ struct Packet_Fixed<0x2730>
uint16_t magic_packet_id = PACKET_ID;
AccountId account_id = {};
};
+
template<>
struct Packet_Fixed<0x2731>
{
@@ -244,6 +290,7 @@ struct Packet_Fixed<0x2731>
uint8_t ban_not_status = {};
TimeT status_or_ban_until = {};
};
+
template<>
struct Packet_Head<0x2732>
{
@@ -262,6 +309,7 @@ struct Packet_Repeat<0x2732>
AccountId account_id = {};
GmLevel gm_level = {};
};
+
template<>
struct Packet_Fixed<0x2740>
{
@@ -273,6 +321,7 @@ struct Packet_Fixed<0x2740>
AccountPass old_pass = {};
AccountPass new_pass = {};
};
+
template<>
struct Packet_Fixed<0x2741>
{
@@ -284,6 +333,7 @@ struct Packet_Fixed<0x2741>
uint8_t status = {};
};
+
template<>
struct NetPacket_Fixed<0x2709>
{
@@ -291,6 +341,43 @@ struct NetPacket_Fixed<0x2709>
};
static_assert(offsetof(NetPacket_Fixed<0x2709>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x2709>, magic_packet_id) == 0");
static_assert(sizeof(NetPacket_Fixed<0x2709>) == 2, "sizeof(NetPacket_Fixed<0x2709>) == 2");
+
+template<>
+struct NetPacket_Fixed<0x2710>
+{
+ Little16 magic_packet_id;
+ NetString<sizeof(AccountName)> account_name;
+ NetString<sizeof(AccountPass)> account_pass;
+ Little32 unknown;
+ IP4Address ip;
+ Little16 port;
+ NetString<sizeof(ServerName)> server_name;
+ Little16 unknown2;
+ Little16 maintenance;
+ Little16 is_new;
+};
+static_assert(offsetof(NetPacket_Fixed<0x2710>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x2710>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, account_name) == 2, "offsetof(NetPacket_Fixed<0x2710>, account_name) == 2");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, account_pass) == 26, "offsetof(NetPacket_Fixed<0x2710>, account_pass) == 26");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, unknown) == 50, "offsetof(NetPacket_Fixed<0x2710>, unknown) == 50");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, ip) == 54, "offsetof(NetPacket_Fixed<0x2710>, ip) == 54");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, port) == 58, "offsetof(NetPacket_Fixed<0x2710>, port) == 58");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, server_name) == 60, "offsetof(NetPacket_Fixed<0x2710>, server_name) == 60");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, unknown2) == 80, "offsetof(NetPacket_Fixed<0x2710>, unknown2) == 80");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, maintenance) == 82, "offsetof(NetPacket_Fixed<0x2710>, maintenance) == 82");
+static_assert(offsetof(NetPacket_Fixed<0x2710>, is_new) == 84, "offsetof(NetPacket_Fixed<0x2710>, is_new) == 84");
+static_assert(sizeof(NetPacket_Fixed<0x2710>) == 86, "sizeof(NetPacket_Fixed<0x2710>) == 86");
+
+template<>
+struct NetPacket_Fixed<0x2711>
+{
+ Little16 magic_packet_id;
+ Byte code;
+};
+static_assert(offsetof(NetPacket_Fixed<0x2711>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x2711>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Fixed<0x2711>, code) == 2, "offsetof(NetPacket_Fixed<0x2711>, code) == 2");
+static_assert(sizeof(NetPacket_Fixed<0x2711>) == 3, "sizeof(NetPacket_Fixed<0x2711>) == 3");
+
template<>
struct NetPacket_Fixed<0x2712>
{
@@ -308,6 +395,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2712>, login_id2) == 10, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x2712>, sex) == 14, "offsetof(NetPacket_Fixed<0x2712>, sex) == 14");
static_assert(offsetof(NetPacket_Fixed<0x2712>, ip) == 15, "offsetof(NetPacket_Fixed<0x2712>, ip) == 15");
static_assert(sizeof(NetPacket_Fixed<0x2712>) == 19, "sizeof(NetPacket_Fixed<0x2712>) == 19");
+
template<>
struct NetPacket_Fixed<0x2713>
{
@@ -323,6 +411,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2713>, invalid) == 6, "offsetof(NetPack
static_assert(offsetof(NetPacket_Fixed<0x2713>, email) == 7, "offsetof(NetPacket_Fixed<0x2713>, email) == 7");
static_assert(offsetof(NetPacket_Fixed<0x2713>, connect_until) == 47, "offsetof(NetPacket_Fixed<0x2713>, connect_until) == 47");
static_assert(sizeof(NetPacket_Fixed<0x2713>) == 51, "sizeof(NetPacket_Fixed<0x2713>) == 51");
+
template<>
struct NetPacket_Fixed<0x2714>
{
@@ -332,6 +421,7 @@ struct NetPacket_Fixed<0x2714>
static_assert(offsetof(NetPacket_Fixed<0x2714>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x2714>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x2714>, users) == 2, "offsetof(NetPacket_Fixed<0x2714>, users) == 2");
static_assert(sizeof(NetPacket_Fixed<0x2714>) == 6, "sizeof(NetPacket_Fixed<0x2714>) == 6");
+
template<>
struct NetPacket_Fixed<0x2715>
{
@@ -343,6 +433,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2715>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x2715>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2715>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x2715>, email) == 6, "offsetof(NetPacket_Fixed<0x2715>, email) == 6");
static_assert(sizeof(NetPacket_Fixed<0x2715>) == 46, "sizeof(NetPacket_Fixed<0x2715>) == 46");
+
template<>
struct NetPacket_Fixed<0x2716>
{
@@ -352,6 +443,7 @@ struct NetPacket_Fixed<0x2716>
static_assert(offsetof(NetPacket_Fixed<0x2716>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x2716>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x2716>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2716>, account_id) == 2");
static_assert(sizeof(NetPacket_Fixed<0x2716>) == 6, "sizeof(NetPacket_Fixed<0x2716>) == 6");
+
template<>
struct NetPacket_Fixed<0x2717>
{
@@ -365,6 +457,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2717>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x2717>, email) == 6, "offsetof(NetPacket_Fixed<0x2717>, email) == 6");
static_assert(offsetof(NetPacket_Fixed<0x2717>, connect_until) == 46, "offsetof(NetPacket_Fixed<0x2717>, connect_until) == 46");
static_assert(sizeof(NetPacket_Fixed<0x2717>) == 50, "sizeof(NetPacket_Fixed<0x2717>) == 50");
+
template<>
struct NetPacket_Head<0x2720>
{
@@ -383,6 +476,7 @@ struct NetPacket_Repeat<0x2720>
};
static_assert(offsetof(NetPacket_Repeat<0x2720>, c) == 0, "offsetof(NetPacket_Repeat<0x2720>, c) == 0");
static_assert(sizeof(NetPacket_Repeat<0x2720>) == 1, "sizeof(NetPacket_Repeat<0x2720>) == 1");
+
template<>
struct NetPacket_Fixed<0x2721>
{
@@ -394,6 +488,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2721>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x2721>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2721>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x2721>, gm_level) == 6, "offsetof(NetPacket_Fixed<0x2721>, gm_level) == 6");
static_assert(sizeof(NetPacket_Fixed<0x2721>) == 10, "sizeof(NetPacket_Fixed<0x2721>) == 10");
+
template<>
struct NetPacket_Fixed<0x2722>
{
@@ -407,6 +502,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2722>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x2722>, old_email) == 6, "offsetof(NetPacket_Fixed<0x2722>, old_email) == 6");
static_assert(offsetof(NetPacket_Fixed<0x2722>, new_email) == 46, "offsetof(NetPacket_Fixed<0x2722>, new_email) == 46");
static_assert(sizeof(NetPacket_Fixed<0x2722>) == 86, "sizeof(NetPacket_Fixed<0x2722>) == 86");
+
template<>
struct NetPacket_Fixed<0x2723>
{
@@ -418,6 +514,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2723>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x2723>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2723>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x2723>, sex) == 6, "offsetof(NetPacket_Fixed<0x2723>, sex) == 6");
static_assert(sizeof(NetPacket_Fixed<0x2723>) == 7, "sizeof(NetPacket_Fixed<0x2723>) == 7");
+
template<>
struct NetPacket_Fixed<0x2724>
{
@@ -429,6 +526,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2724>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x2724>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2724>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x2724>, status) == 6, "offsetof(NetPacket_Fixed<0x2724>, status) == 6");
static_assert(sizeof(NetPacket_Fixed<0x2724>) == 10, "sizeof(NetPacket_Fixed<0x2724>) == 10");
+
template<>
struct NetPacket_Fixed<0x2725>
{
@@ -440,6 +538,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2725>, magic_packet_id) == 0, "offsetof
static_assert(offsetof(NetPacket_Fixed<0x2725>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2725>, account_id) == 2");
static_assert(offsetof(NetPacket_Fixed<0x2725>, deltas) == 6, "offsetof(NetPacket_Fixed<0x2725>, deltas) == 6");
static_assert(sizeof(NetPacket_Fixed<0x2725>) == 18, "sizeof(NetPacket_Fixed<0x2725>) == 18");
+
template<>
struct NetPacket_Fixed<0x2727>
{
@@ -449,6 +548,7 @@ struct NetPacket_Fixed<0x2727>
static_assert(offsetof(NetPacket_Fixed<0x2727>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x2727>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x2727>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2727>, account_id) == 2");
static_assert(sizeof(NetPacket_Fixed<0x2727>) == 6, "sizeof(NetPacket_Fixed<0x2727>) == 6");
+
template<>
struct NetPacket_Head<0x2728>
{
@@ -469,6 +569,7 @@ struct NetPacket_Repeat<0x2728>
static_assert(offsetof(NetPacket_Repeat<0x2728>, name) == 0, "offsetof(NetPacket_Repeat<0x2728>, name) == 0");
static_assert(offsetof(NetPacket_Repeat<0x2728>, value) == 32, "offsetof(NetPacket_Repeat<0x2728>, value) == 32");
static_assert(sizeof(NetPacket_Repeat<0x2728>) == 36, "sizeof(NetPacket_Repeat<0x2728>) == 36");
+
template<>
struct NetPacket_Head<0x2729>
{
@@ -489,6 +590,7 @@ struct NetPacket_Repeat<0x2729>
static_assert(offsetof(NetPacket_Repeat<0x2729>, name) == 0, "offsetof(NetPacket_Repeat<0x2729>, name) == 0");
static_assert(offsetof(NetPacket_Repeat<0x2729>, value) == 32, "offsetof(NetPacket_Repeat<0x2729>, value) == 32");
static_assert(sizeof(NetPacket_Repeat<0x2729>) == 36, "sizeof(NetPacket_Repeat<0x2729>) == 36");
+
template<>
struct NetPacket_Fixed<0x272a>
{
@@ -498,6 +600,7 @@ struct NetPacket_Fixed<0x272a>
static_assert(offsetof(NetPacket_Fixed<0x272a>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x272a>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x272a>, account_id) == 2, "offsetof(NetPacket_Fixed<0x272a>, account_id) == 2");
static_assert(sizeof(NetPacket_Fixed<0x272a>) == 6, "sizeof(NetPacket_Fixed<0x272a>) == 6");
+
template<>
struct NetPacket_Fixed<0x2730>
{
@@ -507,6 +610,7 @@ struct NetPacket_Fixed<0x2730>
static_assert(offsetof(NetPacket_Fixed<0x2730>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x2730>, magic_packet_id) == 0");
static_assert(offsetof(NetPacket_Fixed<0x2730>, account_id) == 2, "offsetof(NetPacket_Fixed<0x2730>, account_id) == 2");
static_assert(sizeof(NetPacket_Fixed<0x2730>) == 6, "sizeof(NetPacket_Fixed<0x2730>) == 6");
+
template<>
struct NetPacket_Fixed<0x2731>
{
@@ -520,6 +624,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2731>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x2731>, ban_not_status) == 6, "offsetof(NetPacket_Fixed<0x2731>, ban_not_status) == 6");
static_assert(offsetof(NetPacket_Fixed<0x2731>, status_or_ban_until) == 7, "offsetof(NetPacket_Fixed<0x2731>, status_or_ban_until) == 7");
static_assert(sizeof(NetPacket_Fixed<0x2731>) == 11, "sizeof(NetPacket_Fixed<0x2731>) == 11");
+
template<>
struct NetPacket_Head<0x2732>
{
@@ -538,6 +643,7 @@ struct NetPacket_Repeat<0x2732>
static_assert(offsetof(NetPacket_Repeat<0x2732>, account_id) == 0, "offsetof(NetPacket_Repeat<0x2732>, account_id) == 0");
static_assert(offsetof(NetPacket_Repeat<0x2732>, gm_level) == 4, "offsetof(NetPacket_Repeat<0x2732>, gm_level) == 4");
static_assert(sizeof(NetPacket_Repeat<0x2732>) == 5, "sizeof(NetPacket_Repeat<0x2732>) == 5");
+
template<>
struct NetPacket_Fixed<0x2740>
{
@@ -551,6 +657,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2740>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x2740>, old_pass) == 6, "offsetof(NetPacket_Fixed<0x2740>, old_pass) == 6");
static_assert(offsetof(NetPacket_Fixed<0x2740>, new_pass) == 30, "offsetof(NetPacket_Fixed<0x2740>, new_pass) == 30");
static_assert(sizeof(NetPacket_Fixed<0x2740>) == 54, "sizeof(NetPacket_Fixed<0x2740>) == 54");
+
template<>
struct NetPacket_Fixed<0x2741>
{
@@ -563,6 +670,7 @@ static_assert(offsetof(NetPacket_Fixed<0x2741>, account_id) == 2, "offsetof(NetP
static_assert(offsetof(NetPacket_Fixed<0x2741>, status) == 6, "offsetof(NetPacket_Fixed<0x2741>, status) == 6");
static_assert(sizeof(NetPacket_Fixed<0x2741>) == 7, "sizeof(NetPacket_Fixed<0x2741>) == 7");
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2709> *network, Packet_Fixed<0x2709> native)
{
@@ -577,6 +685,57 @@ bool network_to_native(Packet_Fixed<0x2709> *native, NetPacket_Fixed<0x2709> net
rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
return rv;
}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Fixed<0x2710> *network, Packet_Fixed<0x2710> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->account_name, native.account_name);
+ rv &= native_to_network(&network->account_pass, native.account_pass);
+ rv &= native_to_network(&network->unknown, native.unknown);
+ rv &= native_to_network(&network->ip, native.ip);
+ rv &= native_to_network(&network->port, native.port);
+ rv &= native_to_network(&network->server_name, native.server_name);
+ rv &= native_to_network(&network->unknown2, native.unknown2);
+ rv &= native_to_network(&network->maintenance, native.maintenance);
+ rv &= native_to_network(&network->is_new, native.is_new);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Fixed<0x2710> *native, NetPacket_Fixed<0x2710> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->account_name, network.account_name);
+ rv &= network_to_native(&native->account_pass, network.account_pass);
+ rv &= network_to_native(&native->unknown, network.unknown);
+ rv &= network_to_native(&native->ip, network.ip);
+ rv &= network_to_native(&native->port, network.port);
+ rv &= network_to_native(&native->server_name, network.server_name);
+ rv &= network_to_native(&native->unknown2, network.unknown2);
+ rv &= network_to_native(&native->maintenance, network.maintenance);
+ rv &= network_to_native(&native->is_new, network.is_new);
+ return rv;
+}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Fixed<0x2711> *network, Packet_Fixed<0x2711> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->code, native.code);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Fixed<0x2711> *native, NetPacket_Fixed<0x2711> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->code, network.code);
+ return rv;
+}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2712> *network, Packet_Fixed<0x2712> native)
{
@@ -601,6 +760,7 @@ bool network_to_native(Packet_Fixed<0x2712> *native, NetPacket_Fixed<0x2712> net
rv &= network_to_native(&native->ip, network.ip);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2713> *network, Packet_Fixed<0x2713> native)
{
@@ -623,6 +783,7 @@ bool network_to_native(Packet_Fixed<0x2713> *native, NetPacket_Fixed<0x2713> net
rv &= network_to_native(&native->connect_until, network.connect_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2714> *network, Packet_Fixed<0x2714> native)
{
@@ -639,6 +800,7 @@ bool network_to_native(Packet_Fixed<0x2714> *native, NetPacket_Fixed<0x2714> net
rv &= network_to_native(&native->users, network.users);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2715> *network, Packet_Fixed<0x2715> native)
{
@@ -657,6 +819,7 @@ bool network_to_native(Packet_Fixed<0x2715> *native, NetPacket_Fixed<0x2715> net
rv &= network_to_native(&native->email, network.email);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2716> *network, Packet_Fixed<0x2716> native)
{
@@ -673,6 +836,7 @@ bool network_to_native(Packet_Fixed<0x2716> *native, NetPacket_Fixed<0x2716> net
rv &= network_to_native(&native->account_id, network.account_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2717> *network, Packet_Fixed<0x2717> native)
{
@@ -693,6 +857,7 @@ bool network_to_native(Packet_Fixed<0x2717> *native, NetPacket_Fixed<0x2717> net
rv &= network_to_native(&native->connect_until, network.connect_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x2720> *network, Packet_Head<0x2720> native)
{
@@ -725,6 +890,7 @@ bool network_to_native(Packet_Repeat<0x2720> *native, NetPacket_Repeat<0x2720> n
rv &= network_to_native(&native->c, network.c);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2721> *network, Packet_Fixed<0x2721> native)
{
@@ -743,6 +909,7 @@ bool network_to_native(Packet_Fixed<0x2721> *native, NetPacket_Fixed<0x2721> net
rv &= network_to_native(&native->gm_level, network.gm_level);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2722> *network, Packet_Fixed<0x2722> native)
{
@@ -763,6 +930,7 @@ bool network_to_native(Packet_Fixed<0x2722> *native, NetPacket_Fixed<0x2722> net
rv &= network_to_native(&native->new_email, network.new_email);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2723> *network, Packet_Fixed<0x2723> native)
{
@@ -781,6 +949,7 @@ bool network_to_native(Packet_Fixed<0x2723> *native, NetPacket_Fixed<0x2723> net
rv &= network_to_native(&native->sex, network.sex);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2724> *network, Packet_Fixed<0x2724> native)
{
@@ -799,6 +968,7 @@ bool network_to_native(Packet_Fixed<0x2724> *native, NetPacket_Fixed<0x2724> net
rv &= network_to_native(&native->status, network.status);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2725> *network, Packet_Fixed<0x2725> native)
{
@@ -817,6 +987,7 @@ bool network_to_native(Packet_Fixed<0x2725> *native, NetPacket_Fixed<0x2725> net
rv &= network_to_native(&native->deltas, network.deltas);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2727> *network, Packet_Fixed<0x2727> native)
{
@@ -833,6 +1004,7 @@ bool network_to_native(Packet_Fixed<0x2727> *native, NetPacket_Fixed<0x2727> net
rv &= network_to_native(&native->account_id, network.account_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x2728> *network, Packet_Head<0x2728> native)
{
@@ -867,6 +1039,7 @@ bool network_to_native(Packet_Repeat<0x2728> *native, NetPacket_Repeat<0x2728> n
rv &= network_to_native(&native->value, network.value);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x2729> *network, Packet_Head<0x2729> native)
{
@@ -901,6 +1074,7 @@ bool network_to_native(Packet_Repeat<0x2729> *native, NetPacket_Repeat<0x2729> n
rv &= network_to_native(&native->value, network.value);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x272a> *network, Packet_Fixed<0x272a> native)
{
@@ -917,6 +1091,7 @@ bool network_to_native(Packet_Fixed<0x272a> *native, NetPacket_Fixed<0x272a> net
rv &= network_to_native(&native->account_id, network.account_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2730> *network, Packet_Fixed<0x2730> native)
{
@@ -933,6 +1108,7 @@ bool network_to_native(Packet_Fixed<0x2730> *native, NetPacket_Fixed<0x2730> net
rv &= network_to_native(&native->account_id, network.account_id);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2731> *network, Packet_Fixed<0x2731> native)
{
@@ -953,6 +1129,7 @@ bool network_to_native(Packet_Fixed<0x2731> *native, NetPacket_Fixed<0x2731> net
rv &= network_to_native(&native->status_or_ban_until, network.status_or_ban_until);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Head<0x2732> *network, Packet_Head<0x2732> native)
{
@@ -985,6 +1162,7 @@ bool network_to_native(Packet_Repeat<0x2732> *native, NetPacket_Repeat<0x2732> n
rv &= network_to_native(&native->gm_level, network.gm_level);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2740> *network, Packet_Fixed<0x2740> native)
{
@@ -1005,6 +1183,7 @@ bool network_to_native(Packet_Fixed<0x2740> *native, NetPacket_Fixed<0x2740> net
rv &= network_to_native(&native->new_pass, network.new_pass);
return rv;
}
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x2741> *network, Packet_Fixed<0x2741> native)
{
@@ -1024,4 +1203,5 @@ bool network_to_native(Packet_Fixed<0x2741> *native, NetPacket_Fixed<0x2741> net
return rv;
}
+
#endif // TMWA_PROTO2_LOGIN_CHAR_HPP
diff --git a/src/proto2/login-user.hpp b/src/proto2/login-user.hpp
index ee00e9a..dbdf322 100644
--- a/src/proto2/login-user.hpp
+++ b/src/proto2/login-user.hpp
@@ -27,7 +27,330 @@
// This is a public protocol, and changes require client cooperation
+template<>
+struct Packet_Head<0x0063>
+{
+ static const uint16_t PACKET_ID = 0x0063;
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ // TODO remove this
+ uint16_t magic_packet_length = {};
+};
+template<>
+struct Packet_Repeat<0x0063>
+{
+ static const uint16_t PACKET_ID = 0x0063;
+
+ uint8_t c = {};
+};
+
+template<>
+struct Packet_Fixed<0x0064>
+{
+ static const uint16_t PACKET_ID = 0x0064;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ uint32_t unknown = {};
+ AccountName account_name = {};
+ AccountPass account_pass = {};
+ VERSION_2 version_2_flags = {};
+};
+
+template<>
+struct Packet_Head<0x0069>
+{
+ static const uint16_t PACKET_ID = 0x0069;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ // TODO remove this
+ uint16_t magic_packet_length = {};
+ uint32_t login_id1 = {};
+ AccountId account_id = {};
+ uint32_t login_id2 = {};
+ uint32_t unused = {};
+ timestamp_milliseconds_buffer last_login_string = {};
+ uint16_t unused2 = {};
+ SEX sex = {};
+};
+template<>
+struct Packet_Repeat<0x0069>
+{
+ static const uint16_t PACKET_ID = 0x0069;
+
+ IP4Address ip = {};
+ uint16_t port = {};
+ ServerName server_name = {};
+ uint16_t users = {};
+ uint16_t maintenance = {};
+ uint16_t is_new = {};
+};
+
+template<>
+struct Packet_Fixed<0x006a>
+{
+ static const uint16_t PACKET_ID = 0x006a;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ uint8_t error_code = {};
+ timestamp_seconds_buffer error_message = {};
+};
+
+template<>
+struct Packet_Fixed<0x0081>
+{
+ static const uint16_t PACKET_ID = 0x0081;
+
+ // TODO remove this
+ uint16_t magic_packet_id = PACKET_ID;
+ uint8_t error_code = {};
+};
+
+
+template<>
+struct NetPacket_Head<0x0063>
+{
+ Little16 magic_packet_id;
+ Little16 magic_packet_length;
+};
+static_assert(offsetof(NetPacket_Head<0x0063>, magic_packet_id) == 0, "offsetof(NetPacket_Head<0x0063>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Head<0x0063>, magic_packet_length) == 2, "offsetof(NetPacket_Head<0x0063>, magic_packet_length) == 2");
+static_assert(sizeof(NetPacket_Head<0x0063>) == 4, "sizeof(NetPacket_Head<0x0063>) == 4");
+template<>
+struct NetPacket_Repeat<0x0063>
+{
+ Byte c;
+};
+static_assert(offsetof(NetPacket_Repeat<0x0063>, c) == 0, "offsetof(NetPacket_Repeat<0x0063>, c) == 0");
+static_assert(sizeof(NetPacket_Repeat<0x0063>) == 1, "sizeof(NetPacket_Repeat<0x0063>) == 1");
+
+template<>
+struct NetPacket_Fixed<0x0064>
+{
+ Little16 magic_packet_id;
+ Little32 unknown;
+ NetString<sizeof(AccountName)> account_name;
+ NetString<sizeof(AccountPass)> account_pass;
+ Byte version_2_flags;
+};
+static_assert(offsetof(NetPacket_Fixed<0x0064>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x0064>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Fixed<0x0064>, unknown) == 2, "offsetof(NetPacket_Fixed<0x0064>, unknown) == 2");
+static_assert(offsetof(NetPacket_Fixed<0x0064>, account_name) == 6, "offsetof(NetPacket_Fixed<0x0064>, account_name) == 6");
+static_assert(offsetof(NetPacket_Fixed<0x0064>, account_pass) == 30, "offsetof(NetPacket_Fixed<0x0064>, account_pass) == 30");
+static_assert(offsetof(NetPacket_Fixed<0x0064>, version_2_flags) == 54, "offsetof(NetPacket_Fixed<0x0064>, version_2_flags) == 54");
+static_assert(sizeof(NetPacket_Fixed<0x0064>) == 55, "sizeof(NetPacket_Fixed<0x0064>) == 55");
+
+template<>
+struct NetPacket_Head<0x0069>
+{
+ Little16 magic_packet_id;
+ Little16 magic_packet_length;
+ Little32 login_id1;
+ Little32 account_id;
+ Little32 login_id2;
+ Little32 unused;
+ NetString<sizeof(timestamp_milliseconds_buffer)> last_login_string;
+ Little16 unused2;
+ Byte sex;
+};
+static_assert(offsetof(NetPacket_Head<0x0069>, magic_packet_id) == 0, "offsetof(NetPacket_Head<0x0069>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Head<0x0069>, magic_packet_length) == 2, "offsetof(NetPacket_Head<0x0069>, magic_packet_length) == 2");
+static_assert(offsetof(NetPacket_Head<0x0069>, login_id1) == 4, "offsetof(NetPacket_Head<0x0069>, login_id1) == 4");
+static_assert(offsetof(NetPacket_Head<0x0069>, account_id) == 8, "offsetof(NetPacket_Head<0x0069>, account_id) == 8");
+static_assert(offsetof(NetPacket_Head<0x0069>, login_id2) == 12, "offsetof(NetPacket_Head<0x0069>, login_id2) == 12");
+static_assert(offsetof(NetPacket_Head<0x0069>, unused) == 16, "offsetof(NetPacket_Head<0x0069>, unused) == 16");
+static_assert(offsetof(NetPacket_Head<0x0069>, last_login_string) == 20, "offsetof(NetPacket_Head<0x0069>, last_login_string) == 20");
+static_assert(offsetof(NetPacket_Head<0x0069>, unused2) == 44, "offsetof(NetPacket_Head<0x0069>, unused2) == 44");
+static_assert(offsetof(NetPacket_Head<0x0069>, sex) == 46, "offsetof(NetPacket_Head<0x0069>, sex) == 46");
+static_assert(sizeof(NetPacket_Head<0x0069>) == 47, "sizeof(NetPacket_Head<0x0069>) == 47");
+template<>
+struct NetPacket_Repeat<0x0069>
+{
+ IP4Address ip;
+ Little16 port;
+ NetString<sizeof(ServerName)> server_name;
+ Little16 users;
+ Little16 maintenance;
+ Little16 is_new;
+};
+static_assert(offsetof(NetPacket_Repeat<0x0069>, ip) == 0, "offsetof(NetPacket_Repeat<0x0069>, ip) == 0");
+static_assert(offsetof(NetPacket_Repeat<0x0069>, port) == 4, "offsetof(NetPacket_Repeat<0x0069>, port) == 4");
+static_assert(offsetof(NetPacket_Repeat<0x0069>, server_name) == 6, "offsetof(NetPacket_Repeat<0x0069>, server_name) == 6");
+static_assert(offsetof(NetPacket_Repeat<0x0069>, users) == 26, "offsetof(NetPacket_Repeat<0x0069>, users) == 26");
+static_assert(offsetof(NetPacket_Repeat<0x0069>, maintenance) == 28, "offsetof(NetPacket_Repeat<0x0069>, maintenance) == 28");
+static_assert(offsetof(NetPacket_Repeat<0x0069>, is_new) == 30, "offsetof(NetPacket_Repeat<0x0069>, is_new) == 30");
+static_assert(sizeof(NetPacket_Repeat<0x0069>) == 32, "sizeof(NetPacket_Repeat<0x0069>) == 32");
+
+template<>
+struct NetPacket_Fixed<0x006a>
+{
+ Little16 magic_packet_id;
+ Byte error_code;
+ NetString<sizeof(timestamp_seconds_buffer)> error_message;
+};
+static_assert(offsetof(NetPacket_Fixed<0x006a>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x006a>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Fixed<0x006a>, error_code) == 2, "offsetof(NetPacket_Fixed<0x006a>, error_code) == 2");
+static_assert(offsetof(NetPacket_Fixed<0x006a>, error_message) == 3, "offsetof(NetPacket_Fixed<0x006a>, error_message) == 3");
+static_assert(sizeof(NetPacket_Fixed<0x006a>) == 23, "sizeof(NetPacket_Fixed<0x006a>) == 23");
+
+template<>
+struct NetPacket_Fixed<0x0081>
+{
+ Little16 magic_packet_id;
+ Byte error_code;
+};
+static_assert(offsetof(NetPacket_Fixed<0x0081>, magic_packet_id) == 0, "offsetof(NetPacket_Fixed<0x0081>, magic_packet_id) == 0");
+static_assert(offsetof(NetPacket_Fixed<0x0081>, error_code) == 2, "offsetof(NetPacket_Fixed<0x0081>, error_code) == 2");
+static_assert(sizeof(NetPacket_Fixed<0x0081>) == 3, "sizeof(NetPacket_Fixed<0x0081>) == 3");
+
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Head<0x0063> *network, Packet_Head<0x0063> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->magic_packet_length, native.magic_packet_length);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Head<0x0063> *native, NetPacket_Head<0x0063> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->magic_packet_length, network.magic_packet_length);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Repeat<0x0063> *network, Packet_Repeat<0x0063> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->c, native.c);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Repeat<0x0063> *native, NetPacket_Repeat<0x0063> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->c, network.c);
+ return rv;
+}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Fixed<0x0064> *network, Packet_Fixed<0x0064> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->unknown, native.unknown);
+ rv &= native_to_network(&network->account_name, native.account_name);
+ rv &= native_to_network(&network->account_pass, native.account_pass);
+ rv &= native_to_network(&network->version_2_flags, native.version_2_flags);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Fixed<0x0064> *native, NetPacket_Fixed<0x0064> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->unknown, network.unknown);
+ rv &= network_to_native(&native->account_name, network.account_name);
+ rv &= network_to_native(&native->account_pass, network.account_pass);
+ rv &= network_to_native(&native->version_2_flags, network.version_2_flags);
+ return rv;
+}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Head<0x0069> *network, Packet_Head<0x0069> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->magic_packet_length, native.magic_packet_length);
+ rv &= native_to_network(&network->login_id1, native.login_id1);
+ rv &= native_to_network(&network->account_id, native.account_id);
+ rv &= native_to_network(&network->login_id2, native.login_id2);
+ rv &= native_to_network(&network->unused, native.unused);
+ rv &= native_to_network(&network->last_login_string, native.last_login_string);
+ rv &= native_to_network(&network->unused2, native.unused2);
+ rv &= native_to_network(&network->sex, native.sex);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Head<0x0069> *native, NetPacket_Head<0x0069> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->magic_packet_length, network.magic_packet_length);
+ rv &= network_to_native(&native->login_id1, network.login_id1);
+ rv &= network_to_native(&native->account_id, network.account_id);
+ rv &= network_to_native(&native->login_id2, network.login_id2);
+ rv &= network_to_native(&native->unused, network.unused);
+ rv &= network_to_native(&native->last_login_string, network.last_login_string);
+ rv &= network_to_native(&native->unused2, network.unused2);
+ rv &= network_to_native(&native->sex, network.sex);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Repeat<0x0069> *network, Packet_Repeat<0x0069> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->ip, native.ip);
+ rv &= native_to_network(&network->port, native.port);
+ rv &= native_to_network(&network->server_name, native.server_name);
+ rv &= native_to_network(&network->users, native.users);
+ rv &= native_to_network(&network->maintenance, native.maintenance);
+ rv &= native_to_network(&network->is_new, native.is_new);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Repeat<0x0069> *native, NetPacket_Repeat<0x0069> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->ip, network.ip);
+ rv &= network_to_native(&native->port, network.port);
+ rv &= network_to_native(&native->server_name, network.server_name);
+ rv &= network_to_native(&native->users, network.users);
+ rv &= network_to_native(&native->maintenance, network.maintenance);
+ rv &= network_to_native(&native->is_new, network.is_new);
+ return rv;
+}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Fixed<0x006a> *network, Packet_Fixed<0x006a> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->error_code, native.error_code);
+ rv &= native_to_network(&network->error_message, native.error_message);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Fixed<0x006a> *native, NetPacket_Fixed<0x006a> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->error_code, network.error_code);
+ rv &= network_to_native(&native->error_message, network.error_message);
+ return rv;
+}
+
+inline __attribute__((warn_unused_result))
+bool native_to_network(NetPacket_Fixed<0x0081> *network, Packet_Fixed<0x0081> native)
+{
+ bool rv = true;
+ rv &= native_to_network(&network->magic_packet_id, native.magic_packet_id);
+ rv &= native_to_network(&network->error_code, native.error_code);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(Packet_Fixed<0x0081> *native, NetPacket_Fixed<0x0081> network)
+{
+ bool rv = true;
+ rv &= network_to_native(&native->magic_packet_id, network.magic_packet_id);
+ rv &= network_to_native(&native->error_code, network.error_code);
+ return rv;
+}
#endif // TMWA_PROTO2_LOGIN_USER_HPP
diff --git a/src/proto2/map-user.hpp b/src/proto2/map-user.hpp
index 4da94cf..d68f436 100644
--- a/src/proto2/map-user.hpp
+++ b/src/proto2/map-user.hpp
@@ -41,6 +41,7 @@ struct Packet_Fixed<0x0212>
uint16_t y = {};
};
+
template<>
struct NetPacket_Fixed<0x0212>
{
@@ -59,6 +60,7 @@ static_assert(offsetof(NetPacket_Fixed<0x0212>, x) == 12, "offsetof(NetPacket_Fi
static_assert(offsetof(NetPacket_Fixed<0x0212>, y) == 14, "offsetof(NetPacket_Fixed<0x0212>, y) == 14");
static_assert(sizeof(NetPacket_Fixed<0x0212>) == 16, "sizeof(NetPacket_Fixed<0x0212>) == 16");
+
inline __attribute__((warn_unused_result))
bool native_to_network(NetPacket_Fixed<0x0212> *network, Packet_Fixed<0x0212> native)
{
@@ -84,4 +86,5 @@ bool network_to_native(Packet_Fixed<0x0212> *native, NetPacket_Fixed<0x0212> net
return rv;
}
+
#endif // TMWA_PROTO2_MAP_USER_HPP
diff --git a/src/proto2/types.hpp b/src/proto2/types.hpp
index b047865..92413e3 100644
--- a/src/proto2/types.hpp
+++ b/src/proto2/types.hpp
@@ -32,6 +32,7 @@
# include "../mmo/strs.hpp"
# include "../mmo/utils.hpp"
# include "../mmo/version.hpp"
+# include "../login/types.hpp"
template<class T>
bool native_to_network(T *network, T native)
{
@@ -297,4 +298,22 @@ bool network_to_native(Version *native, NetVersion network)
return rv;
}
+inline __attribute__((warn_unused_result))
+bool native_to_network(Byte *network, VERSION_2 native)
+{
+ bool rv = true;
+ uint8_t tmp = static_cast<uint8_t>(native);
+ rv &= native_to_network(network, tmp);
+ return rv;
+}
+inline __attribute__((warn_unused_result))
+bool network_to_native(VERSION_2 *native, Byte network)
+{
+ bool rv = true;
+ uint8_t tmp;
+ rv &= network_to_native(&tmp, network);
+ *native = static_cast<VERSION_2>(tmp);
+ // TODO this is what really should be doing a checked cast
+ return rv;
+}
#endif // TMWA_PROTO2_TYPES_HPP