aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs35
1 files changed, 23 insertions, 12 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index a9d11d5..1adff7e 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -691,7 +691,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
691 case WearableType.Shape: 691 case WearableType.Shape:
692 case WearableType.Skin: 692 case WearableType.Skin:
693 //case WearableType.Underpants: 693 //case WearableType.Underpants:
694 TryAndRepair((WearableType)i, invService, userID, appearance); 694 TryAndRepairBrokenWearable((WearableType)i, invService, userID, appearance);
695 resetwearable = true; 695 resetwearable = true;
696 m_log.Warn("[AVFACTORY]: UUID.Zero Wearables, passing fake values."); 696 m_log.Warn("[AVFACTORY]: UUID.Zero Wearables, passing fake values.");
697 resetwearable = true; 697 resetwearable = true;
@@ -711,7 +711,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
711 case WearableType.Shape: 711 case WearableType.Shape:
712 case WearableType.Skin: 712 case WearableType.Skin:
713 //case WearableType.Underpants: 713 //case WearableType.Underpants:
714 TryAndRepair((WearableType)i, invService, userID, appearance); 714 TryAndRepairBrokenWearable((WearableType)i, invService, userID, appearance);
715 715
716 m_log.WarnFormat("[AVFACTORY]: {0} Default Wearables, passing existing values.", (WearableType)i); 716 m_log.WarnFormat("[AVFACTORY]: {0} Default Wearables, passing existing values.", (WearableType)i);
717 resetwearable = true; 717 resetwearable = true;
@@ -727,6 +727,17 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
727 if (baseItem != null) 727 if (baseItem != null)
728 { 728 {
729 appearance.Wearables[i].Add(appearance.Wearables[i][j].ItemID, baseItem.AssetID); 729 appearance.Wearables[i].Add(appearance.Wearables[i][j].ItemID, baseItem.AssetID);
730 int unmodifiedWearableIndexForClosure = i;
731 m_scene.AssetService.Get(baseItem.AssetID.ToString(), this,
732 delegate(string x, object y, AssetBase z)
733 {
734 if (z == null)
735 {
736 TryAndRepairBrokenWearable(
737 (WearableType)unmodifiedWearableIndexForClosure, invService,
738 userID, appearance);
739 }
740 });
730 } 741 }
731 else 742 else
732 { 743 {
@@ -734,7 +745,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
734 "[AVFACTORY]: Can't find inventory item {0} for {1}, setting to default", 745 "[AVFACTORY]: Can't find inventory item {0} for {1}, setting to default",
735 appearance.Wearables[i][j].ItemID, (WearableType)i); 746 appearance.Wearables[i][j].ItemID, (WearableType)i);
736 747
737 TryAndRepair((WearableType)i, invService, userID, appearance); 748 TryAndRepairBrokenWearable((WearableType)i, invService, userID, appearance);
738 resetwearable = true; 749 resetwearable = true;
739 750
740 } 751 }
@@ -746,7 +757,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
746 { 757 {
747 m_log.WarnFormat("[AVFACTORY]: {0} Eyes are Null, passing existing values.", (WearableType.Eyes)); 758 m_log.WarnFormat("[AVFACTORY]: {0} Eyes are Null, passing existing values.", (WearableType.Eyes));
748 759
749 TryAndRepair(WearableType.Eyes, invService, userID, appearance); 760 TryAndRepairBrokenWearable(WearableType.Eyes, invService, userID, appearance);
750 resetwearable = true; 761 resetwearable = true;
751 } 762 }
752 else 763 else
@@ -756,7 +767,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
756 m_log.WarnFormat("[AVFACTORY]: Eyes are UUID.Zero are broken, {0} {1}", 767 m_log.WarnFormat("[AVFACTORY]: Eyes are UUID.Zero are broken, {0} {1}",
757 appearance.Wearables[(int) WearableType.Eyes][0].ItemID, 768 appearance.Wearables[(int) WearableType.Eyes][0].ItemID,
758 appearance.Wearables[(int) WearableType.Eyes][0].AssetID); 769 appearance.Wearables[(int) WearableType.Eyes][0].AssetID);
759 TryAndRepair(WearableType.Eyes, invService, userID, appearance); 770 TryAndRepairBrokenWearable(WearableType.Eyes, invService, userID, appearance);
760 resetwearable = true; 771 resetwearable = true;
761 772
762 } 773 }
@@ -767,7 +778,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
767 { 778 {
768 m_log.WarnFormat("[AVFACTORY]: {0} shape is Null, passing existing values.", (WearableType.Shape)); 779 m_log.WarnFormat("[AVFACTORY]: {0} shape is Null, passing existing values.", (WearableType.Shape));
769 780
770 TryAndRepair(WearableType.Shape, invService, userID, appearance); 781 TryAndRepairBrokenWearable(WearableType.Shape, invService, userID, appearance);
771 resetwearable = true; 782 resetwearable = true;
772 } 783 }
773 else 784 else
@@ -777,7 +788,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
777 m_log.WarnFormat("[AVFACTORY]: Shape is UUID.Zero and broken, {0} {1}", 788 m_log.WarnFormat("[AVFACTORY]: Shape is UUID.Zero and broken, {0} {1}",
778 appearance.Wearables[(int)WearableType.Shape][0].ItemID, 789 appearance.Wearables[(int)WearableType.Shape][0].ItemID,
779 appearance.Wearables[(int)WearableType.Shape][0].AssetID); 790 appearance.Wearables[(int)WearableType.Shape][0].AssetID);
780 TryAndRepair(WearableType.Shape, invService, userID, appearance); 791 TryAndRepairBrokenWearable(WearableType.Shape, invService, userID, appearance);
781 resetwearable = true; 792 resetwearable = true;
782 793
783 } 794 }
@@ -788,7 +799,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
788 { 799 {
789 m_log.WarnFormat("[AVFACTORY]: {0} Hair is Null, passing existing values.", (WearableType.Hair)); 800 m_log.WarnFormat("[AVFACTORY]: {0} Hair is Null, passing existing values.", (WearableType.Hair));
790 801
791 TryAndRepair(WearableType.Hair, invService, userID, appearance); 802 TryAndRepairBrokenWearable(WearableType.Hair, invService, userID, appearance);
792 resetwearable = true; 803 resetwearable = true;
793 } 804 }
794 else 805 else
@@ -798,7 +809,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
798 m_log.WarnFormat("[AVFACTORY]: Hair is UUID.Zero and broken, {0} {1}", 809 m_log.WarnFormat("[AVFACTORY]: Hair is UUID.Zero and broken, {0} {1}",
799 appearance.Wearables[(int)WearableType.Hair][0].ItemID, 810 appearance.Wearables[(int)WearableType.Hair][0].ItemID,
800 appearance.Wearables[(int)WearableType.Hair][0].AssetID); 811 appearance.Wearables[(int)WearableType.Hair][0].AssetID);
801 TryAndRepair(WearableType.Hair, invService, userID, appearance); 812 TryAndRepairBrokenWearable(WearableType.Hair, invService, userID, appearance);
802 resetwearable = true; 813 resetwearable = true;
803 814
804 } 815 }
@@ -809,7 +820,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
809 { 820 {
810 m_log.WarnFormat("[AVFACTORY]: {0} Skin is Null, passing existing values.", (WearableType.Skin)); 821 m_log.WarnFormat("[AVFACTORY]: {0} Skin is Null, passing existing values.", (WearableType.Skin));
811 822
812 TryAndRepair(WearableType.Skin, invService, userID, appearance); 823 TryAndRepairBrokenWearable(WearableType.Skin, invService, userID, appearance);
813 resetwearable = true; 824 resetwearable = true;
814 } 825 }
815 else 826 else
@@ -819,7 +830,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
819 m_log.WarnFormat("[AVFACTORY]: Skin is UUID.Zero and broken, {0} {1}", 830 m_log.WarnFormat("[AVFACTORY]: Skin is UUID.Zero and broken, {0} {1}",
820 appearance.Wearables[(int)WearableType.Skin][0].ItemID, 831 appearance.Wearables[(int)WearableType.Skin][0].ItemID,
821 appearance.Wearables[(int)WearableType.Skin][0].AssetID); 832 appearance.Wearables[(int)WearableType.Skin][0].AssetID);
822 TryAndRepair(WearableType.Skin, invService, userID, appearance); 833 TryAndRepairBrokenWearable(WearableType.Skin, invService, userID, appearance);
823 resetwearable = true; 834 resetwearable = true;
824 835
825 } 836 }
@@ -841,7 +852,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
841 m_log.WarnFormat("[AVFACTORY]: user {0} has no inventory, appearance isn't going to work", userID); 852 m_log.WarnFormat("[AVFACTORY]: user {0} has no inventory, appearance isn't going to work", userID);
842 } 853 }
843 } 854 }
844 private void TryAndRepair(WearableType type, IInventoryService invService, UUID userID,AvatarAppearance appearance) 855 private void TryAndRepairBrokenWearable(WearableType type, IInventoryService invService, UUID userID,AvatarAppearance appearance)
845 { 856 {
846 UUID defaultwearable = GetDefaultItem(type); 857 UUID defaultwearable = GetDefaultItem(type);
847 if (defaultwearable != UUID.Zero) 858 if (defaultwearable != UUID.Zero)