diff options
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/AgentCircuitData.cs | 38 |
1 files changed, 22 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; |