summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterworldmap.cpp
diff options
context:
space:
mode:
authorVadim Savchuk <vsavchuk@productengine.com>2010-04-07 18:39:29 +0300
committerVadim Savchuk <vsavchuk@productengine.com>2010-04-07 18:39:29 +0300
commitbb2a0adecaee2f7464caff602473d75c6b65bcaa (patch)
tree6da7bc3cf29b8f5f6dd7b08f9beee007b6408f02 /indra/newview/llfloaterworldmap.cpp
parent7ba7bc6c3733420bd4d73a180627a81640a5b265 (diff)
parentadce2ecdf8f3a0efcd4907699d286012124ac496 (diff)
Merge from default branch
--HG-- branch : product-engine
Diffstat (limited to 'indra/newview/llfloaterworldmap.cpp')
-rw-r--r--indra/newview/llfloaterworldmap.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index 152360a96e..b3223ad494 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -461,7 +461,7 @@ void LLFloaterWorldMap::draw()
childSetEnabled("Teleport", (BOOL)tracking_status);
// childSetEnabled("Clear", (BOOL)tracking_status);
childSetEnabled("Show Destination", (BOOL)tracking_status || LLWorldMap::getInstance()->isTracking());
- childSetEnabled("copy_slurl", (mSLURL.isValid()) );
+ childSetEnabled("copy_slurl", (mSLURL.size() > 0) );
setMouseOpaque(TRUE);
getDragHandle()->setMouseOpaque(TRUE);
@@ -660,8 +660,14 @@ void LLFloaterWorldMap::updateLocation()
childSetValue("location", agent_sim_name);
// Figure out where user is
+ LLVector3d agentPos = gAgent.getPositionGlobal();
+
+ S32 agent_x = llround( (F32)fmod( agentPos.mdV[VX], (F64)REGION_WIDTH_METERS ) );
+ S32 agent_y = llround( (F32)fmod( agentPos.mdV[VY], (F64)REGION_WIDTH_METERS ) );
+ S32 agent_z = llround( (F32)agentPos.mdV[VZ] );
+
// Set the current SLURL
- mSLURL = LLSLURL(agent_sim_name, gAgent.getPositionGlobal());
+ mSLURL = LLSLURL::buildSLURL(agent_sim_name, agent_x, agent_y, agent_z);
}
}
@@ -688,15 +694,18 @@ void LLFloaterWorldMap::updateLocation()
}
childSetValue("location", sim_name);
+
+ F32 region_x = (F32)fmod( pos_global.mdV[VX], (F64)REGION_WIDTH_METERS );
+ F32 region_y = (F32)fmod( pos_global.mdV[VY], (F64)REGION_WIDTH_METERS );
// simNameFromPosGlobal can fail, so don't give the user an invalid SLURL
if ( gotSimName )
{
- mSLURL = LLSLURL(sim_name, pos_global);
+ mSLURL = LLSLURL::buildSLURL(sim_name, llround(region_x), llround(region_y), llround((F32)pos_global.mdV[VZ]));
}
else
{ // Empty SLURL will disable the "Copy SLURL to clipboard" button
- mSLURL = LLSLURL();
+ mSLURL = "";
}
}
}
@@ -1165,7 +1174,7 @@ void LLFloaterWorldMap::onClearBtn()
mTrackedStatus = LLTracker::TRACKING_NOTHING;
LLTracker::stopTracking((void *)(intptr_t)TRUE);
LLWorldMap::getInstance()->cancelTracking();
- mSLURL = LLSLURL(); // Clear the SLURL since it's invalid
+ mSLURL = ""; // Clear the SLURL since it's invalid
mSetToUserPosition = TRUE; // Revert back to the current user position
}
@@ -1188,10 +1197,10 @@ void LLFloaterWorldMap::onClickTeleportBtn()
void LLFloaterWorldMap::onCopySLURL()
{
- getWindow()->copyTextToClipboard(utf8str_to_wstring(mSLURL.getSLURLString()));
+ getWindow()->copyTextToClipboard(utf8str_to_wstring(mSLURL));
LLSD args;
- args["SLURL"] = mSLURL.getSLURLString();
+ args["SLURL"] = mSLURL;
LLNotificationsUtil::add("CopySLURL", args);
}