Prevent linking objects while they are deeded. On unlinking deeded objects,
set LastOwnerID properly so the parts cannot be transferred, circumventing no trans permsavinationmerge
parent
e9055cec17
commit
a081df75e2
|
@ -1743,6 +1743,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
SceneObjectGroup parentGroup = root.ParentGroup;
|
SceneObjectGroup parentGroup = root.ParentGroup;
|
||||||
if (parentGroup == null) return;
|
if (parentGroup == null) return;
|
||||||
|
|
||||||
|
// Cowardly refuse to link to a group owned root
|
||||||
|
if (parentGroup.OwnerID == parentGroup.GroupID)
|
||||||
|
return;
|
||||||
|
|
||||||
Monitor.Enter(m_updateLock);
|
Monitor.Enter(m_updateLock);
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -1770,11 +1775,14 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
foreach (SceneObjectGroup child in childGroups)
|
foreach (SceneObjectGroup child in childGroups)
|
||||||
{
|
{
|
||||||
parentGroup.LinkToGroup(child);
|
if (parentGroup.OwnerID == child.OwnerID)
|
||||||
|
{
|
||||||
|
parentGroup.LinkToGroup(child);
|
||||||
|
|
||||||
// this is here so physics gets updated!
|
// this is here so physics gets updated!
|
||||||
// Don't remove! Bad juju! Stay away! or fix physics!
|
// Don't remove! Bad juju! Stay away! or fix physics!
|
||||||
child.AbsolutePosition = child.AbsolutePosition;
|
child.AbsolutePosition = child.AbsolutePosition;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// We need to explicitly resend the newly link prim's object properties since no other actions
|
// We need to explicitly resend the newly link prim's object properties since no other actions
|
||||||
|
@ -1819,9 +1827,14 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (part.ParentGroup.PrimCount != 1) // Skip single
|
if (part.ParentGroup.PrimCount != 1) // Skip single
|
||||||
{
|
{
|
||||||
if (part.LinkNum < 2) // Root
|
if (part.LinkNum < 2) // Root
|
||||||
|
{
|
||||||
rootParts.Add(part);
|
rootParts.Add(part);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
part.LastOwnerID = part.ParentGroup.RootPart.LastOwnerID;
|
||||||
childParts.Add(part);
|
childParts.Add(part);
|
||||||
|
}
|
||||||
|
|
||||||
SceneObjectGroup group = part.ParentGroup;
|
SceneObjectGroup group = part.ParentGroup;
|
||||||
if (!affectedGroups.Contains(group))
|
if (!affectedGroups.Contains(group))
|
||||||
|
|
Loading…
Reference in New Issue