aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/ChildAgentDataUpdate.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs3
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 {