diff options
-rw-r--r-- | OpenSim/Framework/ChildAgentDataUpdate.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index abff44a..7962ff4 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs | |||
@@ -311,6 +311,7 @@ namespace OpenSim.Framework | |||
311 | 311 | ||
312 | public AgentGroupData[] Groups; | 312 | public AgentGroupData[] Groups; |
313 | public Animation[] Anims; | 313 | public Animation[] Anims; |
314 | public Animation DefaultAnim = null; | ||
314 | 315 | ||
315 | public UUID GranterID; | 316 | public UUID GranterID; |
316 | public UUID ParentPart; | 317 | public UUID ParentPart; |
@@ -397,6 +398,11 @@ namespace OpenSim.Framework | |||
397 | args["animations"] = anims; | 398 | args["animations"] = anims; |
398 | } | 399 | } |
399 | 400 | ||
401 | if (DefaultAnim != null) | ||
402 | { | ||
403 | args["default_animation"] = DefaultAnim.PackUpdateMessage(); | ||
404 | } | ||
405 | |||
400 | if (Appearance != null) | 406 | if (Appearance != null) |
401 | args["packed_appearance"] = Appearance.Pack(); | 407 | args["packed_appearance"] = Appearance.Pack(); |
402 | 408 | ||
@@ -594,6 +600,11 @@ namespace OpenSim.Framework | |||
594 | } | 600 | } |
595 | } | 601 | } |
596 | 602 | ||
603 | if (args["default_animation"] != null) | ||
604 | { | ||
605 | DefaultAnim = new Animation((OSDMap)args["default_animation"]); | ||
606 | } | ||
607 | |||
597 | //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array) | 608 | //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array) |
598 | //{ | 609 | //{ |
599 | // OSDArray textures = (OSDArray)(args["agent_textures"]); | 610 | // OSDArray textures = (OSDArray)(args["agent_textures"]); |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index ad6679e..212720e 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3249,6 +3249,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3249 | cAgent.Anims = Animator.Animations.ToArray(); | 3249 | cAgent.Anims = Animator.Animations.ToArray(); |
3250 | } | 3250 | } |
3251 | catch { } | 3251 | catch { } |
3252 | cAgent.DefaultAnim = Animator.Animations.DefaultAnimation; | ||
3252 | 3253 | ||
3253 | // Attachment objects | 3254 | // Attachment objects |
3254 | List<SceneObjectGroup> attachments = GetAttachments(); | 3255 | List<SceneObjectGroup> attachments = GetAttachments(); |
@@ -3343,6 +3344,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3343 | // FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object? | 3344 | // FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object? |
3344 | if (cAgent.Anims != null) | 3345 | if (cAgent.Anims != null) |
3345 | Animator.Animations.FromArray(cAgent.Anims); | 3346 | Animator.Animations.FromArray(cAgent.Anims); |
3347 | if (cAgent.DefaultAnim != null) | ||
3348 | Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); | ||
3346 | 3349 | ||
3347 | if (cAgent.AttachmentObjects != null && cAgent.AttachmentObjects.Count > 0) | 3350 | if (cAgent.AttachmentObjects != null && cAgent.AttachmentObjects.Count > 0) |
3348 | { | 3351 | { |