OOps my bad, always do deep copy, let viewers do v1 v2 fixes

httptests
UbitUmarov 2018-05-12 21:35:25 +01:00
parent 468b25ff69
commit fbb77274da
1 changed files with 55 additions and 54 deletions

View File

@ -878,24 +878,24 @@ namespace OpenSim.Services.UserAccountService
// Wearables // Wearables
AvatarWearable basewearable; AvatarWearable basewearable;
AvatarWearable newbasewearable;
WearableItem wearable; WearableItem wearable;
AvatarWearable newbasewearable = new AvatarWearable();
// copy wearables creating new inventory entries // copy wearables creating new inventory entries
// converting from v1.0 wearables to v2.0
for (int i = 0; i < wearables.Length; i++) for (int i = 0; i < wearables.Length; i++)
{ {
basewearable = wearables[i]; basewearable = wearables[i];
if(basewearable == null || basewearable.Count == 0) if(basewearable == null || basewearable.Count == 0)
continue; continue;
newbasewearable = new AvatarWearable(); newbasewearable.Clear();
int j = basewearable.Count - 1; for(int j = 0; j < basewearable.Count; j++)
{
wearable = basewearable[j]; wearable = basewearable[j];
if (wearable.ItemID != UUID.Zero) if (wearable.ItemID != UUID.Zero)
{ {
m_log.DebugFormat("[XXX]: Getting item {0} from avie {1}", wearable.ItemID, source); m_log.DebugFormat("[XXX]: Getting item {0} from avie {1} for {2} {3}",
wearable.ItemID, source, i, j);
// Get inventory item and copy it // Get inventory item and copy it
InventoryItemBase item = m_InventoryService.GetItem(source, wearable.ItemID); InventoryItemBase item = m_InventoryService.GetItem(source, wearable.ItemID);
@ -946,6 +946,7 @@ namespace OpenSim.Services.UserAccountService
m_log.WarnFormat("[USER ACCOUNT SERVICE]: Error transferring {0} to folder {1}", wearable.ItemID, destinationFolder.ID); m_log.WarnFormat("[USER ACCOUNT SERVICE]: Error transferring {0} to folder {1}", wearable.ItemID, destinationFolder.ID);
} }
} }
}
avatarAppearance.SetWearable(i, newbasewearable); avatarAppearance.SetWearable(i, newbasewearable);
} }