aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie2013-01-21 01:47:54 +0100
committerMelanie2013-01-21 01:47:54 +0100
commita291e6be93ada150e35e141dbeb37a31d580f87d (patch)
tree62b50391285cd53ecfdee0ca7034306f5ceb9295 /OpenSim/Region
parentPrevent scene from holding references to SOGs with attargets beyond SOG deletion (diff)
downloadopensim-SC_OLD-a291e6be93ada150e35e141dbeb37a31d580f87d.zip
opensim-SC_OLD-a291e6be93ada150e35e141dbeb37a31d580f87d.tar.gz
opensim-SC_OLD-a291e6be93ada150e35e141dbeb37a31d580f87d.tar.bz2
opensim-SC_OLD-a291e6be93ada150e35e141dbeb37a31d580f87d.tar.xz
Limit active at targets to 8
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index b474979..17f5a0f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -320,8 +320,8 @@ namespace OpenSim.Region.Framework.Scenes
320 protected SceneObjectPart m_rootPart; 320 protected SceneObjectPart m_rootPart;
321 // private Dictionary<UUID, scriptEvents> m_scriptEvents = new Dictionary<UUID, scriptEvents>(); 321 // private Dictionary<UUID, scriptEvents> m_scriptEvents = new Dictionary<UUID, scriptEvents>();
322 322
323 private Dictionary<uint, scriptPosTarget> m_targets = new Dictionary<uint, scriptPosTarget>(); 323 private SortedDictionary<uint, scriptPosTarget> m_targets = new SortedDictionary<uint, scriptPosTarget>();
324 private Dictionary<uint, scriptRotTarget> m_rotTargets = new Dictionary<uint, scriptRotTarget>(); 324 private SortedDictionary<uint, scriptRotTarget> m_rotTargets = new SortedDictionary<uint, scriptRotTarget>();
325 325
326 private bool m_scriptListens_atTarget; 326 private bool m_scriptListens_atTarget;
327 private bool m_scriptListens_notAtTarget; 327 private bool m_scriptListens_notAtTarget;
@@ -4112,6 +4112,8 @@ namespace OpenSim.Region.Framework.Scenes
4112 waypoint.handle = handle; 4112 waypoint.handle = handle;
4113 lock (m_rotTargets) 4113 lock (m_rotTargets)
4114 { 4114 {
4115 if (m_rotTargets.Count >= 8)
4116 m_rotTargets.Remove(m_rotTargets.ElementAt(0).Key);
4115 m_rotTargets.Add(handle, waypoint); 4117 m_rotTargets.Add(handle, waypoint);
4116 } 4118 }
4117 m_scene.AddGroupTarget(this); 4119 m_scene.AddGroupTarget(this);
@@ -4137,6 +4139,8 @@ namespace OpenSim.Region.Framework.Scenes
4137 waypoint.handle = handle; 4139 waypoint.handle = handle;
4138 lock (m_targets) 4140 lock (m_targets)
4139 { 4141 {
4142 if (m_targets.Count >= 8)
4143 m_targets.Remove(m_targets.ElementAt(0).Key);
4140 m_targets.Add(handle, waypoint); 4144 m_targets.Add(handle, waypoint);
4141 } 4145 }
4142 m_scene.AddGroupTarget(this); 4146 m_scene.AddGroupTarget(this);