diff options
-rw-r--r-- | OpenSim/Framework/AvatarAppearance.cs | 12 | ||||
-rw-r--r-- | OpenSim/Framework/AvatarWearable.cs | 6 | ||||
-rw-r--r-- | OpenSim/Framework/ChildAgentDataUpdate.cs | 7 |
3 files changed, 19 insertions, 6 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs index 40179a2..c384336 100644 --- a/OpenSim/Framework/AvatarAppearance.cs +++ b/OpenSim/Framework/AvatarAppearance.cs | |||
@@ -462,7 +462,10 @@ namespace OpenSim.Framework | |||
462 | // m_log.WarnFormat("[AVATARAPPEARANCE] set wearable {0} --> {1}:{2}",wearableId,wearable.ItemID,wearable.AssetID); | 462 | // m_log.WarnFormat("[AVATARAPPEARANCE] set wearable {0} --> {1}:{2}",wearableId,wearable.ItemID,wearable.AssetID); |
463 | // DEBUG OFF | 463 | // DEBUG OFF |
464 | m_wearables[wearableId].Clear(); | 464 | m_wearables[wearableId].Clear(); |
465 | for (int i = 0; i < wearable.Count; i++) | 465 | int count = wearable.Count; |
466 | if (count > AvatarWearable.MAX_WEARABLES) | ||
467 | count = AvatarWearable.MAX_WEARABLES; | ||
468 | for (int i = 0; i < count; i++) | ||
466 | m_wearables[wearableId].Add(wearable[i].ItemID, wearable[i].AssetID); | 469 | m_wearables[wearableId].Add(wearable[i].ItemID, wearable[i].AssetID); |
467 | } | 470 | } |
468 | 471 | ||
@@ -755,7 +758,12 @@ namespace OpenSim.Framework | |||
755 | if ((data != null) && (data["wearables"] != null) && (data["wearables"]).Type == OSDType.Array) | 758 | if ((data != null) && (data["wearables"] != null) && (data["wearables"]).Type == OSDType.Array) |
756 | { | 759 | { |
757 | OSDArray wears = (OSDArray)(data["wearables"]); | 760 | OSDArray wears = (OSDArray)(data["wearables"]); |
758 | for (int i = 0; i < wears.Count; i++) | 761 | |
762 | int count = wears.Count; | ||
763 | if (count > AvatarWearable.MAX_WEARABLES) | ||
764 | count = AvatarWearable.MAX_WEARABLES; | ||
765 | |||
766 | for (int i = 0; i < count; i++) | ||
759 | m_wearables[i] = new AvatarWearable((OSDArray)wears[i]); | 767 | m_wearables[i] = new AvatarWearable((OSDArray)wears[i]); |
760 | } | 768 | } |
761 | else | 769 | else |
diff --git a/OpenSim/Framework/AvatarWearable.cs b/OpenSim/Framework/AvatarWearable.cs index b104325..7d33abc 100644 --- a/OpenSim/Framework/AvatarWearable.cs +++ b/OpenSim/Framework/AvatarWearable.cs | |||
@@ -67,10 +67,10 @@ namespace OpenSim.Framework | |||
67 | 67 | ||
68 | public static readonly int ALPHA = 13; | 68 | public static readonly int ALPHA = 13; |
69 | public static readonly int TATTOO = 14; | 69 | public static readonly int TATTOO = 14; |
70 | public static readonly int PHYSICS = 15; | 70 | // public static readonly int PHYSICS = 15; |
71 | 71 | ||
72 | public static readonly int MAX_WEARABLES = 16; | 72 | // public static readonly int MAX_WEARABLES = 16; |
73 | // public static readonly int MAX_WEARABLES = 15; | 73 | public static readonly int MAX_WEARABLES = 15; |
74 | 74 | ||
75 | public static readonly UUID DEFAULT_BODY_ITEM = new UUID("66c41e39-38f9-f75a-024e-585989bfaba9"); | 75 | public static readonly UUID DEFAULT_BODY_ITEM = new UUID("66c41e39-38f9-f75a-024e-585989bfaba9"); |
76 | public static readonly UUID DEFAULT_BODY_ASSET = new UUID("66c41e39-38f9-f75a-024e-585989bfab73"); | 76 | public static readonly UUID DEFAULT_BODY_ASSET = new UUID("66c41e39-38f9-f75a-024e-585989bfab73"); |
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index 2a8e67d..5beb37d 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs | |||
@@ -665,7 +665,12 @@ namespace OpenSim.Framework | |||
665 | if ((args["wearables"] != null) && (args["wearables"]).Type == OSDType.Array) | 665 | if ((args["wearables"] != null) && (args["wearables"]).Type == OSDType.Array) |
666 | { | 666 | { |
667 | OSDArray wears = (OSDArray)(args["wearables"]); | 667 | OSDArray wears = (OSDArray)(args["wearables"]); |
668 | for (int i = 0; i < wears.Count / 2; i++) | 668 | |
669 | int count = wears.Count; | ||
670 | if (count > AvatarWearable.MAX_WEARABLES) | ||
671 | count = AvatarWearable.MAX_WEARABLES; | ||
672 | |||
673 | for (int i = 0; i < count / 2; i++) | ||
669 | { | 674 | { |
670 | AvatarWearable awear = new AvatarWearable((OSDArray)wears[i]); | 675 | AvatarWearable awear = new AvatarWearable((OSDArray)wears[i]); |
671 | Appearance.SetWearable(i,awear); | 676 | Appearance.SetWearable(i,awear); |