aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-04-21 01:43:09 +0100
committerJustin Clark-Casey (justincc)2012-04-21 01:43:09 +0100
commit9ac48b2aff2ddd00821b7e6ecd71ce134f7a0f25 (patch)
tree1509d9105df5a05adf475ce93c35a885420c0be4 /OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
parentAdd test for correct physics status on linking two physics objects (diff)
downloadopensim-SC-9ac48b2aff2ddd00821b7e6ecd71ce134f7a0f25.zip
opensim-SC-9ac48b2aff2ddd00821b7e6ecd71ce134f7a0f25.tar.gz
opensim-SC-9ac48b2aff2ddd00821b7e6ecd71ce134f7a0f25.tar.bz2
opensim-SC-9ac48b2aff2ddd00821b7e6ecd71ce134f7a0f25.tar.xz
Fix a bug where linking a non-physical prim with a physical prim as root would make the non-physical prim phantom rather than part of the physics object.
On region restart, the whole object would become physical as expected. Observed behaviour from elsewhere is that all prims in a new linkset should take on the status of the root prim. Add regression test for this behaviour.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs3
1 files changed, 3 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 8e786c1..49a3485 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2010,6 +2010,7 @@ namespace OpenSim.Region.Framework.Scenes
2010 linkPart.CreateSelected = true; 2010 linkPart.CreateSelected = true;
2011 2011
2012 linkPart.LinkNum = linkNum++; 2012 linkPart.LinkNum = linkNum++;
2013 linkPart.UpdatePrimFlags(UsesPhysics, IsTemporary, IsPhantom, IsVolumeDetect);
2013 2014
2014 SceneObjectPart[] ogParts = objectGroup.Parts; 2015 SceneObjectPart[] ogParts = objectGroup.Parts;
2015 Array.Sort(ogParts, delegate(SceneObjectPart a, SceneObjectPart b) 2016 Array.Sort(ogParts, delegate(SceneObjectPart a, SceneObjectPart b)
@@ -2220,6 +2221,8 @@ namespace OpenSim.Region.Framework.Scenes
2220 oldRot = part.RotationOffset; 2221 oldRot = part.RotationOffset;
2221 Quaternion newRot = Quaternion.Inverse(parentRot) * oldRot; 2222 Quaternion newRot = Quaternion.Inverse(parentRot) * oldRot;
2222 part.RotationOffset = newRot; 2223 part.RotationOffset = newRot;
2224
2225 part.UpdatePrimFlags(UsesPhysics, IsTemporary, IsPhantom, IsVolumeDetect);
2223 } 2226 }
2224 2227
2225 /// <summary> 2228 /// <summary>