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();
|
return (std::size_t)uuid.getCRC32();
|
||||||
}
|
}
|
||||||
boost::unordered_map<const LLUUID,LLColor4> mm_MarkerColors;
|
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);
|
auto it = mm_MarkerColors.find(id);
|
||||||
if (it == mm_MarkerColors.end()) return false;
|
return it == mm_MarkerColors.end() ? nullptr : &it->second;
|
||||||
color = it->second;
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
mm_MarkerColors[key] = col;
|
||||||
}
|
}
|
||||||
@@ -1499,7 +1509,7 @@ bool LLScaleMap::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
|||||||
void markMassAgents(const LLColor4& color)
|
void markMassAgents(const LLColor4& color)
|
||||||
{
|
{
|
||||||
for (const auto& id : LFIDBearer::getActiveSelectedIDs())
|
for (const auto& id : LFIDBearer::getActiveSelectedIDs())
|
||||||
LLNetMap::mm_setcolor(id, color);
|
mm_setcolor(id, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool mmsetred::handleEvent(LLPointer<LLEvent>, const LLSD&)
|
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&)
|
bool mmsetunmark::handleEvent(LLPointer<LLEvent>, const LLSD&)
|
||||||
{
|
{
|
||||||
for (const auto& id : LFIDBearer::getActiveSelectedIDs())
|
for (const auto& id : LFIDBearer::getActiveSelectedIDs())
|
||||||
mm_MarkerColors.erase(id);
|
mm_clearMark(id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool mmenableunmark::handleEvent(LLPointer<LLEvent>, const LLSD& userdata)
|
bool mmenableunmark::handleEvent(LLPointer<LLEvent>, const LLSD& userdata)
|
||||||
|
|||||||
@@ -72,9 +72,6 @@ public:
|
|||||||
uuid_vec_t getSelectedIDs() const override final { return mClosestAgentsAtLastClick; }
|
uuid_vec_t getSelectedIDs() const override final { return mClosestAgentsAtLastClick; }
|
||||||
S32 getNumSelected() const override final { return mClosestAgentsAtLastClick.size(); }
|
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)
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
void refreshParcelOverlay() { mUpdateParcelImage = true; }
|
void refreshParcelOverlay() { mUpdateParcelImage = true; }
|
||||||
// [/SL:KB]
|
// [/SL:KB]
|
||||||
@@ -157,7 +154,7 @@ private:
|
|||||||
LLUUID mClosestAgentToCursor;
|
LLUUID mClosestAgentToCursor;
|
||||||
LLUUID mClosestAgentAtLastRightClick;
|
LLUUID mClosestAgentAtLastRightClick;
|
||||||
|
|
||||||
BOOL isAgentUnderCursor() { return mClosestAgentToCursor.notNull(); }
|
BOOL isAgentUnderCursor() const { return mClosestAgentToCursor.notNull(); }
|
||||||
LLMenuGL* mPopupMenu;
|
LLMenuGL* mPopupMenu;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user