aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMW2008-06-29 12:33:45 +0000
committerMW2008-06-29 12:33:45 +0000
commit037b31f9dbf446ffb770ed465e9c4b46600f43fa (patch)
tree5768c828def615418a234d4f99852f8d6982d7d1 /OpenSim/Region
parentpatch and files from mantis #1630, Thanks Melanie (diff)
downloadopensim-SC-037b31f9dbf446ffb770ed465e9c4b46600f43fa.zip
opensim-SC-037b31f9dbf446ffb770ed465e9c4b46600f43fa.tar.gz
opensim-SC-037b31f9dbf446ffb770ed465e9c4b46600f43fa.tar.bz2
opensim-SC-037b31f9dbf446ffb770ed465e9c4b46600f43fa.tar.xz
patch from mantis #1632, thanks Melanie
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs21
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs2
3 files changed, 17 insertions, 8 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index d134ea3..2b3ddaa 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1905,7 +1905,7 @@ namespace OpenSim.Region.Environment.Scenes
1905 /// <param name="vel"></param> 1905 /// <param name="vel"></param>
1906 /// <param name="param"></param> 1906 /// <param name="param"></param>
1907 /// <returns></returns> 1907 /// <returns></returns>
1908 public virtual SceneObjectGroup RezObject(TaskInventoryItem item, LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param) 1908 public virtual SceneObjectGroup RezObject(SceneObjectPart sourcePart, TaskInventoryItem item, LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param)
1909 { 1909 {
1910 // Rez object 1910 // Rez object
1911 if (item != null) 1911 if (item != null)
@@ -1942,15 +1942,18 @@ namespace OpenSim.Region.Environment.Scenes
1942 1942
1943 if (rootPart.OwnerID != item.OwnerID) 1943 if (rootPart.OwnerID != item.OwnerID)
1944 { 1944 {
1945 if ((item.OwnerMask & 8) != 0) 1945 if (ExternalChecks.ExternalChecksPropagatePermissions())
1946 { 1946 {
1947 foreach (SceneObjectPart part in partList) 1947 if ((item.OwnerMask & 8) != 0)
1948 { 1948 {
1949 part.EveryoneMask = item.EveryoneMask; 1949 foreach (SceneObjectPart part in partList)
1950 part.NextOwnerMask = item.NextOwnerMask; 1950 {
1951 part.EveryoneMask = item.EveryoneMask;
1952 part.NextOwnerMask = item.NextOwnerMask;
1953 }
1951 } 1954 }
1955 group.ApplyNextOwnerPermissions();
1952 } 1956 }
1953 group.ApplyNextOwnerPermissions();
1954 } 1957 }
1955 1958
1956 foreach (SceneObjectPart part in partList) 1959 foreach (SceneObjectPart part in partList)
@@ -1977,6 +1980,12 @@ namespace OpenSim.Region.Environment.Scenes
1977 group.Velocity = vel; 1980 group.Velocity = vel;
1978 group.CreateScriptInstances(param, true); 1981 group.CreateScriptInstances(param, true);
1979 rootPart.ScheduleFullUpdate(); 1982 rootPart.ScheduleFullUpdate();
1983
1984 if (!ExternalChecks.ExternalChecksBypassPermissions())
1985 {
1986 if ((item.OwnerMask & (uint)PermissionMask.Copy) == 0)
1987 sourcePart.RemoveInventoryItem(item.ItemID);
1988 }
1980 return rootPart.ParentGroup; 1989 return rootPart.ParentGroup;
1981 } 1990 }
1982 } 1991 }
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 69235c4..b65174e 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -1993,7 +1993,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1993 // need the magnitude later 1993 // need the magnitude later
1994 float velmag = (float)Util.GetMagnitude(llvel); 1994 float velmag = (float)Util.GetMagnitude(llvel);
1995 1995
1996 SceneObjectGroup new_group = World.RezObject(inv.Value, llpos, new LLQuaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), llvel, param); 1996 SceneObjectGroup new_group = World.RezObject(m_host, inv.Value, llpos, new LLQuaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), llvel, param);
1997 1997
1998 // If either of these are null, then there was an unknown error. 1998 // If either of these are null, then there was an unknown error.
1999 if (new_group == null) 1999 if (new_group == null)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 0320857..235b657 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -1844,7 +1844,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1844 // need the magnitude later 1844 // need the magnitude later
1845 float velmag = (float)Util.GetMagnitude(llvel); 1845 float velmag = (float)Util.GetMagnitude(llvel);
1846 1846
1847 SceneObjectGroup new_group = World.RezObject(inv.Value, llpos, new LLQuaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), llvel, param); 1847 SceneObjectGroup new_group = World.RezObject(m_host, inv.Value, llpos, new LLQuaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), llvel, param);
1848 1848
1849 // If either of these are null, then there was an unknown error. 1849 // If either of these are null, then there was an unknown error.
1850 if (new_group == null) 1850 if (new_group == null)