diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 5 |
3 files changed, 24 insertions, 6 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/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 2066536..4282b46 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1748,15 +1748,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
1748 | 1748 | ||
1749 | private void CheckAtTargets() | 1749 | private void CheckAtTargets() |
1750 | { | 1750 | { |
1751 | List<SceneObjectGroup> objs = new List<SceneObjectGroup>(); | 1751 | List<SceneObjectGroup> objs = null; |
1752 | |||
1752 | lock (m_groupsWithTargets) | 1753 | lock (m_groupsWithTargets) |
1753 | { | 1754 | { |
1754 | foreach (SceneObjectGroup grp in m_groupsWithTargets.Values) | 1755 | if (m_groupsWithTargets.Count != 0) |
1755 | objs.Add(grp); | 1756 | objs = new List<SceneObjectGroup>(m_groupsWithTargets.Values); |
1756 | } | 1757 | } |
1757 | 1758 | ||
1758 | foreach (SceneObjectGroup entry in objs) | 1759 | if (objs != null) |
1759 | entry.checkAtTargets(); | 1760 | { |
1761 | foreach (SceneObjectGroup entry in objs) | ||
1762 | entry.checkAtTargets(); | ||
1763 | } | ||
1760 | } | 1764 | } |
1761 | 1765 | ||
1762 | /// <summary> | 1766 | /// <summary> |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 285d1ae..f9c7935 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3276,7 +3276,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3276 | cAgent.Anims = Animator.Animations.ToArray(); | 3276 | cAgent.Anims = Animator.Animations.ToArray(); |
3277 | } | 3277 | } |
3278 | catch { } | 3278 | catch { } |
3279 | cAgent.DefaultAnim = Animator.Animations.ImplicitDefaultAnimation; | 3279 | cAgent.DefaultAnim = Animator.Animations.DefaultAnimation; |
3280 | cAgent.AnimState = Animator.Animations.ImplicitDefaultAnimation; | ||
3280 | 3281 | ||
3281 | if (Scene.AttachmentsModule != null) | 3282 | if (Scene.AttachmentsModule != null) |
3282 | Scene.AttachmentsModule.CopyAttachments(this, cAgent); | 3283 | Scene.AttachmentsModule.CopyAttachments(this, cAgent); |
@@ -3353,6 +3354,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3353 | Animator.Animations.FromArray(cAgent.Anims); | 3354 | Animator.Animations.FromArray(cAgent.Anims); |
3354 | if (cAgent.DefaultAnim != null) | 3355 | if (cAgent.DefaultAnim != null) |
3355 | Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); | 3356 | Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); |
3357 | if (cAgent.AnimState != null) | ||
3358 | Animator.Animations.SetImplicitDefaultAnimation(cAgent.AnimState.AnimID, cAgent.AnimState.SequenceNum, UUID.Zero); | ||
3356 | 3359 | ||
3357 | if (Scene.AttachmentsModule != null) | 3360 | if (Scene.AttachmentsModule != null) |
3358 | Scene.AttachmentsModule.CopyAttachments(cAgent, this); | 3361 | Scene.AttachmentsModule.CopyAttachments(cAgent, this); |