patch from mantis #1632, thanks Melanie
parent
f3f31744ab
commit
037b31f9db
|
@ -1905,7 +1905,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// <param name="vel"></param>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
public virtual SceneObjectGroup RezObject(TaskInventoryItem item, LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param)
|
||||
public virtual SceneObjectGroup RezObject(SceneObjectPart sourcePart, TaskInventoryItem item, LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param)
|
||||
{
|
||||
// Rez object
|
||||
if (item != null)
|
||||
|
@ -1942,15 +1942,18 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
if (rootPart.OwnerID != item.OwnerID)
|
||||
{
|
||||
if ((item.OwnerMask & 8) != 0)
|
||||
if (ExternalChecks.ExternalChecksPropagatePermissions())
|
||||
{
|
||||
foreach (SceneObjectPart part in partList)
|
||||
if ((item.OwnerMask & 8) != 0)
|
||||
{
|
||||
part.EveryoneMask = item.EveryoneMask;
|
||||
part.NextOwnerMask = item.NextOwnerMask;
|
||||
foreach (SceneObjectPart part in partList)
|
||||
{
|
||||
part.EveryoneMask = item.EveryoneMask;
|
||||
part.NextOwnerMask = item.NextOwnerMask;
|
||||
}
|
||||
}
|
||||
group.ApplyNextOwnerPermissions();
|
||||
}
|
||||
group.ApplyNextOwnerPermissions();
|
||||
}
|
||||
|
||||
foreach (SceneObjectPart part in partList)
|
||||
|
@ -1977,6 +1980,12 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
group.Velocity = vel;
|
||||
group.CreateScriptInstances(param, true);
|
||||
rootPart.ScheduleFullUpdate();
|
||||
|
||||
if (!ExternalChecks.ExternalChecksBypassPermissions())
|
||||
{
|
||||
if ((item.OwnerMask & (uint)PermissionMask.Copy) == 0)
|
||||
sourcePart.RemoveInventoryItem(item.ItemID);
|
||||
}
|
||||
return rootPart.ParentGroup;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1993,7 +1993,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
|||
// need the magnitude later
|
||||
float velmag = (float)Util.GetMagnitude(llvel);
|
||||
|
||||
SceneObjectGroup new_group = World.RezObject(inv.Value, llpos, new LLQuaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), llvel, param);
|
||||
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);
|
||||
|
||||
// If either of these are null, then there was an unknown error.
|
||||
if (new_group == null)
|
||||
|
|
|
@ -1844,7 +1844,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
// need the magnitude later
|
||||
float velmag = (float)Util.GetMagnitude(llvel);
|
||||
|
||||
SceneObjectGroup new_group = World.RezObject(inv.Value, llpos, new LLQuaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), llvel, param);
|
||||
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);
|
||||
|
||||
// If either of these are null, then there was an unknown error.
|
||||
if (new_group == null)
|
||||
|
|
Loading…
Reference in New Issue