diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rwxr-xr-x | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 9308500..2ecb55b 100755 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -296,13 +296,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
296 | Vector3 npos = new Vector3(sceneObject.RootPart.GroupPosition.X, | 296 | Vector3 npos = new Vector3(sceneObject.RootPart.GroupPosition.X, |
297 | sceneObject.RootPart.GroupPosition.Y, | 297 | sceneObject.RootPart.GroupPosition.Y, |
298 | sceneObject.RootPart.GroupPosition.Z); | 298 | sceneObject.RootPart.GroupPosition.Z); |
299 | if (!(((sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) && (sceneObject.RootPart.Shape.State != 0))) && (npos.X < 0.0 || npos.Y < 0.0 || npos.Z < 0.0 || | 299 | bool clampZ = m_parentScene.ClampNegativeZ; |
300 | |||
301 | if (!(((sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) && (sceneObject.RootPart.Shape.State != 0))) && (npos.X < 0.0 || npos.Y < 0.0 || (npos.Z < 0.0 && clampZ) || | ||
300 | npos.X > regionSizeX || | 302 | npos.X > regionSizeX || |
301 | npos.Y > regionSizeY)) | 303 | npos.Y > regionSizeY)) |
302 | { | 304 | { |
303 | if (npos.X < 0.0) npos.X = 1.0f; | 305 | if (npos.X < 0.0) npos.X = 1.0f; |
304 | if (npos.Y < 0.0) npos.Y = 1.0f; | 306 | if (npos.Y < 0.0) npos.Y = 1.0f; |
305 | if (npos.Z < 0.0) npos.Z = 0.0f; | 307 | if (npos.Z < 0.0 && clampZ) npos.Z = 0.0f; |
306 | if (npos.X > regionSizeX) npos.X = regionSizeX - 1.0f; | 308 | if (npos.X > regionSizeX) npos.X = regionSizeX - 1.0f; |
307 | if (npos.Y > regionSizeY) npos.Y = regionSizeY - 1.0f; | 309 | if (npos.Y > regionSizeY) npos.Y = regionSizeY - 1.0f; |
308 | 310 | ||