From d34a46eae193d961bd48562bc28747fc010db119 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Fri, 27 Jun 2008 14:39:21 +0000 Subject: * refactor: Move responsibility for deciding whether a group should be repersisted on to callers of SceneObjectGroup.SendGroupTeruseUpdate() --- OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs') diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index dd9c706..a7c54b3 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -1588,8 +1588,6 @@ namespace OpenSim.Region.Environment.Scenes /// public void SendGroupTerseUpdate() { - HasGroupChanged = true; - lock (m_parts) { foreach (SceneObjectPart part in m_parts.Values) @@ -2179,7 +2177,7 @@ namespace OpenSim.Region.Environment.Scenes #region Position /// - /// + /// Move this scene object /// /// public void UpdateGroupPosition(LLVector3 pos) @@ -2192,20 +2190,24 @@ namespace OpenSim.Region.Environment.Scenes } AbsolutePosition = pos; + + HasGroupChanged = true; } + //we need to do a terse update even if the move wasn't allowed // so that the position is reset in the client (the object snaps back) ScheduleGroupForTerseUpdate(); } /// - /// + /// Update the position of a single part of this scene object /// /// /// public void UpdateSinglePosition(LLVector3 pos, uint localID) { SceneObjectPart part = GetChildPart(localID); + if (part != null) { if (part.UUID == m_rootPart.UUID) @@ -2216,6 +2218,8 @@ namespace OpenSim.Region.Environment.Scenes { part.UpdateOffSet(pos); } + + HasGroupChanged = true; } } -- cgit v1.1