From 68736aa460869717a24ec5d68053b7a1f540b853 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 21 Mar 2012 15:27:33 +0000 Subject: [PATCH] fix a bad reset of shapetype on pbshape change, added missing checksculpload ( to reload mesh on change ) --- .../Region/Framework/Scenes/SceneObjectPart.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 51a3c18e2b..cfa3cd4470 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -989,7 +989,6 @@ namespace OpenSim.Region.Framework.Scenes set { m_shape = value; - m_physicsShapeType = DefaultPhysicsShapeType(); } } @@ -1003,7 +1002,6 @@ namespace OpenSim.Region.Framework.Scenes { if (m_shape != null) { -// StoreUndoState(); m_shape.Scale = value; @@ -1498,6 +1496,7 @@ namespace OpenSim.Region.Framework.Scenes set { byte oldv = m_physicsShapeType; + if (value >= 0 && value <= (byte)PhysShapeType.convex) { if (value == (byte)PhysShapeType.none && ParentGroup != null && ParentGroup.RootPart == this) @@ -1508,7 +1507,6 @@ namespace OpenSim.Region.Framework.Scenes else m_physicsShapeType = DefaultPhysicsShapeType(); - if (m_physicsShapeType != oldv && ParentGroup != null) { if (m_physicsShapeType == (byte)PhysShapeType.none) @@ -1526,13 +1524,18 @@ namespace OpenSim.Region.Framework.Scenes else if (PhysActor == null) ApplyPhysics((uint)Flags, VolumeDetectActive, false); else - PhysActor.PhysicsShapeType = m_physicsShapeType; - } - if (m_physicsShapeType != value) - { + { + PhysActor.PhysicsShapeType = m_physicsShapeType; + if (Shape.SculptEntry) + CheckSculptAndLoad(); + } + if (ParentGroup != null) ParentGroup.HasGroupChanged = true; + } + if (m_physicsShapeType != value) + { UpdatePhysRequired = true; } }