Merge branch 'avination'

avinationmerge
Melanie 2012-05-02 00:32:28 +02:00
commit e6e12c2d42
4 changed files with 12 additions and 1 deletions

View File

@ -371,14 +371,19 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
: objectGroup.AbsolutePosition.Y,
objectGroup.AbsolutePosition.Z);
Quaternion inventoryStoredRotation = objectGroup.GroupRotation;
originalPositions[objectGroup.UUID] = objectGroup.AbsolutePosition;
// Restore attachment data after trip through the sim
if (objectGroup.RootPart.AttachPoint > 0)
{
inventoryStoredPosition = objectGroup.RootPart.AttachOffset;
inventoryStoredRotation = objectGroup.RootPart.AttachRotation;
}
objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint;
objectGroup.AbsolutePosition = inventoryStoredPosition;
objectGroup.RootPart.RotationOffset = inventoryStoredRotation;
// Make sure all bits but the ones we want are clear
// on take.
@ -768,6 +773,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
{
g.RootPart.AttachPoint = g.RootPart.Shape.State;
g.RootPart.AttachOffset = g.AbsolutePosition;
g.RootPart.AttachRotation = g.GroupRotation;
g.RootPart.Shape.State = 0;
}
@ -801,6 +807,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml);
g.RootPart.AttachPoint = g.RootPart.Shape.State;
g.RootPart.AttachOffset = g.AbsolutePosition;
g.RootPart.AttachRotation = g.GroupRotation;
g.RootPart.Shape.State = 0;
objlist.Add(g);

View File

@ -3722,7 +3722,7 @@ namespace OpenSim.Region.Framework.Scenes
}
if ((change & ObjectChangeType.Position) != 0)
{
group.AbsolutePosition = data.position;
UpdateGroupPosition(data.position);
updateType = updatetype.groupterse;
}
else

View File

@ -196,6 +196,9 @@ namespace OpenSim.Region.Framework.Scenes
[XmlIgnore]
public Vector3 AttachOffset = Vector3.Zero;
[XmlIgnore]
public Quaternion AttachRotation = Quaternion.Identity;
[XmlIgnore]
public int STATUS_ROTATE_X;

View File

@ -801,6 +801,7 @@ namespace OpenSim.Region.Framework.Scenes
group.RootPart.AttachPoint = group.RootPart.Shape.State;
group.RootPart.AttachOffset = group.AbsolutePosition;
group.RootPart.AttachRotation = group.GroupRotation;
group.ResetIDs();