diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index 8421cdf..cbe21e2 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs | |||
@@ -502,7 +502,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
502 | public bool physics_logging_append_existing_logfile = false; | 502 | public bool physics_logging_append_existing_logfile = false; |
503 | 503 | ||
504 | private bool avplanted = false; | 504 | private bool avplanted = false; |
505 | 505 | private bool av_av_collisions_off = false; | |
506 | 506 | ||
507 | public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f); | 507 | public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f); |
508 | public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f); | 508 | public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f); |
@@ -647,7 +647,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
647 | avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f); | 647 | avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f); |
648 | avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f); | 648 | avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f); |
649 | avplanted = physicsconfig.GetBoolean("av_planted", false); | 649 | avplanted = physicsconfig.GetBoolean("av_planted", false); |
650 | 650 | av_av_collisions_off = physicsconfig.GetBoolean("av_av_collisions_off", false); | |
651 | |||
651 | IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false); | 652 | IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false); |
652 | 653 | ||
653 | contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80); | 654 | contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80); |
@@ -667,6 +668,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
667 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); | 668 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); |
668 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); | 669 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); |
669 | m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false); | 670 | m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false); |
671 | |||
672 | |||
670 | 673 | ||
671 | if (Environment.OSVersion.Platform == PlatformID.Unix) | 674 | if (Environment.OSVersion.Platform == PlatformID.Unix) |
672 | { | 675 | { |
@@ -1313,6 +1316,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1313 | if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect)) | 1316 | if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect)) |
1314 | skipThisContact = true; // No collision on volume detect prims | 1317 | skipThisContact = true; // No collision on volume detect prims |
1315 | 1318 | ||
1319 | if (av_av_collisions_off) | ||
1320 | if ((p1 is OdeCharacter) && (p2 is OdeCharacter)) | ||
1321 | skipThisContact = true; | ||
1322 | |||
1316 | if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect)) | 1323 | if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect)) |
1317 | skipThisContact = true; // No collision on volume detect prims | 1324 | skipThisContact = true; // No collision on volume detect prims |
1318 | 1325 | ||