aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs25
1 files changed, 15 insertions, 10 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 23bef74..a1296ba 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -3242,8 +3242,6 @@ namespace OpenSim.Region.Framework.Scenes
3242 if (ParentGroup.Scene.GetNumberOfClients() == 0) 3242 if (ParentGroup.Scene.GetNumberOfClients() == 0)
3243 return; 3243 return;
3244 3244
3245 ParentGroup.QueueForUpdateCheck();
3246
3247 bool isfull = false; 3245 bool isfull = false;
3248 if (ParentGroup.IsAttachment) 3246 if (ParentGroup.IsAttachment)
3249 { 3247 {
@@ -3254,6 +3252,8 @@ namespace OpenSim.Region.Framework.Scenes
3254 lock (UpdateFlagLock) 3252 lock (UpdateFlagLock)
3255 UpdateFlag |= update; 3253 UpdateFlag |= update;
3256 3254
3255 ParentGroup.QueueForUpdateCheck();
3256
3257 ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this, isfull); 3257 ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this, isfull);
3258 } 3258 }
3259 3259
@@ -5133,8 +5133,7 @@ namespace OpenSim.Region.Framework.Scenes
5133 m_shape.TextureEntry = newTex.GetBytes(); 5133 m_shape.TextureEntry = newTex.GetBytes();
5134 TriggerScriptChangedEvent(changeFlags); 5134 TriggerScriptChangedEvent(changeFlags);
5135 ParentGroup.HasGroupChanged = true; 5135 ParentGroup.HasGroupChanged = true;
5136 ScheduleFullUpdate(); 5136 ScheduleUpdate(PrimUpdateFlags.Textures);
5137
5138 } 5137 }
5139 5138
5140 /// <summary> 5139 /// <summary>
@@ -5163,7 +5162,7 @@ namespace OpenSim.Region.Framework.Scenes
5163 m_shape.TextureEntry = newTex.GetBytes(); 5162 m_shape.TextureEntry = newTex.GetBytes();
5164 TriggerScriptChangedEvent(changeFlags); 5163 TriggerScriptChangedEvent(changeFlags);
5165 ParentGroup.HasGroupChanged = true; 5164 ParentGroup.HasGroupChanged = true;
5166 ScheduleFullUpdate(); 5165 ScheduleUpdate(PrimUpdateFlags.Textures);
5167 } 5166 }
5168 5167
5169 internal void UpdatePhysicsSubscribedEvents() 5168 internal void UpdatePhysicsSubscribedEvents()
@@ -5575,20 +5574,26 @@ namespace OpenSim.Region.Framework.Scenes
5575 // handle osVolumeDetect 5574 // handle osVolumeDetect
5576 public void ScriptSetVolumeDetect(bool makeVolumeDetect) 5575 public void ScriptSetVolumeDetect(bool makeVolumeDetect)
5577 { 5576 {
5577 if(ParentGroup.IsDeleted)
5578 return;
5579
5578 if(_parentID == 0) 5580 if(_parentID == 0)
5579 { 5581 {
5580 // if root prim do it via SOG 5582 // if root prim do it is like llVolumeDetect
5581 ParentGroup.ScriptSetVolumeDetect(makeVolumeDetect); 5583 ParentGroup.ScriptSetVolumeDetect(makeVolumeDetect);
5582 return; 5584 return;
5583 } 5585 }
5584 5586
5585 bool wasUsingPhysics = ((Flags & PrimFlags.Physics) != 0); 5587 if(ParentGroup.IsVolumeDetect)
5586 bool wasTemporary = ((Flags & PrimFlags.TemporaryOnRez) != 0); 5588 return; // entire linkset is phantom already
5587 bool wasPhantom = ((Flags & PrimFlags.Phantom) != 0); 5589
5590 bool wasUsingPhysics = ParentGroup.UsesPhysics;
5591 bool wasTemporary = ParentGroup.IsTemporary;
5592 bool wasPhantom = ParentGroup.IsPhantom;
5588 5593
5589 if(PhysActor != null) 5594 if(PhysActor != null)
5590 PhysActor.Building = true; 5595 PhysActor.Building = true;
5591 UpdatePrimFlags(wasUsingPhysics,wasTemporary,wasPhantom,makeVolumeDetect,false); 5596 UpdatePrimFlags(wasUsingPhysics, wasTemporary, wasPhantom, makeVolumeDetect, false);
5592 } 5597 }
5593 5598
5594 protected static int m_animationSequenceNumber = (int)(Util.GetTimeStampTicks() & 0x5fffafL); 5599 protected static int m_animationSequenceNumber = (int)(Util.GetTimeStampTicks() & 0x5fffafL);