aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs12
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs30
2 files changed, 39 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 4484749..4de10c7 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -2522,11 +2522,17 @@ namespace OpenSim.Region.Environment.Scenes
2522 { 2522 {
2523 lock (m_parts) 2523 lock (m_parts)
2524 { 2524 {
2525 foreach (SceneObjectPart part in m_parts.Values) 2525 if (RootPart != null)
2526 { 2526 {
2527 if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) 2527 if ((RootPart.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == 0)
2528 { 2528 {
2529 m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); 2529 foreach (SceneObjectPart part in m_parts.Values)
2530 {
2531 if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero)
2532 {
2533 m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true);
2534 }
2535 }
2530 } 2536 }
2531 } 2537 }
2532 } 2538 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index d95143e..b724bda 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -1786,6 +1786,16 @@ namespace OpenSim.Region.Environment.Scenes
1786 if (!wasUsingPhysics) 1786 if (!wasUsingPhysics)
1787 { 1787 {
1788 DoPhysicsPropertyUpdate(usePhysics, false); 1788 DoPhysicsPropertyUpdate(usePhysics, false);
1789 if (m_parentGroup != null)
1790 {
1791 if (m_parentGroup.RootPart != null)
1792 {
1793 if (LocalId == m_parentGroup.RootPart.LocalId)
1794 {
1795 m_parentGroup.CheckSculptAndLoad();
1796 }
1797 }
1798 }
1789 } 1799 }
1790 } 1800 }
1791 else 1801 else
@@ -1826,12 +1836,32 @@ namespace OpenSim.Region.Environment.Scenes
1826 { 1836 {
1827 PhysActor.LocalID = LocalId; 1837 PhysActor.LocalID = LocalId;
1828 DoPhysicsPropertyUpdate(usePhysics, true); 1838 DoPhysicsPropertyUpdate(usePhysics, true);
1839 if (m_parentGroup != null)
1840 {
1841 if (m_parentGroup.RootPart != null)
1842 {
1843 if (LocalId == m_parentGroup.RootPart.LocalId)
1844 {
1845 m_parentGroup.CheckSculptAndLoad();
1846 }
1847 }
1848 }
1829 } 1849 }
1830 } 1850 }
1831 else 1851 else
1832 { 1852 {
1833 PhysActor.IsPhysical = usePhysics; 1853 PhysActor.IsPhysical = usePhysics;
1834 DoPhysicsPropertyUpdate(usePhysics, false); 1854 DoPhysicsPropertyUpdate(usePhysics, false);
1855 if (m_parentGroup != null)
1856 {
1857 if (m_parentGroup.RootPart != null)
1858 {
1859 if (LocalId == m_parentGroup.RootPart.LocalId)
1860 {
1861 m_parentGroup.CheckSculptAndLoad();
1862 }
1863 }
1864 }
1835 } 1865 }
1836 } 1866 }
1837 1867