diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/Util.cs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 533e53a..5a5046e 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -459,10 +459,17 @@ namespace OpenSim.Framework | |||
459 | /// <param name="oldy">Old region y-coord</param> | 459 | /// <param name="oldy">Old region y-coord</param> |
460 | /// <param name="newy">New region y-coord</param> | 460 | /// <param name="newy">New region y-coord</param> |
461 | /// <returns></returns> | 461 | /// <returns></returns> |
462 | public static bool IsOutsideView(uint oldx, uint newx, uint oldy, uint newy) | 462 | public static bool IsOutsideView(float drawdist, uint oldx, uint newx, uint oldy, uint newy) |
463 | { | 463 | { |
464 | // Eventually this will be a function of the draw distance / camera position too. | 464 | int dd = (int)((drawdist + Constants.RegionSize - 1) / Constants.RegionSize); |
465 | return (((int)Math.Abs((int)(oldx - newx)) > 1) || ((int)Math.Abs((int)(oldy - newy)) > 1)); | 465 | |
466 | int startX = (int)oldx - dd; | ||
467 | int startY = (int)oldy - dd; | ||
468 | |||
469 | int endX = (int)oldx + dd; | ||
470 | int endY = (int)oldy + dd; | ||
471 | |||
472 | return (newx < startX || endX < newx || newy < startY || endY < newy); | ||
466 | } | 473 | } |
467 | 474 | ||
468 | public static string FieldToString(byte[] bytes) | 475 | public static string FieldToString(byte[] bytes) |