Correct the behaviro of group deeding and llGetOwner() within deeded objects

0.6.6-post-fixes
Melanie Thielker 2009-06-21 19:49:11 +00:00
parent 04444d408f
commit bc1dce071a
2 changed files with 15 additions and 3 deletions

View File

@ -3295,7 +3295,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock();
objPropDB.RequestFlags = RequestFlags;
objPropDB.ObjectID = ObjectUUID;
objPropDB.OwnerID = OwnerID;
if (OwnerID == GroupID)
objPropDB.OwnerID = UUID.Zero;
else
objPropDB.OwnerID = OwnerID;
objPropDB.GroupID = GroupID;
objPropDB.BaseMask = BaseMask;
objPropDB.OwnerMask = OwnerMask;
@ -3340,7 +3343,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// proper.ObjectData[0].LastOwnerID = UUID.Zero;
proper.ObjectData[0].ObjectID = ObjectUUID;
proper.ObjectData[0].OwnerID = OwnerUUID;
if (OwnerUUID == GroupUUID)
proper.ObjectData[0].OwnerID = UUID.Zero;
else
proper.ObjectData[0].OwnerID = OwnerUUID;
proper.ObjectData[0].TouchName = LLUtil.StringToPacketBytes(TouchTitle);
proper.ObjectData[0].TextureID = TextureID;
proper.ObjectData[0].SitName = LLUtil.StringToPacketBytes(SitTitle);

View File

@ -2701,7 +2701,7 @@ namespace OpenSim.Region.Framework.Scenes
foreach (SceneObjectGroup sog in groups)
{
if (ownerID != null)
if (ownerID != UUID.Zero)
{
sog.SetOwnerId(ownerID);
sog.SetGroup(groupID, remoteClient);
@ -2727,6 +2727,12 @@ namespace OpenSim.Region.Framework.Scenes
sog.ApplyNextOwnerPermissions();
}
}
foreach (uint localID in localIDs)
{
SceneObjectPart part = GetSceneObjectPart(localID);
part.GetProperties(remoteClient);
}
}
}
}