diff options
author | Erik Kundiman <erik@megapahit.org> | 2025-07-31 23:39:09 +0800 |
---|---|---|
committer | Erik Kundiman <erik@megapahit.org> | 2025-07-31 23:39:09 +0800 |
commit | 3c464b4d8bb9bed58edc0418a8c91e8a609b5160 (patch) | |
tree | d67b823eefa09b3bb4c1be8182f79367e5f9fb72 /indra/newview/llavatarlist.cpp | |
parent | b81c1c4e871be0ff5e5dbbfa235571350cd477fe (diff) |
Optimise arrival & departure notifications
by not having extra calls to getAvatars.
The avatars' positions member had to be moved to an object that is
accessible from VOAvatar too, and that would be the global Agent.
It makes sense too, that it's the object that keeps the positions
of other agents. It even has a section for positions too.
Diffstat (limited to 'indra/newview/llavatarlist.cpp')
-rw-r--r-- | indra/newview/llavatarlist.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 834288a93e..e29be0c757 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -186,12 +186,6 @@ std::string LLAvatarList::getAvatarName(LLAvatarName av_name) return mShowCompleteName? av_name.getCompleteName(false, mForceCompleteName) : av_name.getDisplayName(); } -void LLAvatarList::setAvatarsPositions(const std::map<LLUUID, LLVector3d>& avatarsPositions) -{ - mAvatarsPositions.clear(); - mAvatarsPositions = avatarsPositions; -} - // virtual void LLAvatarList::draw() { @@ -224,7 +218,10 @@ void LLAvatarList::draw() item->setAvatarArrivalTime(secs_since); } if (mAvatarDistance) - item->setAvatarDistance(dist_vec(mAvatarsPositions[item->getAvatarId()], gAgent.getPositionGlobal())); + { + auto avatarsPositions = gAgent.getAvatarsPositions(); + item->setAvatarDistance(dist_vec(avatarsPositions[item->getAvatarId()], gAgent.getPositionGlobal())); + } } } if (mShowLastInteractionTime) |