aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs15
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs5
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs4
3 files changed, 20 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 43c7e7d..4c11135 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -387,7 +387,12 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
387 inventoryStoredPosition = objectGroup.RootPart.AttachOffset; 387 inventoryStoredPosition = objectGroup.RootPart.AttachOffset;
388 inventoryStoredRotation = objectGroup.RootPart.AttachRotation; 388 inventoryStoredRotation = objectGroup.RootPart.AttachRotation;
389 } 389 }
390 objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint; 390
391 // Trees could be attached and it's been done, but it makes
392 // no sense. State must be preserved because it's the tree type
393 if (objectGroup.RootPart.Shape.PCode != (byte)PCode.Tree &&
394 objectGroup.RootPart.Shape.PCode != (byte)PCode.NewTree)
395 objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint;
391 396
392 objectGroup.AbsolutePosition = inventoryStoredPosition; 397 objectGroup.AbsolutePosition = inventoryStoredPosition;
393 objectGroup.RootPart.RotationOffset = inventoryStoredRotation; 398 objectGroup.RootPart.RotationOffset = inventoryStoredRotation;
@@ -791,7 +796,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
791 g.RootPart.AttachPoint = g.RootPart.Shape.State; 796 g.RootPart.AttachPoint = g.RootPart.Shape.State;
792 g.RootPart.AttachOffset = g.AbsolutePosition; 797 g.RootPart.AttachOffset = g.AbsolutePosition;
793 g.RootPart.AttachRotation = g.GroupRotation; 798 g.RootPart.AttachRotation = g.GroupRotation;
794 g.RootPart.Shape.State = 0; 799 if (g.RootPart.Shape.PCode != (byte)PCode.NewTree &&
800 g.RootPart.Shape.PCode != (byte)PCode.Tree)
801 g.RootPart.Shape.State = 0;
795 } 802 }
796 803
797 objlist.Add(g); 804 objlist.Add(g);
@@ -825,7 +832,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
825 g.RootPart.AttachPoint = g.RootPart.Shape.State; 832 g.RootPart.AttachPoint = g.RootPart.Shape.State;
826 g.RootPart.AttachOffset = g.AbsolutePosition; 833 g.RootPart.AttachOffset = g.AbsolutePosition;
827 g.RootPart.AttachRotation = g.GroupRotation; 834 g.RootPart.AttachRotation = g.GroupRotation;
828 g.RootPart.Shape.State = 0; 835 if (g.RootPart.Shape.PCode != (byte)PCode.NewTree &&
836 g.RootPart.Shape.PCode != (byte)PCode.Tree)
837 g.RootPart.Shape.State = 0;
829 838
830 objlist.Add(g); 839 objlist.Add(g);
831 XmlElement el = (XmlElement)n; 840 XmlElement el = (XmlElement)n;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 69fb6df..0ea4e09 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -272,6 +272,11 @@ namespace OpenSim.Region.Framework.Scenes
272 { 272 {
273 AttachmentPoint = 0; 273 AttachmentPoint = 0;
274 274
275 // Don't zap trees
276 if (RootPart.Shape.PCode == (byte)PCode.Tree ||
277 RootPart.Shape.PCode == (byte)PCode.NewTree)
278 return;
279
275 // Even though we don't use child part state parameters for attachments any more, we still need to set 280 // Even though we don't use child part state parameters for attachments any more, we still need to set
276 // these to zero since having them non-zero in rezzed scene objects will crash some clients. Even if 281 // these to zero since having them non-zero in rezzed scene objects will crash some clients. Even if
277 // we store them correctly, scene objects that we receive from elsewhere might not. 282 // we store them correctly, scene objects that we receive from elsewhere might not.
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
index 884f07c..a47e452 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
@@ -398,7 +398,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
398 objtype = 0; 398 objtype = 0;
399 399
400 part = ((SceneObjectGroup)ent).RootPart; 400 part = ((SceneObjectGroup)ent).RootPart;
401 if (part.ParentGroup.AttachmentPoint != 0) // Attached so ignore 401 if (part.ParentGroup.RootPart.Shape.PCode != (byte)PCode.Tree &&
402 part.ParentGroup.RootPart.Shape.PCode != (byte)PCode.NewTree &&
403 part.ParentGroup.AttachmentPoint != 0) // Attached so ignore
402 continue; 404 continue;
403 405
404 if (part.Inventory.ContainsScripts()) 406 if (part.Inventory.ContainsScripts())