From fe8b5921ed8b812473c2b0884d8b5d94eacefd42 Mon Sep 17 00:00:00 2001 From: shlainn Date: Tue, 27 Sep 2011 00:18:12 +0200 Subject: [PATCH] * Move readPackGUID from WorldPacket to ByteBuffer --- src/Client/World/WorldPacket.cpp | 14 -------------- src/Client/World/WorldPacket.h | 3 +-- src/shared/ByteBuffer.h | 19 +++++++++++++++++++ 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/Client/World/WorldPacket.cpp b/src/Client/World/WorldPacket.cpp index 8f26789..bf84009 100644 --- a/src/Client/World/WorldPacket.cpp +++ b/src/Client/World/WorldPacket.cpp @@ -2,18 +2,4 @@ #include "WorldPacket.h" -uint64 WorldPacket::GetPackedGuid(void) -{ - uint8 mask; - *this >> mask; - uint64 guid=0; - for(uint8 i=0;i<8;i++) - { - if(mask & (1<> ((uint8*)&guid)[i]; - } - } - return guid; -} diff --git a/src/Client/World/WorldPacket.h b/src/Client/World/WorldPacket.h index c0bd16c..2e99046 100644 --- a/src/Client/World/WorldPacket.h +++ b/src/Client/World/WorldPacket.h @@ -13,7 +13,6 @@ public: WorldPacket(uint16 opcode) { _opcode=opcode; reserve(10); } inline void SetOpcode(uint16 opcode) { _opcode=opcode; } inline uint16 GetOpcode(void) { return _opcode; } - uint64 GetPackedGuid(void); private: uint16 _opcode; @@ -21,4 +20,4 @@ private: }; -#endif +#endif diff --git a/src/shared/ByteBuffer.h b/src/shared/ByteBuffer.h index 8a1a3e3..2017b30 100644 --- a/src/shared/ByteBuffer.h +++ b/src/shared/ByteBuffer.h @@ -272,6 +272,25 @@ class ByteBuffer if(buffer.size()) append(buffer.contents(),buffer.size()); } + uint64 readPackGUID() + { + uint64 guid = 0; + uint8 guidmark = 0; + (*this) >> guidmark; + + for(int i = 0; i < 8; ++i) + { + if(guidmark & (uint8(1) << i)) + { + uint8 bit; + (*this) >> bit; + guid |= (uint64(bit) << (i * 8)); + } + } + + return guid; + } + void appendPackGUID(uint64 guid) { if (_storage.size() < _wpos + sizeof(guid) + 1)