diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index f2850bb..4ab36a5 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -868,7 +868,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
868 | // The EnableSimulator message makes the client establish a connection with the destination | 868 | // The EnableSimulator message makes the client establish a connection with the destination |
869 | // simulator by sending the initial UseCircuitCode UDP packet to the destination containing the | 869 | // simulator by sending the initial UseCircuitCode UDP packet to the destination containing the |
870 | // correct circuit code. | 870 | // correct circuit code. |
871 | m_eqModule.EnableSimulator(destinationHandle, endPoint, sp.UUID); | 871 | m_eqModule.EnableSimulator(destinationHandle, endPoint, sp.UUID, |
872 | finalDestination.RegionSizeX, finalDestination.RegionSizeY); | ||
873 | m_log.DebugFormat("{0} Sent EnableSimulator. regName={1}, size=<{2},{3}>", LogHeader, | ||
874 | finalDestination.RegionName, finalDestination.RegionSizeX, finalDestination.RegionSizeY); | ||
872 | 875 | ||
873 | // XXX: Is this wait necessary? We will always end up waiting on UpdateAgent for the destination | 876 | // XXX: Is this wait necessary? We will always end up waiting on UpdateAgent for the destination |
874 | // simulator to confirm that it has established communication with the viewer. | 877 | // simulator to confirm that it has established communication with the viewer. |
@@ -878,7 +881,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
878 | // unnecessary - teleport will succeed and SEED caps will be requested without it (though possibly | 881 | // unnecessary - teleport will succeed and SEED caps will be requested without it (though possibly |
879 | // only on TeleportFinish). This is untested for region teleport between different simulators | 882 | // only on TeleportFinish). This is untested for region teleport between different simulators |
880 | // though this probably also works. | 883 | // though this probably also works. |
881 | m_eqModule.EstablishAgentCommunication(sp.UUID, endPoint, capsPath); | 884 | m_eqModule.EstablishAgentCommunication(sp.UUID, endPoint, capsPath, finalDestination.RegionHandle, |
885 | finalDestination.RegionSizeX, finalDestination.RegionSizeY); | ||
882 | } | 886 | } |
883 | else | 887 | else |
884 | { | 888 | { |
@@ -964,7 +968,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
964 | // OK, send TPFinish to the client, so that it starts the process of contacting the destination region | 968 | // OK, send TPFinish to the client, so that it starts the process of contacting the destination region |
965 | if (m_eqModule != null) | 969 | if (m_eqModule != null) |
966 | { | 970 | { |
967 | m_eqModule.TeleportFinishEvent(destinationHandle, 13, endPoint, 0, teleportFlags, capsPath, sp.UUID); | 971 | m_eqModule.TeleportFinishEvent(destinationHandle, 13, endPoint, 0, teleportFlags, capsPath, sp.UUID, |
972 | finalDestination.RegionSizeX, finalDestination.RegionSizeY); | ||
968 | } | 973 | } |
969 | else | 974 | else |
970 | { | 975 | { |
@@ -1117,7 +1122,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1117 | 1122 | ||
1118 | // New protocol: send TP Finish directly, without prior ES or EAC. That's what happens in the Linden grid | 1123 | // New protocol: send TP Finish directly, without prior ES or EAC. That's what happens in the Linden grid |
1119 | if (m_eqModule != null) | 1124 | if (m_eqModule != null) |
1120 | m_eqModule.TeleportFinishEvent(destinationHandle, 13, endPoint, 0, teleportFlags, capsPath, sp.UUID); | 1125 | m_eqModule.TeleportFinishEvent(destinationHandle, 13, endPoint, 0, teleportFlags, capsPath, sp.UUID, |
1126 | finalDestination.RegionSizeX, finalDestination.RegionSizeY); | ||
1121 | else | 1127 | else |
1122 | sp.ControllingClient.SendRegionTeleport(destinationHandle, 13, endPoint, 4, | 1128 | sp.ControllingClient.SendRegionTeleport(destinationHandle, 13, endPoint, 4, |
1123 | teleportFlags, capsPath); | 1129 | teleportFlags, capsPath); |
@@ -1690,11 +1696,14 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1690 | if (m_eqModule != null) | 1696 | if (m_eqModule != null) |
1691 | { | 1697 | { |
1692 | m_eqModule.CrossRegion( | 1698 | m_eqModule.CrossRegion( |
1693 | neighbourRegion.RegionHandle, pos + agent.Velocity, vel2 /* agent.Velocity */, neighbourRegion.ExternalEndPoint, | 1699 | neighbourRegion.RegionHandle, pos + agent.Velocity, vel2 /* agent.Velocity */, |
1694 | capsPath, agent.UUID, agent.ControllingClient.SessionId); | 1700 | neighbourRegion.ExternalEndPoint, |
1701 | capsPath, agent.UUID, agent.ControllingClient.SessionId, | ||
1702 | neighbourRegion.RegionSizeX, neighbourRegion.RegionSizeY); | ||
1695 | } | 1703 | } |
1696 | else | 1704 | else |
1697 | { | 1705 | { |
1706 | m_log.ErrorFormat("{0} Using old CrossRegion packet. Varregion will not work!!", LogHeader); | ||
1698 | agent.ControllingClient.CrossRegion(neighbourRegion.RegionHandle, pos + agent.Velocity, agent.Velocity, neighbourRegion.ExternalEndPoint, | 1707 | agent.ControllingClient.CrossRegion(neighbourRegion.RegionHandle, pos + agent.Velocity, agent.Velocity, neighbourRegion.ExternalEndPoint, |
1699 | capsPath); | 1708 | capsPath); |
1700 | } | 1709 | } |
@@ -2240,12 +2249,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
2240 | } | 2249 | } |
2241 | #endregion | 2250 | #endregion |
2242 | 2251 | ||
2243 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: {0} is sending {1} EnableSimulator for neighbour region {2} @ {3} " + | 2252 | m_log.DebugFormat("{0} {1} is sending {2} EnableSimulator for neighbour region {3}(loc=<{4},{5}>,siz=<{6},{7}>) " + |
2244 | "and EstablishAgentCommunication with seed cap {4}", | 2253 | "and EstablishAgentCommunication with seed cap {8}", LogHeader, |
2245 | scene.RegionInfo.RegionName, sp.Name, reg.RegionName, reg.RegionHandle, capsPath); | 2254 | scene.RegionInfo.RegionName, sp.Name, |
2255 | reg.RegionName, reg.RegionLocX, reg.RegionLocY, reg.RegionSizeX, reg.RegionSizeY , capsPath); | ||
2246 | 2256 | ||
2247 | m_eqModule.EnableSimulator(reg.RegionHandle, endPoint, sp.UUID); | 2257 | m_eqModule.EnableSimulator(reg.RegionHandle, endPoint, sp.UUID, reg.RegionSizeX, reg.RegionSizeY); |
2248 | m_eqModule.EstablishAgentCommunication(sp.UUID, endPoint, capsPath); | 2258 | m_eqModule.EstablishAgentCommunication(sp.UUID, endPoint, capsPath, reg.RegionHandle, reg.RegionSizeX, reg.RegionSizeY); |
2249 | } | 2259 | } |
2250 | else | 2260 | else |
2251 | { | 2261 | { |