From a348c8e44a72bd2de0151fc6db7a229cd8ee86a2 Mon Sep 17 00:00:00 2001 From: Melanie Date: Sun, 26 May 2013 14:11:48 +0200 Subject: Allow Linden trees to preserve their type when taken into inventory and rezzed again. Allow Linden trees to be sensed by LLSensor as PASSIVE objects. --- .../Framework/InventoryAccess/InventoryAccessModule.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/CoreModules/Framework') 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 inventoryStoredPosition = objectGroup.RootPart.AttachOffset; inventoryStoredRotation = objectGroup.RootPart.AttachRotation; } - objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint; + + // Trees could be attached and it's been done, but it makes + // no sense. State must be preserved because it's the tree type + if (objectGroup.RootPart.Shape.PCode != (byte)PCode.Tree && + objectGroup.RootPart.Shape.PCode != (byte)PCode.NewTree) + objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint; objectGroup.AbsolutePosition = inventoryStoredPosition; objectGroup.RootPart.RotationOffset = inventoryStoredRotation; @@ -791,7 +796,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess g.RootPart.AttachPoint = g.RootPart.Shape.State; g.RootPart.AttachOffset = g.AbsolutePosition; g.RootPart.AttachRotation = g.GroupRotation; - g.RootPart.Shape.State = 0; + if (g.RootPart.Shape.PCode != (byte)PCode.NewTree && + g.RootPart.Shape.PCode != (byte)PCode.Tree) + g.RootPart.Shape.State = 0; } objlist.Add(g); @@ -825,7 +832,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess g.RootPart.AttachPoint = g.RootPart.Shape.State; g.RootPart.AttachOffset = g.AbsolutePosition; g.RootPart.AttachRotation = g.GroupRotation; - g.RootPart.Shape.State = 0; + if (g.RootPart.Shape.PCode != (byte)PCode.NewTree && + g.RootPart.Shape.PCode != (byte)PCode.Tree) + g.RootPart.Shape.State = 0; objlist.Add(g); XmlElement el = (XmlElement)n; -- cgit v1.1