diff options
author | Melanie | 2013-01-21 01:47:54 +0100 |
---|---|---|
committer | Melanie | 2013-01-21 01:47:54 +0100 |
commit | a291e6be93ada150e35e141dbeb37a31d580f87d (patch) | |
tree | 62b50391285cd53ecfdee0ca7034306f5ceb9295 /OpenSim/Region/Framework | |
parent | Prevent scene from holding references to SOGs with attargets beyond SOG deletion (diff) | |
download | opensim-SC-a291e6be93ada150e35e141dbeb37a31d580f87d.zip opensim-SC-a291e6be93ada150e35e141dbeb37a31d580f87d.tar.gz opensim-SC-a291e6be93ada150e35e141dbeb37a31d580f87d.tar.bz2 opensim-SC-a291e6be93ada150e35e141dbeb37a31d580f87d.tar.xz |
Limit active at targets to 8
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 8 |
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); |