diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 |
2 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs b/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs index 3d8e8be..65ae445 100644 --- a/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs +++ b/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs | |||
@@ -45,6 +45,11 @@ namespace OpenSim.Region.Framework.Scenes.Animation | |||
45 | private OpenSim.Framework.Animation m_defaultAnimation = new OpenSim.Framework.Animation(); | 45 | private OpenSim.Framework.Animation m_defaultAnimation = new OpenSim.Framework.Animation(); |
46 | private List<OpenSim.Framework.Animation> m_animations = new List<OpenSim.Framework.Animation>(); | 46 | private List<OpenSim.Framework.Animation> m_animations = new List<OpenSim.Framework.Animation>(); |
47 | 47 | ||
48 | public OpenSim.Framework.Animation DefaultAnimation | ||
49 | { | ||
50 | get { return m_defaultAnimation; } | ||
51 | } | ||
52 | |||
48 | public OpenSim.Framework.Animation ImplicitDefaultAnimation | 53 | public OpenSim.Framework.Animation ImplicitDefaultAnimation |
49 | { | 54 | { |
50 | get { return m_implicitDefaultAnimation; } | 55 | get { return m_implicitDefaultAnimation; } |
@@ -126,6 +131,12 @@ namespace OpenSim.Region.Framework.Scenes.Animation | |||
126 | return false; | 131 | return false; |
127 | } | 132 | } |
128 | 133 | ||
134 | // Called from serialization only | ||
135 | public void SetImplicitDefaultAnimation(UUID animID, int sequenceNum, UUID objectID) | ||
136 | { | ||
137 | m_implicitDefaultAnimation = new OpenSim.Framework.Animation(animID, sequenceNum, objectID); | ||
138 | } | ||
139 | |||
129 | protected bool ResetDefaultAnimation() | 140 | protected bool ResetDefaultAnimation() |
130 | { | 141 | { |
131 | return TrySetDefaultAnimation("STAND", 1, UUID.Zero); | 142 | return TrySetDefaultAnimation("STAND", 1, UUID.Zero); |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index aa82af4..71e322d 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3075,6 +3075,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3075 | cAgent.Anims = Animator.Animations.ToArray(); | 3075 | cAgent.Anims = Animator.Animations.ToArray(); |
3076 | } | 3076 | } |
3077 | catch { } | 3077 | catch { } |
3078 | cAgent.DefaultAnim = Animator.Animations.DefaultAnimation; | ||
3079 | cAgent.AnimState = Animator.Animations.ImplicitDefaultAnimation; | ||
3078 | 3080 | ||
3079 | if (Scene.AttachmentsModule != null) | 3081 | if (Scene.AttachmentsModule != null) |
3080 | Scene.AttachmentsModule.CopyAttachments(this, cAgent); | 3082 | Scene.AttachmentsModule.CopyAttachments(this, cAgent); |
@@ -3146,6 +3148,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3146 | // FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object? | 3148 | // FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object? |
3147 | if (cAgent.Anims != null) | 3149 | if (cAgent.Anims != null) |
3148 | Animator.Animations.FromArray(cAgent.Anims); | 3150 | Animator.Animations.FromArray(cAgent.Anims); |
3151 | if (cAgent.DefaultAnim != null) | ||
3152 | Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); | ||
3153 | if (cAgent.AnimState != null) | ||
3154 | Animator.Animations.SetImplicitDefaultAnimation(cAgent.AnimState.AnimID, cAgent.AnimState.SequenceNum, UUID.Zero); | ||
3149 | 3155 | ||
3150 | if (Scene.AttachmentsModule != null) | 3156 | if (Scene.AttachmentsModule != null) |
3151 | Scene.AttachmentsModule.CopyAttachments(cAgent, this); | 3157 | Scene.AttachmentsModule.CopyAttachments(cAgent, this); |