diff options
Fixed bug in Appearance update in AvatarFactoryModule.
Diffstat (limited to 'OpenSim/Region/Environment/Modules')
-rw-r--r-- | OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs index 3e685a5..edaad82 100644 --- a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs +++ b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs | |||
@@ -77,27 +77,30 @@ namespace OpenSim.Region.Environment.Modules | |||
77 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId); | 77 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId); |
78 | if (profile != null) | 78 | if (profile != null) |
79 | { | 79 | { |
80 | //Todo look up the assetid from the inventory cache (or something) for each itemId that is in AvatarWearingArgs | 80 | if (profile.RootFolder != null) |
81 | // then store assetid and itemId and wearable type in a database | ||
82 | foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) | ||
83 | { | 81 | { |
84 | if (wear.Type < 13) | 82 | //Todo look up the assetid from the inventory cache (or something) for each itemId that is in AvatarWearingArgs |
83 | // then store assetid and itemId and wearable type in a database | ||
84 | foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) | ||
85 | { | 85 | { |
86 | LLUUID assetId; | 86 | if (wear.Type < 13) |
87 | |||
88 | InventoryItemBase baseItem = profile.RootFolder.HasItem(wear.ItemID); | ||
89 | if (baseItem != null) | ||
90 | { | 87 | { |
91 | assetId = baseItem.assetID; | 88 | LLUUID assetId; |
92 | //temporary dictionary storage. This should be storing to a database | 89 | |
93 | if (m_avatarsClothes.ContainsKey(clientView.AgentId)) | 90 | InventoryItemBase baseItem = profile.RootFolder.HasItem(wear.ItemID); |
91 | if (baseItem != null) | ||
94 | { | 92 | { |
95 | AvatarAppearance avWearing = m_avatarsClothes[clientView.AgentId]; | 93 | assetId = baseItem.assetID; |
96 | avWearing.IsWearing[wear.Type].AssetID = assetId; | 94 | //temporary dictionary storage. This should be storing to a database |
97 | avWearing.IsWearing[wear.Type].ItemID = wear.ItemID; | 95 | if (m_avatarsClothes.ContainsKey(clientView.AgentId)) |
96 | { | ||
97 | AvatarAppearance avWearing = m_avatarsClothes[clientView.AgentId]; | ||
98 | avWearing.IsWearing[wear.Type].AssetID = assetId; | ||
99 | avWearing.IsWearing[wear.Type].ItemID = wear.ItemID; | ||
100 | } | ||
98 | } | 101 | } |
99 | } | ||
100 | 102 | ||
103 | } | ||
101 | } | 104 | } |
102 | } | 105 | } |
103 | } | 106 | } |