diff options
author | UbitUmarov | 2014-10-18 20:27:33 +0100 |
---|---|---|
committer | UbitUmarov | 2014-10-18 20:27:33 +0100 |
commit | 159246f88cf5ceb7b2991d87f585d7cf2cd84c91 (patch) | |
tree | 18f06359e3babcb6a77cdf0a85c9906c57ac3435 | |
parent | change child agents creation/notification. As before this assumes that (diff) | |
download | opensim-SC_OLD-159246f88cf5ceb7b2991d87f585d7cf2cd84c91.zip opensim-SC_OLD-159246f88cf5ceb7b2991d87f585d7cf2cd84c91.tar.gz opensim-SC_OLD-159246f88cf5ceb7b2991d87f585d7cf2cd84c91.tar.bz2 opensim-SC_OLD-159246f88cf5ceb7b2991d87f585d7cf2cd84c91.tar.xz |
fix SW direction diagonal crossing
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 24d1270..9c8aada 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -1417,6 +1417,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1417 | { | 1417 | { |
1418 | Border b = scene.GetCrossedBorder(pos + northCross, Cardinals.N); | 1418 | Border b = scene.GetCrossedBorder(pos + northCross, Cardinals.N); |
1419 | neighboury += (uint)(int)(b.BorderLine.Z / (int)Constants.RegionSize); | 1419 | neighboury += (uint)(int)(b.BorderLine.Z / (int)Constants.RegionSize); |
1420 | newpos.Y = enterDistance; | ||
1420 | } | 1421 | } |
1421 | else if (scene.TestBorderCross(pos + southCross, Cardinals.S)) | 1422 | else if (scene.TestBorderCross(pos + southCross, Cardinals.S)) |
1422 | { | 1423 | { |
@@ -1536,7 +1537,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1536 | string version; | 1537 | string version; |
1537 | string reason; | 1538 | string reason; |
1538 | 1539 | ||
1539 | GridRegion neighbourRegion = GetDestination(agent.Scene, agent.UUID, agent.AbsolutePosition, out x, out y, out version, out newpos, out reason); | 1540 | Vector3 pos = agent.AbsolutePosition + agent.Velocity; |
1541 | |||
1542 | GridRegion neighbourRegion = GetDestination(agent.Scene, agent.UUID, pos, out x, out y, out version, out newpos, out reason); | ||
1540 | if (neighbourRegion == null) | 1543 | if (neighbourRegion == null) |
1541 | { | 1544 | { |
1542 | if (reason == String.Empty) | 1545 | if (reason == String.Empty) |
@@ -1678,7 +1681,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1678 | 1681 | ||
1679 | // agent.Appearance.WearableCacheItems = null; | 1682 | // agent.Appearance.WearableCacheItems = null; |
1680 | 1683 | ||
1681 | cAgent.Position = pos + agent.Velocity; | 1684 | cAgent.Position = pos; |
1682 | if (isFlying) | 1685 | if (isFlying) |
1683 | cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; | 1686 | cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; |
1684 | 1687 | ||