diff --git a/indra/newview/llfloateravatarlist.cpp b/indra/newview/llfloateravatarlist.cpp index 5d1991e04..2c708204d 100644 --- a/indra/newview/llfloateravatarlist.cpp +++ b/indra/newview/llfloateravatarlist.cpp @@ -134,8 +134,9 @@ namespace } } //namespace +const LLColor4* mm_getMarkerColor(const LLUUID& id); LLAvatarListEntry::LLAvatarListEntry(const LLUUID& id, const std::string& name, const LLVector3d& position) : - mID(id), mName(name), mPosition(position), mMarked(false), mFocused(false), + mID(id), mName(name), mPosition(position), mMarked(mm_getMarkerColor(id)), mFocused(false), mStats(), mActivityType(ACTIVITY_NEW), mActivityTimer(), mIsInList(false), mAge(-1), mTime(time(NULL)) @@ -348,7 +349,14 @@ void track_av(const LLUUID& id) } static void cmd_profile(const LLAvatarListEntry* entry); -static void cmd_toggle_mark(LLAvatarListEntry* entry); +static void cmd_toggle_mark(LLAvatarListEntry* entry) +{ + bool mark = !entry->isMarked(); + void mm_setcolor(LLUUID key, LLColor4 col); + void mm_clearMark(const LLUUID & id); + mark ? mm_setcolor(entry->getID(), LLColor4::red) : mm_clearMark(entry->getID()); + entry->setMarked(mark); +} static void cmd_ar(const LLAvatarListEntry* entry); static void cmd_teleport(const LLAvatarListEntry* entry); @@ -364,15 +372,6 @@ namespace } }; - class RadarMark : public view_listener_t - { - bool handleEvent(LLPointer event, const LLSD& userdata) - { - LLFloaterAvatarList::instance().doCommand(cmd_toggle_mark); - return true; - } - }; - class RadarFocus : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) @@ -415,7 +414,6 @@ void addMenu(view_listener_t* menu, const std::string& name); void add_radar_listeners() { addMenu(new RadarTrack, "Radar.Track"); - addMenu(new RadarMark, "Radar.Mark"); addMenu(new RadarFocus, "Radar.Focus"); addMenu(new RadarFocusPrev, "Radar.FocusPrev"); addMenu(new RadarFocusNext, "Radar.FocusNext"); @@ -779,7 +777,7 @@ void LLFloaterAvatarList::refreshAvatarList() if (entry->isMarked()) { mark.value = "X"; - mark.color = LLColor4::blue; + mark.color = *mm_getMarkerColor(av_id); mark.font_style = "BOLD"; } element.columns.add(mark); @@ -1449,7 +1447,6 @@ void send_estate_message(const std::string request, const std::vectorgetName()); } -static void cmd_toggle_mark(LLAvatarListEntry* entry) { entry->toggleMark(); } static void cmd_ar(const LLAvatarListEntry* entry) { LLFloaterReporter::showFromObject(entry->getID()); } static void cmd_profile(const LLAvatarListEntry* entry) { LLAvatarActions::showProfile(entry->getID()); } static void cmd_teleport(const LLAvatarListEntry* entry) { gAgent.teleportViaLocation(entry->getPosition()); } diff --git a/indra/newview/llfloateravatarlist.h b/indra/newview/llfloateravatarlist.h index 480e52f52..5c8321987 100644 --- a/indra/newview/llfloateravatarlist.h +++ b/indra/newview/llfloateravatarlist.h @@ -124,7 +124,7 @@ enum ACTIVITY_TYPE bool isInList() const { return mIsInList; } - void toggleMark() { mMarked = !mMarked; } + void setMarked(bool marked) { mMarked = marked; } struct uuidMatch { diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index 2e7143ad5..466554111 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -1508,8 +1508,13 @@ bool LLScaleMap::handleEvent(LLPointer event, const LLSD& userdata) //moymod - minimap color shit void markMassAgents(const LLColor4& color) { + auto radar = LLFloaterAvatarList::getInstance(); for (const auto& id : LFIDBearer::getActiveSelectedIDs()) + { mm_setcolor(id, color); + if (auto entry = radar ? radar->getAvatarEntry(id) : nullptr) + entry->setMarked(true); + } } bool mmsetred::handleEvent(LLPointer, const LLSD&) @@ -1539,8 +1544,13 @@ bool mmsetcustom::handleEvent(LLPointer, const LLSD&) } bool mmsetunmark::handleEvent(LLPointer, const LLSD&) { + auto radar = LLFloaterAvatarList::getInstance(); for (const auto& id : LFIDBearer::getActiveSelectedIDs()) + { mm_clearMark(id); + if (auto entry = radar ? radar->getAvatarEntry(id) : nullptr) + entry->setMarked(false); + } return true; } bool mmenableunmark::handleEvent(LLPointer, const LLSD& userdata) diff --git a/indra/newview/skins/default/xui/en-us/menu_radar.xml b/indra/newview/skins/default/xui/en-us/menu_radar.xml index c104d05e3..5a84524a4 100644 --- a/indra/newview/skins/default/xui/en-us/menu_radar.xml +++ b/indra/newview/skins/default/xui/en-us/menu_radar.xml @@ -210,10 +210,6 @@ - - - - diff --git a/indra/newview/skins/default/xui/es/menu_radar.xml b/indra/newview/skins/default/xui/es/menu_radar.xml index b3c6d1c28..d771ce2ad 100644 --- a/indra/newview/skins/default/xui/es/menu_radar.xml +++ b/indra/newview/skins/default/xui/es/menu_radar.xml @@ -24,7 +24,6 @@ -