aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorDan Lake2011-11-03 17:06:08 -0700
committerDan Lake2011-11-03 17:06:08 -0700
commit94dc7d07ebc22ce0e0d9b77e91538ddc90799bee (patch)
tree0d2ffc74fa937af0ca5d9e6fb2fafeac2c37dd61 /OpenSim/Region
parentremove the pointless check of the face texture struct against null in Bot.Obj... (diff)
downloadopensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.zip
opensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.tar.gz
opensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.tar.bz2
opensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.tar.xz
Renamed ForEachRootScenePresence to ForEachAvatar. Cleaned up calls to
the 3 iteration functions so more of them are using the correct iteration for the action they are performing. The 3 iterators that seem to fit all actions within OpenSim at this time are: ForEachAvatar: Perform an action on all avatars (root presences) ForEachClient: Perform an action on all clients (root or child clients) ForEachRootClient: Perform an action on all clients that have an avatar There are still a dozen places or so calling the old ForEachScenePresence that will take a little more refactoring to eliminate.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs14
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs8
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs10
-rw-r--r--OpenSim/Region/CoreModules/LightShare/LightShareModule.cs49
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs10
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Sound/SoundModule.cs4
-rw-r--r--OpenSim/Region/CoreModules/World/Sun/SunModule.cs4
-rw-r--r--OpenSim/Region/CoreModules/World/Wind/WindModule.cs4
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs76
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneManager.cs12
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs20
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs6
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs13
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs2
-rw-r--r--OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs19
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs4
22 files changed, 120 insertions, 153 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
index f5cc4c3..783a03b 100644
--- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
@@ -228,7 +228,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
228 228
229 foreach (Scene s in m_scenes) 229 foreach (Scene s in m_scenes)
230 { 230 {
231 s.ForEachScenePresence( 231 // This should use ForEachClient, but clients don't have a position.
232 // If camera is moved into client, then camera position can be used
233 s.ForEachAvatar(
232 delegate(ScenePresence presence) 234 delegate(ScenePresence presence)
233 { 235 {
234 if (TrySendChatMessage(presence, fromPos, regionPos, fromID, fromName, c.Type, message, sourceType)) 236 if (TrySendChatMessage(presence, fromPos, regionPos, fromID, fromName, c.Type, message, sourceType))
@@ -279,11 +281,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
279 281
280 HashSet<UUID> receiverIDs = new HashSet<UUID>(); 282 HashSet<UUID> receiverIDs = new HashSet<UUID>();
281 283
282 ((Scene)c.Scene).ForEachRootScenePresence( 284 ((Scene)c.Scene).ForEachRootClient(
283 delegate(ScenePresence presence) 285 delegate(IClientAPI client)
284 { 286 {
285 IClientAPI client = presence.ControllingClient;
286
287 // don't forward SayOwner chat from objects to 287 // don't forward SayOwner chat from objects to
288 // non-owner agents 288 // non-owner agents
289 if ((c.Type == ChatTypeEnum.Owner) && 289 if ((c.Type == ChatTypeEnum.Owner) &&
@@ -292,8 +292,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
292 return; 292 return;
293 293
294 client.SendChatMessage(c.Message, (byte)cType, CenterOfRegion, fromName, fromID, 294 client.SendChatMessage(c.Message, (byte)cType, CenterOfRegion, fromName, fromID,
295 (byte)sourceType, (byte)ChatAudibleLevel.Fully); 295 (byte)sourceType, (byte)ChatAudibleLevel.Fully);
296 receiverIDs.Add(presence.UUID); 296 receiverIDs.Add(client.AgentId);
297 }); 297 });
298 298
299 (c.Scene as Scene).EventManager.TriggerOnChatToClients( 299 (c.Scene as Scene).EventManager.TriggerOnChatToClients(
diff --git a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
index 3ce446b..ffe7718 100644
--- a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
@@ -98,9 +98,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
98 98
99 public void SendGeneralAlert(string message) 99 public void SendGeneralAlert(string message)
100 { 100 {
101 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) 101 m_scene.ForEachRootClient(delegate(IClientAPI client)
102 { 102 {
103 presence.ControllingClient.SendAlertMessage(message); 103 client.SendAlertMessage(message);
104 }); 104 });
105 } 105 }
106 106
@@ -162,9 +162,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
162 public void SendNotificationToUsersInRegion( 162 public void SendNotificationToUsersInRegion(
163 UUID fromAvatarID, string fromAvatarName, string message) 163 UUID fromAvatarID, string fromAvatarName, string message)
164 { 164 {
165 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) 165 m_scene.ForEachRootClient(delegate(IClientAPI client)
166 { 166 {
167 presence.ControllingClient.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); 167 client.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message);
168 }); 168 });
169 } 169 }
170 170
diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
index 562c3b1..2e3312f 100644
--- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
@@ -140,14 +140,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
140 // This is a bit crude. It seems the client will be null before it actually stops the thread 140 // This is a bit crude. It seems the client will be null before it actually stops the thread
141 // The thread will kill itself eventually :/ 141 // The thread will kill itself eventually :/
142 // Is there another way to make sure *all* clients get this 'inter region' message? 142 // Is there another way to make sure *all* clients get this 'inter region' message?
143 m_scene.ForEachRootScenePresence( 143 m_scene.ForEachRootClient(
144 delegate(ScenePresence p) 144 delegate(IClientAPI client)
145 { 145 {
146 if (p.UUID != godID) 146 if (client.AgentId != godID)
147 { 147 {
148 // Possibly this should really be p.Close() though that method doesn't send a close 148 client.Close();
149 // to the client
150 p.ControllingClient.Close();
151 } 149 }
152 } 150 }
153 ); 151 );
diff --git a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs
index 2de8d7a..cabbd31 100644
--- a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs
+++ b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs
@@ -145,57 +145,38 @@ namespace OpenSim.Region.CoreModules.World.LightShare
145 param.Add(mBlock); 145 param.Add(mBlock);
146 return param; 146 return param;
147 } 147 }
148 public void SendProfileToClient(ScenePresence presence) 148
149 public void SendProfileToClient(IClientAPI client)
149 { 150 {
150 IClientAPI client = presence.ControllingClient; 151 SendProfileToClient(client, m_scene.RegionInfo.WindlightSettings);
151 if (m_enableWindlight && m_scene.RegionInfo.WindlightSettings.valid)
152 {
153 if (presence.IsChildAgent == false)
154 {
155 List<byte[]> param = compileWindlightSettings(m_scene.RegionInfo.WindlightSettings);
156 client.SendGenericMessage("Windlight", param);
157 }
158 }
159 else
160 {
161 //We probably don't want to spam chat with this.. probably
162 //m_log.Debug("[WINDLIGHT]: Module disabled");
163 }
164 } 152 }
165 public void SendProfileToClient(ScenePresence presence, RegionLightShareData wl) 153
154 public void SendProfileToClient(IClientAPI client, RegionLightShareData wl)
166 { 155 {
167 IClientAPI client = presence.ControllingClient;
168 if (m_enableWindlight && m_scene.RegionInfo.WindlightSettings.valid) 156 if (m_enableWindlight && m_scene.RegionInfo.WindlightSettings.valid)
169 { 157 {
170 if (presence.IsChildAgent == false) 158 List<byte[]> param = compileWindlightSettings(wl);
171 { 159 client.SendGenericMessage("Windlight", param);
172 List<byte[]> param = compileWindlightSettings(wl);
173 client.SendGenericMessage("Windlight", param);
174 }
175 }
176 else
177 {
178 //We probably don't want to spam chat with this.. probably
179 //m_log.Debug("[WINDLIGHT]: Module disabled");
180 } 160 }
181 } 161 }
162
182 private void EventManager_OnMakeRootAgent(ScenePresence presence) 163 private void EventManager_OnMakeRootAgent(ScenePresence presence)
183 { 164 {
184 m_log.Debug("[WINDLIGHT]: Sending windlight scene to new client"); 165 m_log.Debug("[WINDLIGHT]: Sending windlight scene to new client");
185 SendProfileToClient(presence); 166 SendProfileToClient(presence.ControllingClient);
186 } 167 }
168
187 private void EventManager_OnSendNewWindlightProfileTargeted(RegionLightShareData wl, UUID pUUID) 169 private void EventManager_OnSendNewWindlightProfileTargeted(RegionLightShareData wl, UUID pUUID)
188 { 170 {
189 ScenePresence Sc; 171 IClientAPI client;
190 if (m_scene.TryGetScenePresence(pUUID,out Sc)) 172 m_scene.TryGetClient(pUUID, out client);
191 { 173 SendProfileToClient(client, wl);
192 SendProfileToClient(Sc,wl);
193 }
194 } 174 }
175
195 private void EventManager_OnSaveNewWindlightProfile() 176 private void EventManager_OnSaveNewWindlightProfile()
196 { 177 {
197 if (m_scene.RegionInfo.WindlightSettings.valid) 178 if (m_scene.RegionInfo.WindlightSettings.valid)
198 m_scene.ForEachScenePresence(SendProfileToClient); 179 m_scene.ForEachRootClient(SendProfileToClient);
199 } 180 }
200 181
201 public void PostInitialise() 182 public void PostInitialise()
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 5427b68..58d9455 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -658,14 +658,14 @@ namespace OpenSim.Region.CoreModules.World.Estate
658 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false)) 658 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false))
659 return; 659 return;
660 660
661 Scene.ForEachRootScenePresence(delegate(ScenePresence sp) 661 Scene.ForEachRootClient(delegate(IClientAPI client)
662 { 662 {
663 if (sp.UUID != senderID) 663 if (client.AgentId != senderID)
664 { 664 {
665 // make sure they are still there, we could be working down a long list 665 // make sure they are still there, we could be working down a long list
666 // Also make sure they are actually in the region 666 // Also make sure they are actually in the region
667 ScenePresence p; 667 ScenePresence p;
668 if(Scene.TryGetScenePresence(sp.UUID, out p)) 668 if(Scene.TryGetScenePresence(client.AgentId, out p))
669 Scene.TeleportClientHome(p.UUID, p.ControllingClient); 669 Scene.TeleportClientHome(p.UUID, p.ControllingClient);
670 } 670 }
671 }); 671 });
@@ -927,9 +927,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
927 927
928 public void sendRegionInfoPacketToAll() 928 public void sendRegionInfoPacketToAll()
929 { 929 {
930 Scene.ForEachRootScenePresence(delegate(ScenePresence sp) 930 Scene.ForEachRootClient(delegate(IClientAPI client)
931 { 931 {
932 HandleRegionInfoRequest(sp.ControllingClient); 932 HandleRegionInfoRequest(client);
933 }); 933 });
934 } 934 }
935 935
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 0da0de3..ff3b107 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -476,7 +476,7 @@ namespace OpenSim.Region.CoreModules.World.Land
476 476
477 public void SendLandUpdateToAvatarsOverMe(bool snap_selection) 477 public void SendLandUpdateToAvatarsOverMe(bool snap_selection)
478 { 478 {
479 m_scene.ForEachRootScenePresence(delegate(ScenePresence avatar) 479 m_scene.ForEachAvatar(delegate(ScenePresence avatar)
480 { 480 {
481 ILandObject over = null; 481 ILandObject over = null;
482 try 482 try
diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
index 93b1005..fcbc159 100644
--- a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.CoreModules.World.Sound
70 70
71 SceneObjectGroup grp = part.ParentGroup; 71 SceneObjectGroup grp = part.ParentGroup;
72 72
73 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) 73 m_scene.ForEachAvatar(delegate(ScenePresence sp)
74 { 74 {
75 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position); 75 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position);
76 if (dis > 100.0) // Max audio distance 76 if (dis > 100.0) // Max audio distance
@@ -119,7 +119,7 @@ namespace OpenSim.Region.CoreModules.World.Sound
119 } 119 }
120 } 120 }
121 121
122 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) 122 m_scene.ForEachAvatar(delegate(ScenePresence sp)
123 { 123 {
124 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position); 124 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position);
125 if (dis > 100.0) // Max audio distance 125 if (dis > 100.0) // Max audio distance
diff --git a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
index d2c1289..a838e1e 100644
--- a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
@@ -488,9 +488,9 @@ namespace OpenSim.Region.CoreModules
488 488
489 private void SunUpdateToAllClients() 489 private void SunUpdateToAllClients()
490 { 490 {
491 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) 491 m_scene.ForEachRootClient(delegate(IClientAPI client)
492 { 492 {
493 SunToClient(sp.ControllingClient); 493 SunToClient(client);
494 }); 494 });
495 } 495 }
496 496
diff --git a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
index bea5db1..a488725 100644
--- a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
+++ b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
@@ -435,9 +435,9 @@ namespace OpenSim.Region.CoreModules
435 m_frameLastUpdateClientArray = m_frame; 435 m_frameLastUpdateClientArray = m_frame;
436 } 436 }
437 437
438 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) 438 m_scene.ForEachRootClient(delegate(IClientAPI client)
439 { 439 {
440 sp.ControllingClient.SendWindData(windSpeeds); 440 client.SendWindData(windSpeeds);
441 }); 441 });
442 } 442 }
443 } 443 }
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index 00d7d55..cd4d7e3 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -401,7 +401,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
401 } 401 }
402 else 402 else
403 { 403 {
404 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) 404 m_scene.ForEachAvatar(delegate(ScenePresence sp)
405 { 405 {
406 // Don't send a green dot for yourself 406 // Don't send a green dot for yourself
407 if (sp.UUID != remoteClient.AgentId) 407 if (sp.UUID != remoteClient.AgentId)
@@ -1180,7 +1180,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
1180 else 1180 else
1181 { 1181 {
1182 OSDArray responsearr = new OSDArray(m_scene.GetRootAgentCount()); 1182 OSDArray responsearr = new OSDArray(m_scene.GetRootAgentCount());
1183 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) 1183 m_scene.ForEachAvatar(delegate(ScenePresence sp)
1184 { 1184 {
1185 OSDMap responsemapdata = new OSDMap(); 1185 OSDMap responsemapdata = new OSDMap();
1186 responsemapdata["X"] = OSD.FromInteger((int)(xstart + sp.AbsolutePosition.X)); 1186 responsemapdata["X"] = OSD.FromInteger((int)(xstart + sp.AbsolutePosition.X));
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index dff43fd..b996e86 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -872,7 +872,7 @@ namespace OpenSim.Region.Framework.Scenes
872 872
873 try 873 try
874 { 874 {
875 ForEachRootScenePresence(delegate(ScenePresence agent) 875 ForEachAvatar(delegate(ScenePresence agent)
876 { 876 {
877 //agent.ControllingClient.new 877 //agent.ControllingClient.new
878 //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); 878 //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo());
@@ -1017,7 +1017,7 @@ namespace OpenSim.Region.Framework.Scenes
1017 GridRegion r = new GridRegion(region); 1017 GridRegion r = new GridRegion(region);
1018 try 1018 try
1019 { 1019 {
1020 ForEachRootScenePresence(delegate(ScenePresence agent) 1020 ForEachAvatar(delegate(ScenePresence agent)
1021 { 1021 {
1022 if (m_teleportModule != null) 1022 if (m_teleportModule != null)
1023 m_teleportModule.EnableChildAgent(agent, r); 1023 m_teleportModule.EnableChildAgent(agent, r);
@@ -1423,12 +1423,10 @@ namespace OpenSim.Region.Framework.Scenes
1423 /// <param name="stats">Stats on the Simulator's performance</param> 1423 /// <param name="stats">Stats on the Simulator's performance</param>
1424 private void SendSimStatsPackets(SimStats stats) 1424 private void SendSimStatsPackets(SimStats stats)
1425 { 1425 {
1426 ForEachRootScenePresence( 1426 ForEachRootClient(delegate(IClientAPI client)
1427 delegate(ScenePresence agent) 1427 {
1428 { 1428 client.SendSimStats(stats);
1429 agent.ControllingClient.SendSimStats(stats); 1429 });
1430 }
1431 );
1432 } 1430 }
1433 1431
1434 /// <summary> 1432 /// <summary>
@@ -4214,35 +4212,32 @@ namespace OpenSim.Region.Framework.Scenes
4214 return m_sceneGraph.GetScenePresence(localID); 4212 return m_sceneGraph.GetScenePresence(localID);
4215 } 4213 }
4216 4214
4215 /// <summary>
4216 /// Returns true if scene presence is a child (no avatar in this scene)
4217 /// </summary>
4218 /// <param name="avatarID"></param>
4219 /// <returns></returns>
4217 public override bool PresenceChildStatus(UUID avatarID) 4220 public override bool PresenceChildStatus(UUID avatarID)
4218 { 4221 {
4219 ScenePresence cp = GetScenePresence(avatarID); 4222 ScenePresence sp;
4220 4223 return TryGetScenePresence(avatarID, out sp) && sp.IsChildAgent;
4221 // FIXME: This is really crap - some logout code is relying on a NullReferenceException to halt its processing
4222 // This needs to be fixed properly by cleaning up the logout code.
4223 //if (cp != null)
4224 // return cp.IsChildAgent;
4225
4226 //return false;
4227
4228 return cp.IsChildAgent;
4229 } 4224 }
4230 4225
4231 /// <summary> 4226 /// <summary>
4232 /// Performs action on all ROOT (not child) scene presences. 4227 /// Performs action on all avatars in the scene (root scene presences)
4233 /// This is just a shortcut function since frequently actions only appy to root SPs 4228 /// Avatars may be an NPC or a 'real' client.
4234 /// </summary> 4229 /// </summary>
4235 /// <param name="action"></param> 4230 /// <param name="action"></param>
4236 public void ForEachRootScenePresence(Action<ScenePresence> action) 4231 public void ForEachAvatar(Action<ScenePresence> action)
4237 { 4232 {
4238 if(m_sceneGraph != null) 4233 if(m_sceneGraph != null)
4239 { 4234 {
4240 m_sceneGraph.ForEachRootScenePresence(action); 4235 m_sceneGraph.ForEachAvatar(action);
4241 } 4236 }
4242 } 4237 }
4243 4238
4244 /// <summary> 4239 /// <summary>
4245 /// Performs action on all scene presences. 4240 /// Performs action on all scene presences (root and child)
4246 /// </summary> 4241 /// </summary>
4247 /// <param name="action"></param> 4242 /// <param name="action"></param>
4248 public void ForEachScenePresence(Action<ScenePresence> action) 4243 public void ForEachScenePresence(Action<ScenePresence> action)
@@ -4254,25 +4249,6 @@ namespace OpenSim.Region.Framework.Scenes
4254 } 4249 }
4255 4250
4256 /// <summary> 4251 /// <summary>
4257 /// Perform the given action for each object
4258 /// </summary>
4259 /// <param name="action"></param>
4260 // public void ForEachObject(Action<SceneObjectGroup> action)
4261 // {
4262 // List<SceneObjectGroup> presenceList;
4263 //
4264 // lock (m_sceneObjects)
4265 // {
4266 // presenceList = new List<SceneObjectGroup>(m_sceneObjects.Values);
4267 // }
4268 //
4269 // foreach (SceneObjectGroup presence in presenceList)
4270 // {
4271 // action(presence);
4272 // }
4273 // }
4274
4275 /// <summary>
4276 /// Get a group via its UUID 4252 /// Get a group via its UUID
4277 /// </summary> 4253 /// </summary>
4278 /// <param name="fullID"></param> 4254 /// <param name="fullID"></param>
@@ -4344,6 +4320,22 @@ namespace OpenSim.Region.Framework.Scenes
4344 return m_sceneGraph.TryGetAvatarByName(avatarName, out avatar); 4320 return m_sceneGraph.TryGetAvatarByName(avatarName, out avatar);
4345 } 4321 }
4346 4322
4323 /// <summary>
4324 /// Perform an action on all clients with an avatar in this scene (root only)
4325 /// </summary>
4326 /// <param name="action"></param>
4327 public void ForEachRootClient(Action<IClientAPI> action)
4328 {
4329 ForEachAvatar(delegate(ScenePresence presence)
4330 {
4331 action(presence.ControllingClient);
4332 });
4333 }
4334
4335 /// <summary>
4336 /// Perform an action on all clients connected to the region (root and child)
4337 /// </summary>
4338 /// <param name="action"></param>
4347 public void ForEachClient(Action<IClientAPI> action) 4339 public void ForEachClient(Action<IClientAPI> action)
4348 { 4340 {
4349 m_clientManager.ForEachSync(action); 4341 m_clientManager.ForEachSync(action);
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 82ded28..a137bca 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1190,7 +1190,7 @@ namespace OpenSim.Region.Framework.Scenes
1190 /// This is just a shortcut function since frequently actions only appy to root SPs 1190 /// This is just a shortcut function since frequently actions only appy to root SPs
1191 /// </summary> 1191 /// </summary>
1192 /// <param name="action"></param> 1192 /// <param name="action"></param>
1193 public void ForEachRootScenePresence(Action<ScenePresence> action) 1193 public void ForEachAvatar(Action<ScenePresence> action)
1194 { 1194 {
1195 ForEachScenePresence(delegate(ScenePresence sp) 1195 ForEachScenePresence(delegate(ScenePresence sp)
1196 { 1196 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneManager.cs b/OpenSim/Region/Framework/Scenes/SceneManager.cs
index 3bfd866..9b72bee 100644
--- a/OpenSim/Region/Framework/Scenes/SceneManager.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneManager.cs
@@ -458,16 +458,16 @@ namespace OpenSim.Region.Framework.Scenes
458 ForEachCurrentScene( 458 ForEachCurrentScene(
459 delegate(Scene scene) 459 delegate(Scene scene)
460 { 460 {
461 scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) 461 scene.ForEachRootClient(delegate(IClientAPI client)
462 { 462 {
463 if (name == null || scenePresence.Name == name) 463 if (name == null || client.Name == name)
464 { 464 {
465 m_log.DebugFormat("Packet debug for {0} {1} set to {2}", 465 m_log.DebugFormat("Packet debug for {0} {1} set to {2}",
466 scenePresence.Firstname, 466 client.FirstName,
467 scenePresence.Lastname, 467 client.LastName,
468 newDebug); 468 newDebug);
469 469
470 scenePresence.ControllingClient.DebugPacketLevel = newDebug; 470 client.DebugPacketLevel = newDebug;
471 } 471 }
472 }); 472 });
473 } 473 }
@@ -481,7 +481,7 @@ namespace OpenSim.Region.Framework.Scenes
481 ForEachCurrentScene( 481 ForEachCurrentScene(
482 delegate(Scene scene) 482 delegate(Scene scene)
483 { 483 {
484 scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) 484 scene.ForEachAvatar(delegate(ScenePresence scenePresence)
485 { 485 {
486 avatars.Add(scenePresence); 486 avatars.Add(scenePresence);
487 }); 487 });
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index a0a7344..3c80eb5 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1150,7 +1150,7 @@ namespace OpenSim.Region.Framework.Scenes
1150 { 1150 {
1151 SceneObjectPart part = parts[i]; 1151 SceneObjectPart part = parts[i];
1152 1152
1153 Scene.ForEachScenePresence(delegate(ScenePresence avatar) 1153 Scene.ForEachAvatar(delegate(ScenePresence avatar)
1154 { 1154 {
1155 if (avatar.ParentID == LocalId) 1155 if (avatar.ParentID == LocalId)
1156 avatar.StandUp(); 1156 avatar.StandUp();
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 44f822c..1a709e9 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -992,7 +992,7 @@ namespace OpenSim.Region.Framework.Scenes
992 public PrimitiveBaseShape Shape 992 public PrimitiveBaseShape Shape
993 { 993 {
994 get { return m_shape; } 994 get { return m_shape; }
995 set { m_shape = value; } 995 set { m_shape = value;}
996 } 996 }
997 997
998 /// <summary> 998 /// <summary>
@@ -1336,12 +1336,12 @@ namespace OpenSim.Region.Framework.Scenes
1336 /// <param name="AgentID"></param> 1336 /// <param name="AgentID"></param>
1337 private void SendRootPartPropertiesToClient(UUID AgentID) 1337 private void SendRootPartPropertiesToClient(UUID AgentID)
1338 { 1338 {
1339 m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) 1339 m_parentGroup.Scene.ForEachClient(delegate(IClientAPI client)
1340 { 1340 {
1341 // Ugly reference :( 1341 // Ugly reference :(
1342 if (avatar.UUID == AgentID) 1342 if (client.AgentId == AgentID)
1343 { 1343 {
1344 m_parentGroup.SendPropertiesToClient(avatar.ControllingClient); 1344 m_parentGroup.SendPropertiesToClient(client);
1345 } 1345 }
1346 }); 1346 });
1347 } 1347 }
@@ -1461,9 +1461,9 @@ namespace OpenSim.Region.Framework.Scenes
1461 if (volume < 0) 1461 if (volume < 0)
1462 volume = 0; 1462 volume = 0;
1463 1463
1464 m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence sp) 1464 m_parentGroup.Scene.ForEachRootClient(delegate(IClientAPI client)
1465 { 1465 {
1466 sp.ControllingClient.SendAttachedSoundGainChange(UUID, (float)volume); 1466 client.SendAttachedSoundGainChange(UUID, (float)volume);
1467 }); 1467 });
1468 } 1468 }
1469 1469
@@ -2216,7 +2216,7 @@ namespace OpenSim.Region.Framework.Scenes
2216 } 2216 }
2217 else 2217 else
2218 { 2218 {
2219 m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence av) 2219 m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence av)
2220 { 2220 {
2221 if (av.LocalId == localId) 2221 if (av.LocalId == localId)
2222 { 2222 {
@@ -2347,7 +2347,7 @@ namespace OpenSim.Region.Framework.Scenes
2347 } 2347 }
2348 else 2348 else
2349 { 2349 {
2350 m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence av) 2350 m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence av)
2351 { 2351 {
2352 if (av.LocalId == localId) 2352 if (av.LocalId == localId)
2353 { 2353 {
@@ -2470,7 +2470,7 @@ namespace OpenSim.Region.Framework.Scenes
2470 } 2470 }
2471 else 2471 else
2472 { 2472 {
2473 m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence av) 2473 m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence av)
2474 { 2474 {
2475 if (av.LocalId == localId) 2475 if (av.LocalId == localId)
2476 { 2476 {
@@ -2696,7 +2696,7 @@ namespace OpenSim.Region.Framework.Scenes
2696 } 2696 }
2697 } 2697 }
2698 2698
2699 m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence sp) 2699 m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence sp)
2700 { 2700 {
2701 if (!(Util.GetDistanceTo(sp.AbsolutePosition, AbsolutePosition) >= 100)) 2701 if (!(Util.GetDistanceTo(sp.AbsolutePosition, AbsolutePosition) >= 100))
2702 sp.ControllingClient.SendPreLoadSound(objectID, objectID, soundID); 2702 sp.ControllingClient.SendPreLoadSound(objectID, objectID, soundID);
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 1d77b06..5fc597c 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -956,7 +956,7 @@ namespace OpenSim.Region.Framework.Scenes
956 } 956 }
957 957
958 // send the animations of the other presences to me 958 // send the animations of the other presences to me
959 m_scene.ForEachScenePresence(delegate(ScenePresence presence) 959 m_scene.ForEachAvatar(delegate(ScenePresence presence)
960 { 960 {
961 if (presence != this) 961 if (presence != this)
962 presence.Animator.SendAnimPackToClient(ControllingClient); 962 presence.Animator.SendAnimPackToClient(ControllingClient);
@@ -2596,7 +2596,7 @@ namespace OpenSim.Region.Framework.Scenes
2596 public void SendOtherAgentsAvatarDataToMe() 2596 public void SendOtherAgentsAvatarDataToMe()
2597 { 2597 {
2598 int count = 0; 2598 int count = 0;
2599 m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) 2599 m_scene.ForEachAvatar(delegate(ScenePresence scenePresence)
2600 { 2600 {
2601 // only send information about other root agents 2601 // only send information about other root agents
2602 if (scenePresence.UUID == UUID) 2602 if (scenePresence.UUID == UUID)
@@ -2660,7 +2660,7 @@ namespace OpenSim.Region.Framework.Scenes
2660// m_log.DebugFormat("[SCENE PRESENCE] SendOtherAgentsAppearanceToMe: {0} {1}", Name, UUID); 2660// m_log.DebugFormat("[SCENE PRESENCE] SendOtherAgentsAppearanceToMe: {0} {1}", Name, UUID);
2661 2661
2662 int count = 0; 2662 int count = 0;
2663 m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) 2663 m_scene.ForEachAvatar(delegate(ScenePresence scenePresence)
2664 { 2664 {
2665 // only send information about other root agents 2665 // only send information about other root agents
2666 if (scenePresence.UUID == UUID) 2666 if (scenePresence.UUID == UUID)
diff --git a/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs b/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs
index f8120aa..5a3a62f 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs
@@ -112,7 +112,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Appearance
112 { 112 {
113 foreach (Scene scene in m_scenes.Values) 113 foreach (Scene scene in m_scenes.Values)
114 { 114 {
115 scene.ForEachRootScenePresence(sp => scene.AvatarFactory.SendAppearance(sp.UUID)); 115 scene.ForEachAvatar(sp => scene.AvatarFactory.SendAppearance(sp.UUID));
116 } 116 }
117 } 117 }
118 } 118 }
@@ -123,15 +123,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Appearance
123 { 123 {
124 foreach (Scene scene in m_scenes.Values) 124 foreach (Scene scene in m_scenes.Values)
125 { 125 {
126 scene.ForEachScenePresence( 126 scene.ForEachAvatar(
127 delegate(ScenePresence sp) 127 delegate(ScenePresence sp)
128 { 128 {
129 if (sp.ControllingClient is LLClientView && !((LLClientView)sp.ControllingClient).ChildAgentStatus()) 129 bool bakedTextureValid = scene.AvatarFactory.ValidateBakedTextureCache(sp);
130 { 130 MainConsole.Instance.OutputFormat(
131 bool bakedTextureValid = scene.AvatarFactory.ValidateBakedTextureCache(sp); 131 "{0} baked appearance texture is {1}", sp.Name, bakedTextureValid ? "OK" : "corrupt");
132 MainConsole.Instance.OutputFormat(
133 "{0} baked appearance texture is {1}", sp.Name, bakedTextureValid ? "OK" : "corrupt");
134 }
135 }); 132 });
136 } 133 }
137 } 134 }
diff --git a/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs b/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs
index e22618d..bea5807 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs
@@ -373,7 +373,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Concierge
373 scene.GetRootAgentCount(), scene.RegionInfo.RegionName, 373 scene.GetRootAgentCount(), scene.RegionInfo.RegionName,
374 scene.RegionInfo.RegionID, 374 scene.RegionInfo.RegionID,
375 DateTime.UtcNow.ToString("s"))); 375 DateTime.UtcNow.ToString("s")));
376 scene.ForEachRootScenePresence(delegate(ScenePresence sp) 376 scene.ForEachAvatar(delegate(ScenePresence sp)
377 { 377 {
378 list.Append(String.Format(" <avatar name=\"{0}\" uuid=\"{1}\" />\n", sp.Name, sp.UUID)); 378 list.Append(String.Format(" <avatar name=\"{0}\" uuid=\"{1}\" />\n", sp.Name, sp.UUID));
379 list.Append("</avatars>"); 379 list.Append("</avatars>");
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
index 92cbbc6..33abae2 100644
--- a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
+++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
@@ -711,7 +711,7 @@ namespace OpenSim.Region.RegionCombinerModule
711 711
712 List<Vector3> CoarseLocations = new List<Vector3>(); 712 List<Vector3> CoarseLocations = new List<Vector3>();
713 List<UUID> AvatarUUIDs = new List<UUID>(); 713 List<UUID> AvatarUUIDs = new List<UUID>();
714 connectiondata.RegionScene.ForEachRootScenePresence(delegate(ScenePresence sp) 714 connectiondata.RegionScene.ForEachAvatar(delegate(ScenePresence sp)
715 { 715 {
716 if (sp.UUID != presence.UUID) 716 if (sp.UUID != presence.UUID)
717 { 717 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 0750579..d2ddcef 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -1644,7 +1644,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1644 if (flexi) 1644 if (flexi)
1645 { 1645 {
1646 part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do 1646 part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do
1647 // work once the prim is already flexi 1647 // work once the prim is already flexi
1648 part.Shape.FlexiSoftness = softness; 1648 part.Shape.FlexiSoftness = softness;
1649 part.Shape.FlexiGravity = gravity; 1649 part.Shape.FlexiGravity = gravity;
1650 part.Shape.FlexiDrag = friction; 1650 part.Shape.FlexiDrag = friction;
@@ -1654,10 +1654,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1654 part.Shape.FlexiForceY = (float)Force.y; 1654 part.Shape.FlexiForceY = (float)Force.y;
1655 part.Shape.FlexiForceZ = (float)Force.z; 1655 part.Shape.FlexiForceZ = (float)Force.z;
1656 part.Shape.PathCurve = 0x80; 1656 part.Shape.PathCurve = 0x80;
1657 part.ParentGroup.HasGroupChanged = true;
1658 part.ScheduleFullUpdate();
1657 } 1659 }
1658
1659 part.ParentGroup.HasGroupChanged = true;
1660 part.ScheduleFullUpdate();
1661 } 1660 }
1662 1661
1663 /// <summary> 1662 /// <summary>
@@ -3741,7 +3740,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3741 m_host.AddScriptLPS(1); 3740 m_host.AddScriptLPS(1);
3742 List<UUID> keytable = new List<UUID>(); 3741 List<UUID> keytable = new List<UUID>();
3743 // parse for sitting avatare-uuids 3742 // parse for sitting avatare-uuids
3744 World.ForEachRootScenePresence(delegate(ScenePresence presence) 3743 World.ForEachAvatar(delegate(ScenePresence presence)
3745 { 3744 {
3746 if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) 3745 if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
3747 keytable.Add(presence.UUID); 3746 keytable.Add(presence.UUID);
@@ -3803,7 +3802,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3803 m_host.AddScriptLPS(1); 3802 m_host.AddScriptLPS(1);
3804 // parse for sitting avatare-names 3803 // parse for sitting avatare-names
3805 List<String> nametable = new List<String>(); 3804 List<String> nametable = new List<String>();
3806 World.ForEachRootScenePresence(delegate(ScenePresence presence) 3805 World.ForEachAvatar(delegate(ScenePresence presence)
3807 { 3806 {
3808 if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) 3807 if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
3809 nametable.Add(presence.ControllingClient.Name); 3808 nametable.Add(presence.ControllingClient.Name);
@@ -7612,7 +7611,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7612 { 7611 {
7613 m_host.AddScriptLPS(1); 7612 m_host.AddScriptLPS(1);
7614 int avatarCount = 0; 7613 int avatarCount = 0;
7615 World.ForEachRootScenePresence(delegate(ScenePresence presence) 7614 World.ForEachAvatar(delegate(ScenePresence presence)
7616 { 7615 {
7617 if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) 7616 if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
7618 avatarCount++; 7617 avatarCount++;
@@ -9380,7 +9379,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
9380 landObject.SetMediaUrl(url); 9379 landObject.SetMediaUrl(url);
9381 9380
9382 // now send to all (non-child) agents in the parcel 9381 // now send to all (non-child) agents in the parcel
9383 World.ForEachRootScenePresence(delegate(ScenePresence sp) 9382 World.ForEachAvatar(delegate(ScenePresence sp)
9384 { 9383 {
9385 if (sp.currentParcelUUID == landData.GlobalID) 9384 if (sp.currentParcelUUID == landData.GlobalID)
9386 { 9385 {
@@ -9413,7 +9412,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
9413 if (presence == null) 9412 if (presence == null)
9414 { 9413 {
9415 // send to all (non-child) agents in the parcel 9414 // send to all (non-child) agents in the parcel
9416 World.ForEachRootScenePresence(delegate(ScenePresence sp) 9415 World.ForEachAvatar(delegate(ScenePresence sp)
9417 { 9416 {
9418 if (sp.currentParcelUUID == landData.GlobalID) 9417 if (sp.currentParcelUUID == landData.GlobalID)
9419 { 9418 {
@@ -10528,7 +10527,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
10528 10527
10529 if (checkAgents) 10528 if (checkAgents)
10530 { 10529 {
10531 World.ForEachScenePresence(delegate(ScenePresence sp) 10530 World.ForEachAvatar(delegate(ScenePresence sp)
10532 { 10531 {
10533 if (sp.AbsolutePosition.ApproxEquals(posToCheck, sp.PhysicsActor.Size.X)) 10532 if (sp.AbsolutePosition.ApproxEquals(posToCheck, sp.PhysicsActor.Size.X))
10534 { 10533 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index f3206ac..3138131 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -873,7 +873,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
873 CheckThreatLevel(ThreatLevel.None, "osGetAgents"); 873 CheckThreatLevel(ThreatLevel.None, "osGetAgents");
874 874
875 LSL_List result = new LSL_List(); 875 LSL_List result = new LSL_List();
876 World.ForEachRootScenePresence(delegate(ScenePresence sp) 876 World.ForEachAvatar(delegate(ScenePresence sp)
877 { 877 {
878 result.Add(new LSL_String(sp.Name)); 878 result.Add(new LSL_String(sp.Name));
879 }); 879 });
@@ -2581,7 +2581,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2581 CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar"); 2581 CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar");
2582 if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID)) 2582 if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID))
2583 { 2583 {
2584 World.ForEachRootScenePresence(delegate(ScenePresence sp) 2584 World.ForEachAvatar(delegate(ScenePresence sp)
2585 { 2585 {
2586 if (sp.Firstname == FirstName && sp.Lastname == SurName) 2586 if (sp.Firstname == FirstName && sp.Lastname == SurName)
2587 { 2587 {
@@ -2715,7 +2715,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2715 CheckThreatLevel(ThreatLevel.None, "osGetAvatarList"); 2715 CheckThreatLevel(ThreatLevel.None, "osGetAvatarList");
2716 2716
2717 LSL_List result = new LSL_List(); 2717 LSL_List result = new LSL_List();
2718 World.ForEachRootScenePresence(delegate (ScenePresence avatar) 2718 World.ForEachAvatar(delegate (ScenePresence avatar)
2719 { 2719 {
2720 if (avatar != null && avatar.UUID != m_host.OwnerID) 2720 if (avatar != null && avatar.UUID != m_host.OwnerID)
2721 { 2721 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
index 4ac7f8b..eb05f16 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
@@ -507,7 +507,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
507 senseEntity(sp); 507 senseEntity(sp);
508 if ((ts.type & AGENT_BY_USERNAME) != 0) 508 if ((ts.type & AGENT_BY_USERNAME) != 0)
509 { 509 {
510 m_CmdManager.m_ScriptEngine.World.ForEachScenePresence( 510 m_CmdManager.m_ScriptEngine.World.ForEachAvatar(
511 delegate (ScenePresence ssp) 511 delegate (ScenePresence ssp)
512 { 512 {
513 if (ssp.Lastname == "Resident") 513 if (ssp.Lastname == "Resident")
@@ -526,7 +526,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
526 } 526 }
527 else 527 else
528 { 528 {
529 m_CmdManager.m_ScriptEngine.World.ForEachScenePresence(senseEntity); 529 m_CmdManager.m_ScriptEngine.World.ForEachAvatar(senseEntity);
530 } 530 }
531 return sensedEntities; 531 return sensedEntities;
532 } 532 }