aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorCharles Krinke2009-07-09 16:53:55 +0000
committerCharles Krinke2009-07-09 16:53:55 +0000
commitdc0a19f7370b10ea5affd55d03b05a3aa2748839 (patch)
tree17e4fd4648d278b1cca2cfa26c6815bf24c0724b
parentThank you, StrawberryFride, for a patch to fix MSSQL parameter naming. (diff)
downloadopensim-SC_OLD-dc0a19f7370b10ea5affd55d03b05a3aa2748839.zip
opensim-SC_OLD-dc0a19f7370b10ea5affd55d03b05a3aa2748839.tar.gz
opensim-SC_OLD-dc0a19f7370b10ea5affd55d03b05a3aa2748839.tar.bz2
opensim-SC_OLD-dc0a19f7370b10ea5affd55d03b05a3aa2748839.tar.xz
Thank you kindly, Godfrey, for a patch that:
The vector parameter to llSetPos() specifies an absolute position for an unlinked prim or the root prim of a linkset; however, when the function is used by a child prim, the vector specifies a relative offset from the root prim. The changed introduced in llSetPos() treats this value as an absolute position in all cases, which has the unintended effect of mangling the position of child prims.
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs6
1 files changed, 4 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 1d71da3..15188c5 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -1859,15 +1859,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1859 float ground = World.GetGroundHeight((float)targetPos.x, (float)targetPos.y); 1859 float ground = World.GetGroundHeight((float)targetPos.x, (float)targetPos.y);
1860 bool disable_underground_movement = m_ScriptEngine.Config.GetBoolean("DisableUndergroundMovement", true); 1860 bool disable_underground_movement = m_ScriptEngine.Config.GetBoolean("DisableUndergroundMovement", true);
1861 1861
1862 if ((targetPos.z < ground) && disable_underground_movement)
1863 targetPos.z = ground;
1864 1862
1865 if (part.ParentGroup == null) 1863 if (part.ParentGroup == null)
1866 { 1864 {
1865 if ((targetPos.z < ground) && disable_underground_movement)
1866 targetPos.z = ground;
1867 part.UpdateOffSet(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z)); 1867 part.UpdateOffSet(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z));
1868 } 1868 }
1869 else if (part.ParentGroup.RootPart == part) 1869 else if (part.ParentGroup.RootPart == part)
1870 { 1870 {
1871 if ((targetPos.z < ground) && disable_underground_movement)
1872 targetPos.z = ground;
1871 SceneObjectGroup parent = part.ParentGroup; 1873 SceneObjectGroup parent = part.ParentGroup;
1872 parent.UpdateGroupPosition(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z)); 1874 parent.UpdateGroupPosition(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z));
1873 } 1875 }