aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs29
1 files changed, 26 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 4c69930..69ef9b4 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -948,7 +948,18 @@ namespace OpenSim.Region.Environment.Scenes
948 public void LinkToGroup(SceneObjectGroup objectGroup) 948 public void LinkToGroup(SceneObjectGroup objectGroup)
949 { 949 {
950 if (objectGroup.RootPart.UpdateFlag > 0) 950 if (objectGroup.RootPart.UpdateFlag > 0)
951 {
952 // I've never actually seen this happen, though I think it's theoretically possible
953 m_log.ErrorFormat(
954 "[SCENE OBJECT GROUP]: Aborted linking {0}, {1} to {2}, {3} as it has yet to finish delinking",
955 objectGroup.RootPart.Name, objectGroup.RootPart.UUID, RootPart.Name, RootPart.UUID);
956
951 return; 957 return;
958 }
959
960// m_log.DebugFormat(
961// "[SCENE OBJECT GROUP]: Linking group with root part {0}, {1} to group with root part {2}, {3}",
962// objectGroup.RootPart.Name, objectGroup.RootPart.UUID, RootPart.Name, RootPart.UUID);
952 963
953 SceneObjectPart linkPart = objectGroup.m_rootPart; 964 SceneObjectPart linkPart = objectGroup.m_rootPart;
954 965
@@ -1017,13 +1028,25 @@ namespace OpenSim.Region.Environment.Scenes
1017 /// <param name="partID"></param> 1028 /// <param name="partID"></param>
1018 public void DelinkFromGroup(uint partID) 1029 public void DelinkFromGroup(uint partID)
1019 { 1030 {
1031 // Don't try and update if we're already in the middle of updating
1020 if (RootPart.UpdateFlag > 0) 1032 if (RootPart.UpdateFlag > 0)
1033 {
1034 // I've never actually seen this happen, though I think it's theoretically possible
1035 m_log.WarnFormat(
1036 "[SCENE OBJECT GROUP]: Aborted delink update for {0}, {1} as it has yet to finish linking",
1037 RootPart.Name, RootPart.UUID);
1038
1021 return; 1039 return;
1040 }
1022 1041
1023 SceneObjectPart linkPart = GetChildPart(partID); 1042 SceneObjectPart linkPart = GetChildPart(partID);
1024 1043
1025 if (null != linkPart) 1044 if (null != linkPart)
1026 { 1045 {
1046// m_log.DebugFormat(
1047// "[SCENE OBJECT GROUP]: Delinking part {0}, {1} from group with root part {2}, {3}",
1048// linkPart.Name, linkPart.UUID, RootPart.Name, RootPart.UUID);
1049
1027 LLQuaternion worldRot = linkPart.GetWorldRotation(); 1050 LLQuaternion worldRot = linkPart.GetWorldRotation();
1028 1051
1029 // Remove the part from this object 1052 // Remove the part from this object
@@ -1645,7 +1668,7 @@ namespace OpenSim.Region.Environment.Scenes
1645 } 1668 }
1646 1669
1647 /// <summary> 1670 /// <summary>
1648 /// 1671 /// Send a full update to the client for the given part
1649 /// </summary> 1672 /// </summary>
1650 /// <param name="remoteClient"></param> 1673 /// <param name="remoteClient"></param>
1651 /// <param name="part"></param> 1674 /// <param name="part"></param>
@@ -1662,7 +1685,7 @@ namespace OpenSim.Region.Environment.Scenes
1662 } 1685 }
1663 1686
1664 /// <summary> 1687 /// <summary>
1665 /// 1688 /// Send a terse update to the client for the given part
1666 /// </summary> 1689 /// </summary>
1667 /// <param name="remoteClient"></param> 1690 /// <param name="remoteClient"></param>
1668 /// <param name="part"></param> 1691 /// <param name="part"></param>