aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Util.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Util.cs')
-rw-r--r--OpenSim/Framework/Util.cs23
1 files changed, 16 insertions, 7 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index d807e2a..5f4ab06 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -675,17 +675,26 @@ namespace OpenSim.Framework
675 /// <param name="oldy">Old region y-coord</param> 675 /// <param name="oldy">Old region y-coord</param>
676 /// <param name="newy">New region y-coord</param> 676 /// <param name="newy">New region y-coord</param>
677 /// <returns></returns> 677 /// <returns></returns>
678 public static bool IsOutsideView(float drawdist, uint oldx, uint newx, uint oldy, uint newy) 678 public static bool IsOutsideView(float drawdist, uint oldx, uint newx, uint oldy, uint newy,
679 int oldsizex, int oldsizey, int newsizex, int newsizey)
679 { 680 {
680 int dd = (int)((drawdist + Constants.RegionSize - 1) / Constants.RegionSize); 681 // we still need to make sure we see new region 1stNeighbors
681 682
682 int startX = (int)oldx - dd; 683 oldx *= Constants.RegionSize;
683 int startY = (int)oldy - dd; 684 newx *= Constants.RegionSize;
685 if (oldx + oldsizex + drawdist < newx)
686 return true;
687 if (newx + newsizex + drawdist < oldx)
688 return true;
684 689
685 int endX = (int)oldx + dd; 690 oldy *= Constants.RegionSize;
686 int endY = (int)oldy + dd; 691 newy *= Constants.RegionSize;
692 if (oldy + oldsizey + drawdist < newy)
693 return true;
694 if (newy + newsizey + drawdist< oldy)
695 return true;
687 696
688 return (newx < startX || endX < newx || newy < startY || endY < newy); 697 return false;
689 } 698 }
690 699
691 public static string FieldToString(byte[] bytes) 700 public static string FieldToString(byte[] bytes)