Small refactor of minimap marking code
Mark is now encapsulated mm_setcolor is no longer part of LLNetMap mm_clearMark is now used to erase mark from container Introduces mm_getMarkerColor that returns a pointer, instead of needing a ref every time. Also mark isAgentUnderCursor const
This commit is contained in:
@@ -296,15 +296,25 @@ std::size_t hash_value(const LLUUID& uuid)
|
||||
return (std::size_t)uuid.getCRC32();
|
||||
}
|
||||
boost::unordered_map<const LLUUID,LLColor4> mm_MarkerColors;
|
||||
bool mm_getMarkerColor(const LLUUID& id, LLColor4& color)
|
||||
const LLColor4* mm_getMarkerColor(const LLUUID& id)
|
||||
{
|
||||
boost::unordered_map<const LLUUID,LLColor4>::const_iterator it = mm_MarkerColors.find(id);
|
||||
if (it == mm_MarkerColors.end()) return false;
|
||||
color = it->second;
|
||||
return true;
|
||||
auto it = mm_MarkerColors.find(id);
|
||||
return it == mm_MarkerColors.end() ? nullptr : &it->second;
|
||||
}
|
||||
|
||||
void LLNetMap::mm_setcolor(LLUUID key,LLColor4 col)
|
||||
bool mm_getMarkerColor(const LLUUID& id, LLColor4& color)
|
||||
{
|
||||
auto c = mm_getMarkerColor(id);
|
||||
if (c) color = *c;
|
||||
return c;
|
||||
}
|
||||
|
||||
void mm_clearMark(const LLUUID& id)
|
||||
{
|
||||
mm_MarkerColors.erase(id);
|
||||
}
|
||||
|
||||
void mm_setcolor(LLUUID key,LLColor4 col)
|
||||
{
|
||||
mm_MarkerColors[key] = col;
|
||||
}
|
||||
@@ -1499,7 +1509,7 @@ bool LLScaleMap::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||
void markMassAgents(const LLColor4& color)
|
||||
{
|
||||
for (const auto& id : LFIDBearer::getActiveSelectedIDs())
|
||||
LLNetMap::mm_setcolor(id, color);
|
||||
mm_setcolor(id, color);
|
||||
}
|
||||
|
||||
bool mmsetred::handleEvent(LLPointer<LLEvent>, const LLSD&)
|
||||
@@ -1530,7 +1540,7 @@ bool mmsetcustom::handleEvent(LLPointer<LLEvent>, const LLSD&)
|
||||
bool mmsetunmark::handleEvent(LLPointer<LLEvent>, const LLSD&)
|
||||
{
|
||||
for (const auto& id : LFIDBearer::getActiveSelectedIDs())
|
||||
mm_MarkerColors.erase(id);
|
||||
mm_clearMark(id);
|
||||
return true;
|
||||
}
|
||||
bool mmenableunmark::handleEvent(LLPointer<LLEvent>, const LLSD& userdata)
|
||||
|
||||
@@ -72,9 +72,6 @@ public:
|
||||
uuid_vec_t getSelectedIDs() const override final { return mClosestAgentsAtLastClick; }
|
||||
S32 getNumSelected() const override final { return mClosestAgentsAtLastClick.size(); }
|
||||
|
||||
static void mm_setcolor(LLUUID key,LLColor4 col); //moymod
|
||||
|
||||
|
||||
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||
void refreshParcelOverlay() { mUpdateParcelImage = true; }
|
||||
// [/SL:KB]
|
||||
@@ -157,7 +154,7 @@ private:
|
||||
LLUUID mClosestAgentToCursor;
|
||||
LLUUID mClosestAgentAtLastRightClick;
|
||||
|
||||
BOOL isAgentUnderCursor() { return mClosestAgentToCursor.notNull(); }
|
||||
BOOL isAgentUnderCursor() const { return mClosestAgentToCursor.notNull(); }
|
||||
LLMenuGL* mPopupMenu;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user