aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authorJeff Ames2008-08-28 14:41:54 +0000
committerJeff Ames2008-08-28 14:41:54 +0000
commit3bf88587277b83c0b6f058fabba7d46a3b5a6a00 (patch)
treeed4ad9dc27e649a6f52661665fb681984251f480 /OpenSim/Region/Environment/Scenes
parentThannk you, Ralphos, for a patch the corrects an improper cast in (diff)
downloadopensim-SC-3bf88587277b83c0b6f058fabba7d46a3b5a6a00.zip
opensim-SC-3bf88587277b83c0b6f058fabba7d46a3b5a6a00.tar.gz
opensim-SC-3bf88587277b83c0b6f058fabba7d46a3b5a6a00.tar.bz2
opensim-SC-3bf88587277b83c0b6f058fabba7d46a3b5a6a00.tar.xz
Update svn properties, formatting cleanup.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs60
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs6
3 files changed, 22 insertions, 46 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 424c56c..0bd0028 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -276,8 +276,6 @@ namespace OpenSim.Region.Environment.Scenes
276 if (m_storageManager.EstateDataStore != null) 276 if (m_storageManager.EstateDataStore != null)
277 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID); 277 m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(m_regInfo.RegionID);
278 278
279
280
281 //Bind Storage Manager functions to some land manager functions for this scene 279 //Bind Storage Manager functions to some land manager functions for this scene
282 EventManager.OnLandObjectAdded += 280 EventManager.OnLandObjectAdded +=
283 new EventManager.LandObjectAdded(m_storageManager.DataStore.StoreLandObject); 281 new EventManager.LandObjectAdded(m_storageManager.DataStore.StoreLandObject);
@@ -322,7 +320,6 @@ namespace OpenSim.Region.Environment.Scenes
322 { 320 {
323 m_log.Warn("Failed to load StartupConfig"); 321 m_log.Warn("Failed to load StartupConfig");
324 } 322 }
325
326 } 323 }
327 324
328 #endregion 325 #endregion
@@ -351,7 +348,6 @@ namespace OpenSim.Region.Environment.Scenes
351 // we add it to the notify list regardless of distance. 348 // we add it to the notify list regardless of distance.
352 // We'll check the agent's draw distance before notifying them though. 349 // We'll check the agent's draw distance before notifying them though.
353 350
354
355 if (RegionInfo.RegionHandle != otherRegion.RegionHandle) 351 if (RegionInfo.RegionHandle != otherRegion.RegionHandle)
356 { 352 {
357 for (int i = 0; i < m_neighbours.Count; i++) 353 for (int i = 0; i < m_neighbours.Count; i++)
@@ -386,8 +382,7 @@ namespace OpenSim.Region.Environment.Scenes
386 382
387 int resultX = Math.Abs((int)otherRegion.RegionLocX - (int)RegionInfo.RegionLocX); 383 int resultX = Math.Abs((int)otherRegion.RegionLocX - (int)RegionInfo.RegionLocX);
388 int resultY = Math.Abs((int)otherRegion.RegionLocY - (int)RegionInfo.RegionLocY); 384 int resultY = Math.Abs((int)otherRegion.RegionLocY - (int)RegionInfo.RegionLocY);
389 if ((resultX <= 1) && 385 if (resultX <= 1 && resultY <= 1)
390 (resultY <= 1))
391 { 386 {
392 try 387 try
393 { 388 {
@@ -584,8 +579,6 @@ namespace OpenSim.Region.Environment.Scenes
584 } 579 }
585 } 580 }
586 } 581 }
587
588
589 } 582 }
590 m_scripts_enabled = !ScriptEngine; 583 m_scripts_enabled = !ScriptEngine;
591 m_log.Info("[TOTEDD]: Here is the method to trigger disabling of the scripting engine"); 584 m_log.Info("[TOTEDD]: Here is the method to trigger disabling of the scripting engine");
@@ -600,7 +593,9 @@ namespace OpenSim.Region.Environment.Scenes
600 public int GetInaccurateNeighborCount() 593 public int GetInaccurateNeighborCount()
601 { 594 {
602 lock (m_neighbours) 595 lock (m_neighbours)
596 {
603 return m_neighbours.Count; 597 return m_neighbours.Count;
598 }
604 } 599 }
605 600
606 // This is the method that shuts down the scene. 601 // This is the method that shuts down the scene.
@@ -1062,7 +1057,6 @@ namespace OpenSim.Region.Environment.Scenes
1062 float hfdiff = hfvalue; 1057 float hfdiff = hfvalue;
1063 int hfdiffi = 0; 1058 int hfdiffi = 0;
1064 1059
1065
1066 for (int x = 0; x < 256; x++) 1060 for (int x = 0; x < 256; x++)
1067 { 1061 {
1068 //int tc = System.Environment.TickCount; 1062 //int tc = System.Environment.TickCount;
@@ -1087,10 +1081,8 @@ namespace OpenSim.Region.Environment.Scenes
1087 //float tmpval = (float)hm[x, y]; 1081 //float tmpval = (float)hm[x, y];
1088 float heightvalue = (float)hm[x, y]; 1082 float heightvalue = (float)hm[x, y];
1089 1083
1090
1091 if (heightvalue > (float)m_regInfo.RegionSettings.WaterHeight) 1084 if (heightvalue > (float)m_regInfo.RegionSettings.WaterHeight)
1092 { 1085 {
1093
1094 // scale height value 1086 // scale height value
1095 heightvalue = low + mid * (heightvalue - low) / mid; 1087 heightvalue = low + mid * (heightvalue - low) / mid;
1096 1088
@@ -1102,6 +1094,7 @@ namespace OpenSim.Region.Environment.Scenes
1102 1094
1103 if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue)) 1095 if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue))
1104 heightvalue = 0; 1096 heightvalue = 0;
1097
1105 try 1098 try
1106 { 1099 {
1107 Color green = Color.FromArgb((int)heightvalue, 100, (int)heightvalue); 1100 Color green = Color.FromArgb((int)heightvalue, 100, (int)heightvalue);
@@ -1136,7 +1129,6 @@ namespace OpenSim.Region.Environment.Scenes
1136 // we use floats, colors use bytes, so shrink are space down to 1129 // we use floats, colors use bytes, so shrink are space down to
1137 // 0-255 1130 // 0-255
1138 1131
1139
1140 try 1132 try
1141 { 1133 {
1142 hfdiffi = Math.Abs((int)((hfdiff * 4) + (hfdiff * 0.5))) + 1; 1134 hfdiffi = Math.Abs((int)((hfdiff * 4) + (hfdiff * 0.5))) + 1;
@@ -1166,15 +1158,8 @@ namespace OpenSim.Region.Environment.Scenes
1166 mapbmp.SetPixel(x - 1, (256 - y) - 1, Shade); 1158 mapbmp.SetPixel(x - 1, (256 - y) - 1, Shade);
1167 } 1159 }
1168 } 1160 }
1169
1170
1171 } 1161 }
1172
1173 } 1162 }
1174
1175
1176
1177
1178 } 1163 }
1179 catch (System.ArgumentException) 1164 catch (System.ArgumentException)
1180 { 1165 {
@@ -1264,7 +1249,6 @@ namespace OpenSim.Region.Environment.Scenes
1264 if (part == null) 1249 if (part == null)
1265 continue; 1250 continue;
1266 1251
1267
1268 // Draw if the object is at least 1 meter wide in any direction 1252 // Draw if the object is at least 1 meter wide in any direction
1269 if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f) 1253 if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f)
1270 { 1254 {
@@ -1426,6 +1410,7 @@ namespace OpenSim.Region.Environment.Scenes
1426 } 1410 }
1427 } 1411 }
1428 } 1412 }
1413
1429 public void LazySaveGeneratedMaptile(byte[] data, bool temporary) 1414 public void LazySaveGeneratedMaptile(byte[] data, bool temporary)
1430 { 1415 {
1431 // Overwrites the local Asset cache with new maptile data 1416 // Overwrites the local Asset cache with new maptile data
@@ -1482,6 +1467,7 @@ namespace OpenSim.Region.Environment.Scenes
1482 asset.Temporary = temporary; 1467 asset.Temporary = temporary;
1483 AssetCache.AddAsset(asset); 1468 AssetCache.AddAsset(asset);
1484 } 1469 }
1470
1485 #endregion 1471 #endregion
1486 1472
1487 #region Load Land 1473 #region Load Land
@@ -1556,6 +1542,7 @@ namespace OpenSim.Region.Environment.Scenes
1556 pos = RayEnd; 1542 pos = RayEnd;
1557 return pos; 1543 return pos;
1558 } 1544 }
1545
1559 if (RayTargetID != LLUUID.Zero) 1546 if (RayTargetID != LLUUID.Zero)
1560 { 1547 {
1561 SceneObjectPart target = GetSceneObjectPart(RayTargetID); 1548 SceneObjectPart target = GetSceneObjectPart(RayTargetID);
@@ -1921,9 +1908,7 @@ namespace OpenSim.Region.Environment.Scenes
1921 if (position.X > Constants.RegionSize + 0.1f) 1908 if (position.X > Constants.RegionSize + 0.1f)
1922 { 1909 {
1923 pos.X = ((pos.X - Constants.RegionSize)); 1910 pos.X = ((pos.X - Constants.RegionSize));
1924
1925 newRegionHandle = Util.UIntsToLong((uint)((thisx + 1) * Constants.RegionSize), (uint)(thisy * Constants.RegionSize)); 1911 newRegionHandle = Util.UIntsToLong((uint)((thisx + 1) * Constants.RegionSize), (uint)(thisy * Constants.RegionSize));
1926
1927 // x + 1 1912 // x + 1
1928 } 1913 }
1929 else if (position.X < -0.1f) 1914 else if (position.X < -0.1f)
@@ -2165,9 +2150,7 @@ namespace OpenSim.Region.Environment.Scenes
2165 client.OnScriptReset += ProcessScriptReset; 2150 client.OnScriptReset += ProcessScriptReset;
2166 client.OnGetScriptRunning += GetScriptRunning; 2151 client.OnGetScriptRunning += GetScriptRunning;
2167 client.OnSetScriptRunning += SetScriptRunning; 2152 client.OnSetScriptRunning += SetScriptRunning;
2168
2169 client.OnRegionHandleRequest += RegionHandleRequest; 2153 client.OnRegionHandleRequest += RegionHandleRequest;
2170
2171 client.OnUnackedTerrain += TerrainUnAcked; 2154 client.OnUnackedTerrain += TerrainUnAcked;
2172 2155
2173 //Gesture 2156 //Gesture
@@ -2185,7 +2168,6 @@ namespace OpenSim.Region.Environment.Scenes
2185 2168
2186 if (userInfo != null) 2169 if (userInfo != null)
2187 { 2170 {
2188
2189 InventoryItemBase item = userInfo.RootFolder.FindItem(gestureId); 2171 InventoryItemBase item = userInfo.RootFolder.FindItem(gestureId);
2190 if (item != null) 2172 if (item != null)
2191 { 2173 {
@@ -2206,7 +2188,6 @@ namespace OpenSim.Region.Environment.Scenes
2206 2188
2207 if (userInfo != null) 2189 if (userInfo != null)
2208 { 2190 {
2209
2210 InventoryItemBase item = userInfo.RootFolder.FindItem(gestureId); 2191 InventoryItemBase item = userInfo.RootFolder.FindItem(gestureId);
2211 if (item != null) 2192 if (item != null)
2212 { 2193 {
@@ -2607,7 +2588,6 @@ namespace OpenSim.Region.Environment.Scenes
2607 "[CONNECTION DEBUGGING]: Skipping this region for welcoming avatar {0} [{1}] at {2}", 2588 "[CONNECTION DEBUGGING]: Skipping this region for welcoming avatar {0} [{1}] at {2}",
2608 agent.AgentID, regionHandle, RegionInfo.RegionName); 2589 agent.AgentID, regionHandle, RegionInfo.RegionName);
2609 } 2590 }
2610
2611 } 2591 }
2612 2592
2613 public void UpdateCircuitData(AgentCircuitData data) 2593 public void UpdateCircuitData(AgentCircuitData data)
@@ -2645,9 +2625,8 @@ namespace OpenSim.Region.Environment.Scenes
2645 m_log.InfoFormat("[USERLOGOFF]: Got a logoff request for {0} but the user isn't here. The user might already have been logged out", AvatarID.ToString()); 2625 m_log.InfoFormat("[USERLOGOFF]: Got a logoff request for {0} but the user isn't here. The user might already have been logged out", AvatarID.ToString());
2646 } 2626 }
2647 } 2627 }
2648
2649
2650 } 2628 }
2629
2651 /// <summary> 2630 /// <summary>
2652 /// Add a caps handler for the given agent. If the CAPS handler already exists for this agent, 2631 /// Add a caps handler for the given agent. If the CAPS handler already exists for this agent,
2653 /// then it is replaced by a new CAPS handler. 2632 /// then it is replaced by a new CAPS handler.
@@ -2905,14 +2884,14 @@ namespace OpenSim.Region.Environment.Scenes
2905 public void RequestTeleportLandmark(IClientAPI remoteClient, LLUUID regionID, LLVector3 position) 2884 public void RequestTeleportLandmark(IClientAPI remoteClient, LLUUID regionID, LLVector3 position)
2906 { 2885 {
2907 RegionInfo info = CommsManager.GridService.RequestNeighbourInfo(regionID); 2886 RegionInfo info = CommsManager.GridService.RequestNeighbourInfo(regionID);
2908 2887
2909 if (info == null) 2888 if (info == null)
2910 { 2889 {
2911 // can't find the region: Tell viewer and abort 2890 // can't find the region: Tell viewer and abort
2912 remoteClient.SendTeleportFailed("The teleport destination could not be found."); 2891 remoteClient.SendTeleportFailed("The teleport destination could not be found.");
2913 return; 2892 return;
2914 } 2893 }
2915 2894
2916 lock (m_scenePresences) 2895 lock (m_scenePresences)
2917 { 2896 {
2918 if (m_scenePresences.ContainsKey(remoteClient.AgentId)) 2897 if (m_scenePresences.ContainsKey(remoteClient.AgentId))
@@ -3016,7 +2995,6 @@ namespace OpenSim.Region.Environment.Scenes
3016 m_statsReporter.SetObjectCapacity(objects); 2995 m_statsReporter.SetObjectCapacity(objects);
3017 } 2996 }
3018 objectCapacity = objects; 2997 objectCapacity = objects;
3019
3020 } 2998 }
3021 2999
3022 public List<FriendListItem> GetFriendList(LLUUID avatarID) 3000 public List<FriendListItem> GetFriendList(LLUUID avatarID)
@@ -3089,7 +3067,6 @@ namespace OpenSim.Region.Environment.Scenes
3089 return LLUUID.Zero; 3067 return LLUUID.Zero;
3090 } 3068 }
3091 3069
3092
3093 /// <summary> 3070 /// <summary>
3094 /// This method is a way for the Friends Module to create an instant 3071 /// This method is a way for the Friends Module to create an instant
3095 /// message to the avatar and for Instant Messages that travel across 3072 /// message to the avatar and for Instant Messages that travel across
@@ -3105,7 +3082,6 @@ namespace OpenSim.Region.Environment.Scenes
3105 m_eventManager.TriggerGridInstantMessage(message, options); 3082 m_eventManager.TriggerGridInstantMessage(message, options);
3106 } 3083 }
3107 3084
3108
3109 public virtual void StoreAddFriendship(LLUUID ownerID, LLUUID friendID, uint perms) 3085 public virtual void StoreAddFriendship(LLUUID ownerID, LLUUID friendID, uint perms)
3110 { 3086 {
3111 // TODO: m_sceneGridService.DoStuff; 3087 // TODO: m_sceneGridService.DoStuff;
@@ -3123,6 +3099,7 @@ namespace OpenSim.Region.Environment.Scenes
3123 // TODO: m_sceneGridService.DoStuff; 3099 // TODO: m_sceneGridService.DoStuff;
3124 m_sceneGridService.RemoveUserFriend(ownerID, ExfriendID); 3100 m_sceneGridService.RemoveUserFriend(ownerID, ExfriendID);
3125 } 3101 }
3102
3126 public virtual List<FriendListItem> StoreGetFriendsForUser(LLUUID ownerID) 3103 public virtual List<FriendListItem> StoreGetFriendsForUser(LLUUID ownerID)
3127 { 3104 {
3128 // TODO: m_sceneGridService.DoStuff; 3105 // TODO: m_sceneGridService.DoStuff;
@@ -3135,11 +3112,13 @@ namespace OpenSim.Region.Environment.Scenes
3135 m_statsReporter.AddOutPackets(outPackets); 3112 m_statsReporter.AddOutPackets(outPackets);
3136 m_statsReporter.AddunAckedBytes(unAckedBytes); 3113 m_statsReporter.AddunAckedBytes(unAckedBytes);
3137 } 3114 }
3115
3138 public void AddAgentTime(int ms) 3116 public void AddAgentTime(int ms)
3139 { 3117 {
3140 m_statsReporter.addFrameMS(ms); 3118 m_statsReporter.addFrameMS(ms);
3141 m_statsReporter.addAgentMS(ms); 3119 m_statsReporter.addAgentMS(ms);
3142 } 3120 }
3121
3143 public void AddAgentUpdates(int count) 3122 public void AddAgentUpdates(int count)
3144 { 3123 {
3145 m_statsReporter.AddAgentUpdates(count); 3124 m_statsReporter.AddAgentUpdates(count);
@@ -3239,7 +3218,6 @@ namespace OpenSim.Region.Environment.Scenes
3239 /// <param name="Message">The Message being sent to the user</param> 3218 /// <param name="Message">The Message being sent to the user</param>
3240 public void SendRegionMessageFromEstateTools(LLUUID FromAvatarID, LLUUID fromSessionID, String FromAvatarName, String Message) 3219 public void SendRegionMessageFromEstateTools(LLUUID FromAvatarID, LLUUID fromSessionID, String FromAvatarName, String Message)
3241 { 3220 {
3242
3243 List<ScenePresence> presenceList = GetScenePresences(); 3221 List<ScenePresence> presenceList = GetScenePresences();
3244 3222
3245 foreach (ScenePresence presence in presenceList) 3223 foreach (ScenePresence presence in presenceList)
@@ -3359,7 +3337,7 @@ namespace OpenSim.Region.Environment.Scenes
3359 3337
3360 foreach (ScenePresence presence in presenceList) 3338 foreach (ScenePresence presence in presenceList)
3361 { 3339 {
3362 if ((presence.Firstname == firstName) && (presence.Lastname == lastName)) 3340 if (presence.Firstname == firstName && presence.Lastname == lastName)
3363 { 3341 {
3364 presence.ControllingClient.SendAgentAlertMessage(message, modal); 3342 presence.ControllingClient.SendAgentAlertMessage(message, modal);
3365 break; 3343 break;
@@ -3876,7 +3854,6 @@ namespace OpenSim.Region.Environment.Scenes
3876 return m_httpListener.AddLLSDHandler(path, handler); 3854 return m_httpListener.AddLLSDHandler(path, handler);
3877 } 3855 }
3878 3856
3879
3880 public void RemoveStreamHandler(string httpMethod, string path) 3857 public void RemoveStreamHandler(string httpMethod, string path)
3881 { 3858 {
3882 m_httpListener.RemoveStreamHandler(httpMethod, path); 3859 m_httpListener.RemoveStreamHandler(httpMethod, path);
@@ -3945,7 +3922,6 @@ namespace OpenSim.Region.Environment.Scenes
3945 client.SendRegionHandle(regionID, info.RegionHandle); 3922 client.SendRegionHandle(regionID, info.RegionHandle);
3946 } 3923 }
3947 3924
3948
3949 public void TerrainUnAcked(IClientAPI client, int patchX, int patchY) 3925 public void TerrainUnAcked(IClientAPI client, int patchX, int patchY)
3950 { 3926 {
3951 //Console.WriteLine("Terrain packet unacked, resending patch: " + patchX + " , " + patchY); 3927 //Console.WriteLine("Terrain packet unacked, resending patch: " + patchX + " , " + patchY);
@@ -3973,10 +3949,10 @@ namespace OpenSim.Region.Environment.Scenes
3973 public void ObjectSaleInfo(IClientAPI client, LLUUID agentID, LLUUID sessionID, uint localID, byte saleType, int salePrice) 3949 public void ObjectSaleInfo(IClientAPI client, LLUUID agentID, LLUUID sessionID, uint localID, byte saleType, int salePrice)
3974 { 3950 {
3975 SceneObjectPart part = GetSceneObjectPart(localID); 3951 SceneObjectPart part = GetSceneObjectPart(localID);
3976 if(part == null || part.ParentGroup == null) 3952 if (part == null || part.ParentGroup == null)
3977 return; 3953 return;
3978 3954
3979 if(part.ParentGroup.RootPart == null) 3955 if (part.ParentGroup.RootPart == null)
3980 return; 3956 return;
3981 3957
3982 part = part.ParentGroup.RootPart; 3958 part = part.ParentGroup.RootPart;
@@ -3994,10 +3970,10 @@ namespace OpenSim.Region.Environment.Scenes
3994 { 3970 {
3995 SceneObjectPart part = GetSceneObjectPart(localID); 3971 SceneObjectPart part = GetSceneObjectPart(localID);
3996 3972
3997 if(part == null) 3973 if (part == null)
3998 return; 3974 return;
3999 3975
4000 if(part.ParentGroup == null) 3976 if (part.ParentGroup == null)
4001 return; 3977 return;
4002 3978
4003 SceneObjectGroup group = part.ParentGroup; 3979 SceneObjectGroup group = part.ParentGroup;
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
index 24f814e..f8c5814 100644
--- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
@@ -636,7 +636,7 @@ namespace OpenSim.Region.Environment.Scenes
636 // both regions 636 // both regions
637 if (avatar.ParentID != (uint)0) 637 if (avatar.ParentID != (uint)0)
638 avatar.StandUp(); 638 avatar.StandUp();
639 if(!avatar.ValidateAttachments()) 639 if (!avatar.ValidateAttachments())
640 { 640 {
641 avatar.ControllingClient.SendTeleportFailed("Inconsistent attachment state"); 641 avatar.ControllingClient.SendTeleportFailed("Inconsistent attachment state");
642 return; 642 return;
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index cf24c73..4b785e9 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -2350,10 +2350,10 @@ namespace OpenSim.Region.Environment.Scenes
2350 // Validate 2350 // Validate
2351 foreach (SceneObjectGroup gobj in m_attachments) 2351 foreach (SceneObjectGroup gobj in m_attachments)
2352 { 2352 {
2353 if(gobj == null) 2353 if (gobj == null)
2354 return false; 2354 return false;
2355 2355
2356 if(gobj.RootPart == null) 2356 if (gobj.RootPart == null)
2357 { 2357 {
2358 return false; 2358 return false;
2359 } 2359 }
@@ -2370,7 +2370,7 @@ namespace OpenSim.Region.Environment.Scenes
2370 // Validate 2370 // Validate
2371 foreach (SceneObjectGroup gobj in m_attachments) 2371 foreach (SceneObjectGroup gobj in m_attachments)
2372 { 2372 {
2373 if(gobj == null || gobj.RootPart == null) 2373 if (gobj == null || gobj.RootPart == null)
2374 return false; 2374 return false;
2375 } 2375 }
2376 2376