diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 17ebc83..316f882 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -920,6 +920,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
920 | 920 | ||
921 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 921 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
922 | { | 922 | { |
923 | if (!sp.Scene.IncomingPreCloseAgent(sp)) | ||
924 | return; | ||
925 | |||
923 | // We need to delay here because Imprudence viewers, unlike v1 or v3, have a short (<200ms, <500ms) delay before | 926 | // We need to delay here because Imprudence viewers, unlike v1 or v3, have a short (<200ms, <500ms) delay before |
924 | // they regard the new region as the current region after receiving the AgentMovementComplete | 927 | // they regard the new region as the current region after receiving the AgentMovementComplete |
925 | // response. If close is sent before then, it will cause the viewer to quit instead. | 928 | // response. If close is sent before then, it will cause the viewer to quit instead. |
@@ -1082,6 +1085,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1082 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone | 1085 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone |
1083 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 1086 | if (NeedsClosing(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
1084 | { | 1087 | { |
1088 | if (!sp.Scene.IncomingPreCloseAgent(sp)) | ||
1089 | return; | ||
1090 | |||
1085 | // RED ALERT!!!! | 1091 | // RED ALERT!!!! |
1086 | // PLEASE DO NOT DECREASE THIS WAIT TIME UNDER ANY CIRCUMSTANCES. | 1092 | // PLEASE DO NOT DECREASE THIS WAIT TIME UNDER ANY CIRCUMSTANCES. |
1087 | // THE VIEWERS SEEM TO NEED SOME TIME AFTER RECEIVING MoveAgentIntoRegion | 1093 | // THE VIEWERS SEEM TO NEED SOME TIME AFTER RECEIVING MoveAgentIntoRegion |
@@ -1095,6 +1101,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1095 | // then this will be handled in IncomingCloseAgent under lock conditions | 1101 | // then this will be handled in IncomingCloseAgent under lock conditions |
1096 | m_log.DebugFormat( | 1102 | m_log.DebugFormat( |
1097 | "[ENTITY TRANSFER MODULE]: Closing agent {0} in {1} after teleport", sp.Name, Scene.Name); | 1103 | "[ENTITY TRANSFER MODULE]: Closing agent {0} in {1} after teleport", sp.Name, Scene.Name); |
1104 | |||
1098 | sp.Scene.IncomingCloseAgent(sp.UUID, false); | 1105 | sp.Scene.IncomingCloseAgent(sp.UUID, false); |
1099 | } | 1106 | } |
1100 | else | 1107 | else |