aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rwxr-xr-xOpenSim/Region/Framework/Scenes/Scene.cs10
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs20
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