aboutsummaryrefslogtreecommitdiff
path: root/src/game/Chat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Chat.cpp')
-rw-r--r--src/game/Chat.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index 8f8e4a5547b..31df4ee6718 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -1269,6 +1269,19 @@ Unit* ChatHandler::getSelectedUnit()
return ObjectAccessor::GetUnit(*m_session->GetPlayer(),guid);
}
+WorldObject *ChatHandler::getSelectedObject()
+{
+ if(!m_session)
+ return NULL;
+
+ uint64 guid = m_session->GetPlayer()->GetSelection();
+
+ if (guid == 0)
+ return GetNearbyGameObject();
+
+ return ObjectAccessor::GetUnit(*m_session->GetPlayer(),guid);
+}
+
Creature* ChatHandler::getSelectedCreature()
{
if(!m_session)
@@ -1421,6 +1434,19 @@ char const *fmtstring( char const *format, ... )
return buf;
}
+GameObject* ChatHandler::GetNearbyGameObject()
+{
+ if(!m_session)
+ return NULL;
+
+ Player* pl = m_session->GetPlayer();
+ GameObject* obj = NULL;
+ Trinity::NearestGameObjectCheck check(*pl);
+ Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectCheck> searcher(pl, obj, check);
+ pl->VisitNearbyGridObject(999, searcher);
+ return obj;
+}
+
GameObject* ChatHandler::GetObjectGlobalyWithGuidOrNearWithDbGuid(uint32 lowguid,uint32 entry)
{
if(!m_session)