diff options
-rw-r--r-- | OpenSim/Framework/ChildAgentDataUpdate.cs | 18 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 |
2 files changed, 19 insertions, 1 deletions
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index e718aa6..8c32734 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs | |||
@@ -312,6 +312,7 @@ namespace OpenSim.Framework | |||
312 | public AgentGroupData[] Groups; | 312 | public AgentGroupData[] Groups; |
313 | public Animation[] Anims; | 313 | public Animation[] Anims; |
314 | public Animation DefaultAnim = null; | 314 | public Animation DefaultAnim = null; |
315 | public Animation AnimState = null; | ||
315 | 316 | ||
316 | public UUID GranterID; | 317 | public UUID GranterID; |
317 | public UUID ParentPart; | 318 | public UUID ParentPart; |
@@ -403,6 +404,11 @@ namespace OpenSim.Framework | |||
403 | args["default_animation"] = DefaultAnim.PackUpdateMessage(); | 404 | args["default_animation"] = DefaultAnim.PackUpdateMessage(); |
404 | } | 405 | } |
405 | 406 | ||
407 | if (AnimState != null) | ||
408 | { | ||
409 | args["animation_state"] = AnimState.PackUpdateMessage(); | ||
410 | } | ||
411 | |||
406 | if (Appearance != null) | 412 | if (Appearance != null) |
407 | args["packed_appearance"] = Appearance.Pack(); | 413 | args["packed_appearance"] = Appearance.Pack(); |
408 | 414 | ||
@@ -612,6 +618,18 @@ namespace OpenSim.Framework | |||
612 | } | 618 | } |
613 | } | 619 | } |
614 | 620 | ||
621 | if (args["animation_state"] != null) | ||
622 | { | ||
623 | try | ||
624 | { | ||
625 | AnimState = new Animation((OSDMap)args["animation_state"]); | ||
626 | } | ||
627 | catch | ||
628 | { | ||
629 | AnimState = null; | ||
630 | } | ||
631 | } | ||
632 | |||
615 | //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array) | 633 | //if ((args["agent_textures"] != null) && (args["agent_textures"]).Type == OSDType.Array) |
616 | //{ | 634 | //{ |
617 | // OSDArray textures = (OSDArray)(args["agent_textures"]); | 635 | // OSDArray textures = (OSDArray)(args["agent_textures"]); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 49b771f..165dd85 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -813,7 +813,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
813 | actor.Orientation = GetWorldRotation(); | 813 | actor.Orientation = GetWorldRotation(); |
814 | 814 | ||
815 | // Tell the physics engines that this prim changed. | 815 | // Tell the physics engines that this prim changed. |
816 | if (ParentGroup.Scene != null) | 816 | if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene != null) |
817 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 817 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); |
818 | } | 818 | } |
819 | 819 | ||