diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index ecf2441a9..568c816a9 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -68,6 +68,10 @@ #include "llglheaders.h" +// +#include "llmutelist.h" +// + const F32 MAP_SCALE_MIN = 32; const F32 MAP_SCALE_MID = 1024; const F32 MAP_SCALE_MAX = 4096; @@ -330,8 +334,7 @@ void LLNetMap::draw() F32 min_pick_dist = mDotRadius * MIN_PICK_SCALE; // Draw avatars - LLColor4 avatar_color = gColors.getColor( "MapAvatar" ); - LLColor4 friend_color = gColors.getColor( "MapFriend" ); + // std::vector avatar_ids; std::vector positions; LLWorld::getInstance()->getAvatars(&avatar_ids, &positions); @@ -341,12 +344,40 @@ void LLNetMap::draw() // just be careful to sort the avatar IDs along with the positions. -MG pos_map = globalPosToView(positions[i], rotate_map); + //Default to boring green for random schlubs + LLColor4 avColor = gColors.getColor( "MapAvatar" ); + + std::string avName; + + gCacheName->getFullName(avatar_ids[i], avName); + + //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()) + { + avColor = gColors.getColor( "MapEstateOwner" ); + } + //without these dots, SL would suck. + else if(is_agent_friend(avatar_ids[i])) + { + avColor = gColors.getColor( "MapFriend" ); + } + //big fat jerkface who is probably a jerk, display them as such. + else if(LLMuteList::getInstance()->isMuted(avatar_ids[i])) + { + avColor = gColors.getColor( "MapMuted" ); + } + LLWorldMapView::drawAvatar( pos_map.mV[VX], pos_map.mV[VY], - is_agent_friend(avatar_ids[i]) ? friend_color : avatar_color, + avColor, pos_map.mV[VZ], mDotRadius); - + // F32 dist_to_cursor = dist_vec(LLVector2(pos_map.mV[VX], pos_map.mV[VY]), LLVector2(local_mouse_x,local_mouse_y)); if(dist_to_cursor < min_pick_dist && dist_to_cursor < closest_dist) { diff --git a/indra/newview/skins/default/colors_base.xml b/indra/newview/skins/default/colors_base.xml index 5d33dd652..87837bbdf 100644 --- a/indra/newview/skins/default/colors_base.xml +++ b/indra/newview/skins/default/colors_base.xml @@ -138,6 +138,9 @@ + + +