From 18023169e79584cd3ddb4f544f9d485edc9e1b85 Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Tue, 9 Sep 2014 04:12:10 +0200
Subject: Actually do the overriding

---
 .../Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs    | 8 +++++++-
 OpenSim/Region/Framework/Scenes/ScenePresence.cs                  | 7 +++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
index fdadd32..3cb8f59 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
@@ -196,7 +196,13 @@ namespace OpenSim.Region.Framework.Scenes.Animation
 //                    "[SCENE PRESENCE ANIMATOR]: Setting movement animation {0} for {1}",
 //                    anim, m_scenePresence.Name);
 
-                if (m_animations.TrySetDefaultAnimation(
+                UUID overridenAnim = m_scenePresence.Overrides.GetOverriddenAnimation(anim);
+                if (overridenAnim != UUID.Zero)
+                {
+                    m_animations.SetDefaultAnimation(overridenAnim, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, m_scenePresence.UUID);
+                    ret = true;
+                }
+                else if (m_animations.TrySetDefaultAnimation(
                     anim, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, m_scenePresence.UUID))
                 {
 //                    m_log.DebugFormat(
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 4d5f747..8f6b41b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -239,6 +239,11 @@ namespace OpenSim.Region.Framework.Scenes
         /// </value>
         public ScenePresenceAnimator Animator { get; private set; }
 
+        /// <value>
+        /// Server Side Animation Override
+        /// </value>
+        public MovementAnimationOverrides Overrides { get; private set; }
+
         /// <summary>
         /// Attachments recorded on this avatar.
         /// </summary>
@@ -967,6 +972,7 @@ namespace OpenSim.Region.Framework.Scenes
             IsLoggingIn = false;
             m_sendCoarseLocationsMethod = SendCoarseLocationsDefault;
             Animator = new ScenePresenceAnimator(this);
+            Overrides = new MovementAnimationOverrides();
             PresenceType = type;
             DrawDistance = world.DefaultDrawDistance;
             RegionHandle = world.RegionInfo.RegionHandle;
@@ -6007,6 +6013,7 @@ namespace OpenSim.Region.Framework.Scenes
 
         public void SetAnimationOverride(string animState, UUID animID)
         {
+            Overrides.SetOverride(animState, animID);
         }
     }
 }
-- 
cgit v1.1