aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2010-01-13 09:34:08 -0800
committerDiva Canto2010-01-13 09:34:08 -0800
commit4de82891a9c1219fd798fc005f5dea4dc7ea13f2 (patch)
tree23d8af3f3d5f08cc7752116b051ea229cbbc5ac6
parentSeveral more buglets removed. (diff)
downloadopensim-SC_OLD-4de82891a9c1219fd798fc005f5dea4dc7ea13f2.zip
opensim-SC_OLD-4de82891a9c1219fd798fc005f5dea4dc7ea13f2.tar.gz
opensim-SC_OLD-4de82891a9c1219fd798fc005f5dea4dc7ea13f2.tar.bz2
opensim-SC_OLD-4de82891a9c1219fd798fc005f5dea4dc7ea13f2.tar.xz
Bug in Teleport fixed -- Appearance was missing from AgentCircuitData.
-rw-r--r--OpenSim/Framework/AgentCircuitData.cs38
-rw-r--r--OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs1
3 files changed, 25 insertions, 16 deletions
diff --git a/OpenSim/Framework/AgentCircuitData.cs b/OpenSim/Framework/AgentCircuitData.cs
index ad29950..e655aa4 100644
--- a/OpenSim/Framework/AgentCircuitData.cs
+++ b/OpenSim/Framework/AgentCircuitData.cs
@@ -157,28 +157,34 @@ namespace OpenSim.Framework
157 args["start_pos"] = OSD.FromString(startpos.ToString()); 157 args["start_pos"] = OSD.FromString(startpos.ToString());
158 args["appearance_serial"] = OSD.FromInteger(Appearance.Serial); 158 args["appearance_serial"] = OSD.FromInteger(Appearance.Serial);
159 159
160 // We might not pass this in all cases... 160 if (Appearance != null)
161 if ((Appearance.Wearables != null) && (Appearance.Wearables.Length > 0))
162 { 161 {
163 OSDArray wears = new OSDArray(Appearance.Wearables.Length); 162 //System.Console.WriteLine("XXX Before packing Wearables");
164 foreach (AvatarWearable awear in Appearance.Wearables) 163 if ((Appearance.Wearables != null) && (Appearance.Wearables.Length > 0))
165 { 164 {
166 wears.Add(OSD.FromUUID(awear.ItemID)); 165 OSDArray wears = new OSDArray(Appearance.Wearables.Length * 2);
167 wears.Add(OSD.FromUUID(awear.AssetID)); 166 foreach (AvatarWearable awear in Appearance.Wearables)
167 {
168 wears.Add(OSD.FromUUID(awear.ItemID));
169 wears.Add(OSD.FromUUID(awear.AssetID));
170 //System.Console.WriteLine("XXX ItemID=" + awear.ItemID + " assetID=" + awear.AssetID);
171 }
172 args["wearables"] = wears;
168 } 173 }
169 args["wearables"] = wears;
170 }
171 174
172 Dictionary<int, UUID[]> attachments = Appearance.GetAttachmentDictionary(); 175 //System.Console.WriteLine("XXX Before packing Attachments");
173 if ((attachments != null) && (attachments.Count > 0)) 176 Dictionary<int, UUID[]> attachments = Appearance.GetAttachmentDictionary();
174 { 177 if ((attachments != null) && (attachments.Count > 0))
175 OSDArray attachs = new OSDArray(attachments.Count);
176 foreach (KeyValuePair<int, UUID[]> kvp in attachments)
177 { 178 {
178 AttachmentData adata = new AttachmentData(kvp.Key, kvp.Value[0], kvp.Value[1]); 179 OSDArray attachs = new OSDArray(attachments.Count);
179 attachs.Add(adata.PackUpdateMessage()); 180 foreach (KeyValuePair<int, UUID[]> kvp in attachments)
181 {
182 AttachmentData adata = new AttachmentData(kvp.Key, kvp.Value[0], kvp.Value[1]);
183 attachs.Add(adata.PackUpdateMessage());
184 //System.Console.WriteLine("XXX att.pt=" + kvp.Key + "; itemID=" + kvp.Value[0] + "; assetID=" + kvp.Value[1]);
185 }
186 args["attachments"] = attachs;
180 } 187 }
181 args["attachments"] = attachs;
182 } 188 }
183 189
184 return args; 190 return args;
diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs
index e7a97f1..2821be2 100644
--- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs
@@ -189,6 +189,8 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
189 agentCircuit.InventoryFolder = UUID.Zero; 189 agentCircuit.InventoryFolder = UUID.Zero;
190 agentCircuit.startpos = position; 190 agentCircuit.startpos = position;
191 agentCircuit.child = true; 191 agentCircuit.child = true;
192 agentCircuit.Appearance = avatar.Appearance;
193
192 if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY)) 194 if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY))
193 { 195 {
194 // brand new agent, let's create a new caps seed 196 // brand new agent, let's create a new caps seed
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index 63719ac..f99df29 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -803,6 +803,7 @@ namespace OpenSim.Region.Framework.Scenes
803 agentCircuit.InventoryFolder = UUID.Zero; 803 agentCircuit.InventoryFolder = UUID.Zero;
804 agentCircuit.startpos = position; 804 agentCircuit.startpos = position;
805 agentCircuit.child = true; 805 agentCircuit.child = true;
806 agentCircuit.Appearance = avatar.Appearance;
806 807
807 if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY)) 808 if (Util.IsOutsideView(oldRegionX, newRegionX, oldRegionY, newRegionY))
808 { 809 {