Added avatar marking for minimap. Fixes FIRE-1483
parent
255ed97989
commit
da8e719b91
|
|
@ -102,6 +102,9 @@ BOOL LLFloaterMap::postBuild()
|
|||
registrar.add("Minimap.Zoom", boost::bind(&LLFloaterMap::handleZoom, this, _2));
|
||||
registrar.add("Minimap.Tracker", boost::bind(&LLFloaterMap::handleStopTracking, this, _2));
|
||||
|
||||
registrar.add("Minimap.Mark", boost::bind(&LLFloaterMap::handleMark, this, _2));
|
||||
registrar.add("Minimap.ClearMarks", boost::bind(&LLFloaterMap::handleClearMarks, this));
|
||||
|
||||
mPopupMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_mini_map.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
if (mPopupMenu && !LLTracker::isTracking(0))
|
||||
{
|
||||
|
|
@ -160,6 +163,8 @@ BOOL LLFloaterMap::handleDoubleClick( S32 x, S32 y, MASK mask )
|
|||
|
||||
BOOL LLFloaterMap::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
mMap->saveClosestAgentAtLastRightClick();
|
||||
|
||||
if (mPopupMenu)
|
||||
{
|
||||
mPopupMenu->buildDrawLabels();
|
||||
|
|
@ -331,3 +336,13 @@ void LLFloaterMap::setMinimized(BOOL b)
|
|||
setTitle("");
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterMap::handleMark(const LLSD& userdata)
|
||||
{
|
||||
mMap->setAvatarMark(userdata);
|
||||
}
|
||||
|
||||
void LLFloaterMap::handleClearMarks()
|
||||
{
|
||||
mMap->clearAvatarMarks();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ private:
|
|||
void handleStopTracking (const LLSD& userdata);
|
||||
void setDirectionPos( LLTextBox* text_box, F32 rotation );
|
||||
void updateMinorDirections();
|
||||
void handleMark(const LLSD& userdata);
|
||||
void handleClearMarks();
|
||||
|
||||
void stretchMiniMap(S32 width,S32 height);
|
||||
|
||||
|
|
|
|||
|
|
@ -88,6 +88,9 @@ const S32 MOUSE_DRAG_SLOP = 2; // How far the mouse needs to move before we thi
|
|||
const F32 WIDTH_PIXELS = 2.f;
|
||||
const S32 CIRCLE_STEPS = 100;
|
||||
|
||||
std::map<LLUUID, LLColor4> LLNetMap::sAvatarMarksMap;
|
||||
|
||||
|
||||
LLNetMap::LLNetMap (const Params & p)
|
||||
: LLUICtrl (p),
|
||||
mBackgroundColor (p.bg_color()),
|
||||
|
|
@ -129,6 +132,9 @@ BOOL LLNetMap::postBuild()
|
|||
registrar.add("Minimap.Zoom", boost::bind(&LLNetMap::handleZoom, this, _2));
|
||||
registrar.add("Minimap.Tracker", boost::bind(&LLNetMap::handleStopTracking, this, _2));
|
||||
|
||||
registrar.add("Minimap.Mark", boost::bind(&LLNetMap::handleMark, this, _2));
|
||||
registrar.add("Minimap.ClearMarks", boost::bind(&LLNetMap::handleClearMarks, this));
|
||||
|
||||
mPopupMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_mini_map.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
if (mPopupMenu && !LLTracker::isTracking(0))
|
||||
{
|
||||
|
|
@ -433,6 +439,12 @@ void LLNetMap::draw()
|
|||
isHeightUnknown = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Mark Avatars with special colors
|
||||
if (LLNetMap::sAvatarMarksMap.find(uuid) != LLNetMap::sAvatarMarksMap.end())
|
||||
{
|
||||
color = LLNetMap::sAvatarMarksMap[uuid];
|
||||
}
|
||||
}
|
||||
|
||||
// Ansariel: Moved down here so we can take precise
|
||||
|
|
@ -1034,6 +1046,8 @@ BOOL LLNetMap::handleMouseUp( S32 x, S32 y, MASK mask )
|
|||
|
||||
BOOL LLNetMap::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
saveClosestAgentAtLastRightClick();
|
||||
|
||||
if (mPopupMenu)
|
||||
{
|
||||
mPopupMenu->buildDrawLabels();
|
||||
|
|
@ -1164,3 +1178,34 @@ void LLNetMap::handleStopTracking (const LLSD& userdata)
|
|||
LLTracker::stopTracking ((void*)LLTracker::isTracking(NULL));
|
||||
}
|
||||
}
|
||||
|
||||
void LLNetMap::handleMark(const LLSD& userdata)
|
||||
{
|
||||
setAvatarMark(userdata);
|
||||
}
|
||||
|
||||
void LLNetMap::handleClearMarks()
|
||||
{
|
||||
clearAvatarMarks();
|
||||
}
|
||||
|
||||
void LLNetMap::setAvatarMark(const LLSD& userdata)
|
||||
{
|
||||
if (mClosestAgentAtLastRightClick.notNull())
|
||||
{
|
||||
// Use the name as color definition name from colors.xml
|
||||
LLColor4 color = LLUIColorTable::instance().getColor(userdata.asString(), LLColor4::green);
|
||||
LLNetMap::sAvatarMarksMap[mClosestAgentAtLastRightClick] = color;
|
||||
llinfos << "Minimap: Marking " << mClosestAgentAtLastRightClick.asString() << " in " << userdata.asString() << llendl;
|
||||
}
|
||||
}
|
||||
|
||||
void LLNetMap::saveClosestAgentAtLastRightClick()
|
||||
{
|
||||
mClosestAgentAtLastRightClick = mClosestAgentToCursor;
|
||||
}
|
||||
|
||||
void LLNetMap::clearAvatarMarks()
|
||||
{
|
||||
LLNetMap::sAvatarMarksMap.clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,12 +129,19 @@ private:
|
|||
|
||||
std::string mToolTipMsg;
|
||||
|
||||
static std::map<LLUUID, LLColor4> sAvatarMarksMap;
|
||||
|
||||
public:
|
||||
void setSelected(uuid_vec_t uuids) { gmSelected=uuids; };
|
||||
void setAvatarMark(const LLSD& userdata);
|
||||
void saveClosestAgentAtLastRightClick();
|
||||
void clearAvatarMarks();
|
||||
|
||||
private:
|
||||
void handleZoom(const LLSD& userdata);
|
||||
void handleStopTracking (const LLSD& userdata);
|
||||
void handleMark(const LLSD& userdata);
|
||||
void handleClearMarks();
|
||||
|
||||
LLMenuGL* mPopupMenu;
|
||||
uuid_vec_t gmSelected;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,14 @@
|
|||
<menu_item_call label="Zoom-Standard" name="Zoom Default"/>
|
||||
<menu_item_check label="Karte drehen" name="Rotate Map"/>
|
||||
<menu_item_check label="Automatisch zentrieren" name="Auto Center"/>
|
||||
<menu_item_check label="Chatdistanz-Markierung" name="Chat Distance Ring"/>
|
||||
<menu name="MarkAvatar" label="Markieren...">
|
||||
<menu_item_call label="Rot" name="MarkRed"/>
|
||||
<menu_item_call label="Lila" name="MarkPurple"/>
|
||||
<menu_item_call label="Grün" name="MarkGreen"/>
|
||||
<menu_item_call label="Gelb" name="MarkYellow"/>
|
||||
<menu_item_call label="Markierungen löschen" name="Clear Marks"/>
|
||||
</menu>
|
||||
<menu_item_call label="Verfolgung abschalten" name="Stop Tracking"/>
|
||||
<menu_item_call label="Weltkarte" name="World Map"/>
|
||||
</menu>
|
||||
|
|
|
|||
|
|
@ -65,6 +65,43 @@
|
|||
parameter="MiniMapChatRing" />
|
||||
</menu_item_check>
|
||||
<menu_item_separator />
|
||||
<menu name="MarkAvatar" label="Mark...">
|
||||
<menu_item_call
|
||||
label="Red"
|
||||
name="MarkRed">
|
||||
<menu_item_call.on_click
|
||||
function="Minimap.Mark"
|
||||
parameter="Red" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Purple"
|
||||
name="MarkPurple">
|
||||
<menu_item_call.on_click
|
||||
function="Minimap.Mark"
|
||||
parameter="Purple" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Green"
|
||||
name="MarkGreen">
|
||||
<menu_item_call.on_click
|
||||
function="Minimap.Mark"
|
||||
parameter="Green" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Yellow"
|
||||
name="MarkYellow">
|
||||
<menu_item_call.on_click
|
||||
function="Minimap.Mark"
|
||||
parameter="LtYellow" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator />
|
||||
<menu_item_call
|
||||
label="Clear Marks"
|
||||
name="Clear Marks">
|
||||
<menu_item_call.on_click
|
||||
function="Minimap.ClearMarks"/>
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu_item_call
|
||||
label="Stop Tracking"
|
||||
name="Stop Tracking">
|
||||
|
|
|
|||
Loading…
Reference in New Issue