From 29092d39990d6641a1009c23b18b9374e0b31316 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sun, 25 May 2008 04:15:32 +0000 Subject: [PATCH] * phantom sculpties don't request the sculpt texture anymore. --- .../Environment/Scenes/SceneObjectGroup.cs | 12 ++++++-- .../Environment/Scenes/SceneObjectPart.cs | 30 +++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 44847497e0..4de10c758f 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -2522,11 +2522,17 @@ namespace OpenSim.Region.Environment.Scenes { lock (m_parts) { - foreach (SceneObjectPart part in m_parts.Values) + if (RootPart != null) { - if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) + if ((RootPart.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == 0) { - m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); + foreach (SceneObjectPart part in m_parts.Values) + { + if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) + { + m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); + } + } } } } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index d95143e161..b724bda9d0 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -1786,6 +1786,16 @@ namespace OpenSim.Region.Environment.Scenes if (!wasUsingPhysics) { DoPhysicsPropertyUpdate(usePhysics, false); + if (m_parentGroup != null) + { + if (m_parentGroup.RootPart != null) + { + if (LocalId == m_parentGroup.RootPart.LocalId) + { + m_parentGroup.CheckSculptAndLoad(); + } + } + } } } else @@ -1826,12 +1836,32 @@ namespace OpenSim.Region.Environment.Scenes { PhysActor.LocalID = LocalId; DoPhysicsPropertyUpdate(usePhysics, true); + if (m_parentGroup != null) + { + if (m_parentGroup.RootPart != null) + { + if (LocalId == m_parentGroup.RootPart.LocalId) + { + m_parentGroup.CheckSculptAndLoad(); + } + } + } } } else { PhysActor.IsPhysical = usePhysics; DoPhysicsPropertyUpdate(usePhysics, false); + if (m_parentGroup != null) + { + if (m_parentGroup.RootPart != null) + { + if (LocalId == m_parentGroup.RootPart.LocalId) + { + m_parentGroup.CheckSculptAndLoad(); + } + } + } } }