diff options
Diffstat (limited to '')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs index 085d195..47ab842 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinksetCompound.cs | |||
@@ -242,7 +242,7 @@ public sealed class BSLinksetCompound : BSLinkset | |||
242 | { | 242 | { |
243 | bool ret = false; | 243 | bool ret = false; |
244 | 244 | ||
245 | DetailLog("{0},BSLinksetCompound.RemoveBodyDependencies,refreshIfChild,rID={1},rBody={2},isRoot={3}", | 245 | DetailLog("{0},BSLinksetCompound.RemoveDependencies,refreshIfChild,rID={1},rBody={2},isRoot={3}", |
246 | child.LocalID, LinksetRoot.LocalID, LinksetRoot.PhysBody, IsRoot(child)); | 246 | child.LocalID, LinksetRoot.LocalID, LinksetRoot.PhysBody, IsRoot(child)); |
247 | 247 | ||
248 | ScheduleRebuild(child); | 248 | ScheduleRebuild(child); |
@@ -270,7 +270,7 @@ public sealed class BSLinksetCompound : BSLinkset | |||
270 | 270 | ||
271 | // Remove the specified child from the linkset. | 271 | // Remove the specified child from the linkset. |
272 | // Safe to call even if the child is not really in the linkset. | 272 | // Safe to call even if the child is not really in the linkset. |
273 | protected override void RemoveChildFromLinkset(BSPrimLinkable child) | 273 | protected override void RemoveChildFromLinkset(BSPrimLinkable child, bool inTaintTime) |
274 | { | 274 | { |
275 | child.ClearDisplacement(); | 275 | child.ClearDisplacement(); |
276 | 276 | ||
@@ -282,12 +282,12 @@ public sealed class BSLinksetCompound : BSLinkset | |||
282 | child.LocalID, child.PhysBody.AddrString); | 282 | child.LocalID, child.PhysBody.AddrString); |
283 | 283 | ||
284 | // Cause the child's body to be rebuilt and thus restored to normal operation | 284 | // Cause the child's body to be rebuilt and thus restored to normal operation |
285 | child.ForceBodyShapeRebuild(false); | 285 | child.ForceBodyShapeRebuild(inTaintTime); |
286 | 286 | ||
287 | if (!HasAnyChildren) | 287 | if (!HasAnyChildren) |
288 | { | 288 | { |
289 | // The linkset is now empty. The root needs rebuilding. | 289 | // The linkset is now empty. The root needs rebuilding. |
290 | LinksetRoot.ForceBodyShapeRebuild(false); | 290 | LinksetRoot.ForceBodyShapeRebuild(inTaintTime); |
291 | } | 291 | } |
292 | else | 292 | else |
293 | { | 293 | { |
@@ -318,10 +318,10 @@ public sealed class BSLinksetCompound : BSLinkset | |||
318 | // being destructed and going non-physical. | 318 | // being destructed and going non-physical. |
319 | LinksetRoot.ForceBodyShapeRebuild(true); | 319 | LinksetRoot.ForceBodyShapeRebuild(true); |
320 | 320 | ||
321 | // There is no reason to build all this physical stuff for a non-physical linkset. | 321 | // There is no reason to build all this physical stuff for a non-physical or empty linkset. |
322 | if (!LinksetRoot.IsPhysicallyActive) | 322 | if (!LinksetRoot.IsPhysicallyActive || !HasAnyChildren) |
323 | { | 323 | { |
324 | DetailLog("{0},BSLinksetCompound.RecomputeLinksetCompound,notPhysical", LinksetRoot.LocalID); | 324 | DetailLog("{0},BSLinksetCompound.RecomputeLinksetCompound,notPhysicalOrNoChildren", LinksetRoot.LocalID); |
325 | return; // Note the 'finally' clause at the botton which will get executed. | 325 | return; // Note the 'finally' clause at the botton which will get executed. |
326 | } | 326 | } |
327 | 327 | ||