diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index a5b61469e..0ad9ac90e 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -696,10 +696,10 @@ Value 0 - LiruLegacyOutfitStoreObjChanges + LiruLegacyLandmarks Comment - While true, automatic detach is performed upon all copyable attachments just before legacy outfit creation to preserve any modifications to them. As a last resort, setting this false allows creating a legacy outfit that won't save changes made to copyable attachments since wearing them or login. + When creating a new landmark, the legacy format (parcel name, region name (x, y, z)) will be used. Persist 1 Type @@ -707,10 +707,10 @@ Value 1 - LiruLegacyLandmarks + LiruLegacyOutfitStoreObjChanges Comment - When creating a new landmark, the legacy format (parcel name, region name (x, y, z)) will be used. + While true, automatic detach is performed upon all copyable attachments just before legacy outfit creation to preserve any modifications to them. As a last resort, setting this false allows creating a legacy outfit that won't save changes made to copyable attachments since wearing them or login. Persist 1 Type diff --git a/indra/newview/chatbar_as_cmdline.cpp b/indra/newview/chatbar_as_cmdline.cpp index 5b9d7817a..522be26a0 100644 --- a/indra/newview/chatbar_as_cmdline.cpp +++ b/indra/newview/chatbar_as_cmdline.cpp @@ -371,21 +371,16 @@ bool cmd_line_chat(std::string revised_text, EChatType type) { if (revised_text.length() > command.length() + 1) //Typing this command with no argument was causing a crash. -Madgeek { - 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] ); - std::string region_name = LLWeb::escapeURL(revised_text.substr(command.length()+1)); + LLSLURL slurl(LLWeb::escapeURL(revised_text.substr(command.length()+1))); - if(!sAscentCmdLineMapToKeepPos) + // The user wants to keep their position between MapTos and they have not passed a position (position is defaulted) + if (sAscentCmdLineMapToKeepPos && slurl.getPosition() == LLVector3(REGION_WIDTH_METERS/2, REGION_WIDTH_METERS/2, 0)) { - agent_x = 128; - agent_y = 128; - agent_z = 0; + LLVector3d agentPos = gAgent.getPositionGlobal(); + slurl = LLSLURL(slurl.getRegion(), LLVector3(fmod(agentPos.mdV[VX], (F64)REGION_WIDTH_METERS), fmod(agentPos.mdV[VY], (F64)REGION_WIDTH_METERS), agentPos.mdV[VZ])); } - LLSLURL slurl(region_name,LLVector3(agent_x,agent_y,agent_z)); - LLUrlAction::teleportToLocation(std::string("secondlife:///app/teleport/")+slurl.getLocationString()); + LLUrlAction::teleportToLocation(LLWeb::escapeURL(std::string("secondlife:///app/teleport/")+slurl.getLocationString())); } return false; }