diff options
author | Melanie | 2011-07-05 03:13:39 +0200 |
---|---|---|
committer | Melanie | 2011-07-05 03:13:39 +0200 |
commit | 719e0702bee487e9e25435dd2228de8769dea073 (patch) | |
tree | c2471c9b43baf468e5110a4aab58cff78c93522a /OpenSim/Region/Framework | |
parent | Don't store the default WL profile. This will prevent "valid" from being (diff) | |
parent | Merge branch 'master' into careminster-presence-refactor (diff) | |
download | opensim-SC-719e0702bee487e9e25435dd2228de8769dea073.zip opensim-SC-719e0702bee487e9e25435dd2228de8769dea073.tar.gz opensim-SC-719e0702bee487e9e25435dd2228de8769dea073.tar.bz2 opensim-SC-719e0702bee487e9e25435dd2228de8769dea073.tar.xz |
Merge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/careminster into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/Framework')
5 files changed, 25 insertions, 11 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs b/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs index 22795fc..d0e5609 100644 --- a/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs +++ b/OpenSim/Region/Framework/Interfaces/IAvatarFactory.cs | |||
@@ -36,4 +36,4 @@ namespace OpenSim.Region.Framework.Interfaces | |||
36 | void QueueAppearanceSend(UUID agentid); | 36 | void QueueAppearanceSend(UUID agentid); |
37 | void QueueAppearanceSave(UUID agentid); | 37 | void QueueAppearanceSave(UUID agentid); |
38 | } | 38 | } |
39 | } | 39 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index c04bbb4..28c0276 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1347,7 +1347,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1347 | // m_log.DebugFormat("[AGENT INVENTORY]: Sending inventory folder contents ({0} nodes) for \"{1}\" to {2} {3}", | 1347 | // m_log.DebugFormat("[AGENT INVENTORY]: Sending inventory folder contents ({0} nodes) for \"{1}\" to {2} {3}", |
1348 | // contents.Folders.Count + contents.Items.Count, containingFolder.Name, client.FirstName, client.LastName); | 1348 | // contents.Folders.Count + contents.Items.Count, containingFolder.Name, client.FirstName, client.LastName); |
1349 | 1349 | ||
1350 | if (containingFolder != null && containingFolder != null) | 1350 | if (containingFolder != null) |
1351 | { | 1351 | { |
1352 | // If the folder requested contains links, then we need to send those folders first, otherwise the links | 1352 | // If the folder requested contains links, then we need to send those folders first, otherwise the links |
1353 | // will be broken in the viewer. | 1353 | // will be broken in the viewer. |
@@ -1359,15 +1359,25 @@ namespace OpenSim.Region.Framework.Scenes | |||
1359 | InventoryItemBase linkedItem = InventoryService.GetItem(new InventoryItemBase(item.AssetID)); | 1359 | InventoryItemBase linkedItem = InventoryService.GetItem(new InventoryItemBase(item.AssetID)); |
1360 | 1360 | ||
1361 | // Take care of genuinely broken links where the target doesn't exist | 1361 | // Take care of genuinely broken links where the target doesn't exist |
1362 | if (linkedItem != null) | 1362 | // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate, |
1363 | linkedItemFolderIdsToSend.Add(linkedItem.Folder); | 1363 | // but no viewer has been observed to set these up and this is the lazy way of avoiding cycles |
1364 | // rather than having to keep track of every folder requested in the recursion. | ||
1365 | if (linkedItem != null && linkedItem.AssetType != (int)AssetType.Link) | ||
1366 | { | ||
1367 | // We don't need to send the folder if source and destination of the link are in the same | ||
1368 | // folder. | ||
1369 | if (linkedItem.Folder != containingFolder.ID) | ||
1370 | linkedItemFolderIdsToSend.Add(linkedItem.Folder); | ||
1371 | } | ||
1364 | } | 1372 | } |
1365 | } | 1373 | } |
1366 | 1374 | ||
1367 | foreach (UUID linkedItemFolderId in linkedItemFolderIdsToSend) | 1375 | foreach (UUID linkedItemFolderId in linkedItemFolderIdsToSend) |
1368 | SendInventoryUpdate(client, new InventoryFolderBase(linkedItemFolderId), false, true); | 1376 | SendInventoryUpdate(client, new InventoryFolderBase(linkedItemFolderId), false, true); |
1369 | 1377 | ||
1370 | client.SendInventoryFolderDetails(client.AgentId, folder.ID, contents.Items, contents.Folders, containingFolder.Version, fetchFolders, fetchItems); | 1378 | client.SendInventoryFolderDetails( |
1379 | client.AgentId, folder.ID, contents.Items, contents.Folders, | ||
1380 | containingFolder.Version, fetchFolders, fetchItems); | ||
1371 | } | 1381 | } |
1372 | } | 1382 | } |
1373 | 1383 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 1575e50..253adae 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2706,8 +2706,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2706 | { | 2706 | { |
2707 | string homeURL = string.Empty; | 2707 | string homeURL = string.Empty; |
2708 | string first = aCircuit.firstname, last = aCircuit.lastname; | 2708 | string first = aCircuit.firstname, last = aCircuit.lastname; |
2709 | |||
2709 | if (aCircuit.ServiceURLs.ContainsKey("HomeURI")) | 2710 | if (aCircuit.ServiceURLs.ContainsKey("HomeURI")) |
2710 | homeURL = aCircuit.ServiceURLs["HomeURI"].ToString(); | 2711 | homeURL = aCircuit.ServiceURLs["HomeURI"].ToString(); |
2712 | |||
2711 | if (aCircuit.lastname.StartsWith("@")) | 2713 | if (aCircuit.lastname.StartsWith("@")) |
2712 | { | 2714 | { |
2713 | string[] parts = aCircuit.firstname.Split('.'); | 2715 | string[] parts = aCircuit.firstname.Split('.'); |
@@ -2717,6 +2719,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2717 | last = parts[1]; | 2719 | last = parts[1]; |
2718 | } | 2720 | } |
2719 | } | 2721 | } |
2722 | |||
2720 | uMan.AddUser(aCircuit.AgentID, first, last, homeURL); | 2723 | uMan.AddUser(aCircuit.AgentID, first, last, homeURL); |
2721 | } | 2724 | } |
2722 | } | 2725 | } |
@@ -3530,7 +3533,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3530 | } | 3533 | } |
3531 | } | 3534 | } |
3532 | 3535 | ||
3533 | |||
3534 | // In all cases, add or update the circuit data with the new agent circuit data and teleport flags | 3536 | // In all cases, add or update the circuit data with the new agent circuit data and teleport flags |
3535 | agent.teleportFlags = teleportFlags; | 3537 | agent.teleportFlags = teleportFlags; |
3536 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); | 3538 | m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index e3744bd..ff1d520 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -806,7 +806,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
806 | actor.Orientation = GetWorldRotation(); | 806 | actor.Orientation = GetWorldRotation(); |
807 | 807 | ||
808 | // Tell the physics engines that this prim changed. | 808 | // Tell the physics engines that this prim changed. |
809 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 809 | if (m_parentGroup.Scene != null) |
810 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | ||
810 | } | 811 | } |
811 | 812 | ||
812 | if (!m_parentGroup.m_dupeInProgress) | 813 | if (!m_parentGroup.m_dupeInProgress) |
@@ -1117,6 +1118,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1117 | { | 1118 | { |
1118 | get | 1119 | get |
1119 | { | 1120 | { |
1121 | if (IsAttachment) | ||
1122 | return GroupPosition; | ||
1123 | |||
1120 | return GroupPosition + (m_offsetPosition * ParentGroup.RootPart.RotationOffset); | 1124 | return GroupPosition + (m_offsetPosition * ParentGroup.RootPart.RotationOffset); |
1121 | } | 1125 | } |
1122 | } | 1126 | } |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index af6f89c..d2f84e3 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2251,10 +2251,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2251 | m_log.Warn("Sit requested on unknown object: " + targetID.ToString()); | 2251 | m_log.Warn("Sit requested on unknown object: " + targetID.ToString()); |
2252 | } | 2252 | } |
2253 | 2253 | ||
2254 | |||
2255 | |||
2256 | SendSitResponse(remoteClient, targetID, offset, Quaternion.Identity); | 2254 | SendSitResponse(remoteClient, targetID, offset, Quaternion.Identity); |
2257 | } | 2255 | } |
2256 | |||
2258 | /* | 2257 | /* |
2259 | public void SitRayCastAvatarPosition(SceneObjectPart part) | 2258 | public void SitRayCastAvatarPosition(SceneObjectPart part) |
2260 | { | 2259 | { |
@@ -2797,7 +2796,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2797 | /// <param name="remoteClient"></param> | 2796 | /// <param name="remoteClient"></param> |
2798 | public void SendTerseUpdateToClient(IClientAPI remoteClient) | 2797 | public void SendTerseUpdateToClient(IClientAPI remoteClient) |
2799 | { | 2798 | { |
2800 | |||
2801 | // If the client is inactive, it's getting its updates from another | 2799 | // If the client is inactive, it's getting its updates from another |
2802 | // server. | 2800 | // server. |
2803 | if (remoteClient.IsActive) | 2801 | if (remoteClient.IsActive) |
@@ -2912,7 +2910,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2912 | } | 2910 | } |
2913 | 2911 | ||
2914 | // If we aren't using a cached appearance, then clear out the baked textures | 2912 | // If we aren't using a cached appearance, then clear out the baked textures |
2915 | if (! cachedappearance) | 2913 | if (!cachedappearance) |
2916 | { | 2914 | { |
2917 | m_appearance.ResetAppearance(); | 2915 | m_appearance.ResetAppearance(); |
2918 | if (m_scene.AvatarFactory != null) | 2916 | if (m_scene.AvatarFactory != null) |