aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-09-02 22:28:27 +0100
committerJustin Clark-Casey (justincc)2011-09-02 22:28:27 +0100
commit26b471f25a27d7e888d31854a3437f85191538a7 (patch)
treea22a89f65b4a09d298090d36163986ae84f99a9f /OpenSim
parentstop passing FromUserInventoryItemID right down into the deserializer. (diff)
downloadopensim-SC-26b471f25a27d7e888d31854a3437f85191538a7.zip
opensim-SC-26b471f25a27d7e888d31854a3437f85191538a7.tar.gz
opensim-SC-26b471f25a27d7e888d31854a3437f85191538a7.tar.bz2
opensim-SC-26b471f25a27d7e888d31854a3437f85191538a7.tar.xz
Go back to resetting the State parameter for all parts of a SOG when SOG.ClearPartAttachmentData() is called.
Even though we don't use these on rez they are still present after an unlink, after which selecting them causes various viewers to crash Hopefully really does address http://opensimulator.org/mantis/view.php?id=5664
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs13
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs6
2 files changed, 14 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index e6b58b3..4b39341 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -794,14 +794,17 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
794 m_log.Debug("[InventoryAccessModule]: Object has UUID.Zero! Position 3"); 794 m_log.Debug("[InventoryAccessModule]: Object has UUID.Zero! Position 3");
795 } 795 }
796 796
797 // If it's rezzed in world, select it. Much easier to
798 // find small items.
799 //
800 if (!attachment) 797 if (!attachment)
801 { 798 {
799 // If it's rezzed in world, select it. Much easier to
800 // find small items.
801 //
802 group.RootPart.CreateSelected = true; 802 group.RootPart.CreateSelected = true;
803 foreach (SceneObjectPart child in group.Parts) 803
804 child.CreateSelected = true; 804 foreach (SceneObjectPart part in group.Parts)
805 {
806 part.CreateSelected = true;
807 }
805 } 808 }
806 809
807 group.ResetIDs(); 810 group.ResetIDs();
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index fca42c8..2819545 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -183,6 +183,12 @@ namespace OpenSim.Region.Framework.Scenes
183 public void ClearPartAttachmentData() 183 public void ClearPartAttachmentData()
184 { 184 {
185 AttachmentPoint = 0; 185 AttachmentPoint = 0;
186
187 // Even though we don't use child part state parameters for attachments any more, we still need to set
188 // these to zero since having them non-zero in rezzed scene objects will crash some clients. Even if
189 // we store them correctly, scene objects that we receive from elsewhere might not.
190 foreach (SceneObjectPart part in Parts)
191 part.Shape.State = 0;
186 } 192 }
187 193
188 /// <summary> 194 /// <summary>