diff options
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 759fc23..69bfb9a 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -365,11 +365,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
365 | { | 365 | { |
366 | Vector3 val = value; | 366 | Vector3 val = value; |
367 | 367 | ||
368 | if ((m_scene.TestBorderCross(val - Vector3.UnitX, Cardinals.E) || m_scene.TestBorderCross(val + Vector3.UnitX, Cardinals.W) | 368 | if (Scene != null) |
369 | || m_scene.TestBorderCross(val - Vector3.UnitY, Cardinals.N) || m_scene.TestBorderCross(val + Vector3.UnitY, Cardinals.S)) | ||
370 | && !IsAttachmentCheckFull() && (!m_scene.LoadingPrims)) | ||
371 | { | 369 | { |
372 | m_scene.CrossPrimGroupIntoNewRegion(val, this, true); | 370 | if ((Scene.TestBorderCross(val - Vector3.UnitX, Cardinals.E) || Scene.TestBorderCross(val + Vector3.UnitX, Cardinals.W) |
371 | || Scene.TestBorderCross(val - Vector3.UnitY, Cardinals.N) || Scene.TestBorderCross(val + Vector3.UnitY, Cardinals.S)) | ||
372 | && !IsAttachmentCheckFull() && (!Scene.LoadingPrims)) | ||
373 | { | ||
374 | m_scene.CrossPrimGroupIntoNewRegion(val, this, true); | ||
375 | } | ||
373 | } | 376 | } |
374 | 377 | ||
375 | foreach (SceneObjectPart part in m_parts.GetArray()) | 378 | foreach (SceneObjectPart part in m_parts.GetArray()) |
@@ -381,8 +384,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
381 | if (Util.GetDistanceTo(RootPart.StatusSandboxPos, value) > 10) | 384 | if (Util.GetDistanceTo(RootPart.StatusSandboxPos, value) > 10) |
382 | { | 385 | { |
383 | RootPart.ScriptSetPhysicsStatus(false); | 386 | RootPart.ScriptSetPhysicsStatus(false); |
384 | Scene.SimChat(Utils.StringToBytes("Hit Sandbox Limit"), | 387 | |
385 | ChatTypeEnum.DebugChannel, 0x7FFFFFFF, RootPart.AbsolutePosition, Name, UUID, false); | 388 | if (Scene != null) |
389 | Scene.SimChat(Utils.StringToBytes("Hit Sandbox Limit"), | ||
390 | ChatTypeEnum.DebugChannel, 0x7FFFFFFF, RootPart.AbsolutePosition, Name, UUID, false); | ||
391 | |||
386 | return; | 392 | return; |
387 | } | 393 | } |
388 | } | 394 | } |
@@ -420,7 +426,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
420 | //m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); | 426 | //m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); |
421 | //} | 427 | //} |
422 | 428 | ||
423 | m_scene.EventManager.TriggerParcelPrimCountTainted(); | 429 | if (Scene != null) |
430 | Scene.EventManager.TriggerParcelPrimCountTainted(); | ||
424 | } | 431 | } |
425 | } | 432 | } |
426 | 433 | ||