diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/OdeScene.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index 7a50c4c..d53bd90 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs | |||
@@ -501,6 +501,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
501 | public int physics_logging_interval = 0; | 501 | public int physics_logging_interval = 0; |
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; | ||
505 | private bool av_av_collisions_off = false; | ||
504 | 506 | ||
505 | 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); |
506 | 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); |
@@ -644,6 +646,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
644 | avMovementDivisorWalk = physicsconfig.GetFloat("av_movement_divisor_walk", 1.3f); | 646 | avMovementDivisorWalk = physicsconfig.GetFloat("av_movement_divisor_walk", 1.3f); |
645 | avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f); | 647 | avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f); |
646 | avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f); | 648 | avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f); |
649 | avplanted = physicsconfig.GetBoolean("av_planted", false); | ||
650 | av_av_collisions_off = physicsconfig.GetBoolean("av_av_collisions_off", false); | ||
651 | |||
647 | IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false); | 652 | IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false); |
648 | 653 | ||
649 | contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80); | 654 | contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80); |
@@ -663,6 +668,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
663 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); | 668 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); |
664 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); | 669 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); |
665 | m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false); | 670 | m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false); |
671 | |||
672 | |||
666 | 673 | ||
667 | if (Environment.OSVersion.Platform == PlatformID.Unix) | 674 | if (Environment.OSVersion.Platform == PlatformID.Unix) |
668 | { | 675 | { |
@@ -1309,6 +1316,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1309 | if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect)) | 1316 | if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect)) |
1310 | skipThisContact = true; // No collision on volume detect prims | 1317 | skipThisContact = true; // No collision on volume detect prims |
1311 | 1318 | ||
1319 | if (av_av_collisions_off) | ||
1320 | if ((p1 is OdeCharacter) && (p2 is OdeCharacter)) | ||
1321 | skipThisContact = true; | ||
1322 | |||
1312 | if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect)) | 1323 | if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect)) |
1313 | skipThisContact = true; // No collision on volume detect prims | 1324 | skipThisContact = true; // No collision on volume detect prims |
1314 | 1325 | ||
@@ -1972,7 +1983,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1972 | 1983 | ||
1973 | newAv.Flying = isFlying; | 1984 | newAv.Flying = isFlying; |
1974 | newAv.MinimumGroundFlightOffset = minimumGroundFlightOffset; | 1985 | newAv.MinimumGroundFlightOffset = minimumGroundFlightOffset; |
1975 | 1986 | newAv.m_avatarplanted = avplanted; | |
1987 | |||
1976 | return newAv; | 1988 | return newAv; |
1977 | } | 1989 | } |
1978 | 1990 | ||
@@ -1987,6 +1999,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1987 | 1999 | ||
1988 | internal void AddCharacter(OdeCharacter chr) | 2000 | internal void AddCharacter(OdeCharacter chr) |
1989 | { | 2001 | { |
2002 | chr.m_avatarplanted = avplanted; | ||
1990 | if (!_characters.Contains(chr)) | 2003 | if (!_characters.Contains(chr)) |
1991 | { | 2004 | { |
1992 | _characters.Add(chr); | 2005 | _characters.Add(chr); |
@@ -4307,4 +4320,4 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
4307 | m_stats[ODEPrimUpdateFrameMsStatName] = 0; | 4320 | m_stats[ODEPrimUpdateFrameMsStatName] = 0; |
4308 | } | 4321 | } |
4309 | } | 4322 | } |
4310 | } \ No newline at end of file | 4323 | } |