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.
This commit is contained in:
Justin Clark-Casey (justincc)
2012-04-22 19:51:51 +01:00
parent ae2b8f7007
commit 8205fe79ce
6 changed files with 383 additions and 33 deletions

View File

@@ -4290,7 +4290,10 @@ namespace OpenSim.Region.Framework.Scenes
AddFlag(PrimFlags.Phantom);
if (PhysActor != null)
{
RemoveFromPhysics();
pa = null;
}
}
else // Not phantom
{
@@ -4356,7 +4359,7 @@ namespace OpenSim.Region.Framework.Scenes
{
pa.SetVolumeDetect(1);
AddFlag(PrimFlags.Phantom); // We set this flag also if VD is active
this.VolumeDetectActive = true;
VolumeDetectActive = true;
}
}
else
@@ -4364,9 +4367,9 @@ namespace OpenSim.Region.Framework.Scenes
// Remove VolumeDetect in any case. Note, it's safe to call SetVolumeDetect as often as you like
// (mumbles, well, at least if you have infinte CPU powers :-))
if (pa != null)
PhysActor.SetVolumeDetect(0);
pa.SetVolumeDetect(0);
this.VolumeDetectActive = false;
VolumeDetectActive = false;
}
if (SetTemporary)