diff options
-rwxr-xr-x | OpenSim/Region/Framework/Scenes/Scene.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 20 |
2 files changed, 12 insertions, 18 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index ed98046..252ae21 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -4667,16 +4667,6 @@ Label_GroupsDone: | |||
4667 | return false; | 4667 | return false; |
4668 | } | 4668 | } |
4669 | 4669 | ||
4670 | // public bool IncomingCloseAgent(UUID agentID) | ||
4671 | // { | ||
4672 | // return IncomingCloseAgent(agentID, false); | ||
4673 | // } | ||
4674 | |||
4675 | // public bool IncomingCloseChildAgent(UUID agentID) | ||
4676 | // { | ||
4677 | // return IncomingCloseAgent(agentID, true); | ||
4678 | // } | ||
4679 | |||
4680 | /// <summary> | 4670 | /// <summary> |
4681 | /// Tell a single client to prepare to close. | 4671 | /// Tell a single client to prepare to close. |
4682 | /// </summary> | 4672 | /// </summary> |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 3b78f2d..fd8c6fc 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1251,8 +1251,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1251 | /// </remarks> | 1251 | /// </remarks> |
1252 | 1252 | ||
1253 | // constants for physics position search | 1253 | // constants for physics position search |
1254 | const float PhysSearchHeight = 600f; | 1254 | const float PhysSearchHeight = 300f; |
1255 | const float PhysMinSkipGap = 50f; | 1255 | const float PhysMinSkipGap = 20f; |
1256 | const float PhysSkipGapDelta = 30f; | ||
1256 | const int PhysNumberCollisions = 30; | 1257 | const int PhysNumberCollisions = 30; |
1257 | 1258 | ||
1258 | // only in use as part of completemovement | 1259 | // only in use as part of completemovement |
@@ -1398,11 +1399,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
1398 | 1399 | ||
1399 | List<ContactResult> physresults = | 1400 | List<ContactResult> physresults = |
1400 | (List<ContactResult>)m_scene.RayCastFiltered(RayStart, direction, dist, physcount, rayfilter); | 1401 | (List<ContactResult>)m_scene.RayCastFiltered(RayStart, direction, dist, physcount, rayfilter); |
1401 | if (physresults != null && physresults.Count > 0) | 1402 | while (physresults != null && physresults.Count > 0) |
1402 | { | 1403 | { |
1403 | float dest = physresults[0].Pos.Z; | 1404 | float dest = physresults[0].Pos.Z; |
1405 | if (dest - groundHeight > PhysMinSkipGap + PhysSkipGapDelta) | ||
1406 | break; | ||
1404 | 1407 | ||
1405 | if(physresults.Count > 1) | 1408 | if (physresults.Count > 1) |
1406 | { | 1409 | { |
1407 | physresults.Sort(delegate(ContactResult a, ContactResult b) | 1410 | physresults.Sort(delegate(ContactResult a, ContactResult b) |
1408 | { | 1411 | { |
@@ -1420,7 +1423,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1420 | if(curd >= nextd) | 1423 | if(curd >= nextd) |
1421 | { | 1424 | { |
1422 | sel = i; | 1425 | sel = i; |
1423 | if(curd >= maxDepth) | 1426 | if(curd >= maxDepth || curd >= nextd + PhysSkipGapDelta) |
1424 | break; | 1427 | break; |
1425 | } | 1428 | } |
1426 | nextd = curd + PhysMinSkipGap; | 1429 | nextd = curd + PhysMinSkipGap; |
@@ -1428,9 +1431,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
1428 | dest = physresults[sel].Pos.Z; | 1431 | dest = physresults[sel].Pos.Z; |
1429 | } | 1432 | } |
1430 | 1433 | ||
1431 | dest += localAVHalfHeight; | 1434 | dest += localAVHalfHeight; |
1432 | if(dest > pos.Z) | 1435 | if(dest > pos.Z) |
1433 | pos.Z = dest; | 1436 | pos.Z = dest; |
1437 | break; | ||
1434 | } | 1438 | } |
1435 | } | 1439 | } |
1436 | 1440 | ||