* Move readPackGUID from WorldPacket to ByteBuffer

This commit is contained in:
shlainn 2011-09-27 00:18:12 +02:00
parent 8ca9e8949f
commit fe8b5921ed
3 changed files with 20 additions and 16 deletions

View File

@ -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<<i) )
{
*this >> ((uint8*)&guid)[i];
}
}
return guid;
}

View File

@ -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

View File

@ -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)