diff options
author | Justin Clark-Casey (justincc) | 2011-09-02 22:28:27 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-09-02 22:28:27 +0100 |
commit | 26b471f25a27d7e888d31854a3437f85191538a7 (patch) | |
tree | a22a89f65b4a09d298090d36163986ae84f99a9f | |
parent | stop passing FromUserInventoryItemID right down into the deserializer. (diff) | |
download | opensim-SC_OLD-26b471f25a27d7e888d31854a3437f85191538a7.zip opensim-SC_OLD-26b471f25a27d7e888d31854a3437f85191538a7.tar.gz opensim-SC_OLD-26b471f25a27d7e888d31854a3437f85191538a7.tar.bz2 opensim-SC_OLD-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
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 6 |
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> |