diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | 15 |
2 files changed, 11 insertions, 5 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index d7458b7..4aa19d1 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -5734,6 +5734,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5734 | AvatarWearingArgs wearingArgs = new AvatarWearingArgs(); | 5734 | AvatarWearingArgs wearingArgs = new AvatarWearingArgs(); |
5735 | for (int i = 0; i < nowWearing.WearableData.Length; i++) | 5735 | for (int i = 0; i < nowWearing.WearableData.Length; i++) |
5736 | { | 5736 | { |
5737 | m_log.DebugFormat("[XXX]: Wearable type {0} item {1}", nowWearing.WearableData[i].WearableType, nowWearing.WearableData[i].ItemID); | ||
5737 | AvatarWearingArgs.Wearable wearable = | 5738 | AvatarWearingArgs.Wearable wearable = |
5738 | new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID, | 5739 | new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID, |
5739 | nowWearing.WearableData[i].WearableType); | 5740 | nowWearing.WearableData[i].WearableType); |
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index 6cbd8bd..7f482cb 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -356,17 +356,16 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
356 | 356 | ||
357 | // m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing called for {0}",client.AgentId); | 357 | // m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing called for {0}",client.AgentId); |
358 | 358 | ||
359 | AvatarAppearance avatAppearance = new AvatarAppearance(sp.Appearance); | 359 | AvatarAppearance avatAppearance = new AvatarAppearance(sp.Appearance, false); |
360 | 360 | ||
361 | foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) | 361 | foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) |
362 | { | 362 | { |
363 | if (wear.Type < AvatarWearable.MAX_WEARABLES) | 363 | if (wear.Type < AvatarWearable.MAX_WEARABLES) |
364 | { | 364 | avatAppearance.Wearables[wear.Type].Add(wear.ItemID,UUID.Zero); |
365 | AvatarWearable newWearable = new AvatarWearable(wear.ItemID,UUID.Zero); | ||
366 | avatAppearance.SetWearable(wear.Type, newWearable); | ||
367 | } | ||
368 | } | 365 | } |
369 | 366 | ||
367 | avatAppearance.GetAssetsFrom(sp.Appearance); | ||
368 | |||
370 | // This could take awhile since it needs to pull inventory | 369 | // This could take awhile since it needs to pull inventory |
371 | SetAppearanceAssets(sp.UUID, ref avatAppearance); | 370 | SetAppearanceAssets(sp.UUID, ref avatAppearance); |
372 | 371 | ||
@@ -384,6 +383,12 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
384 | { | 383 | { |
385 | for (int j = 0 ; j < appearance.Wearables[j].Count ; j ++ ) | 384 | for (int j = 0 ; j < appearance.Wearables[j].Count ; j ++ ) |
386 | { | 385 | { |
386 | if (appearance.Wearables[i][j].ItemID == UUID.Zero) | ||
387 | continue; | ||
388 | |||
389 | // Ignore ruth's assets | ||
390 | if (appearance.Wearables[i][j].ItemID == AvatarWearable.DefaultWearables[i][0].ItemID) | ||
391 | continue; | ||
387 | InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID); | 392 | InventoryItemBase baseItem = new InventoryItemBase(appearance.Wearables[i][j].ItemID, userID); |
388 | baseItem = invService.GetItem(baseItem); | 393 | baseItem = invService.GetItem(baseItem); |
389 | 394 | ||