void MakeSolid(bool makeSolid)
{
CollisionObjectTypes bodyType = (CollisionObjectTypes)PhysicsScene.PE.GetBodyType(PhysBody);
if (makeSolid)
{
// Verify the previous code created the correct shape for this type of thing.
if ((bodyType & CollisionObjectTypes.CO_RIGID_BODY) == 0)
{
MainConsole.Instance.ErrorFormat(
"{0} MakeSolid: physical body of wrong type for solidity. id={1}, type={2}", LogHeader, LocalID,
bodyType);
}
CurrentCollisionFlags = PhysicsScene.PE.RemoveFromCollisionFlags(PhysBody,
CollisionFlags.CF_NO_CONTACT_RESPONSE);
}
else
{
if ((bodyType & CollisionObjectTypes.CO_GHOST_OBJECT) == 0)
{
MainConsole.Instance.ErrorFormat(
"{0} MakeSolid: physical body of wrong type for non-solidness. id={1}, type={2}", LogHeader,
LocalID, bodyType);
}
CurrentCollisionFlags = PhysicsScene.PE.AddToCollisionFlags(PhysBody,
CollisionFlags.CF_NO_CONTACT_RESPONSE);
// Change collision info from a static object to a ghosty collision object
PhysBody.collisionType = CollisionType.VolumeDetect;
}
}