diff options
Diffstat (limited to 'OpenSim/Region/PhysicsModules')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index 42bd849..10a5588 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |||
@@ -1131,7 +1131,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1131 | { | 1131 | { |
1132 | foreach (OdeCharacter chr in _characters) | 1132 | foreach (OdeCharacter chr in _characters) |
1133 | { | 1133 | { |
1134 | if (chr == null || chr.Body == IntPtr.Zero) | 1134 | if (chr == null || chr.Body == IntPtr.Zero || chr.collider == IntPtr.Zero ) |
1135 | continue; | 1135 | continue; |
1136 | 1136 | ||
1137 | chr.IsColliding = false; | 1137 | chr.IsColliding = false; |
@@ -1161,13 +1161,14 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1161 | aprim.IsColliding = false; | 1161 | aprim.IsColliding = false; |
1162 | } | 1162 | } |
1163 | } | 1163 | } |
1164 | lock (_activeprims) | 1164 | lock (_activegroups) |
1165 | { | 1165 | { |
1166 | try | 1166 | try |
1167 | { | 1167 | { |
1168 | foreach (OdePrim aprim in _activegroups) | 1168 | foreach (OdePrim aprim in _activegroups) |
1169 | { | 1169 | { |
1170 | if(!aprim.m_outbounds && d.BodyIsEnabled(aprim.Body)) | 1170 | if(!aprim.m_outbounds && d.BodyIsEnabled(aprim.Body) && |
1171 | aprim.collide_geom != IntPtr.Zero) | ||
1171 | { | 1172 | { |
1172 | d.SpaceCollide2(StaticSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); | 1173 | d.SpaceCollide2(StaticSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); |
1173 | d.SpaceCollide2(GroundSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); | 1174 | d.SpaceCollide2(GroundSpace, aprim.collide_geom, IntPtr.Zero, nearCallback); |