diff options
Diffstat (limited to '')
5 files changed, 13 insertions, 14 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs index d595185..a23ec4d 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs | |||
@@ -611,7 +611,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
611 | { | 611 | { |
612 | if (obj != null) | 612 | if (obj != null) |
613 | { | 613 | { |
614 | if ((obj is SceneObjectGroup) && ((SceneObjectGroup)obj).RootPart != null && !((SceneObjectGroup)obj).RootPart.IsAttachment) | 614 | if ((obj is SceneObjectGroup) && !((SceneObjectGroup)obj).IsDeleted && !((SceneObjectGroup)obj).IsAttachment) |
615 | { | 615 | { |
616 | m_scene.EventManager.TriggerParcelPrimCountAdd((SceneObjectGroup)obj); | 616 | m_scene.EventManager.TriggerParcelPrimCountAdd((SceneObjectGroup)obj); |
617 | } | 617 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs index b6a0c23..0585213 100644 --- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | |||
@@ -757,10 +757,9 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
757 | SceneObjectPart part = scene.GetSceneObjectPart(objectID); | 757 | SceneObjectPart part = scene.GetSceneObjectPart(objectID); |
758 | if (part.OwnerID != moverID) | 758 | if (part.OwnerID != moverID) |
759 | { | 759 | { |
760 | if (part.ParentGroup != null && | 760 | if (part.ParentGroup != null && !part.ParentGroup.IsDeleted) |
761 | part.ParentGroup.RootPart != null) | ||
762 | { | 761 | { |
763 | if (part.ParentGroup.RootPart.IsAttachment) | 762 | if (part.ParentGroup.IsAttachment) |
764 | return false; | 763 | return false; |
765 | } | 764 | } |
766 | } | 765 | } |
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 1e21a58..2189670 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -1138,7 +1138,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1138 | SceneObjectGroup group = GetGroupByPrim(localID); | 1138 | SceneObjectGroup group = GetGroupByPrim(localID); |
1139 | if (group != null) | 1139 | if (group != null) |
1140 | { | 1140 | { |
1141 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.RootPart.IsAttachment) | 1141 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.IsAttachment) |
1142 | { | 1142 | { |
1143 | group.UpdateSinglePosition(pos, localID); | 1143 | group.UpdateSinglePosition(pos, localID); |
1144 | } | 1144 | } |
@@ -1158,13 +1158,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1158 | { | 1158 | { |
1159 | 1159 | ||
1160 | // Vector3 oldPos = group.AbsolutePosition; | 1160 | // Vector3 oldPos = group.AbsolutePosition; |
1161 | if (group.RootPart.IsAttachment) | 1161 | if (group.IsAttachment) |
1162 | { | 1162 | { |
1163 | group.UpdateGroupPosition(pos); | 1163 | group.UpdateGroupPosition(pos); |
1164 | } | 1164 | } |
1165 | else | 1165 | else |
1166 | { | 1166 | { |
1167 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.RootPart.IsAttachment) | 1167 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.IsAttachment) |
1168 | { | 1168 | { |
1169 | group.UpdateGroupPosition(pos); | 1169 | group.UpdateGroupPosition(pos); |
1170 | } | 1170 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index e9a381d..c9c7bef 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -169,7 +169,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
169 | // | 169 | // |
170 | part.ParentGroup.IsSelected = false; | 170 | part.ParentGroup.IsSelected = false; |
171 | 171 | ||
172 | if (part.ParentGroup.RootPart.IsAttachment) | 172 | if (part.ParentGroup.IsAttachment) |
173 | isAttachment = true; | 173 | isAttachment = true; |
174 | else | 174 | else |
175 | part.ParentGroup.ScheduleGroupForFullUpdate(); | 175 | part.ParentGroup.ScheduleGroupForFullUpdate(); |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index a94e592..6579860 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -225,7 +225,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
225 | { | 225 | { |
226 | Vector3 val = value; | 226 | Vector3 val = value; |
227 | 227 | ||
228 | if ((val.X > 257f || val.X < -1f || val.Y > 257f || val.Y < -1f) && !m_rootPart.IsAttachment) | 228 | if ((val.X > 257f || val.X < -1f || val.Y > 257f || val.Y < -1f) && !IsAttachment) |
229 | { | 229 | { |
230 | m_scene.CrossPrimGroupIntoNewRegion(val, this); | 230 | m_scene.CrossPrimGroupIntoNewRegion(val, this); |
231 | } | 231 | } |
@@ -1212,7 +1212,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1212 | if (HasGroupChanged) | 1212 | if (HasGroupChanged) |
1213 | { | 1213 | { |
1214 | // don't backup while it's selected or you're asking for changes mid stream. | 1214 | // don't backup while it's selected or you're asking for changes mid stream. |
1215 | if ((!IsSelected) && (RootPart != null) && (!m_rootPart.IsAttachment)) | 1215 | if (!(IsSelected || IsDeleted || IsAttachment)) |
1216 | { | 1216 | { |
1217 | m_log.DebugFormat( | 1217 | m_log.DebugFormat( |
1218 | "[SCENE]: Storing {0}, {1} in {2}", | 1218 | "[SCENE]: Storing {0}, {1} in {2}", |
@@ -1271,7 +1271,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1271 | { | 1271 | { |
1272 | if (m_rootPart != null && m_rootPart.UUID == part.UUID) | 1272 | if (m_rootPart != null && m_rootPart.UUID == part.UUID) |
1273 | { | 1273 | { |
1274 | if (m_rootPart.IsAttachment) | 1274 | if (IsAttachment) |
1275 | { | 1275 | { |
1276 | part.SendFullUpdateToClient(remoteClient, m_rootPart.AttachedPos, clientFlags); | 1276 | part.SendFullUpdateToClient(remoteClient, m_rootPart.AttachedPos, clientFlags); |
1277 | } | 1277 | } |
@@ -1441,7 +1441,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1441 | { | 1441 | { |
1442 | if (rootpart.PhysActor != null) | 1442 | if (rootpart.PhysActor != null) |
1443 | { | 1443 | { |
1444 | if (rootpart.IsAttachment) | 1444 | if (IsAttachment) |
1445 | { | 1445 | { |
1446 | ScenePresence avatar = m_scene.GetScenePresence(rootpart.AttachedAvatar); | 1446 | ScenePresence avatar = m_scene.GetScenePresence(rootpart.AttachedAvatar); |
1447 | if (avatar != null) | 1447 | if (avatar != null) |
@@ -1580,7 +1580,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1580 | 1580 | ||
1581 | lock (m_parts) | 1581 | lock (m_parts) |
1582 | { | 1582 | { |
1583 | //if (m_rootPart.m_IsAttachment) | 1583 | //if (IsAttachment) |
1584 | //{ | 1584 | //{ |
1585 | //foreach (SceneObjectPart part in m_parts.Values) | 1585 | //foreach (SceneObjectPart part in m_parts.Values) |
1586 | //{ | 1586 | //{ |
@@ -2437,7 +2437,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2437 | { | 2437 | { |
2438 | if (m_scene.EventManager.TriggerGroupMove(UUID, pos)) | 2438 | if (m_scene.EventManager.TriggerGroupMove(UUID, pos)) |
2439 | { | 2439 | { |
2440 | if (m_rootPart.IsAttachment) | 2440 | if (IsAttachment) |
2441 | { | 2441 | { |
2442 | m_rootPart.AttachedPos = pos; | 2442 | m_rootPart.AttachedPos = pos; |
2443 | } | 2443 | } |