aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-10-28 23:16:46 +0100
committerJustin Clark-Casey (justincc)2011-10-28 23:16:46 +0100
commit0fe756e42c23dabf3b754f3675597aaf6fb627c4 (patch)
treeaa9ebe244f7efe03b8e8cbf80a70b6fb34a6dade /OpenSim/Region/CoreModules
parentfetch SOP.RotationOffset once in UpdateRotation() and compare rather than fet... (diff)
parentRemoved use of 'is' operator and casting to find the root ScenePresence in Me... (diff)
downloadopensim-SC_OLD-0fe756e42c23dabf3b754f3675597aaf6fb627c4.zip
opensim-SC_OLD-0fe756e42c23dabf3b754f3675597aaf6fb627c4.tar.gz
opensim-SC_OLD-0fe756e42c23dabf3b754f3675597aaf6fb627c4.tar.bz2
opensim-SC_OLD-0fe756e42c23dabf3b754f3675597aaf6fb627c4.tar.xz
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs7
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs10
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs4
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs57
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs52
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs13
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs5
-rw-r--r--OpenSim/Region/CoreModules/World/Sound/SoundModule.cs10
-rw-r--r--OpenSim/Region/CoreModules/World/Sun/SunModule.cs5
-rw-r--r--OpenSim/Region/CoreModules/World/Wind/WindModule.cs5
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs4
11 files changed, 62 insertions, 110 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
index 4359c01..2cd71c4 100644
--- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
@@ -279,12 +279,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
279 279
280 HashSet<UUID> receiverIDs = new HashSet<UUID>(); 280 HashSet<UUID> receiverIDs = new HashSet<UUID>();
281 281
282 ((Scene)c.Scene).ForEachScenePresence( 282 ((Scene)c.Scene).ForEachRootScenePresence(
283 delegate(ScenePresence presence) 283 delegate(ScenePresence presence)
284 { 284 {
285 // ignore chat from child agents
286 if (presence.IsChildAgent) return;
287
288 IClientAPI client = presence.ControllingClient; 285 IClientAPI client = presence.ControllingClient;
289 286
290 // don't forward SayOwner chat from objects to 287 // don't forward SayOwner chat from objects to
diff --git a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
index d2a0860..3ce446b 100644
--- a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
@@ -98,10 +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.ForEachScenePresence(delegate(ScenePresence presence) 101 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence)
102 { 102 {
103 if (!presence.IsChildAgent) 103 presence.ControllingClient.SendAlertMessage(message);
104 presence.ControllingClient.SendAlertMessage(message);
105 }); 104 });
106 } 105 }
107 106
@@ -163,10 +162,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
163 public void SendNotificationToUsersInRegion( 162 public void SendNotificationToUsersInRegion(
164 UUID fromAvatarID, string fromAvatarName, string message) 163 UUID fromAvatarID, string fromAvatarName, string message)
165 { 164 {
166 m_scene.ForEachScenePresence(delegate(ScenePresence presence) 165 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence)
167 { 166 {
168 if (!presence.IsChildAgent) 167 presence.ControllingClient.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message);
169 presence.ControllingClient.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message);
170 }); 168 });
171 } 169 }
172 170
diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
index 5ec64d5..562c3b1 100644
--- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
@@ -140,10 +140,10 @@ 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.ForEachScenePresence( 143 m_scene.ForEachRootScenePresence(
144 delegate(ScenePresence p) 144 delegate(ScenePresence p)
145 { 145 {
146 if (p.UUID != godID && !p.IsChildAgent) 146 if (p.UUID != godID)
147 { 147 {
148 // Possibly this should really be p.Close() though that method doesn't send a close 148 // Possibly this should really be p.Close() though that method doesn't send a close
149 // to the client 149 // to the client
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
index 72b448b..321a705 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
@@ -143,24 +143,19 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
143 // Try root avatar only first 143 // Try root avatar only first
144 foreach (Scene scene in m_Scenes) 144 foreach (Scene scene in m_Scenes)
145 { 145 {
146 if (scene.Entities.ContainsKey(toAgentID) && 146// m_log.DebugFormat(
147 scene.Entities[toAgentID] is ScenePresence) 147// "[HG INSTANT MESSAGE]: Looking for root agent {0} in {1}",
148 { 148// toAgentID.ToString(), scene.RegionInfo.RegionName);
149// m_log.DebugFormat( 149 ScenePresence sp = scene.GetScenePresence(toAgentID);
150// "[HG INSTANT MESSAGE]: Looking for root agent {0} in {1}", 150 if (sp != null && !sp.IsChildAgent)
151// toAgentID.ToString(), scene.RegionInfo.RegionName); 151 {
152 152 // Local message
153 ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; 153// m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID);
154 if (!user.IsChildAgent) 154 sp.ControllingClient.SendInstantMessage(im);
155 {
156 // Local message
157// m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID);
158 user.ControllingClient.SendInstantMessage(im);
159 155
160 // Message sent 156 // Message sent
161 result(true); 157 result(true);
162 return; 158 return;
163 }
164 } 159 }
165 } 160 }
166 161
@@ -168,16 +163,14 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
168 foreach (Scene scene in m_Scenes) 163 foreach (Scene scene in m_Scenes)
169 { 164 {
170// m_log.DebugFormat( 165// m_log.DebugFormat(
171// "[HG INSTANT MESSAGE]: Looking for child of {0} in {1}", toAgentID, scene.RegionInfo.RegionName); 166// "[HG INSTANT MESSAGE]: Looking for child of {0} in {1}",
172 167// toAgentID, scene.RegionInfo.RegionName);
173 if (scene.Entities.ContainsKey(toAgentID) && 168 ScenePresence sp = scene.GetScenePresence(toAgentID);
174 scene.Entities[toAgentID] is ScenePresence) 169 if (sp != null)
175 { 170 {
176 // Local message 171 // Local message
177 ScenePresence user = (ScenePresence) scene.Entities[toAgentID];
178
179// m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID); 172// m_log.DebugFormat("[HG INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID);
180 user.ControllingClient.SendInstantMessage(im); 173 sp.ControllingClient.SendInstantMessage(im);
181 174
182 // Message sent 175 // Message sent
183 result(true); 176 result(true);
@@ -231,17 +224,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
231 bool successful = false; 224 bool successful = false;
232 foreach (Scene scene in m_Scenes) 225 foreach (Scene scene in m_Scenes)
233 { 226 {
234 if (scene.Entities.ContainsKey(toAgentID) && 227 ScenePresence sp = scene.GetScenePresence(toAgentID);
235 scene.Entities[toAgentID] is ScenePresence) 228 if(!sp.IsChildAgent)
236 { 229 {
237 ScenePresence user = 230 scene.EventManager.TriggerIncomingInstantMessage(gim);
238 (ScenePresence)scene.Entities[toAgentID]; 231 successful = true;
239
240 if (!user.IsChildAgent)
241 {
242 scene.EventManager.TriggerIncomingInstantMessage(gim);
243 successful = true;
244 }
245 } 232 }
246 } 233 }
247 if (!successful) 234 if (!successful)
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
index 45b84f4..0dad3c4 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
@@ -136,24 +136,19 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
136 // Try root avatar only first 136 // Try root avatar only first
137 foreach (Scene scene in m_Scenes) 137 foreach (Scene scene in m_Scenes)
138 { 138 {
139 if (scene.Entities.ContainsKey(toAgentID) && 139// m_log.DebugFormat(
140 scene.Entities[toAgentID] is ScenePresence) 140// "[INSTANT MESSAGE]: Looking for root agent {0} in {1}",
141// toAgentID.ToString(), scene.RegionInfo.RegionName);
142 ScenePresence sp = scene.GetScenePresence(toAgentID);
143 if (sp != null && !sp.IsChildAgent)
141 { 144 {
142// m_log.DebugFormat( 145 // Local message
143// "[INSTANT MESSAGE]: Looking for root agent {0} in {1}", 146// m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID);
144// toAgentID.ToString(), scene.RegionInfo.RegionName); 147 sp.ControllingClient.SendInstantMessage(im);
145 148
146 ScenePresence user = (ScenePresence) scene.Entities[toAgentID]; 149 // Message sent
147 if (!user.IsChildAgent) 150 result(true);
148 { 151 return;
149 // Local message
150// m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to root agent {0} {1}", user.Name, toAgentID);
151 user.ControllingClient.SendInstantMessage(im);
152
153 // Message sent
154 result(true);
155 return;
156 }
157 } 152 }
158 } 153 }
159 154
@@ -162,15 +157,12 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
162 { 157 {
163// m_log.DebugFormat( 158// m_log.DebugFormat(
164// "[INSTANT MESSAGE]: Looking for child of {0} in {1}", toAgentID, scene.RegionInfo.RegionName); 159// "[INSTANT MESSAGE]: Looking for child of {0} in {1}", toAgentID, scene.RegionInfo.RegionName);
165 160 ScenePresence sp = scene.GetScenePresence(toAgentID);
166 if (scene.Entities.ContainsKey(toAgentID) && 161 if (sp != null)
167 scene.Entities[toAgentID] is ScenePresence)
168 { 162 {
169 // Local message 163 // Local message
170 ScenePresence user = (ScenePresence) scene.Entities[toAgentID];
171
172// m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID); 164// m_log.DebugFormat("[INSTANT MESSAGE]: Delivering IM to child agent {0} {1}", user.Name, toAgentID);
173 user.ControllingClient.SendInstantMessage(im); 165 sp.ControllingClient.SendInstantMessage(im);
174 166
175 // Message sent 167 // Message sent
176 result(true); 168 result(true);
@@ -389,17 +381,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
389 // Trigger the Instant message in the scene. 381 // Trigger the Instant message in the scene.
390 foreach (Scene scene in m_Scenes) 382 foreach (Scene scene in m_Scenes)
391 { 383 {
392 if (scene.Entities.ContainsKey(toAgentID) && 384 ScenePresence sp = scene.GetScenePresence(toAgentID);
393 scene.Entities[toAgentID] is ScenePresence) 385 if (sp != null && !sp.IsChildAgent)
394 { 386 {
395 ScenePresence user = 387 scene.EventManager.TriggerIncomingInstantMessage(gim);
396 (ScenePresence)scene.Entities[toAgentID]; 388 successful = true;
397
398 if (!user.IsChildAgent)
399 {
400 scene.EventManager.TriggerIncomingInstantMessage(gim);
401 successful = true;
402 }
403 } 389 }
404 } 390 }
405 if (!successful) 391 if (!successful)
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index c199a77..5427b68 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -658,17 +658,15 @@ 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.ForEachScenePresence(delegate(ScenePresence sp) 661 Scene.ForEachRootScenePresence(delegate(ScenePresence sp)
662 { 662 {
663 if (sp.UUID != senderID) 663 if (sp.UUID != senderID)
664 { 664 {
665 ScenePresence p = Scene.GetScenePresence(sp.UUID);
666 // 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
667 // Also make sure they are actually in the region 666 // Also make sure they are actually in the region
668 if (p != null && !p.IsChildAgent) 667 ScenePresence p;
669 { 668 if(Scene.TryGetScenePresence(sp.UUID, out p))
670 Scene.TeleportClientHome(p.UUID, p.ControllingClient); 669 Scene.TeleportClientHome(p.UUID, p.ControllingClient);
671 }
672 } 670 }
673 }); 671 });
674 } 672 }
@@ -929,10 +927,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
929 927
930 public void sendRegionInfoPacketToAll() 928 public void sendRegionInfoPacketToAll()
931 { 929 {
932 Scene.ForEachScenePresence(delegate(ScenePresence sp) 930 Scene.ForEachRootScenePresence(delegate(ScenePresence sp)
933 { 931 {
934 if (!sp.IsChildAgent) 932 HandleRegionInfoRequest(sp.ControllingClient);
935 HandleRegionInfoRequest(sp.ControllingClient);
936 }); 933 });
937 } 934 }
938 935
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 8c40171..0da0de3 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -476,11 +476,8 @@ 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.ForEachScenePresence(delegate(ScenePresence avatar) 479 m_scene.ForEachRootScenePresence(delegate(ScenePresence avatar)
480 { 480 {
481 if (avatar.IsChildAgent)
482 return;
483
484 ILandObject over = null; 481 ILandObject over = null;
485 try 482 try
486 { 483 {
diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
index 22ffcd6..93b1005 100644
--- a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
@@ -70,11 +70,8 @@ namespace OpenSim.Region.CoreModules.World.Sound
70 70
71 SceneObjectGroup grp = part.ParentGroup; 71 SceneObjectGroup grp = part.ParentGroup;
72 72
73 m_scene.ForEachScenePresence(delegate(ScenePresence sp) 73 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp)
74 { 74 {
75 if (sp.IsChildAgent)
76 return;
77
78 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position); 75 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position);
79 if (dis > 100.0) // Max audio distance 76 if (dis > 100.0) // Max audio distance
80 return; 77 return;
@@ -122,11 +119,8 @@ namespace OpenSim.Region.CoreModules.World.Sound
122 } 119 }
123 } 120 }
124 121
125 m_scene.ForEachScenePresence(delegate(ScenePresence sp) 122 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp)
126 { 123 {
127 if (sp.IsChildAgent)
128 return;
129
130 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position); 124 double dis = Util.GetDistanceTo(sp.AbsolutePosition, position);
131 if (dis > 100.0) // Max audio distance 125 if (dis > 100.0) // Max audio distance
132 return; 126 return;
diff --git a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
index 4e14c73..d2c1289 100644
--- a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
@@ -488,12 +488,9 @@ namespace OpenSim.Region.CoreModules
488 488
489 private void SunUpdateToAllClients() 489 private void SunUpdateToAllClients()
490 { 490 {
491 m_scene.ForEachScenePresence(delegate(ScenePresence sp) 491 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp)
492 { 492 {
493 if (!sp.IsChildAgent)
494 {
495 SunToClient(sp.ControllingClient); 493 SunToClient(sp.ControllingClient);
496 }
497 }); 494 });
498 } 495 }
499 496
diff --git a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
index 6bac555..bea5db1 100644
--- a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
+++ b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
@@ -435,10 +435,9 @@ namespace OpenSim.Region.CoreModules
435 m_frameLastUpdateClientArray = m_frame; 435 m_frameLastUpdateClientArray = m_frame;
436 } 436 }
437 437
438 m_scene.ForEachScenePresence(delegate(ScenePresence sp) 438 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp)
439 { 439 {
440 if (!sp.IsChildAgent) 440 sp.ControllingClient.SendWindData(windSpeeds);
441 sp.ControllingClient.SendWindData(windSpeeds);
442 }); 441 });
443 } 442 }
444 } 443 }
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index 857079c..509c0d8 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -401,10 +401,10 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
401 } 401 }
402 else 402 else
403 { 403 {
404 m_scene.ForEachScenePresence(delegate(ScenePresence sp) 404 m_scene.ForEachRootScenePresence(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.IsChildAgent && sp.UUID != remoteClient.AgentId) 407 if (sp.UUID != remoteClient.AgentId)
408 { 408 {
409 mapitem = new mapItemReply(); 409 mapitem = new mapItemReply();
410 mapitem.x = (uint)(xstart + sp.AbsolutePosition.X); 410 mapitem.x = (uint)(xstart + sp.AbsolutePosition.X);