diff --git a/OpenSim/Framework/Location.cs b/OpenSim/Framework/Location.cs index aed2b87afe..d0f01d0512 100644 --- a/OpenSim/Framework/Location.cs +++ b/OpenSim/Framework/Location.cs @@ -86,6 +86,16 @@ namespace OpenSim.Framework return X == x && y == Y; } + public static bool operator ==(Location o, object o2) + { + return o.Equals(o2); + } + + public static bool operator !=(Location o, object o2) + { + return !o.Equals(o2); + } + public override int GetHashCode() { return X.GetHashCode() * 29 + Y.GetHashCode(); diff --git a/OpenSim/Framework/Tests/LocationTest.cs b/OpenSim/Framework/Tests/LocationTest.cs index 1c10a39f7d..118ec946f9 100644 --- a/OpenSim/Framework/Tests/LocationTest.cs +++ b/OpenSim/Framework/Tests/LocationTest.cs @@ -45,6 +45,22 @@ namespace OpenSim.Framework.Tests Location TestLocation1 = new Location(1099511628032000); Location TestLocation2 = new Location(1099511628032000); Assert.That(TestLocation1 == TestLocation2); + + TestLocation1 = new Location(1099511628032001); + TestLocation2 = new Location(1099511628032000); + Assert.That(TestLocation1 != TestLocation2); + } + + [Test] + public void locationXYRegionHandle() + { + Location TestLocation1 = new Location(256000,256000); + Location TestLocation2 = new Location(1099511628032000); + Assert.That(TestLocation1 == TestLocation2); + + TestLocation1 = new Location(256001, 256001); + TestLocation2 = new Location(1099511628032000); + Assert.That(TestLocation1 != TestLocation2); } } diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 8653b23f3d..09b9ac9a06 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs @@ -106,8 +106,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP public bool HandlesRegion(Location x) { - return x.RegionHandle == m_location.RegionHandle; - //return x == m_location; + //return x.RegionHandle == m_location.RegionHandle; + return x == m_location; } public void AddScene(Scene x)