aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorMelanie2012-02-14 00:02:53 +0100
committerMelanie2012-02-14 00:02:53 +0100
commite3213065173e1408a138eb0bce0c9e936073b19b (patch)
tree9f16fe341720f5131cc3060e156c9d534be01e02 /OpenSim/Region/CoreModules
parentMerge branch 'master' into careminster (diff)
downloadopensim-SC-e3213065173e1408a138eb0bce0c9e936073b19b.zip
opensim-SC-e3213065173e1408a138eb0bce0c9e936073b19b.tar.gz
opensim-SC-e3213065173e1408a138eb0bce0c9e936073b19b.tar.bz2
opensim-SC-e3213065173e1408a138eb0bce0c9e936073b19b.tar.xz
Prevent object loss and positioning outside the region with failed object sim
crossings
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs10
1 files changed, 5 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index f1399af..4b1c0bc 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1731,17 +1731,17 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1731 { 1731 {
1732 m_log.InfoFormat("[ENTITY TRANSFER MODULE] cross region transfer failed for object {0}",grp.UUID); 1732 m_log.InfoFormat("[ENTITY TRANSFER MODULE] cross region transfer failed for object {0}",grp.UUID);
1733 1733
1734 // Need to turn off the physics flags, otherwise the object will continue to attempt to
1735 // move out of the region creating an infinite loop of failed attempts to cross
1736 grp.UpdatePrimFlags(grp.RootPart.LocalId,false,grp.IsTemporary,grp.IsPhantom,false);
1737
1734 // We are going to move the object back to the old position so long as the old position 1738 // We are going to move the object back to the old position so long as the old position
1735 // is in the region 1739 // is in the region
1736 oldGroupPosition.X = Util.Clamp<float>(oldGroupPosition.X,1.0f,(float)Constants.RegionSize-1); 1740 oldGroupPosition.X = Util.Clamp<float>(oldGroupPosition.X,1.0f,(float)Constants.RegionSize-1);
1737 oldGroupPosition.Y = Util.Clamp<float>(oldGroupPosition.Y,1.0f,(float)Constants.RegionSize-1); 1741 oldGroupPosition.Y = Util.Clamp<float>(oldGroupPosition.Y,1.0f,(float)Constants.RegionSize-1);
1738 oldGroupPosition.Z = Util.Clamp<float>(oldGroupPosition.Z,1.0f,4096.0f); 1742 oldGroupPosition.Z = Util.Clamp<float>(oldGroupPosition.Z,1.0f,4096.0f);
1739 1743
1740 grp.RootPart.GroupPosition = oldGroupPosition; 1744 grp.AbsolutePosition = oldGroupPosition;
1741
1742 // Need to turn off the physics flags, otherwise the object will continue to attempt to
1743 // move out of the region creating an infinite loop of failed attempts to cross
1744 grp.UpdatePrimFlags(grp.RootPart.LocalId,false,grp.IsTemporary,grp.IsPhantom,false);
1745 1745
1746 grp.ScheduleGroupForFullUpdate(); 1746 grp.ScheduleGroupForFullUpdate();
1747 } 1747 }