diff options
author | Melanie | 2013-06-18 04:42:20 +0200 |
---|---|---|
committer | Melanie | 2013-06-18 04:42:20 +0200 |
commit | c78cb96c62c0a62499e8af9d0bde725276ce19fe (patch) | |
tree | e6b3fc2fca39ce28f4dd55b458fc712a58c83683 | |
parent | Forward the reason to the script (diff) | |
download | opensim-SC_OLD-c78cb96c62c0a62499e8af9d0bde725276ce19fe.zip opensim-SC_OLD-c78cb96c62c0a62499e8af9d0bde725276ce19fe.tar.gz opensim-SC_OLD-c78cb96c62c0a62499e8af9d0bde725276ce19fe.tar.bz2 opensim-SC_OLD-c78cb96c62c0a62499e8af9d0bde725276ce19fe.tar.xz |
Allow coalesced objects to be rezzed even if they extend past the sim bounds
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index ea22772..d09ea3e 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -788,6 +788,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
788 | XmlDocument doc = new XmlDocument(); | 788 | XmlDocument doc = new XmlDocument(); |
789 | doc.LoadXml(xmlData); | 789 | doc.LoadXml(xmlData); |
790 | XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject"); | 790 | XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject"); |
791 | Vector3 rez_pos; | ||
791 | if (e == null || attachment) // Single | 792 | if (e == null || attachment) // Single |
792 | { | 793 | { |
793 | SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); | 794 | SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); |
@@ -809,6 +810,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
809 | RayStart, RayEnd, RayTargetID, Quaternion.Identity, | 810 | RayStart, RayEnd, RayTargetID, Quaternion.Identity, |
810 | BypassRayCast, bRayEndIsIntersection, true, g.GetAxisAlignedBoundingBox(out offsetHeight), false); | 811 | BypassRayCast, bRayEndIsIntersection, true, g.GetAxisAlignedBoundingBox(out offsetHeight), false); |
811 | pos.Z += offsetHeight; | 812 | pos.Z += offsetHeight; |
813 | rez_pos = pos; | ||
812 | } | 814 | } |
813 | else | 815 | else |
814 | { | 816 | { |
@@ -823,6 +825,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
823 | BypassRayCast, bRayEndIsIntersection, true, | 825 | BypassRayCast, bRayEndIsIntersection, true, |
824 | bbox, false); | 826 | bbox, false); |
825 | 827 | ||
828 | rez_pos = pos; | ||
829 | |||
826 | pos -= bbox / 2; | 830 | pos -= bbox / 2; |
827 | 831 | ||
828 | XmlNodeList groups = e.SelectNodes("SceneObjectGroup"); | 832 | XmlNodeList groups = e.SelectNodes("SceneObjectGroup"); |
@@ -859,7 +863,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
859 | primcount += g.PrimCount; | 863 | primcount += g.PrimCount; |
860 | 864 | ||
861 | if (!m_Scene.Permissions.CanRezObject( | 865 | if (!m_Scene.Permissions.CanRezObject( |
862 | primcount, remoteClient.AgentId, pos) | 866 | primcount, remoteClient.AgentId, rez_pos) |
863 | && !attachment) | 867 | && !attachment) |
864 | { | 868 | { |
865 | // The client operates in no fail mode. It will | 869 | // The client operates in no fail mode. It will |
@@ -876,7 +880,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
876 | return null; | 880 | return null; |
877 | } | 881 | } |
878 | 882 | ||
879 | if (item != null && !DoPreRezWhenFromItem(remoteClient, item, objlist, pos, attachment)) | 883 | if (item != null && !DoPreRezWhenFromItem(remoteClient, item, objlist, rez_pos, attachment)) |
880 | return null; | 884 | return null; |
881 | 885 | ||
882 | for (int i = 0; i < objlist.Count; i++) | 886 | for (int i = 0; i < objlist.Count; i++) |