diff options
author | Justin Clark-Casey (justincc) | 2012-04-22 19:51:51 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-04-22 19:51:51 +0100 |
commit | 8205fe79ceaeebd31509a044005bf27d226dbe07 (patch) | |
tree | ef0c0111f800e61b3365048431ed8689b922423f /OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |
parent | Comment out spurious Body != IntPtr.Zero code after disableBody(), since disa... (diff) | |
download | opensim-SC_OLD-8205fe79ceaeebd31509a044005bf27d226dbe07.zip opensim-SC_OLD-8205fe79ceaeebd31509a044005bf27d226dbe07.tar.gz opensim-SC_OLD-8205fe79ceaeebd31509a044005bf27d226dbe07.tar.bz2 opensim-SC_OLD-8205fe79ceaeebd31509a044005bf27d226dbe07.tar.xz |
Fix bug where setting phantom on a prim would result in a server log message rather than setting phantom.
This was an oversight when removing some race conditions from PhysicsActor setting recently.
Regression tests extended to probe this code path.
Extending regression tests required implementation of a BasicPhysicsPrim (there was none before). However, BasicPhysics plugin is still of no current practical use other than to fill in as a component for other parts of regression testing.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 1592131..4bec2d4 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -4290,7 +4290,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
4290 | AddFlag(PrimFlags.Phantom); | 4290 | AddFlag(PrimFlags.Phantom); |
4291 | 4291 | ||
4292 | if (PhysActor != null) | 4292 | if (PhysActor != null) |
4293 | { | ||
4293 | RemoveFromPhysics(); | 4294 | RemoveFromPhysics(); |
4295 | pa = null; | ||
4296 | } | ||
4294 | } | 4297 | } |
4295 | else // Not phantom | 4298 | else // Not phantom |
4296 | { | 4299 | { |
@@ -4356,7 +4359,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4356 | { | 4359 | { |
4357 | pa.SetVolumeDetect(1); | 4360 | pa.SetVolumeDetect(1); |
4358 | AddFlag(PrimFlags.Phantom); // We set this flag also if VD is active | 4361 | AddFlag(PrimFlags.Phantom); // We set this flag also if VD is active |
4359 | this.VolumeDetectActive = true; | 4362 | VolumeDetectActive = true; |
4360 | } | 4363 | } |
4361 | } | 4364 | } |
4362 | else | 4365 | else |
@@ -4364,9 +4367,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
4364 | // Remove VolumeDetect in any case. Note, it's safe to call SetVolumeDetect as often as you like | 4367 | // Remove VolumeDetect in any case. Note, it's safe to call SetVolumeDetect as often as you like |
4365 | // (mumbles, well, at least if you have infinte CPU powers :-)) | 4368 | // (mumbles, well, at least if you have infinte CPU powers :-)) |
4366 | if (pa != null) | 4369 | if (pa != null) |
4367 | PhysActor.SetVolumeDetect(0); | 4370 | pa.SetVolumeDetect(0); |
4368 | 4371 | ||
4369 | this.VolumeDetectActive = false; | 4372 | VolumeDetectActive = false; |
4370 | } | 4373 | } |
4371 | 4374 | ||
4372 | if (SetTemporary) | 4375 | if (SetTemporary) |