aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs16
1 files changed, 13 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index c93c54d..9b094f7 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -371,7 +371,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
371 teleportFlags |= (uint)TeleportFlags.Godlike; 371 teleportFlags |= (uint)TeleportFlags.Godlike;
372 } 372 }
373 373
374 if (!sp.Scene.Permissions.CanTeleport(sp.UUID)) 374 else if (!sp.Scene.Permissions.CanTeleport(sp.UUID))
375 return; 375 return;
376 376
377 string destinationRegionName = "(not found)"; 377 string destinationRegionName = "(not found)";
@@ -391,17 +391,27 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
391 391
392 try 392 try
393 { 393 {
394 // Reset animations; the viewer does that in teleports.
395 sp.Animator.ResetAnimations();
396 394
397 if (regionHandle == sp.Scene.RegionInfo.RegionHandle) 395 if (regionHandle == sp.Scene.RegionInfo.RegionHandle)
398 { 396 {
397 if(!sp.AllowMovement)
398 {
399 sp.ControllingClient.SendTeleportFailed("You are frozen");
400 m_entityTransferStateMachine.ResetFromTransit(sp.UUID);
401 return;
402 }
403
404 // Reset animations; the viewer does that in teleports.
405 sp.Animator.ResetAnimations();
399 destinationRegionName = sp.Scene.RegionInfo.RegionName; 406 destinationRegionName = sp.Scene.RegionInfo.RegionName;
400 407
401 TeleportAgentWithinRegion(sp, position, lookAt, teleportFlags); 408 TeleportAgentWithinRegion(sp, position, lookAt, teleportFlags);
402 } 409 }
403 else // Another region possibly in another simulator 410 else // Another region possibly in another simulator
404 { 411 {
412 // Reset animations; the viewer does that in teleports.
413 sp.Animator.ResetAnimations();
414
405 GridRegion finalDestination = null; 415 GridRegion finalDestination = null;
406 try 416 try
407 { 417 {