diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
3 files changed, 23 insertions, 6 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index b0cee03..2bebd30 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -551,12 +551,17 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
551 | /// <param name="client"></param> | 551 | /// <param name="client"></param> |
552 | private void Client_OnRequestWearables(IClientAPI client) | 552 | private void Client_OnRequestWearables(IClientAPI client) |
553 | { | 553 | { |
554 | // m_log.DebugFormat("[AVFACTORY]: Client_OnRequestWearables called for {0} ({1})", client.Name, client.AgentId); | 554 | Util.FireAndForget(delegate(object x) |
555 | ScenePresence sp = m_scene.GetScenePresence(client.AgentId); | 555 | { |
556 | if (sp != null) | 556 | Thread.Sleep(4000); |
557 | client.SendWearables(sp.Appearance.Wearables, sp.Appearance.Serial++); | 557 | |
558 | else | 558 | // m_log.DebugFormat("[AVFACTORY]: Client_OnRequestWearables called for {0} ({1})", client.Name, client.AgentId); |
559 | m_log.WarnFormat("[AVFACTORY]: Client_OnRequestWearables unable to find presence for {0}", client.AgentId); | 559 | ScenePresence sp = m_scene.GetScenePresence(client.AgentId); |
560 | if (sp != null) | ||
561 | client.SendWearables(sp.Appearance.Wearables, sp.Appearance.Serial++); | ||
562 | else | ||
563 | m_log.WarnFormat("[AVFACTORY]: Client_OnRequestWearables unable to find presence for {0}", client.AgentId); | ||
564 | }); | ||
560 | } | 565 | } |
561 | 566 | ||
562 | /// <summary> | 567 | /// <summary> |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 2498705..60a8f86 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -1746,6 +1746,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1746 | if (grp.RootPart.PhysActor != null) | 1746 | if (grp.RootPart.PhysActor != null) |
1747 | { | 1747 | { |
1748 | grp.RootPart.PhysActor.CrossingFailure(); | 1748 | grp.RootPart.PhysActor.CrossingFailure(); |
1749 | if (grp.RootPart.KeyframeMotion != null) | ||
1750 | { | ||
1751 | grp.RootPart.Velocity = Vector3.Zero; | ||
1752 | grp.RootPart.KeyframeMotion.CrossingFailure(); | ||
1753 | grp.SendGroupRootTerseUpdate(); | ||
1754 | } | ||
1749 | } | 1755 | } |
1750 | } | 1756 | } |
1751 | 1757 | ||
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 6c4c63f..192d55f 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -355,6 +355,12 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
355 | 355 | ||
356 | foreach (SceneObjectGroup objectGroup in objlist) | 356 | foreach (SceneObjectGroup objectGroup in objlist) |
357 | { | 357 | { |
358 | if (objectGroup.RootPart.KeyframeMotion != null) | ||
359 | objectGroup.RootPart.KeyframeMotion.Stop(); | ||
360 | objectGroup.RootPart.SetForce(Vector3.Zero); | ||
361 | objectGroup.RootPart.SetAngularImpulse(Vector3.Zero, false); | ||
362 | objectGroup.RootPart.KeyframeMotion = null; | ||
363 | |||
358 | Vector3 inventoryStoredPosition = new Vector3 | 364 | Vector3 inventoryStoredPosition = new Vector3 |
359 | (((objectGroup.AbsolutePosition.X > (int)Constants.RegionSize) | 365 | (((objectGroup.AbsolutePosition.X > (int)Constants.RegionSize) |
360 | ? 250 | 366 | ? 250 |