aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs18
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs6
2 files changed, 17 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 0d14b83..cbd45c3 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -461,8 +461,11 @@ namespace OpenSim.Region.Framework.Scenes
461 461
462 if (Scene != null) 462 if (Scene != null)
463 { 463 {
464 if ((Scene.TestBorderCross(val - Vector3.UnitX, Cardinals.E) || Scene.TestBorderCross(val + Vector3.UnitX, Cardinals.W) 464 // if ((Scene.TestBorderCross(val - Vector3.UnitX, Cardinals.E) || Scene.TestBorderCross(val + Vector3.UnitX, Cardinals.W)
465 || Scene.TestBorderCross(val - Vector3.UnitY, Cardinals.N) || Scene.TestBorderCross(val + Vector3.UnitY, Cardinals.S)) 465 // || Scene.TestBorderCross(val - Vector3.UnitY, Cardinals.N) || Scene.TestBorderCross(val + Vector3.UnitY, Cardinals.S))
466 // && !IsAttachmentCheckFull() && (!Scene.LoadingPrims))
467 if ((Scene.TestBorderCross(val, Cardinals.E) || Scene.TestBorderCross(val, Cardinals.W)
468 || Scene.TestBorderCross(val, Cardinals.N) || Scene.TestBorderCross(val, Cardinals.S))
466 && !IsAttachmentCheckFull() && (!Scene.LoadingPrims)) 469 && !IsAttachmentCheckFull() && (!Scene.LoadingPrims))
467 { 470 {
468 IEntityTransferModule entityTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>(); 471 IEntityTransferModule entityTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
@@ -489,7 +492,7 @@ namespace OpenSim.Region.Framework.Scenes
489 canCross = false; 492 canCross = false;
490 break; 493 break;
491 } 494 }
492 495
493 m_log.DebugFormat("[SCENE OBJECT]: Avatar {0} needs to be crossed to {1}", av.Name, destination.RegionName); 496 m_log.DebugFormat("[SCENE OBJECT]: Avatar {0} needs to be crossed to {1}", av.Name, destination.RegionName);
494 } 497 }
495 498
@@ -534,8 +537,15 @@ namespace OpenSim.Region.Framework.Scenes
534 return; 537 return;
535 } 538 }
536 } 539 }
540 else if (RootPart.PhysActor != null)
541 {
542 RootPart.PhysActor.CrossingFailure();
543 }
537 544
538 val = AbsolutePosition; 545 Vector3 oldp = AbsolutePosition;
546 val.X = Util.Clamp<float>(oldp.X, 0.5f, (float)Constants.RegionSize - 0.5f);
547 val.Y = Util.Clamp<float>(oldp.Y, 0.5f, (float)Constants.RegionSize - 0.5f);
548 val.Z = Util.Clamp<float>(oldp.Z, 0.5f, 4096.0f);
539 } 549 }
540 } 550 }
541 551
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 4a08ce3..d6d04b2 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2615,9 +2615,9 @@ namespace OpenSim.Region.Framework.Scenes
2615 Vector3 newpos = new Vector3(PhysActor.Position.GetBytes(), 0); 2615 Vector3 newpos = new Vector3(PhysActor.Position.GetBytes(), 0);
2616 2616
2617 if (ParentGroup.Scene.TestBorderCross(newpos, Cardinals.N) 2617 if (ParentGroup.Scene.TestBorderCross(newpos, Cardinals.N)
2618 | ParentGroup.Scene.TestBorderCross(newpos, Cardinals.S) 2618 || ParentGroup.Scene.TestBorderCross(newpos, Cardinals.S)
2619 | ParentGroup.Scene.TestBorderCross(newpos, Cardinals.E) 2619 || ParentGroup.Scene.TestBorderCross(newpos, Cardinals.E)
2620 | ParentGroup.Scene.TestBorderCross(newpos, Cardinals.W)) 2620 || ParentGroup.Scene.TestBorderCross(newpos, Cardinals.W))
2621 { 2621 {
2622 ParentGroup.AbsolutePosition = newpos; 2622 ParentGroup.AbsolutePosition = newpos;
2623 return; 2623 return;