diff --git a/indra/newview/app_settings/windlight/skies/%252ACanimod.xml b/indra/newview/app_settings/windlight/skies/%252ACanimod.xml
deleted file mode 100644
index d4e69e622..000000000
--- a/indra/newview/app_settings/windlight/skies/%252ACanimod.xml
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
diff --git a/indra/newview/app_settings/windlight/skies/%252AStarley%252A%20Settings%202.xml b/indra/newview/app_settings/windlight/skies/%252AStarley%252A%20Settings%202.xml
deleted file mode 100644
index 6d1c09d30..000000000
--- a/indra/newview/app_settings/windlight/skies/%252AStarley%252A%20Settings%202.xml
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
diff --git a/indra/newview/app_settings/windlight/skies/AnaLu%20%252Astudio%252A%205.xml b/indra/newview/app_settings/windlight/skies/AnaLu%20%252Astudio%252A%205.xml
deleted file mode 100644
index b7c6d047f..000000000
--- a/indra/newview/app_settings/windlight/skies/AnaLu%20%252Astudio%252A%205.xml
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index dfed2502c..dff462286 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1464,7 +1464,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
}
#endif
// If we got here, everything matches.
- matched++;
+ //matched++; // TODO: Find out why this was here, this became unreachable at some point.
}
LL_DEBUGS("Avatar") << "matched " << matched << " mismatched " << mismatched << LL_ENDL;
for (S32 j=0; j radius("RadarRangeRadius", 0);
+ return radius;
+}
+
void LLFloaterAvatarList::updateAvatarList(const LLViewerRegion* region)
{
// Check whether updates are enabled
@@ -523,8 +530,7 @@ void LLFloaterAvatarList::updateAvatarList(const LLViewerRegion* region)
const std::vector& map_avids(region->mMapAvatarIDs);
const LLVector3d& mypos(gAgent.getPositionGlobal());
const LLVector3d& origin(region->getOriginGlobal());
- static const LLCachedControl radar_range_radius("RadarRangeRadius", 0);
- const F32 max_range(radar_range_radius * radar_range_radius);
+ const F32 max_range(radar_range_radius() * radar_range_radius());
static LLCachedControl announce(gSavedSettings, "RadarChatKeys");
std::queue announce_keys;
@@ -594,28 +600,22 @@ void LLFloaterAvatarList::updateAvatarList(const LLViewerRegion* region)
void LLFloaterAvatarList::expireAvatarList(const std::list& ids)
{
- BOOST_FOREACH(const LLUUID& id, ids)
+ if (!ids.empty())
{
- av_list_t::iterator it(std::find_if(mAvatars.begin(), mAvatars.end(), LLAvatarListEntry::uuidMatch(id)));
- if (it != mAvatars.end())
+ std::vector existing_avs;
+ std::vector neighbors;
+ gAgent.getRegion()->getNeighboringRegions(neighbors);
+ BOOST_FOREACH(const LLViewerRegion* region, neighbors)
+ existing_avs.insert(existing_avs.end(), region->mMapAvatarIDs.begin(), region->mMapAvatarIDs.end());
+ BOOST_FOREACH(const LLUUID& id, ids)
{
- LLAvatarListEntry* entry = it->get();
- entry->setPosition(entry->getPosition(), F32_MIN, false); // Dead and gone
- mAvatars.erase(it);
+ if (std::find(existing_avs.begin(), existing_avs.end(), id) != existing_avs.end()) continue; // Now in another region we know.
+ av_list_t::iterator it(std::find_if(mAvatars.begin(), mAvatars.end(), LLAvatarListEntry::uuidMatch(id)));
+ if (it != mAvatars.end())
+ mAvatars.erase(it);
}
}
- if (mAvatars.empty())
- setTitle(getString("Title"));
- else if (mAvatars.size() == 1)
- setTitle(getString("TitleOneAvatar"));
- else
- {
- LLStringUtil::format_map_t args;
- args["[COUNT]"] = boost::lexical_cast(mAvatars.size());
- setTitle(getString("TitleWithCount", args));
- }
-
refreshAvatarList();
refreshTracker();
}
@@ -648,7 +648,7 @@ bool getCustomColorRLV(const LLUUID& id, LLColor4& color, LLViewerRegion* parent
*/
void LLFloaterAvatarList::refreshAvatarList()
{
- // Don't update list when interface is hidden
+ // Don't update when interface is hidden
if (!getVisible()) return;
// We rebuild the list fully each time it's refreshed
@@ -669,6 +669,7 @@ void LLFloaterAvatarList::refreshAvatarList()
localRectToScreen(getLocalRect(), &screen_rect);
speakermgr.update(!(screen_rect.pointInRect(gViewerWindow->getCurrentMouseX(), gViewerWindow->getCurrentMouseY()) && gMouseIdleTimer.getElapsedTimeF32() < 5.f));
+ av_list_t dead_entries;
bool name_restricted(gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS) || gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES));
BOOST_FOREACH(av_list_t::value_type& entry, mAvatars)
{
@@ -684,7 +685,11 @@ void LLFloaterAvatarList::refreshAvatarList()
//jcool410 -- this fucks up seeing dueds thru minimap data > 1024m away, so, lets just say > 2048m to the side is bad
//aka 8 sims
- if (delta.magVec() > 2048.0) continue;
+ if (delta.magVec() > 2048.0)
+ {
+ dead_entries.push_back(entry);
+ continue;
+ }
entry->setInList();
const LLUUID& av_id = entry->getID();
@@ -969,6 +974,20 @@ void LLFloaterAvatarList::refreshAvatarList()
mAvatarList->addRow(element);
}
+ BOOST_FOREACH(av_list_t::value_type& dead, dead_entries)
+ mAvatars.erase(std::remove(mAvatars.begin(), mAvatars.end(), dead), mAvatars.end());
+
+ if (mAvatars.empty())
+ setTitle(getString("Title"));
+ else if (mAvatars.size() == 1)
+ setTitle(getString("TitleOneAvatar"));
+ else
+ {
+ LLStringUtil::format_map_t args;
+ args["[COUNT]"] = boost::lexical_cast(mAvatars.size());
+ setTitle(getString("TitleWithCount", args));
+ }
+
// finish
mAvatarList->updateSort();
mAvatarList->selectMultiple(selected);