diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 486f9d2..1f62743 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -327,6 +327,14 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
327 | return; | 327 | return; |
328 | } | 328 | } |
329 | 329 | ||
330 | // Validate assorted conditions | ||
331 | string reason = string.Empty; | ||
332 | if (!ValidateGenericConditions(sp, reg, finalDestination, teleportFlags, out reason)) | ||
333 | { | ||
334 | sp.ControllingClient.SendTeleportFailed(reason); | ||
335 | return; | ||
336 | } | ||
337 | |||
330 | // | 338 | // |
331 | // This is it | 339 | // This is it |
332 | // | 340 | // |
@@ -358,6 +366,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
358 | } | 366 | } |
359 | } | 367 | } |
360 | 368 | ||
369 | // Nothing to validate here | ||
370 | protected virtual bool ValidateGenericConditions(ScenePresence sp, GridRegion reg, GridRegion finalDestination, uint teleportFlags, out string reason) | ||
371 | { | ||
372 | reason = String.Empty; | ||
373 | return true; | ||
374 | } | ||
375 | |||
361 | /// <summary> | 376 | /// <summary> |
362 | /// Determines whether this instance is within the max transfer distance. | 377 | /// Determines whether this instance is within the max transfer distance. |
363 | /// </summary> | 378 | /// </summary> |
@@ -574,7 +589,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
574 | 589 | ||
575 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Updating agent..."); | 590 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Updating agent..."); |
576 | 591 | ||
577 | if (!UpdateAgent(reg, finalDestination, agent)) | 592 | if (!UpdateAgent(reg, finalDestination, agent, sp)) |
578 | { | 593 | { |
579 | // Region doesn't take it | 594 | // Region doesn't take it |
580 | m_log.WarnFormat( | 595 | m_log.WarnFormat( |
@@ -701,7 +716,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
701 | return success; | 716 | return success; |
702 | } | 717 | } |
703 | 718 | ||
704 | protected virtual bool UpdateAgent(GridRegion reg, GridRegion finalDestination, AgentData agent) | 719 | protected virtual bool UpdateAgent(GridRegion reg, GridRegion finalDestination, AgentData agent, ScenePresence sp) |
705 | { | 720 | { |
706 | return Scene.SimulationService.UpdateAgent(finalDestination, agent); | 721 | return Scene.SimulationService.UpdateAgent(finalDestination, agent); |
707 | } | 722 | } |