diff options
author | UbitUmarov | 2017-04-15 01:21:47 +0100 |
---|---|---|
committer | UbitUmarov | 2017-04-15 01:21:47 +0100 |
commit | 4f8f04d9499f040631a4056dfd11aa2ff95761dd (patch) | |
tree | 0df69bb6987d3c53e7542c243d57884144413e14 /OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs | |
parent | increase the updates priority of linkset where avatar is sitting (diff) | |
download | opensim-SC-4f8f04d9499f040631a4056dfd11aa2ff95761dd.zip opensim-SC-4f8f04d9499f040631a4056dfd11aa2ff95761dd.tar.gz opensim-SC-4f8f04d9499f040631a4056dfd11aa2ff95761dd.tar.bz2 opensim-SC-4f8f04d9499f040631a4056dfd11aa2ff95761dd.tar.xz |
still issues with volume detectors and sleeping bodies
Diffstat (limited to 'OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs index 98bea09..f8ee6c0 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEPrim.cs | |||
@@ -1210,14 +1210,17 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1210 | if (m_cureventsubscription < 50000) | 1210 | if (m_cureventsubscription < 50000) |
1211 | m_cureventsubscription += timestep; | 1211 | m_cureventsubscription += timestep; |
1212 | 1212 | ||
1213 | if(CollisionVDTCEventsThisFrame != null && CollisionVDTCEventsThisFrame.Count >0 && (Body == IntPtr.Zero || d.BodyIsEnabled(Body))) | ||
1214 | CollisionVDTCEventsThisFrame.Clear(); | ||
1215 | |||
1216 | if (m_cureventsubscription < m_eventsubscription) | ||
1217 | return; | ||
1218 | |||
1213 | if (CollisionEventsThisFrame == null) | 1219 | if (CollisionEventsThisFrame == null) |
1214 | return; | 1220 | return; |
1215 | 1221 | ||
1216 | int ncolisions = CollisionEventsThisFrame.m_objCollisionList.Count; | 1222 | int ncolisions = CollisionEventsThisFrame.m_objCollisionList.Count; |
1217 | 1223 | ||
1218 | if (m_cureventsubscription < m_eventsubscription) | ||
1219 | return; | ||
1220 | |||
1221 | if (!SentEmptyCollisionsEvent || ncolisions > 0) | 1224 | if (!SentEmptyCollisionsEvent || ncolisions > 0) |
1222 | { | 1225 | { |
1223 | base.SendCollisionUpdate(CollisionEventsThisFrame); | 1226 | base.SendCollisionUpdate(CollisionEventsThisFrame); |
@@ -1234,8 +1237,6 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1234 | CollisionEventsThisFrame.Clear(); | 1237 | CollisionEventsThisFrame.Clear(); |
1235 | } | 1238 | } |
1236 | } | 1239 | } |
1237 | if(CollisionVDTCEventsThisFrame != null && (Body == IntPtr.Zero || d.BodyIsEnabled(Body))) | ||
1238 | CollisionVDTCEventsThisFrame.Clear(); | ||
1239 | } | 1240 | } |
1240 | 1241 | ||
1241 | public override bool SubscribedEvents() | 1242 | public override bool SubscribedEvents() |
@@ -2938,7 +2939,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
2938 | { | 2939 | { |
2939 | d.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); | 2940 | d.GeomSetPosition(prim_geom, newPos.X, newPos.Y, newPos.Z); |
2940 | _position = newPos; | 2941 | _position = newPos; |
2941 | m_bodyMoveCoolDown = -5; | 2942 | if (Body != IntPtr.Zero && !m_disabled) |
2943 | m_bodyMoveCoolDown = -5; | ||
2942 | } | 2944 | } |
2943 | if (Body != IntPtr.Zero && !d.BodyIsEnabled(Body)) | 2945 | if (Body != IntPtr.Zero && !d.BodyIsEnabled(Body)) |
2944 | { | 2946 | { |