diff options
Diffstat (limited to 'src/proto2')
-rw-r--r-- | src/proto2/any-user.hpp | 9 | ||||
-rw-r--r-- | src/proto2/fwd.hpp | 122 | ||||
-rw-r--r-- | src/proto2/include_types_test.cpp | 23 | ||||
-rw-r--r-- | src/proto2/login-admin.hpp | 208 | ||||
-rw-r--r-- | src/proto2/login-char.hpp | 180 | ||||
-rw-r--r-- | src/proto2/login-user.hpp | 323 | ||||
-rw-r--r-- | src/proto2/map-user.hpp | 3 | ||||
-rw-r--r-- | src/proto2/types.hpp | 19 |
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 |