diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 21 |
1 files changed, 15 insertions, 6 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 | } |