diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 16 | 
1 files changed, 16 insertions, 0 deletions
| diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index d7382eaac6..62884ecb3c 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -70,6 +70,7 @@  #include "llmeshrepository.h"  #include "llmutelist.h"  #include "llmoveview.h" +#include "llnotificationmanager.h"  #include "llnotificationsutil.h"  #include "llphysicsshapebuilderutil.h"  #include "llquantize.h" @@ -811,6 +812,7 @@ void LLVOAvatar::debugAvatarRezTime(std::string notification_name, std::string c  //------------------------------------------------------------------------  LLVOAvatar::~LLVOAvatar()  { +    LLNotificationsUI::LLNotificationManager::instance().onChat(LLChat{llformat("%s left.", getFullname().c_str())}, LLSD{});      if (!mFullyLoaded)      {          debugAvatarRezTime("AvatarRezLeftCloudNotification","left after ruth seconds as cloud"); @@ -2462,6 +2464,20 @@ U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,      {          mDebugExistenceTimer.reset();          debugAvatarRezTime("AvatarRezArrivedNotification","avatar arrived"); +        uuid_vec_t uuids; +        std::vector<LLVector3d> positions; +        LLWorld::getInstance()->getAvatars(&uuids, &positions, gAgent.getPositionGlobal(), gSavedSettings.getF32("MPVNearMeRange")); +        auto pos_it = positions.begin(); +        auto id_it = uuids.begin(); +        for (;pos_it != positions.end() && id_it != uuids.end(); ++pos_it, ++id_it) +        { +            if (*id_it == getID() && !isSelf()) +            { +                LLNotificationsUI::LLNotificationManager::instance() +                    .onChat(LLChat{llformat("%s arrived (%.1f m).", getFullname().c_str(), dist_vec(*pos_it, gAgent.getPositionGlobal()))}, LLSD{}); +                break; +            } +        }      }      if(retval & LLViewerObject::INVALID_UPDATE) | 
