From edc05f2c19b320ea28536ea963c16266a152d1b4 Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 19 Aug 2009 16:54:52 -0500 Subject: [8382] Implement ByteArray functions for skip read of fields not needed for server in received packets. Author: VladimirMangos * Use this fucntions in some case. * Change some packets to form: read fields first check later for better control recieved packets structure. * Fix CMSG_STAND_STATE_CHANGE packet structure to more correct. --HG-- branch : trunk --- src/shared/ByteBuffer.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/shared/ByteBuffer.h') diff --git a/src/shared/ByteBuffer.h b/src/shared/ByteBuffer.h index 5e02afd86cf..d4842ec7515 100644 --- a/src/shared/ByteBuffer.h +++ b/src/shared/ByteBuffer.h @@ -261,6 +261,32 @@ class ByteBuffer return _wpos; } + template + void read_skip() { read_skip(sizeof(T)); } + + template + void read_skip2() { read_skip(sizeof(T1)+sizeof(T2)); } + + template<> + void read_skip() + { + uint8 size = read(); + read_skip(size); + } + + template<> + void read_skip() { read_skip(); } + + template<> + void read_skip() { read_skip(); } + + void read_skip(size_t skip) + { + if(_rpos + skip > size()) + throw ByteBufferException(false, _rpos, skip, size()); + _rpos += skip; + } + template T read() { T r = read(_rpos); -- cgit v1.2.3