aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2013-06-18 04:42:20 +0200
committerMelanie2013-06-18 04:42:20 +0200
commitc78cb96c62c0a62499e8af9d0bde725276ce19fe (patch)
treee6b3fc2fca39ce28f4dd55b458fc712a58c83683 /OpenSim
parentForward the reason to the script (diff)
downloadopensim-SC-c78cb96c62c0a62499e8af9d0bde725276ce19fe.zip
opensim-SC-c78cb96c62c0a62499e8af9d0bde725276ce19fe.tar.gz
opensim-SC-c78cb96c62c0a62499e8af9d0bde725276ce19fe.tar.bz2
opensim-SC-c78cb96c62c0a62499e8af9d0bde725276ce19fe.tar.xz
Allow coalesced objects to be rezzed even if they extend past the sim bounds
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs8
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++)