aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorTraesh <Traesh@users.noreply.github.com>2017-05-14 11:40:55 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-05-14 11:40:55 +0200
commitc73ce93f4cf84667d23c2ec7e425f40a845eaf4f (patch)
tree255a3af04144a58e3156491bffd1aa743fb06bfa /src/server/game/Entities/Object
parent3e18fcb8fd4ac8e9700f10eb3b6a1292c0f8beb8 (diff)
Core/Entities : Basic Conversation Implementation (#18010)
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp4
-rw-r--r--src/server/game/Entities/Object/Object.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index b1dc8e894bf..333a6a3c5d0 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -182,6 +182,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
case HighGuid::Corpse:
case HighGuid::DynamicObject:
case HighGuid::AreaTrigger:
+ case HighGuid::Conversation:
updateType = UPDATETYPE_CREATE_OBJECT2;
break;
case HighGuid::Creature:
@@ -1012,6 +1013,9 @@ uint32 Object::GetDynamicUpdateFieldData(Player const* target, uint32*& flags) c
break;
case TYPEID_CONVERSATION:
flags = ConversationDynamicUpdateFieldFlags;
+
+ if (ToConversation()->GetCreatorGuid() == target->GetGUID())
+ visibleFlag |= UF_FLAG_0x100;
break;
default:
flags = nullptr;
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index f3b4041db3c..5232e9912b2 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -315,6 +315,9 @@ class TC_GAME_API Object
AreaTrigger* ToAreaTrigger() { if (GetTypeId() == TYPEID_AREATRIGGER) return reinterpret_cast<AreaTrigger*>(this); else return NULL; }
AreaTrigger const* ToAreaTrigger() const { if (GetTypeId() == TYPEID_AREATRIGGER) return reinterpret_cast<AreaTrigger const*>(this); else return NULL; }
+ Conversation* ToConversation() { if (GetTypeId() == TYPEID_CONVERSATION) return reinterpret_cast<Conversation*>(this); else return NULL; }
+ Conversation const* ToConversation() const { if (GetTypeId() == TYPEID_CONVERSATION) return reinterpret_cast<Conversation const*>(this); else return NULL; }
+
protected:
Object();