diff options
author | Robert Adams | 2013-11-04 22:09:52 -0800 |
---|---|---|
committer | Robert Adams | 2013-11-04 22:09:52 -0800 |
commit | cd1a23fc142a12bb14ddb9d88d39e6acb41937b4 (patch) | |
tree | ddd50bb6c9f1b9cdde9bc52b3eb1612149055552 | |
parent | varregion: remove unused terrain serialization code in SQLite and PGSQL modules (diff) | |
download | opensim-SC-cd1a23fc142a12bb14ddb9d88d39e6acb41937b4.zip opensim-SC-cd1a23fc142a12bb14ddb9d88d39e6acb41937b4.tar.gz opensim-SC-cd1a23fc142a12bb14ddb9d88d39e6acb41937b4.tar.bz2 opensim-SC-cd1a23fc142a12bb14ddb9d88d39e6acb41937b4.tar.xz |
varregion: remove uses of region size constant. In particular, update scene
to check for border crossings based on the size of the region.
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | 11 |
3 files changed, 15 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index a19f31f..64b3baf 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1033,7 +1033,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1033 | 1033 | ||
1034 | BordersLocked = true; | 1034 | BordersLocked = true; |
1035 | Border northBorder = new Border(); | 1035 | Border northBorder = new Border(); |
1036 | northBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (int)Constants.RegionSize); //<--- | 1036 | northBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (float)RegionInfo.RegionSizeY); //<--- |
1037 | northBorder.CrossDirection = Cardinals.N; | 1037 | northBorder.CrossDirection = Cardinals.N; |
1038 | NorthBorders.Add(northBorder); | 1038 | NorthBorders.Add(northBorder); |
1039 | 1039 | ||
@@ -1043,7 +1043,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1043 | SouthBorders.Add(southBorder); | 1043 | SouthBorders.Add(southBorder); |
1044 | 1044 | ||
1045 | Border eastBorder = new Border(); | 1045 | Border eastBorder = new Border(); |
1046 | eastBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (int)Constants.RegionSize); //<--- | 1046 | eastBorder.BorderLine = new Vector3(float.MinValue, float.MaxValue, (float)RegionInfo.RegionSizeY); //<--- |
1047 | eastBorder.CrossDirection = Cardinals.E; | 1047 | eastBorder.CrossDirection = Cardinals.E; |
1048 | EastBorders.Add(eastBorder); | 1048 | EastBorders.Add(eastBorder); |
1049 | 1049 | ||
@@ -3994,12 +3994,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
3994 | { | 3994 | { |
3995 | if (posX < 0) | 3995 | if (posX < 0) |
3996 | posX = 0; | 3996 | posX = 0; |
3997 | else if (posX >= 256) | 3997 | else if (posX >= (float)RegionInfo.RegionSizeX) |
3998 | posX = 255.999f; | 3998 | posX = (float)RegionInfo.RegionSizeX - 0.001f; |
3999 | if (posY < 0) | 3999 | if (posY < 0) |
4000 | posY = 0; | 4000 | posY = 0; |
4001 | else if (posY >= 256) | 4001 | else if (posY >= (float)RegionInfo.RegionSizeY) |
4002 | posY = 255.999f; | 4002 | posY = (float)RegionInfo.RegionSizeY - 0.001f; |
4003 | 4003 | ||
4004 | reason = String.Empty; | 4004 | reason = String.Empty; |
4005 | if (Permissions.IsGod(agentID)) | 4005 | if (Permissions.IsGod(agentID)) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 4b4e4ba..eed8908 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -842,9 +842,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
842 | maxX = -256f; | 842 | maxX = -256f; |
843 | maxY = -256f; | 843 | maxY = -256f; |
844 | maxZ = -256f; | 844 | maxZ = -256f; |
845 | minX = 256f; | 845 | minX = 10000f; |
846 | minY = 256f; | 846 | minY = 10000f; |
847 | minZ = 8192f; | 847 | minZ = 10000f; |
848 | 848 | ||
849 | SceneObjectPart[] parts = m_parts.GetArray(); | 849 | SceneObjectPart[] parts = m_parts.GetArray(); |
850 | for (int i = 0; i < parts.Length; i++) | 850 | for (int i = 0; i < parts.Length; i++) |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs index 15b7090..edec949 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |||
@@ -376,18 +376,19 @@ public class BSPrim : BSPhysObject | |||
376 | { | 376 | { |
377 | bool ret = false; | 377 | bool ret = false; |
378 | 378 | ||
379 | uint wayOutThere = Constants.RegionSize * Constants.RegionSize; | 379 | int wayOverThere = -1000; |
380 | int wayOutThere = 10000; | ||
380 | // There have been instances of objects getting thrown way out of bounds and crashing | 381 | // There have been instances of objects getting thrown way out of bounds and crashing |
381 | // the border crossing code. | 382 | // the border crossing code. |
382 | if ( RawPosition.X < -Constants.RegionSize || RawPosition.X > wayOutThere | 383 | if ( RawPosition.X < wayOverThere || RawPosition.X > wayOutThere |
383 | || RawPosition.Y < -Constants.RegionSize || RawPosition.Y > wayOutThere | 384 | || RawPosition.Y < wayOverThere || RawPosition.X > wayOutThere |
384 | || RawPosition.Z < -Constants.RegionSize || RawPosition.Z > wayOutThere) | 385 | || RawPosition.Z < wayOverThere || RawPosition.X > wayOutThere) |
385 | { | 386 | { |
386 | RawPosition = new OMV.Vector3(10, 10, 50); | 387 | RawPosition = new OMV.Vector3(10, 10, 50); |
387 | ZeroMotion(inTaintTime); | 388 | ZeroMotion(inTaintTime); |
388 | ret = true; | 389 | ret = true; |
389 | } | 390 | } |
390 | if (RawVelocity.LengthSquared() > BSParam.MaxLinearVelocity) | 391 | if (RawVelocity.LengthSquared() > BSParam.MaxLinearVelocitySquared) |
391 | { | 392 | { |
392 | RawVelocity = Util.ClampV(RawVelocity, BSParam.MaxLinearVelocity); | 393 | RawVelocity = Util.ClampV(RawVelocity, BSParam.MaxLinearVelocity); |
393 | ret = true; | 394 | ret = true; |