From f9fdf26ec37f9f7e0478deb6d9bfe3a3efcbc39e Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 22 Jul 2014 15:13:37 +0100 Subject: [PATCH] make ResetChildPrimPhysicsPositions only do what it is supposed to do and not what AbsolutePosition does --- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 48aacfe6f0..c7f4684a4c 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -1840,11 +1840,21 @@ namespace OpenSim.Region.Framework.Scenes // Setting this SOG's absolute position also loops through and sets the positions // of the SOP's in this SOG's linkset. This has the side affect of making sure // the physics world matches the simulated world. - AbsolutePosition = AbsolutePosition; // could someone in the know please explain how this works? + // AbsolutePosition = AbsolutePosition; // could someone in the know please explain how this works? // teravus: AbsolutePosition is NOT a normal property! // the code in the getter of AbsolutePosition is significantly different then the code in the setter! // jhurliman: Then why is it a property instead of two methods? + + // do only what is supposed to do + Vector3 groupPosition = m_rootPart.GroupPosition; + SceneObjectPart[] parts = m_parts.GetArray(); + + foreach (SceneObjectPart part in parts) + { + if (part != m_rootPart) + part.GroupPosition = groupPosition; + } } public UUID GetPartsFullID(uint localID)