diff options
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 | { |