diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 0ea4e09..02a8935 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1862,11 +1862,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
1862 | /// <summary> | 1862 | /// <summary> |
1863 | /// Delete this group from its scene. | 1863 | /// Delete this group from its scene. |
1864 | /// </summary> | 1864 | /// </summary> |
1865 | /// | 1865 | /// <remarks> |
1866 | /// This only handles the in-world consequences of deletion (e.g. any avatars sitting on it are forcibly stood | 1866 | /// This only handles the in-world consequences of deletion (e.g. any avatars sitting on it are forcibly stood |
1867 | /// up and all avatars receive notification of its removal. Removal of the scene object from database backup | 1867 | /// up and all avatars receive notification of its removal. Removal of the scene object from database backup |
1868 | /// must be handled by the caller. | 1868 | /// must be handled by the caller. |
1869 | /// | 1869 | /// </remarks> |
1870 | /// <param name="silent">If true then deletion is not broadcast to clients</param> | 1870 | /// <param name="silent">If true then deletion is not broadcast to clients</param> |
1871 | public void DeleteGroupFromScene(bool silent) | 1871 | public void DeleteGroupFromScene(bool silent) |
1872 | { | 1872 | { |
@@ -1880,10 +1880,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
1880 | { | 1880 | { |
1881 | SceneObjectPart part = parts[i]; | 1881 | SceneObjectPart part = parts[i]; |
1882 | 1882 | ||
1883 | Scene.ForEachRootScenePresence(delegate(ScenePresence avatar) | 1883 | Scene.ForEachScenePresence(sp => |
1884 | { | 1884 | { |
1885 | if (avatar.ParentID == LocalId) | 1885 | if (!sp.IsChildAgent && sp.ParentID == LocalId) |
1886 | avatar.StandUp(); | 1886 | sp.StandUp(); |
1887 | 1887 | ||
1888 | if (!silent) | 1888 | if (!silent) |
1889 | { | 1889 | { |
@@ -1891,9 +1891,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1891 | if (part == m_rootPart) | 1891 | if (part == m_rootPart) |
1892 | { | 1892 | { |
1893 | if (!IsAttachment | 1893 | if (!IsAttachment |
1894 | || AttachedAvatar == avatar.ControllingClient.AgentId | 1894 | || AttachedAvatar == sp.UUID |
1895 | || !HasPrivateAttachmentPoint) | 1895 | || !HasPrivateAttachmentPoint) |
1896 | avatar.ControllingClient.SendKillObject(m_regionHandle, new List<uint> { part.LocalId }); | 1896 | sp.ControllingClient.SendKillObject(new List<uint> { part.LocalId }); |
1897 | } | 1897 | } |
1898 | } | 1898 | } |
1899 | }); | 1899 | }); |
@@ -2202,7 +2202,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2202 | if (!userExposed) | 2202 | if (!userExposed) |
2203 | dupe.IsAttachment = true; | 2203 | dupe.IsAttachment = true; |
2204 | 2204 | ||
2205 | dupe.AbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); | 2205 | dupe.m_sittingAvatars = new List<UUID>(); |
2206 | 2206 | ||
2207 | if (!userExposed) | 2207 | if (!userExposed) |
2208 | { | 2208 | { |