aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/ChildAgentDataUpdate.cs
diff options
context:
space:
mode:
authorUbitUmarov2014-10-20 09:14:27 +0100
committerUbitUmarov2014-10-20 09:14:27 +0100
commitafa9b4a002f0cc929d60e1770535eefcdefe3a43 (patch)
tree8e5f9fd00aa720759c7ba2a5383f681d01349448 /OpenSim/Framework/ChildAgentDataUpdate.cs
parent try to fix propagation of seeds to all relevante regions (diff)
downloadopensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.zip
opensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.tar.gz
opensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.tar.bz2
opensim-SC_OLD-afa9b4a002f0cc929d60e1770535eefcdefe3a43.tar.xz
Assume childreen don't need to know caps seeds
Diffstat (limited to 'OpenSim/Framework/ChildAgentDataUpdate.cs')
-rw-r--r--OpenSim/Framework/ChildAgentDataUpdate.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs
index 0763bbc..a714d86 100644
--- a/OpenSim/Framework/ChildAgentDataUpdate.cs
+++ b/OpenSim/Framework/ChildAgentDataUpdate.cs
@@ -355,6 +355,7 @@ namespace OpenSim.Framework
355 public UUID ActiveGroupID; 355 public UUID ActiveGroupID;
356 356
357 public AgentGroupData[] Groups; 357 public AgentGroupData[] Groups;
358 public Dictionary<ulong, string> ChildrenCapSeeds = null;
358 public Animation[] Anims; 359 public Animation[] Anims;
359 public Animation DefaultAnim = null; 360 public Animation DefaultAnim = null;
360 public Animation AnimState = null; 361 public Animation AnimState = null;
@@ -440,6 +441,19 @@ namespace OpenSim.Framework
440 args["groups"] = groups; 441 args["groups"] = groups;
441 } 442 }
442 443
444 if (ChildrenCapSeeds != null && ChildrenCapSeeds.Count > 0)
445 {
446 OSDArray childrenSeeds = new OSDArray(ChildrenCapSeeds.Count);
447 foreach (KeyValuePair<ulong, string> kvp in ChildrenCapSeeds)
448 {
449 OSDMap pair = new OSDMap();
450 pair["handle"] = OSD.FromString(kvp.Key.ToString());
451 pair["seed"] = OSD.FromString(kvp.Value);
452 childrenSeeds.Add(pair);
453 }
454 args["children_seeds"] = childrenSeeds;
455 }
456
443 if ((Anims != null) && (Anims.Length > 0)) 457 if ((Anims != null) && (Anims.Length > 0))
444 { 458 {
445 OSDArray anims = new OSDArray(Anims.Length); 459 OSDArray anims = new OSDArray(Anims.Length);
@@ -663,6 +677,29 @@ namespace OpenSim.Framework
663 } 677 }
664 } 678 }
665 679
680 if (args.ContainsKey("children_seeds") && (args["children_seeds"] != null) &&
681 (args["children_seeds"].Type == OSDType.Array))
682 {
683 OSDArray childrenSeeds = (OSDArray)(args["children_seeds"]);
684 ChildrenCapSeeds = new Dictionary<ulong, string>();
685 foreach (OSD o in childrenSeeds)
686 {
687 if (o.Type == OSDType.Map)
688 {
689 ulong handle = 0;
690 string seed = "";
691 OSDMap pair = (OSDMap)o;
692 if (pair["handle"] != null)
693 if (!UInt64.TryParse(pair["handle"].AsString(), out handle))
694 continue;
695 if (pair["seed"] != null)
696 seed = pair["seed"].AsString();
697 if (!ChildrenCapSeeds.ContainsKey(handle))
698 ChildrenCapSeeds.Add(handle, seed);
699 }
700 }
701 }
702
666 if ((args["animations"] != null) && (args["animations"]).Type == OSDType.Array) 703 if ((args["animations"] != null) && (args["animations"]).Type == OSDType.Array)
667 { 704 {
668 OSDArray anims = (OSDArray)(args["animations"]); 705 OSDArray anims = (OSDArray)(args["animations"]);