Fix linked physical daughter prim position update.

avinationmerge
KittoFlora 2009-12-06 21:11:59 +01:00
parent cc8246206d
commit 0d1d437bd3
2 changed files with 14 additions and 5 deletions

View File

@ -513,10 +513,17 @@ namespace OpenSim.Region.Framework.Scenes
{
// If this is a linkset, we don't want the physics engine mucking up our group position here.
PhysicsActor actor = PhysActor;
if (actor != null && _parentID == 0)
if (actor != null)
{
if (_parentID == 0)
{
m_groupPosition = actor.Position;
}
else
{
m_groupPosition = ParentGroup.AbsolutePosition; // KF+Casper Update Child prims too!
}
}
if (IsAttachment)
{
@ -1743,9 +1750,13 @@ namespace OpenSim.Region.Framework.Scenes
Quaternion parentRot = ParentGroup.RootPart.RotationOffset;
Vector3 axPos = OffsetPosition;
axPos *= parentRot;
Vector3 translationOffsetPosition = axPos;
int tx = (int)GroupPosition.X;
int ty = (int)GroupPosition.Y;
int tz = (int)GroupPosition.Z;
return GroupPosition + translationOffsetPosition;
}

View File

@ -1642,7 +1642,6 @@ namespace OpenSim.Region.Framework.Scenes
// Reset sit target.
if (part.GetAvatarOnSitTarget() == UUID)
part.SetAvatarOnSitTarget(UUID.Zero);
m_parentPosition = part.GetWorldPosition();
ControllingClient.SendClearFollowCamProperties(part.ParentUUID);
}
@ -1659,7 +1658,6 @@ namespace OpenSim.Region.Framework.Scenes
}
AbsolutePosition = wso; //KF: Fix stand up.
m_parentPosition = Vector3.Zero;
m_parentID = 0;
part.IsOccupied = false;
SendFullUpdateToAllClients();