diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index be8a6c9..b8bd9b4 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1241,6 +1241,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1241 | { | 1241 | { |
1242 | lock (m_targets) | 1242 | lock (m_targets) |
1243 | m_targets.Clear(); | 1243 | m_targets.Clear(); |
1244 | m_scene.RemoveGroupTarget(this); | ||
1244 | } | 1245 | } |
1245 | 1246 | ||
1246 | ScheduleGroupForFullUpdate(); | 1247 | ScheduleGroupForFullUpdate(); |
@@ -1871,12 +1872,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1871 | m_rootPart.UpdateFlag = 1; | 1872 | m_rootPart.UpdateFlag = 1; |
1872 | lastPhysGroupPos = AbsolutePosition; | 1873 | lastPhysGroupPos = AbsolutePosition; |
1873 | } | 1874 | } |
1874 | //foreach (SceneObjectPart part in m_parts.Values) | ||
1875 | //{ | ||
1876 | //if (part.UpdateFlag == 0) part.UpdateFlag = 1; | ||
1877 | //} | ||
1878 | |||
1879 | checkAtTargets(); | ||
1880 | 1875 | ||
1881 | if (UsePhysics && ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1) | 1876 | if (UsePhysics && ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1) |
1882 | || (Math.Abs(lastPhysGroupRot.X - GroupRotation.X) > 0.1) | 1877 | || (Math.Abs(lastPhysGroupRot.X - GroupRotation.X) > 0.1) |
@@ -3126,6 +3121,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3126 | { | 3121 | { |
3127 | m_targets.Add(handle, waypoint); | 3122 | m_targets.Add(handle, waypoint); |
3128 | } | 3123 | } |
3124 | m_scene.AddGroupTarget(this); | ||
3129 | return (int)handle; | 3125 | return (int)handle; |
3130 | } | 3126 | } |
3131 | 3127 | ||
@@ -3133,12 +3129,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
3133 | { | 3129 | { |
3134 | lock (m_targets) | 3130 | lock (m_targets) |
3135 | { | 3131 | { |
3136 | if (m_targets.ContainsKey((uint)handle)) | 3132 | m_targets.Remove((uint)handle); |
3137 | m_targets.Remove((uint)handle); | 3133 | if (m_targets.Count == 0) |
3134 | m_scene.RemoveGroupTarget(this); | ||
3138 | } | 3135 | } |
3139 | } | 3136 | } |
3140 | 3137 | ||
3141 | private void checkAtTargets() | 3138 | public void checkAtTargets() |
3142 | { | 3139 | { |
3143 | if (m_scriptListens_atTarget || m_scriptListens_notAtTarget) | 3140 | if (m_scriptListens_atTarget || m_scriptListens_notAtTarget) |
3144 | { | 3141 | { |