diff options
Diffstat (limited to 'src')
16 files changed, 35 insertions, 40 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index 6d01620661a..1abd77ffb7c 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -1040,7 +1040,7 @@ void AreaTrigger::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec if (requestedAreaTriggerMask.IsAnySet()) valuesMask.Set(TYPEID_AREATRIGGER); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -1053,7 +1053,7 @@ void AreaTrigger::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void AreaTrigger::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Conversation/Conversation.cpp b/src/server/game/Entities/Conversation/Conversation.cpp index a7259107561..5d37078b576 100644 --- a/src/server/game/Entities/Conversation/Conversation.cpp +++ b/src/server/game/Entities/Conversation/Conversation.cpp @@ -315,7 +315,7 @@ void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obje if (requestedConversationMask.IsAnySet()) valuesMask.Set(TYPEID_CONVERSATION); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -328,7 +328,7 @@ void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obje buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void Conversation::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp index 37d36295a54..518cad8b3a1 100644 --- a/src/server/game/Entities/Corpse/Corpse.cpp +++ b/src/server/game/Entities/Corpse/Corpse.cpp @@ -275,7 +275,7 @@ void Corpse::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData if (requestedCorpseMask.IsAnySet()) valuesMask.Set(TYPEID_CORPSE); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -288,7 +288,7 @@ void Corpse::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void Corpse::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.cpp b/src/server/game/Entities/DynamicObject/DynamicObject.cpp index 9aeada30f46..c7edc1cee09 100644 --- a/src/server/game/Entities/DynamicObject/DynamicObject.cpp +++ b/src/server/game/Entities/DynamicObject/DynamicObject.cpp @@ -289,7 +289,7 @@ void DynamicObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obj if (requestedDynamicObjectMask.IsAnySet()) valuesMask.Set(TYPEID_DYNAMICOBJECT); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -302,7 +302,7 @@ void DynamicObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obj buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void DynamicObject::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 7bbf6cccf76..f31e372fe0b 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -3299,7 +3299,7 @@ void GameObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Object if (requestedGameObjectMask.IsAnySet()) valuesMask.Set(TYPEID_GAMEOBJECT); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -3312,7 +3312,7 @@ void GameObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Object buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void GameObject::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp index 7ec63620a4f..552e5075603 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp @@ -201,7 +201,7 @@ void AzeriteEmpoweredItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, if (requestedAzeriteEmpoweredItemMask.IsAnySet()) valuesMask.Set(TYPEID_AZERITE_EMPOWERED_ITEM); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -217,7 +217,7 @@ void AzeriteEmpoweredItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void AzeriteEmpoweredItem::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp index ae86e0ab97e..95f14602f25 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp @@ -462,7 +462,7 @@ void AzeriteItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec if (azeriteItemMask.IsAnySet()) valuesMask.Set(TYPEID_AZERITE_ITEM); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -478,7 +478,7 @@ void AzeriteItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void AzeriteItem::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp index 53bd7b5d39f..b9c7855cc38 100644 --- a/src/server/game/Entities/Item/Container/Bag.cpp +++ b/src/server/game/Entities/Item/Container/Bag.cpp @@ -229,7 +229,7 @@ void Bag::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::M if (requestedContainerMask.IsAnySet()) valuesMask.Set(TYPEID_CONTAINER); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -245,7 +245,7 @@ void Bag::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::M buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void Bag::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 464706d5538..96399f9c00f 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -1748,7 +1748,7 @@ void Item::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData:: if (itemMask.IsAnySet()) valuesMask.Set(TYPEID_ITEM); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -1761,7 +1761,7 @@ void Item::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData:: buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void Item::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index bbaf33cd2b0..451ed8cf0dc 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -178,14 +178,14 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c flags.CombatVictim = true; } - ByteBuffer buf(0x400, ByteBuffer::Reserve{}); + ByteBuffer& buf = data->GetBuffer(); buf << uint8(updateType); buf << GetGUID(); buf << uint8(objectType); BuildMovementUpdate(&buf, flags, target); BuildValuesCreate(&buf, target); - data->AddUpdateBlock(buf); + data->AddUpdateBlock(); } void Object::SendUpdateToPlayer(Player* player) @@ -204,20 +204,20 @@ void Object::SendUpdateToPlayer(Player* player) void Object::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player const* target) const { - ByteBuffer buf = PrepareValuesUpdateBuffer(); + ByteBuffer& buf = PrepareValuesUpdateBuffer(data); BuildValuesUpdate(&buf, target); - data->AddUpdateBlock(buf); + data->AddUpdateBlock(); } void Object::BuildValuesUpdateBlockForPlayerWithFlag(UpdateData* data, UF::UpdateFieldFlag flags, Player const* target) const { - ByteBuffer buf = PrepareValuesUpdateBuffer(); + ByteBuffer& buf = PrepareValuesUpdateBuffer(data); BuildValuesUpdateWithFlag(&buf, flags, target); - data->AddUpdateBlock(buf); + data->AddUpdateBlock(); } void Object::BuildDestroyUpdateBlock(UpdateData* data) const @@ -230,9 +230,9 @@ void Object::BuildOutOfRangeUpdateBlock(UpdateData* data) const data->AddOutOfRangeGUID(GetGUID()); } -ByteBuffer Object::PrepareValuesUpdateBuffer() const +ByteBuffer& Object::PrepareValuesUpdateBuffer(UpdateData* data) const { - ByteBuffer buffer(500, ByteBuffer::Reserve{}); + ByteBuffer& buffer = data->GetBuffer(); buffer << uint8(UPDATETYPE_VALUES); buffer << GetGUID(); return buffer; diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 0d19519de23..550b8e5588b 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -178,7 +178,7 @@ class TC_GAME_API Object void BuildValuesUpdateBlockForPlayerWithFlag(UpdateData* data, UF::UpdateFieldFlag flags, Player const* target) const; void BuildDestroyUpdateBlock(UpdateData* data) const; void BuildOutOfRangeUpdateBlock(UpdateData* data) const; - ByteBuffer PrepareValuesUpdateBuffer() const; + ByteBuffer& PrepareValuesUpdateBuffer(UpdateData* data) const; virtual void DestroyForPlayer(Player* target) const; void SendOutOfRangeForPlayer(Player* target) const; diff --git a/src/server/game/Entities/Object/Updates/UpdateData.cpp b/src/server/game/Entities/Object/Updates/UpdateData.cpp index e437c28e064..44104a2dcb7 100644 --- a/src/server/game/Entities/Object/Updates/UpdateData.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateData.cpp @@ -37,12 +37,6 @@ void UpdateData::AddOutOfRangeGUID(ObjectGuid guid) m_outOfRangeGUIDs.insert(guid); } -void UpdateData::AddUpdateBlock(ByteBuffer const& block) -{ - m_data.append(block); - ++m_blockCount; -} - bool UpdateData::BuildPacket(WorldPacket* packet) { ASSERT(packet->empty()); // shouldn't happen diff --git a/src/server/game/Entities/Object/Updates/UpdateData.h b/src/server/game/Entities/Object/Updates/UpdateData.h index 08cfa498f18..910282435dd 100644 --- a/src/server/game/Entities/Object/Updates/UpdateData.h +++ b/src/server/game/Entities/Object/Updates/UpdateData.h @@ -46,7 +46,8 @@ class UpdateData void AddDestroyObject(ObjectGuid guid); void AddOutOfRangeGUID(GuidSet& guids); void AddOutOfRangeGUID(ObjectGuid guid); - void AddUpdateBlock(ByteBuffer const& block); + void AddUpdateBlock() { ++m_blockCount; } + ByteBuffer& GetBuffer() { return m_data; } bool BuildPacket(WorldPacket* packet); bool HasData() const { return m_blockCount > 0 || !m_outOfRangeGUIDs.empty() || !m_destroyGUIDs.empty(); } void Clear(); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 037ae501aae..1e70772d262 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3640,7 +3640,7 @@ void Player::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData if (target == this && requestedActivePlayerMask.IsAnySet()) valuesMask.Set(TYPEID_ACTIVE_PLAYER); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -3659,7 +3659,7 @@ void Player::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void Player::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/SceneObject/SceneObject.cpp b/src/server/game/Entities/SceneObject/SceneObject.cpp index 73f9bf22b88..fb2942e44dc 100644 --- a/src/server/game/Entities/SceneObject/SceneObject.cpp +++ b/src/server/game/Entities/SceneObject/SceneObject.cpp @@ -173,7 +173,7 @@ void SceneObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec if (requestedSceneObjectMask.IsAnySet()) valuesMask.Set(TYPEID_SCENEOBJECT); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -186,7 +186,7 @@ void SceneObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void SceneObject::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 13f75a7a6ed..e029077780b 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13241,7 +13241,7 @@ void Unit::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData:: if (unitMask.IsAnySet()) valuesMask.Set(TYPEID_UNIT); - ByteBuffer buffer = PrepareValuesUpdateBuffer(); + ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); buffer << uint32(valuesMask.GetBlock(0)); @@ -13254,7 +13254,7 @@ void Unit::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData:: buffer.put<uint32>(sizePos, buffer.wpos() - sizePos - 4); - data->AddUpdateBlock(buffer); + data->AddUpdateBlock(); } void Unit::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) const |