From fc0c1dbdfdae6e4c9ea8964fe9d49092d9ee912d Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Sat, 28 Aug 2010 03:08:35 -0700 Subject: Implemented #456: added option to disable objects in mini-map from emerald (I placed it in the right click menu instead of as a debug setting. There are a few other options that might be nice to have in there as well, such as physical) --- linden/indra/newview/app_settings/settings.xml | 11 +++++++++ linden/indra/newview/llnetmap.cpp | 26 ++++++++++++++++++++-- linden/indra/newview/llnetmap.h | 13 ++++++++++- .../skins/default/xui/en-us/menu_mini_map.xml | 6 +++++ 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index f6829f8..d35aa1e 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml @@ -447,6 +447,17 @@ Value 256.0 + MiniMapShowObjects + + Comment + Shows object on the minimap when TRUE + Persist + 1 + Type + Boolean + Value + 1 + MiniMapTeleport Comment diff --git a/linden/indra/newview/llnetmap.cpp b/linden/indra/newview/llnetmap.cpp index ec04337..8f7dd03 100644 --- a/linden/indra/newview/llnetmap.cpp +++ b/linden/indra/newview/llnetmap.cpp @@ -108,6 +108,8 @@ LLNetMap::LLNetMap(const std::string& name) : (new LLCheckCenterMap())->registerListener(this, "MiniMap.CheckCenter"); (new LLRotateMap())->registerListener(this, "MiniMap.Rotate"); (new LLCheckRotateMap())->registerListener(this, "MiniMap.CheckRotate"); + (new LLShowObjects())->registerListener(this, "MiniMap.ShowObjects"); + (new LLCheckShowObjects())->registerListener(this, "MiniMap.CheckShowObjects"); (new LLShowWorldMap())->registerListener(this, "MiniMap.ShowWorldMap"); (new LLStopTracking())->registerListener(this, "MiniMap.StopTracking"); (new LLEnableTracking())->registerListener(this, "MiniMap.EnableTracking"); @@ -302,8 +304,12 @@ void LLNetMap::draw() U8 *default_texture = mObjectRawImagep->getData(); memset( default_texture, 0, mObjectImagep->getWidth() * mObjectImagep->getHeight() * mObjectImagep->getComponents() ); - // Draw objects - gObjectList.renderObjectsForMap(*this); + // Draw buildings + //gObjectList.renderObjectsForMap(*this); + if (gSavedSettings.getBOOL("MiniMapShowObjects")) + { + gObjectList.renderObjectsForMap(*this); + } mObjectImagep->setSubImage(mObjectRawImagep, 0, 0, mObjectImagep->getWidth(), mObjectImagep->getHeight()); @@ -1011,6 +1017,22 @@ bool LLNetMap::LLCheckCenterMap::handleEvent(LLPointer event, const LLS return true; } +bool LLNetMap::LLShowObjects::handleEvent(LLPointer event, const LLSD& userdata) +{ + BOOL show = gSavedSettings.getBOOL("MiniMapShowObjects"); + gSavedSettings.setBOOL("MiniMapShowObjects", !show); + + return true; +} + +bool LLNetMap::LLCheckShowObjects::handleEvent(LLPointer event, const LLSD& userdata) +{ + LLNetMap *self = mPtr; + BOOL enabled = gSavedSettings.getBOOL("MiniMapShowObjects"); + self->findControl(userdata["control"].asString())->setValue(enabled); + return true; +} + bool LLNetMap::LLShowWorldMap::handleEvent(LLPointer event, const LLSD& userdata) { LLFloaterWorldMap::show(NULL, FALSE); diff --git a/linden/indra/newview/llnetmap.h b/linden/indra/newview/llnetmap.h index c0c19d5..562ebc6 100644 --- a/linden/indra/newview/llnetmap.h +++ b/linden/indra/newview/llnetmap.h @@ -118,7 +118,6 @@ private: LLUUID mClosestAgentToCursor; LLUUID mClosestAgentAtLastRightClick; - static BOOL sRotateMap; static LLNetMap* sInstance; static BOOL isAgentUnderCursor(void*) { return sInstance && sInstance->mClosestAgentToCursor.notNull(); } static BOOL outsideSlop(S32 x, S32 y, S32 start_x, S32 start_y); @@ -156,6 +155,18 @@ private: /*virtual*/ bool handleEvent(LLPointer event, const LLSD& userdata); }; + class LLShowObjects : public LLMemberListener + { + public: + /*virtual*/ bool handleEvent(LLPointer event, const LLSD& userdata); + }; + + class LLCheckShowObjects : public LLMemberListener + { + public: + /*virtual*/ bool handleEvent(LLPointer event, const LLSD& userdata); + }; + class LLShowWorldMap : public LLMemberListener { public: diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_mini_map.xml b/linden/indra/newview/skins/default/xui/en-us/menu_mini_map.xml index 039165b..4b31328 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_mini_map.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_mini_map.xml @@ -25,6 +25,12 @@ + + + + + -- cgit v1.1