aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie2012-10-30 23:08:22 +0000
committerMelanie2012-10-30 23:08:22 +0000
commitfd9cb3cb68959c2dd42dd0645fef50161ac085a7 (patch)
tree3478ef92a180b05109b4c9fa65c6be494b7bbec7 /OpenSim/Region
parentAdd AnimState to CADU (diff)
downloadopensim-SC-fd9cb3cb68959c2dd42dd0645fef50161ac085a7.zip
opensim-SC-fd9cb3cb68959c2dd42dd0645fef50161ac085a7.tar.gz
opensim-SC-fd9cb3cb68959c2dd42dd0645fef50161ac085a7.tar.bz2
opensim-SC-fd9cb3cb68959c2dd42dd0645fef50161ac085a7.tar.xz
Store and send the current movement animation state to a new sim on crossing
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs6
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);