diff options
author | Haru <haru@dotalux.com> | 2018-11-15 04:01:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-15 04:01:03 +0100 |
commit | 47d6523817646f2d4f081b93ec44a971a01fce25 (patch) | |
tree | 39f5f62367fed1efe1dd734a2f3a588f2e44a9f4 /src/map/packets_struct.h | |
parent | 3b93418544f84f142ea2a6e2bcdf1621267ff989 (diff) | |
parent | 1f237031a63567d8c96bca4a28ab9557ebe1459e (diff) | |
download | hercules-47d6523817646f2d4f081b93ec44a971a01fce25.tar.gz hercules-47d6523817646f2d4f081b93ec44a971a01fce25.tar.bz2 hercules-47d6523817646f2d4f081b93ec44a971a01fce25.tar.xz hercules-47d6523817646f2d4f081b93ec44a971a01fce25.zip |
Merge pull request #2321 from 4144/packetlen
Add complete packet len table
Diffstat (limited to 'src/map/packets_struct.h')
-rw-r--r-- | src/map/packets_struct.h | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h index 374769728..cd3a3b989 100644 --- a/src/map/packets_struct.h +++ b/src/map/packets_struct.h @@ -25,12 +25,15 @@ #include "common/cbasetypes.h" #include "common/mmo.h" +#include "common/packetsstatic_len.h" // Packet DB -#define MIN_PACKET_DB 0x0064 -#define MAX_PACKET_DB 0x0F00 #define MAX_PACKET_POS 20 +#define DEFINE_PACKET_HEADER(name, id) \ + STATIC_ASSERT(sizeof(struct PACKET_##name) == PACKET_LEN_##id, "Wrong size PACKET_"#name); \ + enum { HEADER_##name = id }; + /** * **/ @@ -451,11 +454,6 @@ enum packet_headers { #else guildLeave = 0x15a, #endif -#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024 - itemPreview = 0xb13, -#else - itemPreview = 0xab9, -#endif #if PACKETVER_RE_NUM >= 20181031 autoSpellList = 0xafb, #else @@ -2884,17 +2882,6 @@ struct PACKET_ZC_CAMERA_INFO { float latitude; } __attribute__((packed)); -struct PACKET_ZC_ITEM_PREVIEW { - int16 packetType; - int16 index; -#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024 - int8 isDamaged; -#endif - int16 refiningLevel; - struct EQUIPSLOTINFO slot; - struct ItemOptions option_data[MAX_ITEM_OPTIONS]; -} __attribute__((packed)); - #if PACKETVER_RE_NUM >= 20181031 #define PACKET_ZC_AUTOSPELLLIST PACKET_ZC_AUTOSPELLLIST2 #else @@ -2912,6 +2899,30 @@ struct PACKET_ZC_AUTOSPELLLIST2 { int skills[]; } __attribute__((packed)); +#if PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) +#if PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024 +struct PACKET_ZC_ITEM_PREVIEW { + int16 packetType; + int16 index; + int8 isDamaged; + int16 refiningLevel; + struct EQUIPSLOTINFO slot; + struct ItemOptions option_data[MAX_ITEM_OPTIONS]; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_ITEM_PREVIEW, 0x0b13); +#else // PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024 + +struct PACKET_ZC_ITEM_PREVIEW { + int16 packetType; + int16 index; + int16 refiningLevel; + struct EQUIPSLOTINFO slot; + struct ItemOptions option_data[MAX_ITEM_OPTIONS]; +} __attribute__((packed)); +DEFINE_PACKET_HEADER(ZC_ITEM_PREVIEW, 0x0ab9); +#endif // PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024 +#endif // PACKETVER_MAIN_NUM >= 20170726 || PACKETVER_RE_NUM >= 20170621 || defined(PACKETVER_ZERO) + #if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute #pragma pack(pop) #endif // not NetBSD < 6 / Solaris |