From 5944d5e7f65a05596ca2b6005e59eea85e09e838 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Mon, 18 Feb 2008 18:22:50 +0000 Subject: * Fixed a land manager exception or two with Math.Max(255,Math.Min(0,val)) * Trapped a few more into little self contained boxes with padlocks on them. --- OpenSim/Region/Environment/LandManagement/Land.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Environment/LandManagement/Land.cs') diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs index fec8899..58e40c2 100644 --- a/OpenSim/Region/Environment/LandManagement/Land.cs +++ b/OpenSim/Region/Environment/LandManagement/Land.cs @@ -47,6 +47,8 @@ namespace OpenSim.Region.Environment.LandManagement { #region Member Variables + private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + public LandData landData = new LandData(); public List primsOverMe = new List(); public Scene m_scene; @@ -282,11 +284,20 @@ namespace OpenSim.Region.Environment.LandManagement public void sendLandUpdateToAvatarsOverMe() { List avatars = m_scene.GetAvatars(); + Land over = null; for (int i = 0; i < avatars.Count; i++) { - Land over = - m_scene.LandManager.getLandObject((int) Math.Round(avatars[i].AbsolutePosition.X), - (int) Math.Round(avatars[i].AbsolutePosition.Y)); + try + { + over = + m_scene.LandManager.getLandObject((int)Math.Max(255,Math.Min(0,Math.Round(avatars[i].AbsolutePosition.X))), + (int)Math.Max(255,Math.Min(0,Math.Round(avatars[i].AbsolutePosition.Y)))); + } + catch (Exception) + { + m_log.Warn("[LAND]: " + "unable to get land at x: " + Math.Round(avatars[i].AbsolutePosition.X) + " y: " + Math.Round(avatars[i].AbsolutePosition.Y)); + } + if (over != null) { if (over.landData.localID == landData.localID) -- cgit v1.1