From 69585a4824a7814bbe543d624de6c3627e0b927b Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 1 Nov 2015 19:11:14 +0100 Subject: More plumbing of the EntityTransferContext (not yet complete) --- .../Avatar/AvatarFactory/AvatarFactoryModule.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/CoreModules/Avatar') diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index 0d3b39e..cdcd6b9 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs @@ -853,7 +853,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory if (invService.GetRootFolder(userID) != null) { - for (int i = 0; i < AvatarWearable.MAX_WEARABLES; i++) + for (int i = 0; i < appearance.Wearables.Length; i++) { for (int j = 0; j < appearance.Wearables[i].Count; j++) { @@ -1258,8 +1258,17 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) { - if (wear.Type < AvatarWearable.MAX_WEARABLES) - avatAppearance.Wearables[wear.Type].Add(wear.ItemID, UUID.Zero); + // If the wearable type is larger than the current array, expand it + if (avatAppearance.Wearables.Length <= wear.Type) + { + int currentLength = avatAppearance.Wearables.Length; + AvatarWearable[] wears = avatAppearance.Wearables; + Array.Resize(ref wears, wear.Type + 1); + for (int i = currentLength ; i <= wear.Type ; i++) + wears[i] = new AvatarWearable(); + avatAppearance.Wearables = wears; + } + avatAppearance.Wearables[wear.Type].Add(wear.ItemID, UUID.Zero); } avatAppearance.GetAssetsFrom(sp.Appearance); -- cgit v1.1