diff options
author | UbitUmarov | 2014-09-09 21:53:27 +0100 |
---|---|---|
committer | UbitUmarov | 2014-09-09 21:53:27 +0100 |
commit | 016e58e354e11825510e1c4bc534e275168577bc (patch) | |
tree | 9fe32c4d9739df545096f88d47d30c45cb0758c0 /OpenSim/Region/Framework | |
parent | Plumb the rest of the serverside AO (diff) | |
download | opensim-SC-016e58e354e11825510e1c4bc534e275168577bc.zip opensim-SC-016e58e354e11825510e1c4bc534e275168577bc.tar.gz opensim-SC-016e58e354e11825510e1c4bc534e275168577bc.tar.bz2 opensim-SC-016e58e354e11825510e1c4bc534e275168577bc.tar.xz |
*test*
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Animation/MovementAnimationOverrides.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 |
2 files changed, 22 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/MovementAnimationOverrides.cs b/OpenSim/Region/Framework/Scenes/Animation/MovementAnimationOverrides.cs index db4003e..31fdb2c 100644 --- a/OpenSim/Region/Framework/Scenes/Animation/MovementAnimationOverrides.cs +++ b/OpenSim/Region/Framework/Scenes/Animation/MovementAnimationOverrides.cs | |||
@@ -80,5 +80,22 @@ namespace OpenSim.Region.Framework.Scenes | |||
80 | 80 | ||
81 | return UUID.Zero; | 81 | return UUID.Zero; |
82 | } | 82 | } |
83 | |||
84 | public Dictionary<string, UUID> CloneAOPairs() | ||
85 | { | ||
86 | lock (m_overrides) | ||
87 | { | ||
88 | return new Dictionary<string, UUID>(m_overrides); | ||
89 | } | ||
90 | } | ||
91 | |||
92 | public void CopyAOPairsFrom(Dictionary<string, UUID> src) | ||
93 | { | ||
94 | lock (m_overrides) | ||
95 | { | ||
96 | m_overrides.Clear(); | ||
97 | m_overrides = new Dictionary<string, UUID>(src); | ||
98 | } | ||
99 | } | ||
83 | } | 100 | } |
84 | } | 101 | } |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index b6eb4e4..7c515d5 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -4212,6 +4212,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
4212 | cAgent.DefaultAnim = Animator.Animations.DefaultAnimation; | 4212 | cAgent.DefaultAnim = Animator.Animations.DefaultAnimation; |
4213 | cAgent.AnimState = Animator.Animations.ImplicitDefaultAnimation; | 4213 | cAgent.AnimState = Animator.Animations.ImplicitDefaultAnimation; |
4214 | 4214 | ||
4215 | cAgent.MovementAnimationOverRides = Overrides.CloneAOPairs(); | ||
4216 | |||
4215 | if (Scene.AttachmentsModule != null) | 4217 | if (Scene.AttachmentsModule != null) |
4216 | Scene.AttachmentsModule.CopyAttachments(this, cAgent); | 4218 | Scene.AttachmentsModule.CopyAttachments(this, cAgent); |
4217 | } | 4219 | } |
@@ -4282,7 +4284,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
4282 | catch { } | 4284 | catch { } |
4283 | 4285 | ||
4284 | Animator.ResetAnimations(); | 4286 | Animator.ResetAnimations(); |
4285 | 4287 | ||
4288 | Overrides.CopyAOPairsFrom(cAgent.MovementAnimationOverRides); | ||
4289 | |||
4286 | // FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object? | 4290 | // FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object? |
4287 | if (cAgent.DefaultAnim != null) | 4291 | if (cAgent.DefaultAnim != null) |
4288 | Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); | 4292 | Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); |