Added support for the UPDATETYPE_VALUES type from update objects.
This commit is contained in:
parent
710de3d5e1
commit
3d461e5981
@ -58,16 +58,27 @@ void WorldSession::_HandleUpdateObjectOpcode(WorldPacket& recvPacket)
|
|||||||
|
|
||||||
case UPDATETYPE_VALUES:
|
case UPDATETYPE_VALUES:
|
||||||
{
|
{
|
||||||
uguid = recvPacket.GetPackedGuid(); // not 100% sure if this is correct
|
uint8 blockcount, masksize, valuesCount = 1500;
|
||||||
uint8 maskblocks;
|
uint32 value;
|
||||||
recvPacket >> maskblocks;
|
uguid = recvPacket.GetPackedGuid();
|
||||||
logdebug("UPDATETYPE_VALUES: guid="I64FMT" maskblocks=%u",uguid,maskblocks);
|
recvPacket >> blockcount;
|
||||||
// need some help with the lines below, got no idea what to do now.
|
masksize = blockcount * 4;
|
||||||
UpdateMask umask;
|
logdebug("UPDATETYPE_VALUES: guid="I64FMT" blockcount=%u masksize=%d",uguid,blockcount, masksize);
|
||||||
umask.SetCount(maskblocks*8); // ??
|
|
||||||
std::vector<uint8> udata;
|
|
||||||
//udata.resize(?)
|
|
||||||
|
|
||||||
|
UpdateMask umask;
|
||||||
|
umask.SetCount(masksize);
|
||||||
|
uint32 *updateMask = new uint32[100];
|
||||||
|
recvPacket.read((uint8*)updateMask, masksize);
|
||||||
|
umask.SetMask(updateMask);
|
||||||
|
|
||||||
|
for (int i = 0; i < valuesCount; i++) // How do i get valuesCount?
|
||||||
|
{
|
||||||
|
if (umask.GetBit(i))
|
||||||
|
{
|
||||||
|
recvPacket >> value;
|
||||||
|
logdebug("Value (%d): %d", i, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -53,6 +53,7 @@ class UpdateMask
|
|||||||
inline uint32 GetLength() { return mBlocks << 2; }
|
inline uint32 GetLength() { return mBlocks << 2; }
|
||||||
inline uint32 GetCount() { return mCount; }
|
inline uint32 GetCount() { return mCount; }
|
||||||
inline uint8* GetMask() { return (uint8*)mUpdateMask; }
|
inline uint8* GetMask() { return (uint8*)mUpdateMask; }
|
||||||
|
inline void SetMask(uint32 *updateMask) { mUpdateMask = updateMask; }
|
||||||
|
|
||||||
inline void SetCount (uint32 valuesCount)
|
inline void SetCount (uint32 valuesCount)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user