aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs13
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs8
3 files changed, 22 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 5ce3c7b..1f66744 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1134,7 +1134,7 @@ namespace OpenSim.Region.Environment.Scenes
1134 SceneObjectPart rootPart = group.GetChildPart(group.UUID); 1134 SceneObjectPart rootPart = group.GetChildPart(group.UUID);
1135 rootPart.ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted; 1135 rootPart.ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted;
1136 rootPart.TrimPermissions(); 1136 rootPart.TrimPermissions();
1137 1137 group.CheckSculptAndLoad();
1138 group.ApplyPhysics(m_physicalPrim); 1138 group.ApplyPhysics(m_physicalPrim);
1139 //rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); 1139 //rootPart.DoPhysicsPropertyUpdate(UsePhysics, true);
1140 } 1140 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 033a419..aae6af8 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -2546,5 +2546,18 @@ namespace OpenSim.Region.Environment.Scenes
2546 } 2546 }
2547 return retmass; 2547 return retmass;
2548 } 2548 }
2549 public void CheckSculptAndLoad()
2550 {
2551 lock (m_parts)
2552 {
2553 foreach (SceneObjectPart part in m_parts.Values)
2554 {
2555 if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero)
2556 {
2557 m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true);
2558 }
2559 }
2560 }
2561 }
2549 } 2562 }
2550} 2563}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 0075a22..9502627 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -1568,6 +1568,10 @@ namespace OpenSim.Region.Environment.Scenes
1568 byte[] extraP = new byte[Shape.ExtraParams.Length]; 1568 byte[] extraP = new byte[Shape.ExtraParams.Length];
1569 Array.Copy(Shape.ExtraParams, extraP, extraP.Length); 1569 Array.Copy(Shape.ExtraParams, extraP, extraP.Length);
1570 dupe.Shape.ExtraParams = extraP; 1570 dupe.Shape.ExtraParams = extraP;
1571 if (dupe.m_shape.SculptEntry && dupe.m_shape.SculptTexture != LLUUID.Zero)
1572 {
1573 m_parentGroup.Scene.AssetCache.GetAsset(dupe.m_shape.SculptTexture, dupe.SculptTextureCallback, true);
1574 }
1571 bool UsePhysics = ((dupe.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); 1575 bool UsePhysics = ((dupe.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0);
1572 dupe.DoPhysicsPropertyUpdate(UsePhysics, true); 1576 dupe.DoPhysicsPropertyUpdate(UsePhysics, true);
1573 1577
@@ -1939,6 +1943,10 @@ namespace OpenSim.Region.Environment.Scenes
1939 if (texture != null) 1943 if (texture != null)
1940 { 1944 {
1941 m_shape.SculptData = texture.Data; 1945 m_shape.SculptData = texture.Data;
1946 if (PhysActor != null)
1947 {
1948 PhysActor.Shape = m_shape;
1949 }
1942 } 1950 }
1943 } 1951 }
1944 1952