diff options
Diffstat (limited to 'src/game/Chat.cpp')
-rw-r--r-- | src/game/Chat.cpp | 26 |
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) |