diff --git a/indra/newview/llfloateravatarlist.cpp b/indra/newview/llfloateravatarlist.cpp index 76964f4ed..e389f1475 100644 --- a/indra/newview/llfloateravatarlist.cpp +++ b/indra/newview/llfloateravatarlist.cpp @@ -53,6 +53,10 @@ #include "llsdutil.h" +// +#include "llviewermenu.h" +// + /** * @brief How long to keep people who are gone in the list and in memory. */ @@ -687,10 +691,37 @@ void LLFloaterAvatarList::refreshAvatarList() { element["columns"][LIST_AVATAR_NAME]["font-style"] = "BOLD"; } - if (LLMuteList::getInstance()->isMuted(av_id)) + + // custom colors for certain types of avatars! + element["columns"][LIST_AVATAR_NAME]["color"] = gColors.getColor( "RadarAvatar" ).getValue(); + LLViewerRegion* parent_estate = LLWorld::getInstance()->getRegionFromPosGlobal(entry->getPosition()); + + //Lindens are always more Linden than your friend, make that take precedence + if(LLMuteList::getInstance()->isLinden(entry->getName())) { - element["columns"][LIST_AVATAR_NAME]["color"] = LLColor4::red2.getValue(); + element["columns"][LIST_AVATAR_NAME]["color"] = gColors.getColor( "RadarLinden" ).getValue(); } + //first make sure their parent estate actually still exists and is alive + else if(parent_estate && parent_estate->isAlive()) + { + LLUUID estate_owner = parent_estate->getOwner(); + //check if they are an estate owner at their current position + if(estate_owner.notNull() && av_id == estate_owner) + { + element["columns"][LIST_AVATAR_NAME]["color"] = gColors.getColor( "RadarEstateOwner" ).getValue(); + } + } + //without these people, SL would suck. + else if(is_agent_friend(av_id)) + { + element["columns"][LIST_AVATAR_NAME]["color"] = gColors.getColor( "RadarFriend" ).getValue(); + } + //big fat jerkface who is probably a jerk, display them as such. + else if(LLMuteList::getInstance()->isMuted(av_id)) + { + element["columns"][LIST_AVATAR_NAME]["color"] = gColors.getColor( "RadarMuted" ).getValue(); + } + // char temp[32]; LLColor4 color = LLColor4::black; diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index 568c816a9..8a8d76648 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -351,13 +351,15 @@ void LLNetMap::draw() gCacheName->getFullName(avatar_ids[i], avName); + LLUUID estate_owner = LLWorld::getInstance()->getRegionFromPosGlobal(positions[i])->getOwner(); + //Lindens are always more Linden than your friend, make that take precedence if(LLMuteList::getInstance()->isLinden(avName)) { avColor = gColors.getColor( "MapLinden" ); } //check if they are an estate owner at their current position - else if(avatar_ids[i] == LLWorld::getInstance()->getRegionFromPosGlobal(positions[i])->getOwner()) + else if(estate_owner.notNull() && avatar_ids[i] == estate_owner) { avColor = gColors.getColor( "MapEstateOwner" ); } diff --git a/indra/newview/skins/default/colors_base.xml b/indra/newview/skins/default/colors_base.xml index 87837bbdf..5164ad0e0 100644 --- a/indra/newview/skins/default/colors_base.xml +++ b/indra/newview/skins/default/colors_base.xml @@ -142,6 +142,14 @@ + + + + + + + +