diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
4 files changed, 16 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index f74fd5d..b0fb8b3 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -542,6 +542,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
542 | if (group.GetFromItemID() == itemID) | 542 | if (group.GetFromItemID() == itemID) |
543 | { | 543 | { |
544 | m_parentScene.SendAttachEvent(group.LocalId, itemID, UUID.Zero); | 544 | m_parentScene.SendAttachEvent(group.LocalId, itemID, UUID.Zero); |
545 | bool hasScripts = false; | ||
546 | foreach (SceneObjectPart part in group.Children.Values) | ||
547 | { | ||
548 | if (part.Inventory.ContainsScripts()) | ||
549 | { | ||
550 | hasScripts = true; | ||
551 | break; | ||
552 | } | ||
553 | } | ||
554 | |||
555 | if (hasScripts) // Allow the object to execute the attach(NULL_KEY) event | ||
556 | System.Threading.Thread.Sleep(100); | ||
545 | group.DetachToInventoryPrep(); | 557 | group.DetachToInventoryPrep(); |
546 | m_log.Debug("[DETACH]: Saving attachpoint: " + | 558 | m_log.Debug("[DETACH]: Saving attachpoint: " + |
547 | ((uint)group.GetAttachmentPoint()).ToString()); | 559 | ((uint)group.GetAttachmentPoint()).ToString()); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index eacd219..f8498c6 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1853,7 +1853,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1853 | } | 1853 | } |
1854 | } | 1854 | } |
1855 | } | 1855 | } |
1856 | 1856 | ||
1857 | public void rotLookAt(Quaternion target, float strength, float damping) | 1857 | public void rotLookAt(Quaternion target, float strength, float damping) |
1858 | { | 1858 | { |
1859 | SceneObjectPart rootpart = m_rootPart; | 1859 | SceneObjectPart rootpart = m_rootPart; |
@@ -1880,6 +1880,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1880 | } | 1880 | } |
1881 | } | 1881 | } |
1882 | } | 1882 | } |
1883 | |||
1883 | public void stopLookAt() | 1884 | public void stopLookAt() |
1884 | { | 1885 | { |
1885 | SceneObjectPart rootpart = m_rootPart; | 1886 | SceneObjectPart rootpart = m_rootPart; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 0eddbfd..6b562e5 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2684,7 +2684,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2684 | ParentGroup.HasGroupChanged = true; | 2684 | ParentGroup.HasGroupChanged = true; |
2685 | ScheduleFullUpdate(); | 2685 | ScheduleFullUpdate(); |
2686 | } | 2686 | } |
2687 | 2687 | ||
2688 | /// <summary> | 2688 | /// <summary> |
2689 | /// Set the text displayed for this part. | 2689 | /// Set the text displayed for this part. |
2690 | /// </summary> | 2690 | /// </summary> |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 0321c41..cdd23bd 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -345,6 +345,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
345 | break; | 345 | break; |
346 | } | 346 | } |
347 | } | 347 | } |
348 | m_part.ParentGroup.m_savedScriptState.Remove(oldID); | ||
348 | } | 349 | } |
349 | } | 350 | } |
350 | 351 | ||