diff options
author | Justin Clark-Casey (justincc) | 2013-01-18 22:57:09 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-01-18 22:57:09 +0000 |
commit | 74256c0cc47870f6057b64ce117479af79f02ab0 (patch) | |
tree | 9bdc9e66f6e668a06a22ee3a2f772855293e4b5a /OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs | |
parent | BulletSim: reduce jitter in avatar velocity when walking or flying. (diff) | |
download | opensim-SC_OLD-74256c0cc47870f6057b64ce117479af79f02ab0.zip opensim-SC_OLD-74256c0cc47870f6057b64ce117479af79f02ab0.tar.gz opensim-SC_OLD-74256c0cc47870f6057b64ce117479af79f02ab0.tar.bz2 opensim-SC_OLD-74256c0cc47870f6057b64ce117479af79f02ab0.tar.xz |
Restore previous client AO behaviour by not allowing them to remove the default animation but continue to allow scripts to do so.
This keeps the fix from http://opensimulator.org/mantis/view.php?id=6327
and fixes the behaviour regression in http://opensimulator.org/mantis/view.php?id=6483
Animations may still exhibit different behaviour if both scripts and clients are adjusting animations.
A change in the behaviour of client AO to not remove all animations may be a better long term approach.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs index 5b16b67..3657dc4 100644 --- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs +++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs | |||
@@ -109,14 +109,22 @@ namespace OpenSim.Region.Framework.Scenes.Animation | |||
109 | AddAnimation(animID, objectID); | 109 | AddAnimation(animID, objectID); |
110 | } | 110 | } |
111 | 111 | ||
112 | public void RemoveAnimation(UUID animID) | 112 | /// <summary> |
113 | /// Remove the specified animation | ||
114 | /// </summary> | ||
115 | /// <param name='animID'></param> | ||
116 | /// <param name='allowNoDefault'> | ||
117 | /// If true, then the default animation can be entirely removed. | ||
118 | /// If false, then removing the default animation will reset it to the simulator default (currently STAND). | ||
119 | /// </param> | ||
120 | public void RemoveAnimation(UUID animID, bool allowNoDefault) | ||
113 | { | 121 | { |
114 | if (m_scenePresence.IsChildAgent) | 122 | if (m_scenePresence.IsChildAgent) |
115 | return; | 123 | return; |
116 | 124 | ||
117 | // m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Removing animation {0} for {1}", animID, m_scenePresence.Name); | 125 | // m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Removing animation {0} for {1}", animID, m_scenePresence.Name); |
118 | 126 | ||
119 | if (m_animations.Remove(animID)) | 127 | if (m_animations.Remove(animID, allowNoDefault)) |
120 | SendAnimPack(); | 128 | SendAnimPack(); |
121 | } | 129 | } |
122 | 130 | ||
@@ -132,7 +140,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation | |||
132 | if (animID == UUID.Zero) | 140 | if (animID == UUID.Zero) |
133 | return; | 141 | return; |
134 | 142 | ||
135 | RemoveAnimation(animID); | 143 | RemoveAnimation(animID, true); |
136 | } | 144 | } |
137 | 145 | ||
138 | public void ResetAnimations() | 146 | public void ResetAnimations() |