diff options
author | Teravus Ovares (Dan Olivares) | 2009-12-05 13:01:21 -0500 |
---|---|---|
committer | Teravus Ovares (Dan Olivares) | 2009-12-05 13:01:21 -0500 |
commit | c4b6010fb34268c9426f7241a38ba892b93780d1 (patch) | |
tree | 52a5db76018dd820451121d66f8257cf154e1315 | |
parent | Allow terrain heightmaps to be loaded directly from URIs via the remote admin... (diff) | |
download | opensim-SC-c4b6010fb34268c9426f7241a38ba892b93780d1.zip opensim-SC-c4b6010fb34268c9426f7241a38ba892b93780d1.tar.gz opensim-SC-c4b6010fb34268c9426f7241a38ba892b93780d1.tar.bz2 opensim-SC-c4b6010fb34268c9426f7241a38ba892b93780d1.tar.xz |
* Fixes mantis 4416. Animator is dereferenced on logout
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index b2cd249..a3ceecb 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2932,14 +2932,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2932 | //if ((Math.Abs(Velocity.X) > 0.1e-9f) || (Math.Abs(Velocity.Y) > 0.1e-9f)) | 2932 | //if ((Math.Abs(Velocity.X) > 0.1e-9f) || (Math.Abs(Velocity.Y) > 0.1e-9f)) |
2933 | // The Physics Scene will send updates every 500 ms grep: m_physicsActor.SubscribeEvents( | 2933 | // The Physics Scene will send updates every 500 ms grep: m_physicsActor.SubscribeEvents( |
2934 | // as of this comment the interval is set in AddToPhysicalScene | 2934 | // as of this comment the interval is set in AddToPhysicalScene |
2935 | Animator.UpdateMovementAnimations(); | 2935 | if (Animator!=null) |
2936 | Animator.UpdateMovementAnimations(); | ||
2936 | 2937 | ||
2937 | CollisionEventUpdate collisionData = (CollisionEventUpdate)e; | 2938 | CollisionEventUpdate collisionData = (CollisionEventUpdate)e; |
2938 | Dictionary<uint, ContactPoint> coldata = collisionData.m_objCollisionList; | 2939 | Dictionary<uint, ContactPoint> coldata = collisionData.m_objCollisionList; |
2939 | 2940 | ||
2940 | CollisionPlane = Vector4.UnitW; | 2941 | CollisionPlane = Vector4.UnitW; |
2941 | 2942 | ||
2942 | if (coldata.Count != 0) | 2943 | if (coldata.Count != 0 && Animator != null) |
2943 | { | 2944 | { |
2944 | switch (Animator.CurrentMovementAnimation) | 2945 | switch (Animator.CurrentMovementAnimation) |
2945 | { | 2946 | { |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 1bc4a25..40fbde1 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -1221,7 +1221,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1221 | { | 1221 | { |
1222 | if (m_eventsubscription > m_requestedUpdateFrequency) | 1222 | if (m_eventsubscription > m_requestedUpdateFrequency) |
1223 | { | 1223 | { |
1224 | base.SendCollisionUpdate(CollisionEventsThisFrame); | 1224 | if (CollisionEventsThisFrame != null) |
1225 | { | ||
1226 | base.SendCollisionUpdate(CollisionEventsThisFrame); | ||
1227 | } | ||
1225 | CollisionEventsThisFrame = new CollisionEventUpdate(); | 1228 | CollisionEventsThisFrame = new CollisionEventUpdate(); |
1226 | m_eventsubscription = 0; | 1229 | m_eventsubscription = 0; |
1227 | } | 1230 | } |