aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Conversation
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-10-30 14:41:27 +0100
committerShauren <shauren.trinity@gmail.com>2024-10-30 14:41:27 +0100
commit68db469ee1f992bcdc81de64d6af1007d303be05 (patch)
tree776b61e7c2eaf0a07e1d8a711c09c1131603a13c /src/server/game/Entities/Conversation
parent91c12c64037ca906c30f9718fadab619359f1616 (diff)
Core/PacketIO: Updated SMSG_UPDATE_OBJECT for 11.0.5
Diffstat (limited to 'src/server/game/Entities/Conversation')
-rw-r--r--src/server/game/Entities/Conversation/Conversation.cpp4
-rw-r--r--src/server/game/Entities/Conversation/Conversation.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Entities/Conversation/Conversation.cpp b/src/server/game/Entities/Conversation/Conversation.cpp
index 9d2b615ef8a..fa1d5204165 100644
--- a/src/server/game/Entities/Conversation/Conversation.cpp
+++ b/src/server/game/Entities/Conversation/Conversation.cpp
@@ -39,6 +39,8 @@ Conversation::Conversation() : WorldObject(false), _duration(0), _textureKitId(0
m_updateFlag.Stationary = true;
m_updateFlag.Conversation = true;
+ m_entityFragments.Add(WowCS::EntityFragment::Tag_Conversation, false);
+
_lastLineEndTimes.fill(Milliseconds::zero());
}
@@ -367,6 +369,7 @@ void Conversation::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags
void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
UF::ConversationData::Mask const& requestedConversationMask, Player const* target) const
{
+ UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask;
if (requestedObjectMask.IsAnySet())
valuesMask.Set(TYPEID_OBJECT);
@@ -377,6 +380,7 @@ void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obje
ByteBuffer& buffer = PrepareValuesUpdateBuffer(data);
std::size_t sizePos = buffer.wpos();
buffer << uint32(0);
+ BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags);
buffer << uint32(valuesMask.GetBlock(0));
if (valuesMask[TYPEID_OBJECT])
diff --git a/src/server/game/Entities/Conversation/Conversation.h b/src/server/game/Entities/Conversation/Conversation.h
index 3719038e138..f56c8e1d3c6 100644
--- a/src/server/game/Entities/Conversation/Conversation.h
+++ b/src/server/game/Entities/Conversation/Conversation.h
@@ -87,7 +87,7 @@ class TC_GAME_API Conversation final : public WorldObject, public GridObject<Con
uint32 GetScriptId() const;
- UF::UpdateField<UF::ConversationData, 0, TYPEID_CONVERSATION> m_conversationData;
+ UF::UpdateField<UF::ConversationData, int32(WowCS::EntityFragment::CGObject), TYPEID_CONVERSATION> m_conversationData;
private:
Position _stationaryPosition;